linux查询历史记录命令history的用法介绍
一、什么是history在bash功能中,它能记忆使用过的命令,这个功能最大的好处就是可以查询曾经做过的举动!
从而可以知道你的运行步骤,那么就可以追踪你曾下达过的命令,以作为除错的工具!
二、History的保存
那么命令记录在哪里呢?在家目录内的 .bash_history 里! 不过,需要留意的是,~/.bash_history 记录的是前一次登陆以前所运行过的命令,而至于这一次登陆所运行的命令都被缓存在内存中,当你成功的注销系统后,该命令记忆才会记录到 .bash_history 当中!
三、调用历史命令
接下来学习history历史命令的用法。
复制代码代码如下:
history
#history [-c]
#history [-raw] histfiles
选项与参数:
n :数字,意思是要列出最近的 n 条命令行表的意思!
-c:将目前的 shell 中的所有 history 内容全部消除
-a:将目前新增的 history 命令新增入 histfiles 中,若没有加 histfiles ,
则默认写入 ~/.bash_history
-r:将 histfiles 的内容读到目前这个 shell 的 history 记忆中;
-w:将目前的 history 记忆内容写入 histfiles 中!
例1,列出目前内存内的所有 history 历史记录
复制代码代码如下:
#history
# 前面省略
1017man bash
1018ll
1019history
1020history
列出的信息当中,共分两栏,第一栏为该命令在这个 shell 当中的代码, 另一个则是命令本身的内容!至于会显示多少条命令记录,则与 HISTSIZE 有关!
例2,列出目前最近的 3 条数据
复制代码代码如下:
#history 3
1019history
1020history
1021history 3
例3,立刻将目前的数据写入 histfile 当中
复制代码代码如下:
#history -w
# 在默认的情况下,会将历史纪录写入 ~/.bash_history 当中!
#echo $HISTSIZE
1000
四、历史使用的窍门
1、!的使用
⑴!!重复前一个命令
⑵!字符 重复前一个以“字符”开头的命令
⑶!num 按照history命令输出中的序号来重复对应命令
⑷!?abc 重复前一个包含abc的命令
⑸!-n 重复n个命令之前的那个命令
2、按键组合
⑴使用up和down键来上下浏览之前执行的命令
⑵键入ctr+r来在命令历史中搜索命令
复制代码代码如下:
#
(reverse-i-search)`':
(reverse-i-search)`h': cat /etc/shadow
按回车键执行该命令
⑶要重新调用前一个命令中的参数
Esc + .(点击Esc键,然后点击.键)
注意:
History保存在每个用户自己的历史记录中,位于用户的家目录中。
用户登录后,执行命令存放在内存中,只有登录后才能看到。
五、如何保证每次推出登录时情况history
在需要的用户主目录下,编辑~/.bash.logout添加一句history -c保存退出就可以了。 感谢楼主的分享!这篇教程写得非常详细,对于我们这些经常使用Linux命令行的人来说太实用了!
之前我只知道用上下键翻历史命令,今天才知道history还有这么多玩法。特别是那个Ctrl+R反向搜索功能,简直是查找命令的神器啊,之前每次要找之前用过的命令都要翻半天。
另外关于HISTSIZE这个环境变量,我之前也遇到过问题。有次服务器上的历史记录显示很少,后来才发现是环境变量没设置对。楼主的说明很清楚,赞一个!
想补充一点个人经验:
使用!!的时候要小心,之前我在生产服务器上不小心执行了!!,结果把一个重要的操作又执行了一遍,差点出问题。建议大家在使用!n或者!!之前先用history确认一下序号。
还有如果担心历史记录泄露敏感命令(比如包含密码的命令),可以在命令前加空格,这样默认不会被记录到history中。需要修改HISTSIZE环境变量,加上HISTIGNORE="ls*:ps*"这样的配置。
再次感谢楼主的整理,收藏了!希望以后能看到更多这样的Linux基础教程。
頁:
[1]