Si vous souhaitez simplement envoyer la PS1
variable et qu'elle ne contient pas de '
(guillemet simple), essayez:
ssh targethost -t "PS1='$PS1'; exec bash"
Le local .bashrc
pourrait bien écraser PS1
cependant (merci à Dennis Williamson de l' avoir signalé).
Il existe des moyens de transmettre des variables d'environnement via ssh , mais elles sont généralement désactivées dans la configuration du serveur. Si la PermitUserEnvironment
directive est activée dans la configuration du serveur et que chaque utilisateur a sa propre paire de clés (oui, vous pourriez ne pas être aussi chanceux), vous pouvez ajouter environment="PS1=…"
à la ligne en ~/.ssh/authorized_keys
correspondant à votre clé.
Si vous souhaitez conserver votre propre configuration sur un compte d'utilisateur partagé, vous pouvez créer votre propre répertoire de fichiers de configuration et définir la HOME
variable d'environnement pour pointer vers ce répertoire.
ssh targethost mkdir mrstatic.home
scp .bashrc targethost:mrstatic.home/
Créez des liens symboliques dans le mrstatic.home
répertoire pointant vers l'entrée correspondante dans le répertoire parent lorsque vous souhaitez partager un fichier avec les autres utilisateurs.
Connectez-vous ensuite avec
ssh targethost -t 'HOME=~/mrstatic.home; exec bash'`
Si vous souhaitez modifier la télécommande .profile
(ou un autre fichier d'initialisation), vous pouvez probablement automatiser vos paramètres. De nombreux sites autorisent LC_*
les variables d'environnement (normalement, elles sont utilisées pour les paramètres régionaux). Si ces deux conditions sont remplies, vous pouvez définir une variable qui n'est pas réellement utilisée pour les paramètres régionaux, par exempleLC_USER
, côté client, et la tester sur le serveur .profile
.
(Bien sûr, les comptes partagés sont une mauvaise idée, mais je me rends compte que vous n'êtes peut-être pas en mesure de changer cette situation.)
"PS1='$PS1' bash -i"
(et pourquoi pasexec
aussi)?