“历史”命令如何工作?

在这里_2_学习

试图了解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环境变量设置为其他名称来更改历史记录文件的名称/位置

现在,在显示的示例中,您执行了以下操作:

  1. 以“用户”身份登录,并立即使用切换到root用户su这意味着您仅以“用户”身份运行了一个命令,这就是“用户”的历史记录文件只有一个条目的原因su

  2. 作为root用户,您运行了各种命令,由于它们是由root用户运行的,因此它们都存储在root用户的历史记录文件中。请注意,root的历史记录文件不包含su命令,因为命令是由“ user”而非root运行的。

因此,该$HOME/.bash_history文件存储用户运行的所有命令,而不管它们在哪个目录中运行。但是,由于每个用户都有自己的文件,因此由root用户运行的命令与“ user”运行的命令不会存储在同一文件中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章