4

区分两者之间的区别,首先要搞清楚login shellno-login shell之间的区别。

login shell

当你通过终端输入用户名和密码,然后进入到terminal,这时候进入的shell环境就叫做是login shell,例如,通过ssh远程进入到主机。

no-login shell

顾名思义就是不需要输入用户名密码而进入的shell环境,例如你已经登陆了你的桌面电脑,这时候在应用管理器中找到termianl图标,然后双击打开终端,也就是通过像gnome,KDE这种桌面环境而进入的终端,这时候你进入的shell环境就是所谓的no-login shell环境。简而言之,就是把你想通过login shell运行的shell命令放入到.bash_profile中,把想通过no-login shell运行的shell命令放入到.bashrc文件中。

例外

有一个例外就是在Mac OS系统中,当你每次运行termianl的时候,系统都会默认的给你运行一个login shell环境,所以你看到在Mac OS系统中~/目录下只有一个.bash_profile文件而没有.bashrc文件,就是这个道理了。

如何同时使用两个文件?

那么如果我在Mac OS系统中也想把一些shell命令放到.bashrc文件中呢?当然不推荐这么做,也没什么意义,那么你可以创建一个.bashrc的文件。然后在.bash_profile文件中写上如下代码:

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

在terminal读取.bash_profile文件后就会load.bashrc文件中的内容。

原文链接


hero
525 声望2 粉丝

A Linux lover.