Answers:
.bash_profile文件(以及.profile文件)也已装入登录shell,非登录shell使用.bashrc(无_符号)。.screenrc文件中有一行告诉屏幕启动启动窗口时(不启动特定程序作为窗口应用程序时)要生成的外壳。在我的.screenrc文件中,它是这样的(以及注释):
# shell: Default process started in screen's windows.
# Makes it possible to use a different shell inside screen
# than is set as the default login shell.
# If begins with a '-' character, the shell will be started as a login shell.
shell -$SHELL
检查您的.screenrc文件,并验证shell行前面是否带有短划线。通过使用破折号并强制使用登录shell,您将获得.bash_profile源文件。我的.screenrc中的$ SHELL变量使用的是启动屏幕的shell提供的shell值(通常对我来说是bash)。
如果您想知道,我能够发现的登录外壳程序和非登录外壳程序之间最大的区别在于,非登录外壳程序通常是执行脚本所调用的。
如果您将所有设置都写入,则无需更改任何配置文件,.bash_profile
就像通常设置终端一样,并通过以下方式创建.bashrc
指向.bash_profile
屏幕会话的指向您的链接:
$ ln -s ~/.bash_profile ~/.bashrc
对其中一个文件所做的任何更改都存储在中,.bash_profile
但也可以通过访问.bashrc
。
唯一的缺点是您不能将设置仅添加到一个配置文件中。
对于用户文件,Linux登录外壳程序通过添加以下行来提供非登录外壳程序:
[[ -f ~/.bashrc ]] && . ~/.bashrc