history命令

更新时间:2021-08-30

当前版本:v1.1

一、命令行历史

命令行历史保存了输入的命令历史,可以用它来重复执行命令。登录 shell 时,会读取命令历史文件(默认为 ~/.bash_history)中记录下的命令;登录进 shell 后,新执行的命令只会记录在缓存中;用户退出 Shell 时命令行历史会从缓存中追加到命令历史文件中。

1.1 语法

history [n]
history -c
history -d offset
history -anrw [filename]
history -p arg [arg ...]
history -s arg [arg ...]

1.1.1 选项

参数选项描述
-c清空历史列表,删除所有条目
-d offset删除 offset 位置的历史条目
-a将新的历史条目 (自当前 bash 会话开始输入的历史命令) 追加到历史文件中(~/.bash_history)
-n将尚未从历史文件中读取的历史条目读入当前历史列表。这些行是当前 bash 会话开始之后,才追加到历史文件中的行
-r读取历史文件的内容,使用它们作为当前历史
-w将当前历史列表写入历史文件,覆盖历史文件的原有内容
-p展开历史参数成多行,但不存在历史列表中
-s展开历史参数成一行,附加在历史列表后
n显示最近的n条历史

1.2 变量

历史命令的变量存放在 /etc/profile~/.bash_profile 文件中。使用 export 变量名=‘值’ 进行定义在文件中

变量描述
HISTSIZE命令历史记录的条数,默认1000条历史命令
HISTFILE指定历史命令文件,默认 ~/.bash_history
HISTFILESIZE命令历史文件记录历史的条数,默认1000条历史命令
HISTTIMEFORMAT="%F %T "显示历史命令时间,默认为空
HISTIGNORE="str1:str2*:… "忽略str1命令,str2开头的历史命令
HISTCONTROL="[ ignoredups | ignorespace | ignoreboth | erasedups]"环境变量 HISTCONTROL 的不同参数可以控制命令历史记录的方式:
<1> ignoredups 默认参数,忽略重复的命令,连续且相同为“重复”
<2> ignorespace 忽略所有以空白开头的命令
<3> ignoreboth 相当于 ignoredups,ignorespace 的组合
<4> erasedups 删除重复命令

1.3 快捷键

快捷键描述
!! 或 !-1 或 CTRL+p重复前一个命令
!$ 或 Esc,. 或 Alt+.调用前一个命令中最后一个参数
CTRL+j执行当前命令
Ctrl + n显示当前历史中的下一条命令,但不执行
!:0执行前一条命令(去除参数)
!n执行history命令输出对应序号n的命令
!-n执行history历史中倒数第n个命令
!string重复前一个以“string”开头的命令
!?string重复前一个包含string的命令
!string:p仅打印命令历史,而不执行
!$:p打印输出 !$ (上一条命令的最后一个参数)的内容
!*:p打印输出 !*(上一条命令的所有参数)的内容
^string删除上一条命令中的第一个string
string1string2将上一条命令中的第一个string1替换为string2
!:gs/string1/string2将上一条命令中所有的string1都替换为 string2
CTRL+r在命令历史中搜索命令
CTRL+g从历史搜索模式退出

1.4 调用参数

参数描述
Command !^利用上一个命令的第一个参数做CMD的参数
Command !$利用上一个命令的最后一个参数做CMD的参数
Command !*利用上一个命令的全部参数做CMD的参数
Command !:n利用上一个命令的第n个参数做CMD的参数
Command !n:^调用第n条命令的第一个参数
Command !n:$调用第n条命令的最后一个参数
Command !n:m调用第n条命令的第m个参数
Command !n:*调用第n条命令的所有参数
Command !String:^从命令历史中搜索以 string 开头的命令,并获取它的第一个参数
Command !String:$从命令历史中搜索以 string 开头的命令,并获取它的最后一个参数
Command !String:n从命令历史中搜索以 string 开头的命令,并获取它的第n个参数
Command !String:*从命令历史中搜索以 string 开头的命令,并获取它的所有参数

1.5 示例

将缓存中的命令历史写入到命令历史文件中

history -w

读取命令历史文件到当前命令历史中

history -r

清除命令历史

history -c
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值