您的位置:首页 > 运维架构 > Linux

Linux命令-history

2014-04-28 18:01 288 查看
命令历史是bash提供的功能之一,记录之前我们执行过的命令(也包括执行失败的命令)。
我们可以通过history命令查看命令历史:



那么,这些历史命令保存在哪里呢?历史命令保存在~/.bash_history文件中:



为什么文件是空白的?那是因为执行过的命令暂时保存在一段命名空间为HISTFILE的内存中,当正确的登出bash后,内存中的历史命令就会保存到~/.bash_history中。我们正确logout,再login进来,查看此文件:



我们也可以使用history命令手动将暂时保存在内存中的命令历史记录保存到~/.bash_history中:history -w :将当前内存中的history保存并覆盖~/.bash_history。 查看~/.bash_history:



查看当前history:



执行history -w,并查看historyfile:



history n:列出最近的n次命令。



history -c:清空当前history列表。



history -r :读取histfile到内存中。



1问:命令历史为什么保存在~/.bash_history中?bash中有一个环境变量HISTFILE,此变量保存的是命令历史文件的路径,查看此变量:



如果我们更改HISTFILE的值,命令历史应该就保存到新的位置了吧!



执行history -w,查看/tmp/root.history内容:



果然命令历史保存到此文件。2问:当前history可以保存多少条命令历史呢?



查看HISTSIZE得知,当前history最多保存1000条命令历史。3问:histfile最多保存多少条命令历史呢?



查看HISTFILESIZE得知,当前histfile最多保存1000条命令历史。4问:



由上图可以看出,重复执行的命令被bash记录了多次和以空格开始的命令也被记录,如何控制bash的记录方式?HISTCONTROL就是用来控制只记录重复命令1次和忽略以空格开头的命令,它有3个值:ignorespace:忽略空格开头的命令



可以看出,以空格开头的history命令没有被记录,但是重复执行的命令被重复记录。ignoredups:重复的命令只记录一次



重复执行的命令不再重复记录,但是以空格开头的命令被记录。ignoreboth:兼有上面两个功能



重复执行的命令不再重复记录,而且以空格开头的history命令没有被记录。几个常用的快捷命令:!num:history中第num个命令



!!:上一个命令



!-num:从倒数第num个命令



!string:最近一次以string开始的命令





本文出自 “大灰狼” 博客,请务必保留此出处http://huifei1314.blog.51cto.com/4681402/1404135
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: