history命令–显示与操作历史命令
history命令用于显示用户以前执行过的历史命令,并且能对历史命令进行追加和删除等操作。
常用参数:
参数
描述
-a
将当前shell会话的历史命令追加到命令历史文件中,命令历史文件是保存历史命令的配置文件
-c
清空当前历史命令列表
-d
删除历史命令列表中指定序号的命令
-n
从命令历史文件中读取本次Shell会话开始时没有读取的历史命令
-r
读取命令历史文件到当前的Shell历史命令内存缓冲区
-s
将指定的命令作为单独的条目加入命令历史内存缓冲区。在执行添加之前先删除命令历史内存缓冲区中最后一条命令
-w
把当前的shell历史命令内存缓冲区的内容写入命令历史文件
参考实例 显示最近的命令:
history 10
history | more
history | less
history | head
history | tail将本次登录的命令写入历史文件中:
history -w将命令历史文件中的内容读入到目前shell的history记忆中 :
history -r 将当前Shell会话的历史命令追加到命令历史文件中:
history -a 清空当前历史命令列表:
history -c 重复上一个命令:
!!使用它的编号重复执行先前的命令:
!123运行匹配给定字符串的命令:
docker ps
docker images
!? ps # 这时用!docker则会执行docker images这一条,而使用!? ps, 则可以匹配到docker ps这一条历史命令替换字符串并运行先前执行的命令:
!!:s|string1|string2| # 用string2替换上一条命令中的string1
^string1^string2 # 作用同上
!827:s|string1|string2| # 用string2替换第827条命令中的string1不记录操作记录
[space]set +o history备注:[space] 表示空格。并且由于空格的缘故,该命令本身也不会被记录。 如果在命令前加空格仍会记录到history中,则需要修改bashrc的内容
echo HISTCONTROL=ignorespace >> ~/.bashrc
source ~/.bashrc上面的命令会临时禁用历史功能,这意味着在这命令之后你执行的所有操作都不会记录到历史中,然而这个命令之前的所有东西都会原样记录在历史列表中。
要重新开启历史功能,执行下面的命令:
[Space]set -o history它将环境恢复原状,也就是你完成了你的工作,执行上述命令之后的命令都会出现在历史中。
清除linux操作记录
set +o history # 开启不记录操作信息
history # 查看set +o history命令的编号
history -d $NUMBER # 删除set +o history命令的记录
# 清除下面三个记录之后无法通过安全日志、last命令以及重新登录后的last login来查看上一次登录信息
echo > /var/log/secure
echo > /var/log/wtmp
echo > /var/log/lastlog
最后更新于