.bashrc vs .bash_profile

    在使用LINUX、UNIX或者MAC OS系统,当我们需要配置shells的PATH和增加新的环境变量的时候,通常需要修改.bashrc或者.bash_profile。但问题是我们使用哪个文件呢,到底shells会加载哪个文件呢?

    简单来说,当登录shell启动时,就会加载.bash_profile来配置变量,而打开其他交互式非登录shells都会加载.bashrc文件进行配置。

    登录shell,也就是需要输入用户名和密码的shell,使用.bash_profile文件来配置,例如远程登录ssh;但是当你已经登录到机器上,并且打开一个终端时,就会加载.bashrc文件。

    为什么需要有2个文件,而不是一个?比如当在登录机器时,想在终端输出当前机器内存使用情况、用户都有哪些;而在登录到系统之后,再启动交互式终端,不需要每次都显示这些信息,那么就可以分别在这两个文件中编辑需要显示的信息。

    MAC OS系统有些特别,在登录系统之后启动终端,默认依然启动的是登录终端,所以加载的是.bash_profile文件。这时如果依然想与LINUX系统统一的话,可以自行创建.bashrc文件,然后在.bash_profile文件中添加如下命令:

if [ -f ~/.bashrc ]; then
   source ~/.bashrc
fi
    在每次启动终端时,.bash_profile文件都加载.bashrc文件并进行配置,这样就把两个终端配置文件统一起来,不论运行那种类型的终端,均可以显示相同的内容。之后可以根据需要自行在.bashrc文件当中添加环境变量、设置PATH。

你可能感兴趣的:(linux常用工具)