我有一个可执行的 bash 脚本 (.bash_history_cleaner) 可以清理我的 bash 历史记录
#!/bin/bash
cat /dev/null > ~/.bash_history && history -c && exit
我想在系统关闭或重新启动时执行这个脚本,并按照这个答案使用 systemd和服务名称作为bash_history_cleaner.service
并在 systemctl 中启用它。该服务已启动并运行,
[Unit]
Description=Bash History Cleaner
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/true
ExecStop=/home/eka/Scripts/.bash_history_cleaner
[Install]
WantedBy=multi-user.target
它的预期行为应该是在关闭或重新启动时清除我的 bash 历史记录。但它不起作用,我多次关闭并重新启动系统,但脚本没有执行。我们如何在使用 systemd 关闭之前执行 bash 脚本?
为什么不利用 Linux 系统和它的
/tmp
目录将你的存储.bash_history
在一个更不稳定的地方呢?要更改
.bash_history
文件的位置,您需要设置HISTFILE
变量。要在每次重新启动时删除文件,请将文件放在/tmp/
目录中。您可以将如下内容添加到
~/.bashrc
文件中,以便这些设置保持不变:您可以通过检查创建的历史文件的文件权限来确认其他用户无法读取您的历史记录:
这将导致您的用户的历史记录在重新启动时被删除,但不会影响其他人。你可以设置这个系统级别的配置文件,
/etc/bash.bashrc
如果你真的想要的话。您甚至可以放入/tmp
RAM以确保它被清除。