我在用着hss
(https://github.com/six-ddc/hss) 连接到 3 个 Ubuntu 服务器(相同版本)。问题是其中 2 个~/.bash_profile
没有读取hss
,尽管当我分别 ssh 到每个服务器时正在读取。
$ env | grep -w PATH
[O] root@example-sql -> PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
[O] root@example-www -> PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
[O] root@example-search -> PATH=.:/root/bin:/usr/local/node/bin:...
example-search
显然确实读取了.bash_profile
,因为我添加了其他目录PATH
,例如/root/bin
,等等。但是,前两个似乎没有。
为什么会发生这种情况?我该如何解决这个问题(PATH
显然,我想要我定义的方式)。
更新
~/.bashrc
我通过添加touch /tmp/something
“问题”主机然后运行一些命令来检查来源hss
。确实如此不是.bashrc
前两台主机上的源。
答案1
通过 远程执行命令ssh
(或者,在本例中通过执行hss
),不是创建一个交互式登录 shell。这意味着它将不是阅读.bash_profile
,但它做使用.bashrc
。
我认为您应该查看.bashrc
三台主机,看看是否存在差异。也许.bashrc
该主机上也有采购.bash_profile
?或者,您要查找的 PATH 已在.bashrc
该主机上?