【Bash百宝箱】shell历史命令(history)

在shell命令行执行过的命令默认会保存到历史命令中,这些历史命令能够经过内建命令history和fc进行查看,下面对history命令作个介绍。web

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

history命令有以上几种用法,若是没有任何选项,就列出历史命令和对应的行号,前面带有符号“*”的行是被修改过,参数n表示只列出最后n行。历史命令默认保存在shell变量HISTFILE指定的文件中,通常为用户主目录下的隐藏文件“.bash_history”,还能够设置历史命令保存到自定义文件filename中。其它选项的含义以下。shell

“-c”:清除历史命令。
“-d offet”:删除偏移量为offset处的历史命令行。
“-a”:把当前bash会话开始后的命令添加到历史命令文件。
“-n”:把历史中还没有读取的行附加到当前的历史中,这些行是当前bash会话开始后附加到历史文件中去的。
“-r”:读取历史文件,把其内容附加到当前的历史中。
“-w”:把当前的历史覆盖写入到历史文件中。
“-p”:对参数进行历史扩展并在标准输出上显示其结果,而不是把结果存放在历史中。
“-s”:把参数做为单个条目附加到历史中。bash

对于历史命令有许多扩展,下面总结常见的几个。svg

“!!”:执行最后一个历史命令。
“!n”:执行行号为n的历史命令,能够是负数,表示从最大行号开始倒数。
“!string”:执行最近的开始为string的命令。spa