Linux基本命令的常用参数

Linux中的命令参数非常之多,但当中有很大一部分是很少甚至一直用不到的,因此在这里我把一些极其常用的命令的参数做一个整理以及一些记忆的方法,供大家参考.

实用小工具

Linux中配置了时间.日历.计算器等实用小工具,个人认为使用这些工具的目的就是加快效率,因此本身他们就没有什么参数,需要提及一下的是

1
2
date +%Y/%m/%d
date +%H:%M

这种模式化的命令我们完全可以将其封装成alias,写入.bashrc中,方便调用.

1
cal 04 2017

对于这样的命令就没有必要再封装了,因为其本身是很灵活的.

对于计算器::

1
bc

他本身的参数就没有什么意义,因此也没必要去记.

关机/重启命令

在关机前,推荐主动调用一下sync这个工具,尽管那些关机命令已经封装进去这个工具的调用,但还是自己调用一下比较放心

推荐使用shutdown, 因为他会根据当前系统的状态,逐一关闭当前正在运行的服务,而halt会不理会系统的状态,还可以进行强制的硬件关机.

可能用到的参数有:

1
2
3
4
shutdown -h (halt) 关机
shutdown -r (restart) 重启
shutdown -k 仅仅是广播一条警告信息
shutdown -c 取消当前的的关机schedule. (会有广播)

一些常见的shutdown例子:

1
2
3
4
shutdown -h now 立即关机
shutdwon -h 10:23 在10:23关机
shutdown -r (+)10 在十分钟后重启(+号可略去)
shutdown -k now 'Your Linux will shutdown NOW!!' 仅发送警告,不会真的关机.

除了shutdown,还有一些能达到相同结果的命令 如:halt poweroff init reboot

文件系统相关命令

文件目录管理相关

pwd也是有参数的! 没想到吧?

事实上我还觉得这个参数是很有用的,他可以显示出当前目录的真实目录,而不是连接的.

这个参数就是**-P**,意指physical.

譬如,在/lib -> /usr/lib这样的目录下直接使用pwd,输出的是/lib,使用pwd -P输出/usr/lib.

mkdir

常用参数为 -p,意指parents,可以理解成递归创建.

ls

常用的参数如下:

1
2
3
4
5
-a (all) 全部的文件包括隐藏
-h (human) 更易读的方式
-l (long) 长数据串,显示metadata
-S (Size) 按照大小排序
-t (time) 按照时间排序

cp

一般的发行版都会自动加上-i参数,意指(interactive),询问目标文件存在时是否覆盖.

常用的参数如下:

1
2
3
4
-a (archive) 等同于 -pdr 相当于是一次 完全复制本身 的过程
-p (preserve) 保留属性
-d 如果源文件是连接文件,则复制链接本身,而不是文件
-r (recursive) 递归复制,用于目录的复制.

cat

我认为只有一个参数有意义,即: -n (number) 显示出行号.

与之很像的命令 nl 但是,nl默认忽略空行.需要加-b a参数.

tail

DEBUG时超重要的命令了,我觉得.

参数:-f ,意指follow,跟踪查看.

touch

听名字感觉这个命令是用来改变文件时间的元信息的. 只是文件不存在时会自动创建一个空文件.

1
2
3
4
touch -a (access time) 仅仅修改access time
同样还有 -m (modified time)
touch -c ([non-] create) 仅仅修改时间,如果文件不存在,不创建文件.
touch -d (date) 修改时间为"XXX"

搜索相关

which
whereis
locate
find

查找命令傻傻分不清楚??

先从参数说起好了.

which ( 用于寻找执行文件,查找命令 )

  • -a (all) 将所有$PATH目录中的命令均列出.

whereis (用于寻找特定文件(DB))

locate (超好用的搜索(DB))

  • -i 忽略大小写
  • -r regularExp 正则匹配

数据库更新: updatedb

find (绝对能找到,但是慢(DISK))

1
2
3
4
5
6
7
8
9
find的参数实在是太多了.
但好在有规律可循.下面有一些常用的模板.
命令格式是 find 路径 参数 -exec 要执行的命令 {} \;
find /etc /opt -name file
find /etc -perm +7000
find / -mtime 0 # 表示将过去24小时到现在修改过的文件
find /etc newer /etc/passwd 对比新旧
find /home -user root
find / -nouser

文件压缩相关

文件压缩的命令的参数基本相似,但也有不同.

说之前来看一下zcatbzcat,这两个相当于是压缩文件的cat命令,前提是文件压缩前是文本文件.

gzip
bzip2 –能够保留源文件

相较于gzip,bzip2的压缩更好,推荐使用bzip2.

  • -c (stdout)
  • -v (verbose)
  • -d (decompress)

对于bzip2:

  • -k (keep)
  • -z (compress)

tar 是非常常用的压缩和解压缩命令,安装源码包是是必不可少的命令,他的参数也是很多的:

  • -c (create) 压缩
  • -t (list) 查看压缩包
  • -v (verbose) 显示进度
  • -x (extract) 解包
  • -P 保留原文件的属性和权限 (Preserve)
  • -j 以bzip2的方式打包 文件名为*.tar.bz2;
  • -z 以gzip的方式打包 文件名为*.tar.gz;

磁盘挂载相关

对于容量的查看,有df.du两个命令.

其中du用来查看目录, df用来查看磁盘.

两者的参数基本一样:

  • -h (human) 更易阅读的方式.
  • -a (all) 所有
  • -k 以KB的形式显示
  • -m 以MB的形式显示

不同的是,

  • df -i (inode) 显示inode的使用情况
  • du -s (summarize) 仅显示文件夹的容量

使用fdisk来进行MBR分区
使用parted来进行GPT分区.

准确的说这两个外部命令完全就是工具性质的了.因此也没有什么参数.

mount挂载命令

  • -a 根据/etc/fstab自动挂载