巧用history命令提高工作效率
软工小法师
2024-04-18 00:05
相信接触过Linux的朋友都知道在Linux中history是一条比较实用的shell命令。它可以显示出之前在shell中运行的命令并配合last显示之前登录的用户就可以追溯是哪个用户执行了某些命令。如果我们把history命令使用得当可以极大提高我们的工作效率。在本文中编程学习网笔者就为大家介绍一些实用的history命令技巧供大家参考参考。
◎通过HISTTIMEFORMAT在历史中显示TIMESTAMP
我们知道在默认的情况下由于history并不记录命令的执行时间,所以如果我们要进行分析则显得比较困难。那么我们有没有什么办法来解决这个问题呢?
其实这时候我们可以通过配置 HISTTIMEFORMAT 环境变量来给history记录添加上时间戳,具体的命令设置如下所示:
● export HISTTIMEFORMAT="%F %T"
接下来我们把上面的 export 命令加入到 ~/.bashrc 中就可以在登录后自动开启history时间戳了。归根结底HISTTIMEFORMAT的格式就是 strftime函数的格式,比如上面的"%F %T",%F表示显示出Y-M-D格式的日期,而%T表示显示出H-M-S这样格式的时间。
◎通过Ctrl+R搜索历史命令
当我们执行了一串相当长的命令之后,其实我们只要用关键字搜索一下历史命令,然后重新执行这条命令而不需要将整条命令再输一遍就可以了。其具体的方法就是按下Ctrl+R然后输入关键字。
下面笔者通过Ctrl+R搜索来”cat”。如下图所示则会显示以前的命令中含有”cat”的命令“cat anaconda-ks.cfg”。此时我们只需按回车就可以重新执行这条命令了,而通过按左箭头键或右箭头键我们则可以直接修改,当修改完后同样我们只需按回车便可以继续执行了。
PS:在命令行提示符下按下Ctrl+R终端将显示提示reverse-i-search
◎通过HISTSIZE控制历史命令的总数
#内存中的history条数,退出登陆之后会写到~/.bash_history文件里
● export HISTSIZE=450
#文件中存储的最大history条数,文件:~/.bash_history
● export HISTFILESIZE=450
#如果我们想禁用history不让shell记录命令,我们可以通过把HISTSIZE设为0就可以了
● exportHISTSIZE=0
◎通过HISTFILE改变历史文件名
在默认的情况下命令历史被储存在.bash_history文件中,我们可以通过把下面的一行命令添加到.bash_profile文件中并重新登录shell,则新文件将取代.bash_history文件用来储存历史命令。另外我们可以通过使用这个命令来追踪不同终端中执行的命令,到时侯我们只需要将不同终端中所执行的命令保存在不同的历史文件中就可以了。
● [root@rocket ~]# vim ./. bashrc
● HISTFILE=/root/my_history
我们只要重新登陆就可以看到新history file已经生效,具体如下图所示:
◎通过HISTCONTROL消除命令历史中的连续重复条目
如果我们要消除命令历史中的连续重复条目,我们可以通过使用HISTCONTROL来进行操作,具体的命令格式语法如下所示:
● export HISTCONTROL=ignoredups
◎通过HISTCONTROL在整个历史中去除重复命令
如果我们要想在整个历史中去除重复命令,我们可以通过使用HISTCONTROL来进行操作,具体的命令格式语法如下所示:
● export HISTCONTROL=erasedups
◎通过c选项清除所有的历史命令
如果我们要想清除之前的历史命令,我们可以通过history命令的C选项来进行清除操作,具体的命令格式语法如下所示:
● history -c
◎通过HISTIGNORE让history存储时忽略某些指令
当我们不想在记录里看到诸如“pwd”,ls”之类的基本指令时,我们可以通过使用HISTIGNORE来忽略这些指令。需要注意的是在HISTIGNORE中添加“ls”时,只忽略“ls”不忽略“ls–l”,我们要切记要准确的写出要忽略的指令。
● export HISTIGNORE=”pwd:ls:history”
以上就是利用history命令提高工作效率的方法介绍。
本次的巧用history命令提高工作效率的讲解到此就暂告一段落,如果以后有什么相关的内容继续进行补充或者修改的话,笔者会在此继续进行相关的内容的补充或者修改的工作,同时也欢迎大家对本次的讲解提出自己的建议和补充。最后笔者希望本次的讲解对大家学习Linux和Linux认证能够起到一定的帮助作用!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341