试图了解bash_history的功能:
/home/user# ls -a
. .. .bash_history .bash_logout .bashrc .cache .profile pylabs .viminfo .Xauthority
我确实.bash_history
在/home/user
文件夹中看到一个文件。但是,为什么它没有完整的已执行命令的历史记录,如下所示?
/home/user# cat .bash_history
su
/home/user#
但是,该.bash_history
文件/root
夹中的文件中提供了相同的历史记录。
# ls -a
. .. .bash_history .bashrc .cache .profile .ssh .viminfo
/home/user# cd /root/
# cat .bash_history
bash script.sh
ls
cd pylabs/
ls
...
...
ls -a
cat .bash_history
cd /root/
#
问题2:.bash_history
该命令仅在某些特定文件夹中可用,它如何将在不同目录中执行的所有命令存储起来?
/home/user/pylabs# ls -a
. .. backup bkupscript.py mybackup.py __pycache__ solution.py
历史记录是针对每个用户的,而不是全局的。每个用户都有自己的历史记录文件,每个用户的命令都存储在自己的文件中。bash的历史记录文件的默认位置是$HOME/.bash_history
,因此这将是/home/user/.bash_history
用户“ user”和/root/.bash_history
“ root”用户的位置。您可以通过将HISTFILE
环境变量设置为其他名称来更改历史记录文件的名称/位置。
现在,在显示的示例中,您执行了以下操作:
以“用户”身份登录,并立即使用切换到root用户su
。这意味着您仅以“用户”身份运行了一个命令,这就是“用户”的历史记录文件只有一个条目的原因su
。
作为root用户,您运行了各种命令,由于它们是由root用户运行的,因此它们都存储在root用户的历史记录文件中。请注意,root的历史记录文件不包含su
命令,因为该命令是由“ user”而非root运行的。
因此,该$HOME/.bash_history
文件存储用户运行的所有命令,而不管它们在哪个目录中运行。但是,由于每个用户都有自己的文件,因此由root用户运行的命令与“ user”运行的命令不会存储在同一文件中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句