运维笔记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_historyHISTFILESIZE:命令历史文件记录历史的条数HISTTIMEFORMAT = "%F %T":显示时间HISTIGNORE = "str1:str2*...":忽略str1命令,str2开头的历史控制命令历史的记录方式:
环境变量:
HISTCONTROLignoredups:默认,忽略重复的命令,连续且相同为“重复”ignorespace:忽略所有以空白开头的命令ignoreboth:相当于ignoredups,ignorespace的组合erasedups:删除重复命令
export变量名 = “值”存放在
/etc/profile或~/.bash_profile