.bashrc和.bash_profile

如果您在命令行上花费大量时间,则很可能需要自定义Shell环境。 这可能意味着创建别名,将新目录添加到 $PATH ,或更改外壳提示的外观。

您可能遇到过一些教程,他们说可以将您的配置放在 .bashrc.bash_profile 或bash shell读取并执行的另一个配置文件。

在本文中,我们将讨论Bash启动文件以及 .bashrc.bash_profile 文件。

交互式登录和非登录Shell#

调用时,Bash从一组启动文件中读取并执行命令。 读取什么文件取决于外壳是作为交互式登录外壳还是非登录外壳调用。

外壳可以是交互式的或非交互式的。

简而言之,交互式外壳程序是读取和写入用户终端的外壳程序,而非交互式外壳程序是与终端不相关的外壳程序,例如执行脚本时。

交互式外壳程序可以是登录外壳程序,也可以是非登录外壳程序。

当用户通过ssh远程登录到终端或在本地登录到终端时,或者使用Bash启动Bash时,都会调用登录shell。 --login 选项。 从登录外壳调用交互式非登录外壳,例如在键入时 bash 在shell提示中或在打开新的Gnome终端选项卡时。

Bash启动文件

当作为交互式登录shell调用时,Bash查找 /etc/profile 文件,如果文件存在,它将运行文件中列出的命令。 然后Bash搜索 ~/.bash_profile~/.bash_login~/.profile 以列出的顺序排列文件,并从找到的第一个可读文件中执行命令。

当Bash作为交互式非登录外壳程序被调用时,它将读取并执行以下命令: ~/.bashrc,如果该文件存在并且可读。

.bashrc和.bash_profile之间的区别#

.bash_profile 当Bash作为交互式登录Shell调用时,读取并执行 .bashrc 为交互式非登录外壳执行。

使用 .bash_profile 运行只能运行一次的命令,例如自定义 $PATH 环境变量。

将每次启动新Shell时应运行的命令放入 .bashrc 文件。 这包括您的别名和函数,自定义提示,历史记录自定义等等。

通常, ~/.bash_profile 包含以下类似于该来源的行 .bashrc 文件。 这意味着每次您登录到终端时,两个文件都被读取并执行。

if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi

大多数Linux发行版都在使用 ~/.profile 代替 ~/.bash_profile。 的 ~/.profile 所有shell读取文件,而 ~/.bash_profile 仅由Bash提供。

如果您的系统上没有任何启动文件,则可以创建它。

结论#

.bash_profile.bashrc 是包含在调用Bash时运行的shell命令的文件。 .bash_profile 在交互式登录shell上读取并执行,而 .bashrc 在非登录外壳上。

查看Bash手册以获取有关Bash启动文件的更多信息。

如果您有任何疑问或反馈,请随时发表评论。

终奌站

Sidebar