history命令主要用于显示历史指令记录内容和曾经执行过的指令 。经常使用Linux命令会有助于提升你的工作效率。
当一台服务器有多人管理时,可能会出现一些误操作或者重复操作,出现问题的时侯要查询什么时间执行什么命令,由于Linux默认的history记录仅保存了命令的内容,没有具体的时间,因此,我们有必要对history历史命令的记录功能进行优化,具体分为设置保存历史命令history的文件大小,保存历史命令history的条数,保存每条历史命令history的执行时间,方法如下:
[fcbu.com@localhost ~]# vi /etc/bashrc
#未尾添加如下信息
# 设置保存历史命令的文件大小
export HISTFILESIZE=500000000
# 保存历史命令条数
export HISTSIZE=1000000
# 实时记录历史命令,默认只有在用户退出之后才会统一记录,很容易造成多个用户间的相互覆盖。
export PROMPT_COMMAND=”history -a”
# 记录每条历史命令的执行时间
export HISTTIMEFORMAT=”%Y/%m/%d %H:%M:%S ”
使更改立即生效
# source /etc/bashrc
linux历史命令使用技巧
列出所有的历史记录:
[fcbu.com@localhost ~]# history
只列出最近10条记录:
[fcbu.com@localhost ~]# history 10 (注,history和10中间有空格)
使用命令记录号码执行命令,执行历史清单中的第99条命令
[fcbu.com@localhost ~]#!99 (!和99中间没有空格)
重复执行上一个命令
[fcbu.com@localhost ~]#!!
执行最后一次以rpm开头的命令(!? ?代表的是字符串,这个String可以随便输,Shell会从最后一条历史命令向前搜索,最先匹配的一条命令将会得到执行。)
[fcbu.com@localhost ~]#!rpm
逐屏列出所有的历史记录:
[fcbu.com@localhost ~]# history | more
立即清空history当前所有历史命令的记录
[fcbu.com@localhost ~]#history -c
通过指定关键字来执行以前的命令
在下面的例子,输入 !ps 并回车,将执行以 ps 打头的命令
history命令的用途确实很大!但需要小心安全的问题!尤其是 root 的历史纪录档案,这是黑客们的最爱!因为不小心的 root 会将很多的重要资料在执行的过程中会被纪录在 ~/.bash_history 当中,如果这个档案被解析的话,后果不堪设想!
使用 HISTFILE 更改历史文件名称
默认情况下,命令历史存储在 ~/.bash_history 文件中。添加下列内容到 .bash_profile 文件并重新登录 bash shell,将使用 .commandline_warrior 来存储命令历史:
[fcbu.com@localhost ~]# vi ~/.bash_profile
HISTFILE=/root/.commandline_log
使用 -c 选项清除所有的命令历史,如果你想清除所有的命令历史,可以执行:
[fcbu.com@localhost ~]# history -c