CentOS 7.6 history命令用法及解决history -c不能彻底删除历史命令的问题
history命令可以用来查看历史命令history -c命令可以用来清除所有的历史命令history命令history命令:用于显示历史记录和执行过的指令命令。history命令读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。该命令单独使用时,仅显示历史命令,在命令行中,可以使用符号!执行指定序号的历史命令。例如,要执行第2个历史命令,则输入!2。history命
概述及原理
history命令用于显示历史记录和执行过的指令命令。history命令是被保存在内存中的,当退出或者登录shell时,会自动保存到~/.bash_history文件中,登陆时,又会从 ~/.bash_history自动读取到内存,在内存中,历史命令默认能够存储1000条历史命令,该数量是由环境变量HISTSIZE进行控制,HISTSIZE命令存在于/etc/profile中。
用法
- -c: 将目前shell中的所有history命令消除。对命令历史文件没有影响
- -w :将本次登录的命令写入命令历史文件中, 默认写入~/.bash_history,因为本次的命令在用户注销成功后才会写入文件中。
- -r : 将命令历史文件中的内容读入到目前shell的history记忆中
- ! number 执行第几条命令,如!2就是执行history结果的第二条命令
- !!:执行上一条命令
- !后跟一条命令的部分字符,如:!c 执行最近一条以c开头的命令
可以看到最近执行的命令可以使用history打印出来,但是并没有保存在.bash_history中。
history -c清除历史命令的两种情况
如果我们希望在离开系统的时候别人看不到我刚才做了哪些操作的话,我们就要对我们的历史命令进行擦除的操作,需要使用history -c命令,
1、注销退出登陆
上面说过,历史命令在我们登陆的时候是存在内存当中,等我们离开了才写进文件中,所以下次登录系统时家目录必然会产生.bash_history文件,如果离开的时候清除内存中的命令就不会产生.bash_history文件了。我们都知道,用户登出系统的时候会执行.bash_logout文件,所以我们可以把history -c命令写进~/.bash_logout中就可以了
2、关机重启系统
但是~/.bash_logout这个文件只在用户登出系统时生效,如果是关机重启这样的操作是不执行的,若要重启之后还是看不到之前的历史命令的话必须也要删除 ~/.bash_history这个文件,我们可以在用户登入系统的时候删除它,那么对于用户来说是不感知的,那么就把它写在 ~/.bash_profile里,用户登陆系统的时候就删除了 ~/.bash_history文件,内存也就调不到历史命令了
重启系统可以ls -a查看到没有出现.bash_history文件
注意:这里以root用户为例演示了清除命令的操作,方法当然不止这一种,具体怎么配置请根据实际需求。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)