1.  whatis 命令:

    查看命令在man手册中的位置:

    使用mkwhatis命令可将当前系统上所有的帮助手册及与之对应的关键字创建为一个数据库;

   2. which 命令:

        查看命令的完整路径

        --skip-alias 跳过别名,只显示命令路径本身

    3. wheris 命令 :

        命令的相关文件存放位置

    4. type 命令:

        判断命令是shell内嵌命令还是外部命令

    5. hash命令:

    用过一次的命令会存在缓存(k-v)中,方便下次快速调用

    使用hash命令可以查看此缓存,并且可以看到命令使用的次数

    缓存会出现错误,比如把某命令从/bin下移动至/usr/bin下,虽然这两个路径都在PATH变量中定义了,但是依然会找不到命令,因为直接引用了缓存中的路径,而不是每次根据PATH找命令。

    发生错误时应清空:

    清空缓存:hash –r  hash –d 参数  可以指定删除某个缓存

    6. history命令:

        查看命令历史

        -a 手动追加本次新执行的命令至历史命令文件(.bash_history)中

        -c 清空命令历史

        -d 指定偏移量删除历史

        -w 将缓冲区的命令写入文件中

    相关环境变量:

        HISTSIZE:命令历史记录的条数;
        HISTFILE:~/.bash_history;
        HISTFILESIZE:命令历史文件记录历史的条数;

        

    控制命令历史的记录方式:

环境变量:HISTCONTROL

ignoredups:忽略重复的命令;连续且相同方为“重复”;

ignorespace:忽略所有以空白开头的命令;

ignoreboth:ignoredups, ignorespace;

修改环境变量值的方式:export 变量名="值"

变量赋值:把赋值符号后面的数据存储于变量名指向内存空间;

    7. date命令:

    显示:

    +%D 显示月日年

    +%A 显示星期几

    +%T 显示时间

    +%F 显示月日年

    设置时间:

    8. clock 命令

        clock 显示时钟

        hwclock –w 将系统时间写入到硬件

        hwclock -s 读取硬件时间到系统时

    9. stat 命令:

        获取指定文件元数据信息

    10. touch 命令:

        主要用于修改文件时间戳

        –c如果没有表示不创建任何文件

        -a 只改变访问时间  (读取了文件内容)

        -m 只改变modify时间 (数据发生了改变)

        -t 指定时间进行修改 (元数据发生了改变)

    11. tree命令:

        列出目录结构

        -d 只列出目录

        -L 显示指定的层级目录

        -P 只显示由指定pattern匹配到的路径

    12.who,whoami,w命令:

        who:系统当前所有的登录会话  

        whoami:系统当前的用户

        w:系统所有登录会话及其操作

    13. tr命令:

        转换或者删除字符

        -d:用于删除

    14. tee命令:

        从标准输入读入数据输出到屏幕和指定位置(一路输入两路输出)

    15. wc命令:

        统计单词数,行数,字符数

        -l :显示行数

        -w : 显示单词数

        -c :显示字节数

        -m:字符数

    16. cut命令:

        -d: 指定分隔符

        -f: 指定哪一字段

        --output-delimiter:指明输出后的分隔符

    17.sort 命令:

        文本排序

        -n 按数值大小排序

        -r 逆序排序(可与-n同时使用)

        -t 指定字段分隔符

        -k 以那个字段为准开始排序

        -f  忽略大小写

        -u 去重复显示

    18.uniq 命令:

        去重复(这里的重复指连续且相同的行)

        -c  显示重复的次数

        -d  仅显示重复的行(且只显示一次)

        -u 仅显示不重复的行

    19.cat命令(tac):

        合并并且查看某文件

            cat [OPTION]... [FILE]...

                -E: 显示行结束符$

                -n: 对显示出的每一行进行编号

                -b:只为带文本的行标号

        一种生成文件的方法:cat > /path/to/somefile << EOF

    20.echo命令:

        回显

            -n: 禁止自动添加换行符号;

            -e: 允许使用转义符;

                \n: 换行
                \t: 制表符

echo "$VAR_NAME": 变量会替换,双引号表弱引用

echo '$VAR_NAME': 变量不会替换,强引用

    

    21.watch 命令:可以动态分析某命令执行状态

        -n #: 刷新间隔,单位是秒;

        watch -n# 'COMMAND'

    22. dd命令:

    convert and copy a file

    用法:
        dd if=/PATH/FROM/SRC of=/PATH/TO/DEST
        bs=#:block size, 复制单元大小;
        count=#:复制多少个bs;
    磁盘拷贝:
        dd if=/dev/sda of=/dev/sdb
    备份MBR
        dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
    破坏MBR中的bootloader:
        dd if=/dev/zero of=/dev/sda bs=256 count=1

    23. su命令:

    切换用户或以其他用户身份执行命令:su

        su [options...] [-] [user [args...]]

    切换用户的方式:

        su UserName:非登录式切换,即不会读取目标用户的配置文件;

        su - UserName:登录式切换,会读取目标用户的配置文件;完全切换;

        Note:root su至其他用户无须密码;非root用户切换时需要密码;

        换个身份执行命令:

        su [-] UserName -c 'COMMAND'