.bash_logout 的目的是什么?

Her*_*eer 11 bash bashrc

问题“ .bashrc 的目的是什么以及它是如何工作的? ”寻求.bashrc的目的和用途.bashrc。另一个具有相似名称的文件是.bash_logout.

这个文件应该首先存在吗?如果有,这个文件的作用是什么?

And*_*ton 11

来自man bash

当登录 shell 退出时,bash 从文件 ~/.bash_logout 和 /etc/bash.bash_logout 中读取并执行命令(如果文件存在)。


Kus*_*nda 10

.bash_logout文件不必存在。

其内容是通过采购bashbash登录shell退出。例如,该文件可以在从终端会话注销时进行各种形式的清理。

它可用于执行任何 shell 代码,但可用于例如在非 GUI 环境中进行登录时清除屏幕。有些人可能还会发现它对于显式终止从.bash_login或启动的程序很有用.bash_profile(例如,如果fetchmail某个类似的进程作为用户守护程序或在后台启动,则最好在 中终止它.bash_logout)。

csh外壳有一个叫做类似的文件.logout,并在相应的文件zsh调用shell .zlogout。据ksh我所知,shell 没有类似的功能。

另请参阅与切线相关的问题Login Shell 和 Non-Login Shell 的区别?


Ayu*_*yal 7

由于这个问题要求提供.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
Run Code Online (Sandbox Code Playgroud)