文章目录
  1. 1. mount
  2. 2. find
  3. 3. grep
  4. 4. sed
  5. 5. apt-get install
  6. 6. chmod 和 chown
  7. 7. mkswap, swapon
  8. 8. 删除不需要的内核
  9. 9. patch
  10. 10. ftp
  11. 11. 解压 rpm 包
  12. 12. 修改用户权限
  13. 13. 修改用户密码
  14. 14. 监视某个端口
  15. 15. 查看磁盘空间
  16. 16. wget
  17. 17. 压缩
  18. 18. dpkg
  19. 19. xargs
  20. 20. which, ldd
  21. 21. who, uname

百度、google都能搜得到,但是很杂。这里记录下我记不清的,但是又比较常用的一些linux命令用法。

mount

挂载设备命令,一般挂载存储设备就用这个了(硬盘、U盘等)。

mount [-t vfstype] [-o options] device dir

其中:

  • -t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有:

    • 光盘或光盘镜像:iso9660
    • DOS fat16文件系统:msdos
    • Windows 9x fat32文件系统:vfat (一般U盘的是这种文件系统)
    • Windows NT ntfs文件系统:ntfs
    • Mount Windows文件网络共享:smbfs
    • UNIX(LINUX) 文件网络共享:nfs
  • -o options 主要用来描述设备或档案的挂接方式。常用的参数有:

    • loop:用来把一个文件当成硬盘分区挂接上系统
    • ro:采用只读方式挂接设备
    • rw:采用读写方式挂接设备
    • iocharset:指定访问文件系统所用字符集
  • device 要挂接(mount)的设备。

  • dir设备在系统上的挂接点(mount point)。

具体的可以去看 man mount 。在挂载 samba 的时候如果说啥 mount 格式错误,一般是没有装 smbfs , apt-get install 装一个就好。
查看电脑上的文件系统:fdisk -l 或 more /proc/partitions (一般要有root权限)。一般的用法是:

// /mnt/windows 必须存在
// 用完了卸载用 sudo umount /mnt/windows
sudo mount -t ntfs /dev/sda1 /mnt/windows 

// 挂载 samba 网络设备(以 192.168.0.8 为例)
sudo mount -t smbfs -o username=****,password="****" 192.168.0.8:/xx /mnt/samba

要想在一开机就让linux自己挂载某个硬盘分区可以这样:编辑/etc/fstab,加入以下一行:

/dev/sda1 /mnt/windows ntfs defaults 0 0

卸载命令是:umount

find

查找文件命令。常用的形式: find path -type f -name filename -depth 。

  • path: 路径,一般当前路径可以用 “.” 表示。
  • -type:查找的文件类型,f 表示普通文件。其他的可以看 man find。
  • -name:查找文件的名字,可以用正则表达式(不过我基本上只会用*而已)。
  • -depth:表示递归查找(查找子目录),好像可以设置深度的,具体的看 man 吧。

grep

查找文件内容命令。常用的形式: grep -Irn findstrings filenames。

  • I:表示忽略小写。
  • r: 表示查找子目录。
  • n:表示显示行号。
  • v:这个表示方向查找,就是显示不包含查找内容的文件。例如 grep -Irn xx . | grep -v svn 就可以不去查找可恶的svn目录下的的东西。
  • l:表示只显示文件名字,例如 grep -lr xx . 搜索结果就只显示文件名。
  • findstrings:要查找的字符串,同样支持正则表达式。字符串可以加“”这样遇到要查找一些特殊字符不要加转意字符(),否则一些字符是命令的需要加转意字符。例如 grep -Irn “path\list” .
  • filenames:要查找的文件。

sed

流编辑器,功能十分强大,但是我目前就会用它的一点点功能而已,简单的说它能将输入文件一行一行的做处理。这样它和 grep , find 配合起来做替换的话,就十分方便了。常用形式:sed ‘s/old/new/g’ -i files 。

  • ‘s’:这个是替换命令,和vim的替换命令差不多。
  • -i:将输出写入原文件,也就是修改原文件的内容;如果不加的话就会输出到标准输出(一般是终端)。
  • files:输入的文件,可以是多个。

这里与 grep 配合一个就可以在一个工程项目里做全局的替换了:(在工程的根目录弄)

# grep -r old * | sed 's/old/new/g' -i

apt-get install

从网上下载并安装软件包。用法很简单,一般就是 sudo apt-get install xx ,但是一般会记不住包的名字。可以使用 aptitude search 关键字 (apt-cache search xx)来搜索。软件源可以修改 /etc/apt/source.list (不过一般用图形界面比较方便点),然后使用 sudo apt-get update 来更新。还有 apt-get install xx 的下载包的缓存地址在 /var/cache/apt/archives 里,这里其实可以备份起来,下次重装系统的时候就不用再重新下载了。

aptitude dist-upgrade xx 可以单独更新某个包。

chmod 和 chown

chmod 是修改文件权限的,例如添加所属组的读写权限、添加其它用户的读写权限等。chown 是修改文件的拥有者,拥有者对该文件拥有所有权限。

mkswap, swapon

用来创建和挂载swap分区(linux下的虚拟内存),一般在板子上开发时,可以拿U盘做swap分区(事先要格式化成swap分区格式的)。一般用法是: mkswap /dev/sda 创建swap分区(假设/dev/sda是你的U盘),然后 swapon /dev/sda 挂载上就可以了。然后可以用 free 查看结果。

