history命令:是shell程序内置命令,主要用于记录系统执行过的命令,当用户登录shell程序是会把历史配置文件中的命令读取到当前命令历史缓存列表中,退出shell程序会把历史列表中的命令写入历史配置文件当中


history [-c] [-d offset]

    -c:清空历史列表

    -d offset:删除指定命令历史条目

    -r:将历史文件中的命令重读到命令历史列表

    -w:历史列表中的命令写入历史配置文件

    -a:追加本次会话新命令到历史配置文件

    -n:将历史配置文件中从未读过的命令到历史列表

    -p COMMAND...:多行列出COMMAND,但不记录也不执行

    -s COMMAND...:记录列出的COMMAND,不执行


调用历史命令:

    !!:执行上一条命令

    !STRING:执行最近一次一"STRING"开头的命令

    !n:执行命令历史中第n条命令

    !-n:执行命令历史中倒数第n条命令


调用历史命令的参数:

    !$:调用上一条命令的最后一个参数

    Esc+.:调用上一条命令的最后一个参数

    !:#:调用上一条命令的第#个参数

    !:^:调用上一条命令的第一个参数

    !:*:调用上一条命令的所有参数

    

    !n:$:调用历史列表中第n条命令的最后一个参数

    !n:^:调用历史列表中第n条命令的第一个参数

    !n:#:调用历史列表中第n条命令的第#个参数

    !n:*:调用历史列表中第n条命令的所有参数


    !STRING:$:调用最近一次以"STRING"开头的命令的最后一个参数

    !STRING:^:调用最近一次以"STRING"开头的命令的第一个参数

    !STRING:*:调用最近一次以"STRING"开头的命令的所有参数

    !STRING:#:调用最近一次以"STRING"开头的命令的第#个命令


命令历史相关环境变量:

    HISTSIZE:命令历史存放条目数

    HISTFILE:命令历史配置文件

    HISTFILESIZE:配置文件所存放的条目数

    HISTTIMEFORMAT:命令历史显示格式

    HISTIGNORE COMMAND1...:忽略所定义的COMMAND

    HISTCONTROL:命令历史记录方式(默认为ignoredups)

        ignoredups:连续重复执行的命令只记录一次

        ignorespace:忽略以空格开头的命令

        ignoreboth:以上两者都生效

        erasedups:忽略重复命令


环境变量可定义在/etc/profile或~/.bash_profile文件当中,也可以在当前命令行定义,但只对当前shell进程生效,用户退出shell将失效

    /etc/profile:全局配置文件,对所有用户都生效

    ~/.bash_profile:用户配置文件,只对当前用户生效


几个bash快捷键:

    Ctrl+l:清屏

    Ctrl+c:终止当前命令运行

    Ctrl+a:光标跳转至行首   

    Ctrl+e:光标跳转至行尾

    Ctrl+u:删除光标以左的所有命令

    Ctrl+k:删除光标以右的所有命令