让history显示详细执行时间,及linux历史命令使用技巧

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