.bash_logout 的目的是什么?

.bash_logout 的目的是什么?

问题“.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 个文件用于各种目的:

  1. /etc/profile
  2. ~/.bash_profile
  3. ~/.bash_login
  4. ~/.bashrc
  5. ~/.profile
  6. ~/.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

相关内容