1、注意:
命令历史的记录并不是内核拥有的功能,而是bash的功能
2、history有三个环境变量
echo $HISTSIZE 命令历史记录的条数,默认是1000
echo $HISTFILE 每一个用户都有独立的命令历史,root用户的命令文件在/root/.bash_history 而普通用户的命令在各自的家目录下一个叫~/.bash_history文件中
echo $HISTFILESIZE 命令历史文件记录历史的条数
3、删除命令历史中的第500条
history -d 500
4、清空整个命令历史记录
history -c
5、查看最近的10条命令历史记录
history 10
6、重新调用命令历史中的第22条命令
!22 使用感叹后后面跟你想要重新执行的命令历史条数
7、执行上一条指令
!! 两个叹号
8、引用上一个命令的最后一个参数
当执行完命令之后ls -l /etc/fstab
我们可以使用
ls -l !$ 使用!$来调用上一条最后一个参数,也可以先esc然后在按. (键盘的>.)
9、控制命令历史的记录方式
假设你入侵了某一台Linux,不想留下历史命令记录,则可以修改HISTCONTROL的环境变量
HISTCONTROL有三个环境变量,分别是
ignoredups 忽略重复的命令,这里的重复指的是连续多次执行同一条命令,如果中间相隔不同的,还是会记录,默认使用此变量
ignorespace 忽略空白开头的命令
如果使用此模式,可以使用export HISTCONTROL=ignorespace修改环境变量即可,这时通过echo $HISTCONTROL发现变量已经变成了ignorespce
比如在执行cat /etc/passwd命令的时候,先按一下空格,然后在输入cat /etc/passwd,此时通过history查看并没有此条记录
ignoreboth ignoredups 和 ignorespace 的组合