history命令使用方法详解

history是一条非常实用的shell命令,可以显示出之前在shell中运行的命令,配合last显示之前登录的用户,就可以追溯是哪个用户执行了某些命令。以下详细说明history使用中常见的命令或技巧,在实际系统管理中,应用得当,可以让工作事半功倍。

使用HISTTIMEFORMAT在历史中显示TIMESTAMP

默认情况下,history并不记录命令的执行时间,分析起来很困难。

clip_image002

 

# 这时候可以配置HISTTIMEFORMAT环境变量,给history记录添加上时间戳

export HISTTIMEFORMAT="%F %T "

clip_image004

把上面的export命令加入到~/.bashrc中即可在登录后自动开启history时间戳了。

其实HISTTIMEFORMAT的格式就是 strftime函数的格式,比如上面的"%F %T "%F表示显示出Y-M-D格式的日期,%T表示显示出H-M-S这样格式的时间。更多的格式,可以参考 man strftime

Ctrl + R搜索历史命令

本人最常使用的history特性,当你执行了一串相当长的命令之后,你只要用关键字搜索一下历史命令然后重新执行这条命令而不需要将整条命令再输一遍。方法是:按下Ctrl+R然后输入关键字。在以下示例中,我搜索”cat”,则显示以前的命令中含有”cat”的命令“cat anaconda-ks.cfg”。按回车,就可以重新执行这条命令了,而按左箭头键或右箭头键则可以直接修改,改完之后按回车执行,非常方便!

【注:在命令行提示符下按下Ctrl+R,终端将显示如下提示reverse-i-search

clip_image006

HISTSIZE控制历史命令的总数

# 内存中的history条数,退出登陆之后会写到~/.bash_history文件里

export HISTSIZE=450

# 文件中存储的最大history条数,文件:~/.bash_history
export HISTFILESIZE=450

# 如果你想禁用history,不让shell记录命令,把HISTSIZE设为0即可

export HISTSIZE=0

使用HISTFILE改变历史文件名

默认情况下,命令历史被储存在.bash_history文件中,把下面的一行添加到.bash_profile文件中,重新登录shell,则新文件将取代.bash_history文件用来储存历史命令。你可以使用这个命令来追踪不同终端中执行的命令,届时只需要将不同终端中所执行的命令保存在不同的历史文件中即可。

[root@rocket ~]# vim ./.bashrc

HISTFILE=/root/my_history

重新登陆可以看到新history file已经生效

clip_image008

使用HISTCONTROL来消除命令历史中的连续重复条目

export HISTCONTROL=ignoredups

使用HISTCONTROL在整个历史中去除重复命令

export HISTCONTROL=erasedups

使用c选项清除所有的历史命令

#清除之前的历史命令

history -c

HISTIGNOREhistory存储时忽略某些指令

有时你不想在记录里看到诸如“pwd”ls”之类的基本指令,可以用HISTIGNORE忽略这些指令。

注意在HISTIGNORE中添加“ls”,只忽略“ls”不忽略“ls –l”。一定要准确的写出要忽略的指令。

export HISTIGNORE=”pwd:ls:history”

 

 

转载于:https://www.cnblogs.com/linuxbug/p/4885098.html

历史命令是Linux/Unix系统中的一个常用命令,用于查看当前用户在命令行中执行过的命令历史记录。通过使用history命令,您可以方便地查看、搜索、编辑和执行之前执行过的命令,从而提高操作的便利性和效率。 使用history命令可以显示当前会话中执行过的命令历史记录。默认情况下,它会显示最近执行的命令列表,每个命令前面都有一个数字作为索引。您可以使用这些索引来重新执行以前的命令。例如,要重新执行索引为10的命令,可以使用!10命令。 您可以通过history命令的选项来扩展其功能。例如,使用history -c命令可以清空当前会话的命令历史记录。这在某些情况下可能很有用,比如当您希望清除敏感信息或者只想保留当前会话的命令历史记录。 另一个有用的选项是history | grep命令,它可以在历史命令记录中搜索特定的命令。例如,如果您想找到所有包含"ls"的历史命令,可以使用history | grep ls命令。这对于查找特定命令使用情况或者回顾之前执行过的类似命令非常有帮助。 您还可以使用HISTSIZE环境变量来设置历史命令记录的长度。默认情况下,命令历史记录的长度是1000个命令。通过设置HISTSIZE环境变量,您可以增加或减少历史命令记录的长度。例如,要将历史命令记录的长度设置为2000,可以在命令行中输入export HISTSIZE=2000。 综上所述,history命令是Linux/Unix系统中一个非常有用的命令,它允许用户查看、搜索、编辑和执行之前执行过的命令历史记录。通过使用history命令的不同选项,您可以进一步扩展其功能,提高命令行操作的效率和便利性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值