我花了一整天的时间通过 ssh 连接到工作服务器,并且远程用户是由我和几个同事共享的,因此我不能盲目地定制 shell,因为不是每个人都想要我的调整和更改。
是否有办法指定登录时使用的备用 .zshrc 文件,例如:
ssh user@someserver zsh --rcfile .zshrc.mine
我查看了手册页并在 Google 上搜索过,但到目前为止还没有找到解决方案。
任何帮助,将不胜感激 :-)
答案1
为了更改zsh
查找用户配置文件(.zshenv
、.zprofile
、.zshrc
、.zlogin
)的位置,您必须将ZDOTDIR
环境变量设置为它们所在的路径。ZDOTDIR
可能包含绝对路径或相对路径,其中相对路径是相对于启动时的当前工作目录zsh
。 如果ZDOTDIR
未设置,zsh
则在 中查找$HOME
。
因此,如果您将个人资料.zshrc
放入目录中$HOME/.my_zsh
,您应该能够通过以下命令连接在远程服务器上使用它:
ssh -t user@someserver ZDOTDIR=.my_zsh zsh
该参数-t
强制伪 tty 分配,ssh
通常仅在未传递任何命令时(即打开远程 shell)才会执行。在这种情况下,ZDOTDIR=.my_zsh zsh
将传递命令,该命令将设置ZDOTDIR
(仅限于当前命令)并运行zsh
。
答案2
您的 .ssh 会话定义了 3 个环境变量:
SSH_CLIENT=127.0.0.1 42421 22
SSH_CONNECTION=127.0.0.1 42421 127.0.0.1 22
SSH_TTY=/dev/pts/3
“=”后面的值可能会有所不同。
您可以让您的.zshrc
文件检查它们,并做一些不同的事情。