Existe-t-il un moyen de pousser les informations de configuration shell lorsque SSHing à un hôte?

Je sais comment mettre l'invite des terminaux GNOME (ou xterms!) En vert / rouge concernant le dernier code de sortie:

vi .bashrc export PROMPT_COMMAND='PS1="` if [[ \$? = "0" ]]; then echo "\\[\\033[0;32m\\]"; else echo "\\[\\033[0;31m\\]"; fi`[\u@\h \w]\[\e[m\] "' export PS1 

en photo:

entrer la description de l'image ici

mais si je me connecte à un server distant, ces parameters de couleur ne fonctionnent pas!

Comment puis-je le configurer pour fonctionner aussi sur des terminaux distants? Malheureusement, je ne peux pas append les lignes mentionnées aux servers distants .bashrc .

Vous essayez de modifier l'invite affichée par le shell distant. Ceci, bien sûr, nécessite de changer le file de configuration du shell distant, c'est à dire .bashrc .

Si vous ne souhaitez pas modifier le file et que vous devez vraiment utiliser ce count partagé (insérez le grognement obligatoire à propos des counts partagés) et que vous vous connectez sur ssh, vous pouvez (ab) utiliser l'option command= ~/.ssh/authorized_keys . Une key avec une option de command est bonne uniquement pour exécuter la command spécifiée; mais la command du file authorized_keys est SSH_ORIGINAL_COMMAND avec la variable d'environnement SSH_ORIGINAL_COMMAND définie sur la command que l'user a spécifiée (vide pour les sessions interactives). Vous pouvez donc utiliser quelque chose comme ceci dans ~/.ssh/authorized_keys :

 command="HOME=$HOME/.HOME.lance; if [ -n \"$SSH_ORIGINAL_COMMAND\" ]; then eval \"$SSH_ORIGINAL_COMMAND\"; else exec \"$SHELL\"; fi" ssh-rsa AAAA…== [email protected] 

Notez que j'ai mis des sauts de ligne ci-dessus pour la lisibilité, mais cela doit être sur une seule ligne dans le file authorized_keys .

Ensuite, mettez vos files de configuration préférés dans le directory .HOME.lance .

Pour une utilisation occasionnelle, vous pouvez explicitement générer un file de profil ou exécuter une command shell. Passez l'option -t pour avoir un terminal si vous voulez exécuter des commands interactives.

 ssh shared-account@server "LS_COLORS='$LS_COLORS' ls --color" ssh -t shared-account@server '. ~/.profile.drew; exec zsh' 

Si vous souhaitez uniquement modifier ou copyr des files sur la machine distante, vous pouvez utiliser un système de files réseau tel que SSHFS (pour les clients Unix) ou Tramp (pour Emacs) et travailler dans le confort de votre environnement local.

Lorsque vous vous connectez à un système distant, vous recevez un nouveau shell. Spécifiquement un shell sur le système REMOTE. Afin d'avoir vos preferences de shell préférées sur une machine différente, vous devrez également définir vos preferences sur cette machine. Cela signifie que vous devrez configurer l'invite du shell de command d'invite dans le file .bashrc sur le site distant. C'est conçu de cette façon.

Il est possible que lorsque vous vous connectez à une machine distante, la machine distante peut supposer que vous disposez d'un terminal less performant que vous. Si votre PS1 est réglée correctement, essayez également de définir votre variable TERM lorsque vous arrivez sur la nouvelle machine. Les machines distantes supposent souvent un terminal assez stupide pour toutes les connections à distance, mais elles prennent souvent en charge des connections décentes et vous pouvez les utiliser pour utiliser des parameters raisonnables, mais en forçant cette variable d'environnement à utiliser quelque chose comme xterm-color.