导读 | 如果你登录过 & nbsp;Linux https://www.linuxprobe.com/ 系统,并敲过一些命令,那你应该知道,bash history 会记录你输入的所有命令。这个操作其实是有一定风险的。 |
我个人经常使用 Linux, 所以我想着研究一番, 看看如何隐藏 bash history. 下面就是我整理的一些方法, 仅供大家参考:
. exit normally - history 记录正常写入
. kill- 服务器端运行 -kill bash 进程 ID 后就不会再记录 history 了. 我检查过是否需要加 - 9 参数, 不过不用, 只需要一个基本的 kill 命令, 就可以杀掉进程并阻止它写入文件.
.kill - 客户端运行 - kill SSH 进程 ID, 即时加了 - 9 参数还是会有历史记录.
. set +o history- 不会将任何当前会话写入日志. 可以在会话期间任何时间运行, 并隐藏所有命令.
. set -o history- 重启日志记录, 但是会记录 set 命令, 所以会发生一些明显的变化.
. unset HISTFILE - 清除记录历史文件位置的变量, 这样就不会存储任何东西
. history -c- 彻底清除历史. 这条命令作用非常明显, 因为所有的历史命令都没了.
. export HISTIGNORE="ls*:cat*"- 这条命令是不记录引号中以冒号为分隔符的命令. 这条命令可以使用 shell 模式, 有点类似正则, 但不尽相同
. export HISTFILESIZE=10- 设置历史记录数量为 10. 如果你已经完成了想要隐藏的操作, 但又想保留其他的命令, 请重新计算, 将记录数的大小设置为小于总数并继续执行. 这样, 所有之前的命令就会不可见, 看起来会有一些可疑, 但是因为历史记录中还是有内容, 所以人们可能不会注意到.
. editing the.bash_history file- 如果你在会话期间编辑这个文件, 编辑的内容将会出现在会话的命令之前, 这样你其实可以在 history 中添加一些你实际并没有运行过的命令, 所以这也不失为一个好办法.
. using multiple sessions- 一个会话终止时才会写入 bash history. 那我们可以使用两个会话, 第一个会话终止会写入 history, 然后第二个会话的内容会在第一个会话终止时才开始写入 history
. putting a space before a command(命令前面加一个空格) - 根据配置, 在命令前加一个空格, 就会不进行记录. 如果你已经输入了你不想记录的命令, 那么这个功能就没什么用, 但如果想让几条好不相关的命令看似一条的话, 使用这个还是不错的. 在使用之前请先进行测试, 因为根据发行版和用户配置不同, 情况会有所不同.
. history -r- 这条命令会重新读取 history 文件, 能够将历史记录重置为你登录时的状态. 这条命令似乎非常有用, 尤其是你可以编辑 history 文件, 添加命令时, 然后关掉 shell. 这会写入经过你修改的 history, 不留任何痕迹.
上面这些命令, 好像 "set +o history" 是最好用的也是最通用的方法, 因为它会隐藏当前会话的所有命令, 但是会保留之前的命令.
不过根据场景不同, 其他的命令也是非常有效的.
在你使用这些命令之前, 一定要先自己测试一遍. 当你已经登录了一个系统, 而且意识到需要隐藏某些命令时, 不要慌张, history 只会在会话结束时写入, 所以只要会话还没有结束, 你就可以停下来思考, 怎么去隐藏命令, 希望本文的内容能够帮到你.
本文转自: https://www.linuxprobe.com/linux-bash.html
来源: http://www.bubuko.com/infodetail-2868014.html