web-dev-qa-db-ja.com

sshを介したログイン時に異なるzshrcファイルを指定することは可能ですか?

仕事のためにサーバーに1日中sshします。リモートユーザーは自分と複数の同僚によって共有されているので、誰もが私の微調整や変更を望まないので、盲目的にシェルをカスタマイズすることはできません。

たとえば、ログイン時に使用する代替の.zshrcファイルを指定する方法です:

ssh user@someserver zsh --rcfile .zshrc.mine

私はマニュアルページを確認してグーグルで検索しましたが、これまでのところ解決策を思いつきませんでした。

助けていただければ幸いです:-)

3

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が行います。この場合、コマンドZDOTDIR=.my_zsh zshが渡され、ZDOTDIR(現在のコマンドのみを対象とする)が設定され、zshが実行されます。

3
Adaephon

.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ファイルをチェックして、別のことを行います。

0
waltinator