删除不需要的内核

  • dpkg —get-selections | grep linux :可以查看自己安装了多少内核。用 uname -a 可以看到自己目前用的是哪个内核。
  • 然后用 apt-get remove xxxx 就可以把自己不要的内核删掉(删掉后会自动把 grub 中对应的启动项目也删掉)。
  • 不过某些时候 grub 会检测到一些没有办法启动的启动项目,这个时候可以修改 grub 的菜单文件把无用的项目去掉:
    • grub1(ubuntu 9.10 之前):/boot/grub/menu.lst
    • grub2(ubuntu 10.04 之后): /boot/grub/grub.cfg

patch

linux打补丁命令。由 vim diff 等工具生成的 .patch 文件可由该命令对源代码打补丁。一般形式为: patch -p0 < xx.patch 。p0 代表是源代码目标的第几层(文件夹深度),0就代表是根目录。一般是把 .patch 文件复制到源代码包的根目录,然后用上面的形式进行打补丁。更多的用 man patch 自己看吧。

ftp

用 ftp 上传东西的时候,如果发的不是文本文件,在上传之前要使用 binary 命令,转化为二进制传输模式,否则上传后的文件可能无法正常使用。

解压 rpm 包

rpm 包可以使用 rpm -i 直接安装,也可以使用 rpm2cpio xxx.rpm | cpio -div 进行解压。

修改用户权限

  • useradd
    添加一个新用户,一般新建立一个用户就会相应的建立这个用户同名的用户组。如果要新建立用户组的话,可以用 groupadd 。

  • usermod
    修改指定用户的信息。可以修改这个用户的用户目录(home目录)、shell 环境(bash 还是 sh)、所属于的用户组等。其中修改说属的用户组就可以赋予和删除用户相应的用户组的权限。使用

usermod -a -G group1 user1

就可以将 user1 添加到 group1 组中。具体的用法可以看 man。其中

// 可以看到有哪些组, 组里有哪些用户
cat /ect/groups

// 可以看到用户的一些信息
cat /ect/passwd
  • chgrp
    chgrp -R file 可以改变这个文件的所属于组。

  • 权限说明
    一般我们最常用的也就是 777 755 644 这三种 Linux主机文件目录权限原理:

444 r--r--r--
600 rw-------
644 rw-r--r--
666 rw-rw-rw-
700 rwx------
744 rwxr--r--
755 rwxr-xr-x
777 rwxrwxrwx

三位数字代表9位的权限,分成3部分,第一部分3位表示所有者的权限,第二部分3位表示同组用户权限,第三部分3位表示其他用户权限,r代表读取权限等于4,w代表写入权限等于2,x代表执行权限等于1

比如777,第一位7等于4+2+1,所以就是rwx,所有者有读取、写入、执行的权限,第二位7也是4+2+1,rwx,同组用户具有读取、写入、执行权限,第三位7,代表其他用户有读取、写入、执行的权限。
比如744,第一位7等于4+2+1,rwx,所有者具有读取、写入、执行权限,第二位4等于4+0+0,r—,同组用户只有读取权限、第三位4,也是r—,其他用户只有读取权限。

修改用户密码

passwd user 可以修改指定用户的登陆密码,当然如果修改别的用户要有 root 权限。

监视某个端口

# 这里是监视网络流量
watch -n 1 "/sbin/ifconfig eth0 | grep bytes"

查看磁盘空间

虽然有 fdisk 可用,但是 df -h 效果更好。

wget

这个东西下 http 的挺好用的。一般用法比较简单,直接 wget url 就行了。

压缩

可以用 tar,也可以用 zip:

// gz 格式的
tar -xzvf xx.tar.gz      // 解压
tar -zvf xx.tar          // 解压
tar -czvf xx.tar.gz xx   // 压缩

// bz2 格式的
bzip2 xx.tar.bz2  // 解压 

// 递归(文件夹)中的打包为 xx.zip,其中 -0 表示不压缩,仅仅是存储
// 不加 -0 则表示用默认压缩
zip -r -0 xx.zip xx 

// 将 xx 这个文件加入到 xx.zip 中,其中能保持 xx 的文件树结构
zip -g xx.zip xx

dpkg

  • 安装 deb 包: dpkg -i package-file.deb
  • 卸载 deb 包: dpkg -r package-name
  • 包名可以通过 dpkg —info package-file.deb 查看

xargs

可以显示指定让上一个命令的输出作为下一个命令的输入参数。例如:

# 先搜索以 buildin 结尾的文件,然后再删掉。
find . -iname *.buildin | xargs rm 

which, ldd

  • which: 显示到某个程序(命令)的所在路径,这个检查要用某些版本的程序的时候(例如说编译器)很有用。
  • ldd: 显示某个程序链接的 so 的路径,同样对于查看某些库的版本很有用。

who, uname

  • who: 查看当前登录的用户
  • uname: 查看当前系统的一些信息(例如架构,内核等),可以加 -a 显示全部
文章目录
  1. 1. mount
  2. 2. find
  3. 3. grep
  4. 4. sed
  5. 5. apt-get install
  6. 6. chmod 和 chown
  7. 7. mkswap, swapon
  8. 8. 删除不需要的内核
  9. 9. patch
  10. 10. ftp
  11. 11. 解压 rpm 包
  12. 12. 修改用户权限
  13. 13. 修改用户密码
  14. 14. 监视某个端口
  15. 15. 查看磁盘空间
  16. 16. wget
  17. 17. 压缩
  18. 18. dpkg
  19. 19. xargs
  20. 20. which, ldd
  21. 21. who, uname