Pro*_*oob 8 shell bash ssh path environment-variables
在特定主机上,当我 ssh 进入机器并输入时,echo $PATH
我得到
/home/wxy/bin64:/home/wxy/bin:/usr/kerberos/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/bin:/usr/bin
Run Code Online (Sandbox Code Playgroud)
如果我执行ssh host 'echo $PATH'
我看到这个:
/usr/local/bin:/bin:/usr/bin
Run Code Online (Sandbox Code Playgroud)
为什么会出现这种差异?
如果我想使用后一个命令查看前一个结果,我该怎么办?
slm*_*slm 13
在第一个场景中,您正在登录系统,因此您正在执行所谓的登录类型的连接。登录源中的脚本$HOME/.bashrc
,$HOME/.bash_profile
如果您是登录 shell,则是 Bash。这 2 个脚本通常依次提供文件/etc/bashrc
和/etc/profile.d/*.sh
.
对于第二种情况,您只是在采购文件$HOME/.bashrc
. 这种类型的登录称为交互。
您可以在bash 手册页的INVOCATION部分阅读有关这些内容的更多信息。
要更改此行为,您可以包含 $HOME/.bashrc_profile 作为交互式执行的一部分以获得所需的行为:
$ ssh user@remotehost '. $HOME/.bash_profile; echo $PATH'
Run Code Online (Sandbox Code Playgroud)
-或者-
$ ssh user@remotehost 'source $HOME/.bash_profile; echo $PATH'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15115 次 |
最近记录: |