我注意到有时我通过 SSH 访问的 shell 帐户会从我的主 shell 继承别名和文件类型颜色。
这个过程是如何发生的?这些 shell 通常是 BASH,但我想这是所有 TTY 仿真器都具有的共同点。
答案1
它与 SSH、bash 或终端仿真器无关。它们只是在另一端以相同的方式设置。
答案2
事实上,你能让 ssh 将环境变量发送到服务器,以便它们在远程会话中可用。操作方法如下(以文件类型颜色为例,但您也可以将其调整为其他环境变量):
在您的
~/.ssh/config
(当前用户)或/etc/ssh/ssh_config
(所有用户)中添加以下行:主机 *
SendEnv LS_COLORS如果远程服务器的 /etc/ssh/sshd_config 中不存在此行,请添加此行:
接受环境 LS_COLORS
注意:您可能需要修改现有的AcceptEnv 行以将LS_COLORS 添加到其中。
- 重新启动 ssh 服务器。
就是这样!现在,您的 ssh 会话将从当前 shell 继承 ls 颜色。
注意事项:
- 这不适用于别名,只适用于环境变量。
- 仅适用于 ssh 协议 2。
- 你的远程 shell 可能会覆盖通过远程 .bashrc 发送的内容
答案3
就像 Ignacio 所说的那样,它是按照您连接的方式设置的。只需将您的 .bashrc(或您使用的任何文件)移过去并连接即可。