int*_*ius 7 ssh bashrc arch-linux
当我通过 ssh 进入服务器 (4.3.3-2-ARCH) 时,我的 .bashrc 没有加载(但是,我可以通过采购它来手动加载它)。
我的主文件夹中没有任何其他文件,例如 .profile。外壳也正确
$ echo $SHELL
/bin/bash
Run Code Online (Sandbox Code Playgroud)
当我使用 登录时ssh -t myserver /bin/bash
,我的 .bashrc 已正确加载。
在 SSH 详细模式下,我确实看到 /etc/bash.bashrc 和 ~/.bashrc 是使用最后一个命令加载的。使用默认的 ssh 命令时,它们都没有被加载...
使用默认 ssh 命令时,我应该配置什么来加载 .bashrc(和 /etc/bash.bashrc)?
use*_*517 18
该~/.bashrc
文件是为交互式非登录 shell 加载的,这就是为什么/bin/bash
从 ssh运行可以按预期工作的原因。
对于登录外壳(以及其他) ~/.bash_profile 被读取。通常你~/.bash_profile
包含类似的东西
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
Run Code Online (Sandbox Code Playgroud)
~/.bashrc
如果您的外壳是登录外壳,则可确保加载。
如果您~/.bash_profile
包含上述内容并且~/.bashrc
没有被加载,您可以set -x
像往常一样使用调试脚本。