运维笔记10


运维笔记9

命令行历史

  • 保存你输入的命令历史。可以用它来重复执行命令。
  • 登录shell时,会读取历史文件中记录下的命令~/.bash_history
  • 登录进入shell后新执行的命令只会记录在缓存中;这些命令会在用户退出之后追加到命令历史文件~/.bash_history中。

命令行历史回溯命令与快捷键

  • 重复之前一个命令,有四种办法

    • 重复前一个命令使用上下方向键。
    • !!并回车执行
    • 输入!-1并回车执行
    • Ctrl+p并回车执行。
  • !:0执行前一条命令(去除参数)

  • Ctrl+n显示当前历史中的下一条命令,但不执行

  • Ctrl+j执行当前命令

  • Ctrl+r来在命令历史中搜索命令

  • Ctrl+g从历史搜索模式退出

  • !n执行history命令输出对应序号n的命令

  • !-n执行history历史中倒数第n个命令

命令行历史的高级功能

  • !string重复前一个以string开头的命令
  • !?string重复前一个包含string的命令
  • !string:p仅打印命令历史,而不执行
  • !$:p打印输出!$(上一条命令的最后一个参数)的内容
  • !*:p打印输出!*(上一条命令的所有参数)的内容
  • ^string删除上一条命令中的第一个string
  • ^string1^string2将上一条命令中的第一个string1更换为string2
  • !:gs/string1/string2将上一条命令中所有的string1都替换为string2
  • 要重新调用前一个命令中最后一个参数
    • !$表示前一个命令中的最后一个参数
    • Esc+.(点击Esc键后松开,然后点击.键)
    • Alt+.(按住Alt键的同时点击.键)

调用历史参数

  • command !^ 利用上一个命令的第一个参数做command的参数
  • command !$ 利用上一个命令的最后一个参数做command的参数
  • command !* 利用上一个命令的全部参数做command的参数
  • command !:n 利用上一个命令的第n个参数做command的参数
  • command !n:^ 调用第n条命令的第一个参数
  • command !n:$ 调用第n条命令的最后一个参数
  • command !n:m 调用第n条命令的第m个参数
  • command !n:* 调用第n条命令的所有参数

命令history

  • history [-c] [-d offset] [n]
  • history -anrw [filename]
  • history -ps arg [arg...]
    • -c: 清空命令历史
    • -d offset: 删除历史中指定的第offset个命令
    • n: 显示最近的n条历史
    • -a: 追加本次会话新执行的命令历史列表至历史文件
    • -r: 读历史文件附加到历史列表
    • -w: 保存历史列表到指定的历史文件
    • -n: 读历史文件中未读过的行到历史列表
    • -p: 展开历史参数成多行,但不存在历史列表中
    • -s: 展开历史参数成一行,附加在历史列表后

命令历史相关环境变量

  • HISTSIZE:命令历史记录的条数

  • HISTFILE:指定历史文件,默认为~/.bash_history

  • HISTFILESIZE:命令历史文件记录历史的条数

  • HISTTIMEFORMAT = "%F %T":显示时间

  • HISTIGNORE = "str1:str2*...":忽略str1命令,str2开头的历史

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

    环境变量:HISTCONTROL

    • ignoredups:默认,忽略重复的命令,连续且相同为“重复”
    • ignorespace:忽略所有以空白开头的命令
    • ignoreboth:相当于ignoredupsignorespace的组合
    • erasedups:删除重复命令
  • export 变量名 = “值”

  • 存放在/etc/profile~/.bash_profile


文章作者: 南航古惑仔
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 南航古惑仔 !
  目录