我在网络服务器上稍微更改了 .bashrc 文件,为 ls -la 上的链接添加颜色,依此类推。但是当我使用ssh:ssh user @ server登录并键入 ls -al 时,没有任何颜色着色,似乎我的.bashrc文件尚未在登录时应用。如果我只输入 bash 然后再次 ls -la - 一切正常。简而言之,我在.bashrc中的所有规则只有在授权后输入 bash 时才会显示,有点无聊。
答案 0 :(得分:3)
当您通过ssh登录时,您将调用登录shell 。在现有shell中键入bash
时,将调用交互式shell 。
.bash_profile
,并在调用交互式shell时读取.bashrc
。
尝试将此添加到您的.bash_profile
:
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
有关详细信息,请参阅bash(1)
。
答案 1 :(得分:1)
~/.bashrc
:
当启动不是登录shell的交互式shell时,bash会从中读取并执行命令 /etc/bash.bashrc和〜/ .bashrc,如果存在这些文件。
此外:
Bash尝试确定何时使用[...] sshd运行。如果bash确定它以这种方式运行,它会从〜/ .bashrc和〜/ .bashrc读取并执行命令,如果 这些文件存在且可读。如果以sh。
调用,它将不会这样做
所以:
bash
,而不是sh
,