清单 2. 示例 ~/.bash_profile 文件
echo "Executing $HOME/.bash_profile"
echo '(Interactive, login shell)'
PS1='u @ h # $ '
export PS1
PAGER=/usr/bin/less
export PAGER
. .aliases
接下来,让我们看看当您从提示符处启动一个新的 Shell 时发生了什么。这个新的 Shell 是交互的,但它不是登录 Shell。根据规则,~/.bashrc 是唯一等待运行的文件。
strike @ blackcat 1 $ bash
Executing /Users/strike/.bashrc
(Interactive shell)
blackcat:~ strike$
并且事实上,~/.bashrc 是唯一需要执行的文件。其证据就位于提示符中,底部的提示符是缺省的 Bash 提示符,而不是在 ~/.bash_profile 中定义的提示符。
要测试注销脚本,可以输入 exit(您不能在非登录 Shell 中输入 logout)。您应该看到:
blackcat:~ strike$ exit
exit
Executing $HOME/.bash_logout
(Interactive, login shell)
strike @ blackcat 2 $
当一个交互的登录 Shell 终止的时候,它将执行 ~/.bash_logout。您可以使用这一特性以删除临时文件、复制文件作为一种简单备份方法、或者甚至启动 rsync 以便传播当前会话中所做的任何更改。
清单 3 显示了一个示例 ~/.bashrc 文件。这个文件是用于非交互的 Bash Shell 实例的初始化文件。
清单 3. 示例 ~/.bashrc 文件
echo "Executing $HOME/.bashrc"
echo "(Interactive shell)"
PATH="/usr/local/bin:$PATH"
export PATH
下面是另一个实验:当您运行 SSH 时,会得到哪一种 Shell 呢?让我们试试两种变体。(您可以简单地使用 SSH 以返回到您的本地计算机,这就好像您从远程计算机上运行 SSH 一样。)首先,使用 SSH 登录到远程计算机:
标签: