问题“.bashrc 的用途是什么以及它如何工作?”寻求目的和用途.bashrc
。另一个具有相似名称的文件是.bash_logout
。
这个文件首先应该存在吗?如果是的话,这个文件的作用是什么?
答案1
该.bash_logout
文件不必存在。
其内容是在登录 shell 终止bash
时获取的bash
。例如,该文件可以在从终端会话注销时执行各种形式的清理。
您可以使用它来运行任何 shell 代码,例如在注销期间在非 GUI 环境中清除屏幕。此外,一些用户可能会发现它可以方便地显式终止从.bash_login
或启动的进程.bash_profile
。例如,如果您启动了一个用户守护程序或后台进程(如 )fetchmail
,您可以在 中方便地终止它.bash_logout
。
shellcsh
有一个类似的文件,称为.logout
,并且 shell 的相应文件zsh
称为.zlogout
。据我所知, shellksh
没有类似的功能。
另请参阅切线相关的问题登录 Shell 和非登录 Shell 之间的区别?
答案2
从man bash
:
当登录 shell 退出时,bash 会从文件 ~/.bash_logout 和 /etc/bash.bash_logout 中读取并执行命令(如果这些文件存在)。
答案3
由于这个问题要求提供.bash_logout
文件的详细信息,因此最好列出各种类似的文件。我们通常有这 6 个文件用于各种目的:
/etc/profile
~/.bash_profile
~/.bash_login
~/.bashrc
~/.profile
~/.bash_logout
在某些情况下,您可能还会遇到.bash_history
文件,它存储用户已执行的命令。
假设您了解.bashrc
文件.bash_login
,让我们重点关注这些文件的执行顺序,然后我们将了解.bash_logout
文件的用途。
首先,当用户登录时,如果文件可用,则无论文件.bash_profile
是否存在,都会执行。.bash_login
.profile
如果该文件不可用,则首先.bash_login
执行该文件,如果该文件也不可用,.profile
则将执行该文件。
请注意,.bash_profile
当用户登录时,会读取文件并执行该文件中的任何命令,但当用户启动新 shell 时不会读取该文件。如果用户启动一个新的 shell,.bashrc
则会读取文件,对此您非常了解。
来到该.bash_logout
文件,从名称就可以清楚地看出,该文件是在用户注销时执行的。人们可能会同意,bash 的主要目的是提供一个使用户工作更轻松的环境。所以这个文件有助于创建一个环境,可以帮助在用户注销时执行一些命令。可能有很多实例。为了便于说明,我们假设管理员希望在用户注销时终止该用户启动的所有进程。或者,用户可能想要清除该.mysql_history
文件。他们可能想要在注销时复制一些文件或进行备份。所以你看,可能有很多例子。
假设用户希望/etc
在每次注销时制作目录的备份文件。因此他们可能会打开.bash_logout
文件并键入以下命令:
tar -cvjf /etc ~/path/to/destination