我已经sshd
在远程主机上设置了一系列环境变量。然后我通过 ssh 进入该主机,并得到以下结果:ps
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 112868 4208 ? Ss 19:27 0:00 /usr/sbin/sshd -D -e
root 127 0.0 0.0 148480 5372 ? Ss 19:34 0:00 sshd: root@pts/0
root 129 0.0 0.0 13392 1892 pts/0 Ss 19:34 0:00 -bash
当前的pid
是129
。它的父级是127
,其父级是1
。
如何让当前的 ssh 会话拥有来自初始sshd
进程的所有环境变量?当前进程及其父进程都没有在 sshd 中设置的环境变量。
答案1
实际上 SSH 应该具有默认的系统环境变量。
这意味着它的变量应该来自以下文件:/etc/environment
、、、。不过/etc/profile
,很多变量都是 shell 特定的;/etc/profile.d/
/etc/bash.bashrc
由于您使用的是 bash,因此您将/etc/bash.bashrc
在创建 shell 时自动执行特定于用户的登录脚本。
要从这些文件中获取环境变量,只需在运行其他任何文件之前执行它们。
资料来源:
https://askubuntu.com/questions/26318/environment-variable-vs-shell-variable-whats-the-difference
https://www.tecmint.com/set-unset-environment-variables-in-linux/