Linux命令-history
2014-04-28 18:01
288 查看
命令历史是bash提供的功能之一,记录之前我们执行过的命令(也包括执行失败的命令)。
我们可以通过history命令查看命令历史:
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M02/25/54/wKiom1NeJpXzpHMBAAA9Pbl2ANY056.jpg)
那么,这些历史命令保存在哪里呢?历史命令保存在~/.bash_history文件中:
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M01/25/54/wKioL1NeJnnhmDzRAAAl9HzHrsA420.jpg)
为什么文件是空白的?那是因为执行过的命令暂时保存在一段命名空间为HISTFILE的内存中,当正确的登出bash后,内存中的历史命令就会保存到~/.bash_history中。我们正确logout,再login进来,查看此文件:
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M00/25/54/wKiom1NeJrbi234JAABEQv7pu_E263.jpg)
我们也可以使用history命令手动将暂时保存在内存中的命令历史记录保存到~/.bash_history中:history -w :将当前内存中的history保存并覆盖~/.bash_history。 查看~/.bash_history:
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M02/25/54/wKioL1NeJpfjiW81AABP5yhcylw026.jpg)
查看当前history:
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M00/25/54/wKioL1NeJqWhrpekAAA43mMzfM4463.jpg)
执行history -w,并查看historyfile:
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M02/25/54/wKiom1NeJt7R59ycAABeiIwMeSM503.jpg)
history n:列出最近的n次命令。
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M01/25/54/wKioL1NeJsuDXGG2AACPsCoHkno866.jpg)
history -c:清空当前history列表。
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M00/25/54/wKiom1NeJwrigZg4AAAzSKU5HoY254.jpg)
history -r :读取histfile到内存中。
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M02/25/54/wKioL1NeJumgbX1FAAEFcGqjWyY941.jpg)
1问:命令历史为什么保存在~/.bash_history中?bash中有一个环境变量HISTFILE,此变量保存的是命令历史文件的路径,查看此变量:
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M01/25/54/wKiom1NeJyLzl4dQAAArf9pkBCg603.jpg)
如果我们更改HISTFILE的值,命令历史应该就保存到新的位置了吧!
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M00/25/54/wKioL1NeJweiOG6VAABo46oQeXU585.jpg)
执行history -w,查看/tmp/root.history内容:
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M02/25/54/wKiom1NeJ0HABVoxAAB_r0hHrvM206.jpg)
果然命令历史保存到此文件。2问:当前history可以保存多少条命令历史呢?
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M01/25/54/wKioL1NeJyeiuEjqAAAgBgG6poI396.jpg)
查看HISTSIZE得知,当前history最多保存1000条命令历史。3问:histfile最多保存多少条命令历史呢?
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M00/25/54/wKiom1NeJ1-CVanbAAAi7f_gle8436.jpg)
查看HISTFILESIZE得知,当前histfile最多保存1000条命令历史。4问:
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M02/25/54/wKioL1NeJ0WgjkXRAAA9BO3ZKrw459.jpg)
由上图可以看出,重复执行的命令被bash记录了多次和以空格开始的命令也被记录,如何控制bash的记录方式?HISTCONTROL就是用来控制只记录重复命令1次和忽略以空格开头的命令,它有3个值:ignorespace:忽略空格开头的命令
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M00/25/54/wKioL1NeJ06S75C-AACOhm6a3Zk187.jpg)
可以看出,以空格开头的history命令没有被记录,但是重复执行的命令被重复记录。ignoredups:重复的命令只记录一次
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M00/25/54/wKioL1NeJ1fxDiKbAAC5503DvKE510.jpg)
重复执行的命令不再重复记录,但是以空格开头的命令被记录。ignoreboth:兼有上面两个功能
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M02/25/54/wKiom1NeJ4mSctGjAABZeZZXCyU494.jpg)
重复执行的命令不再重复记录,而且以空格开头的history命令没有被记录。几个常用的快捷命令:!num:history中第num个命令
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M01/25/54/wKioL1NeJ3Pj1o-VAAChb9028GY508.jpg)
!!:上一个命令
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M00/25/54/wKiom1NeJ6WiAbykAADdpja0NwI696.jpg)
!-num:从倒数第num个命令
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M02/25/54/wKiom1NeJ67wMABtAADHDlVZO9A374.jpg)
!string:最近一次以string开始的命令
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M02/25/54/wKioL1NeJ5DhN8eQAADbDR5Chgs481.jpg)
本文出自 “大灰狼” 博客,请务必保留此出处http://huifei1314.blog.51cto.com/4681402/1404135
我们可以通过history命令查看命令历史:
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M02/25/54/wKiom1NeJpXzpHMBAAA9Pbl2ANY056.jpg)
那么,这些历史命令保存在哪里呢?历史命令保存在~/.bash_history文件中:
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M01/25/54/wKioL1NeJnnhmDzRAAAl9HzHrsA420.jpg)
为什么文件是空白的?那是因为执行过的命令暂时保存在一段命名空间为HISTFILE的内存中,当正确的登出bash后,内存中的历史命令就会保存到~/.bash_history中。我们正确logout,再login进来,查看此文件:
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M00/25/54/wKiom1NeJrbi234JAABEQv7pu_E263.jpg)
我们也可以使用history命令手动将暂时保存在内存中的命令历史记录保存到~/.bash_history中:history -w :将当前内存中的history保存并覆盖~/.bash_history。 查看~/.bash_history:
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M02/25/54/wKioL1NeJpfjiW81AABP5yhcylw026.jpg)
查看当前history:
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M00/25/54/wKioL1NeJqWhrpekAAA43mMzfM4463.jpg)
执行history -w,并查看historyfile:
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M02/25/54/wKiom1NeJt7R59ycAABeiIwMeSM503.jpg)
history n:列出最近的n次命令。
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M01/25/54/wKioL1NeJsuDXGG2AACPsCoHkno866.jpg)
history -c:清空当前history列表。
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M00/25/54/wKiom1NeJwrigZg4AAAzSKU5HoY254.jpg)
history -r :读取histfile到内存中。
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M02/25/54/wKioL1NeJumgbX1FAAEFcGqjWyY941.jpg)
1问:命令历史为什么保存在~/.bash_history中?bash中有一个环境变量HISTFILE,此变量保存的是命令历史文件的路径,查看此变量:
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M01/25/54/wKiom1NeJyLzl4dQAAArf9pkBCg603.jpg)
如果我们更改HISTFILE的值,命令历史应该就保存到新的位置了吧!
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M00/25/54/wKioL1NeJweiOG6VAABo46oQeXU585.jpg)
执行history -w,查看/tmp/root.history内容:
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M02/25/54/wKiom1NeJ0HABVoxAAB_r0hHrvM206.jpg)
果然命令历史保存到此文件。2问:当前history可以保存多少条命令历史呢?
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M01/25/54/wKioL1NeJyeiuEjqAAAgBgG6poI396.jpg)
查看HISTSIZE得知,当前history最多保存1000条命令历史。3问:histfile最多保存多少条命令历史呢?
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M00/25/54/wKiom1NeJ1-CVanbAAAi7f_gle8436.jpg)
查看HISTFILESIZE得知,当前histfile最多保存1000条命令历史。4问:
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M02/25/54/wKioL1NeJ0WgjkXRAAA9BO3ZKrw459.jpg)
由上图可以看出,重复执行的命令被bash记录了多次和以空格开始的命令也被记录,如何控制bash的记录方式?HISTCONTROL就是用来控制只记录重复命令1次和忽略以空格开头的命令,它有3个值:ignorespace:忽略空格开头的命令
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M00/25/54/wKioL1NeJ06S75C-AACOhm6a3Zk187.jpg)
可以看出,以空格开头的history命令没有被记录,但是重复执行的命令被重复记录。ignoredups:重复的命令只记录一次
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M00/25/54/wKioL1NeJ1fxDiKbAAC5503DvKE510.jpg)
重复执行的命令不再重复记录,但是以空格开头的命令被记录。ignoreboth:兼有上面两个功能
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M02/25/54/wKiom1NeJ4mSctGjAABZeZZXCyU494.jpg)
重复执行的命令不再重复记录,而且以空格开头的history命令没有被记录。几个常用的快捷命令:!num:history中第num个命令
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M01/25/54/wKioL1NeJ3Pj1o-VAAChb9028GY508.jpg)
!!:上一个命令
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M00/25/54/wKiom1NeJ6WiAbykAADdpja0NwI696.jpg)
!-num:从倒数第num个命令
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M02/25/54/wKiom1NeJ67wMABtAADHDlVZO9A374.jpg)
!string:最近一次以string开始的命令
![](http://blog.51cto.com/e/u/themes/default/images/spacer.gif)
![](http://s3.51cto.com/wyfs02/M02/25/54/wKioL1NeJ5DhN8eQAADbDR5Chgs481.jpg)
本文出自 “大灰狼” 博客,请务必保留此出处http://huifei1314.blog.51cto.com/4681402/1404135
相关文章推荐
- 如何让linux的history命令显示时间记录
- 用日志记录Linux用户执行的每一条命令(history)
- 如何让linux的history命令显示时间记录
- linux 的history命令
- history命令_Linux history 命令用法详解:用于显示历史命令
- Linux history命令
- linux history命令
- Linux系统下history命令的记录如何删除
- Linux命令常用之history
- 新手学Linux命令之history
- Linux下history命令用法
- Linux下查看用户登陆后的操作记录及history命令显示时间
- Linux:history 命令的15个用法
- linux在history上加上命令执行时间,用户和IP源等
- Linux下history命令用法
- Linux中history历史命令使用方法详解
- Linux 重启配置, 让服务自启动, 以及如何让history命令 显示用户名和时间
- linux下history命令显示历史指令记录的使用方法
- Linux 利用 PROMPT_COMMAND 实现历史命令history审计功能
- linux history命令