Je passe toute la journée à travailler sur des serveurs pour le travail et l’utilisateur distant en est un qui est partagé par moi-même et plusieurs collègues. Par conséquent, je ne peux pas personnaliser aveuglément le shell car tout le monde ne voudra pas de mes modifications et ajustements.
Est-ce un moyen de spécifier un autre fichier .zshrc à utiliser lors de la connexion, par exemple:
ssh user@someserver zsh --rcfile .zshrc.mine
J'ai examiné les pages de manuel et googlé et jusqu'à présent, je n'ai pas trouvé de solution.
Toute aide serait appréciée :-)
Afin de changer où zsh
cherche ses fichiers de configuration utilisateur (.zshenv
, .zprofile
, .zshrc
, .zlogin
), vous devez définir le ZDOTDIR
variable d’environnement vers le chemin où ils résident. ZDOTDIR
peut contenir un chemin absolu ou relatif, les chemins relatifs étant relatifs au répertoire de travail actuel lors du démarrage de zsh
. Si ZDOTDIR
n'est pas défini, zsh
cherche dans $HOME
.
Donc, si vous mettez votre .zshrc
personnel dans le répertoire $HOME/.my_zsh
, vous devriez pouvoir l'utiliser sur le serveur distant en vous connectant à l'aide de la commande suivante:
ssh -t user@someserver ZDOTDIR=.my_zsh zsh
Le paramètre -t
force l’attribution de pseudo-tty, ce que ssh
ne fait habituellement que si aucune commande n’est transmise (c’est-à-dire si un shell distant est ouvert). Dans ce cas, la commande ZDOTDIR=.my_zsh zsh
est transmise, ce qui définit ZDOTDIR
(uniquement pour la commande en cours) et exécute zsh
.
Votre session .ssh a 3 variables d'environnement définies:
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
Vos valeurs après le "=" peuvent différer.
Vous pourriez avoir votre fichier .zshrc
vérifier pour eux, et faire quelque chose de différent.