77 votes

Comment obtenir un terminal coloré via ssh ?

Lorsque je me connecte par ssh à des hôtes distants, tout n'est qu'une seule police/couleur. J'aimerais avoir des couleurs comme je le fais localement, par exemple vert pour l'exécutable et bleu pour les liens symboliques, etc. Et de telle sorte que lorsque je lance $ git diff sur l'hôte ssh, il me montre diff avec des couleurs =)

5voto

Stuart Clark Points 51

Dans mon cas, la partie manquante était d'avoir des ls, grep, etc. colorés, ce qui peut être ajouté en ajoutant des alias au fichier .bashrc :

alias ls='ls --color=auto'
alias grep='grep --color=auto'

etc.

3voto

Nolan P Points 101

J'ai essayé de changer ~./bashrc (tant sur le serveur local que sur le serveur distant), mais cela ne semble pas fonctionner.

Puis j'ai remarqué que ~/.bashrc du serveur distant ne s'exécute même pas si je m'y connecte par ssh. J'ai donc fait ~/.bashrc du serveur distant à exécuter par mettre if [ -f ~/.bashrc ]; then . ~/.bashrc fi dans l'interface du serveur distant ~/.bash_profile . (sur la base de https://stackoverflow.com/questions/820517/bashrc-at-ssh-login ).

Cette solution ne nécessitait donc pas de modifier les ~/bashrc directement, mais il a fallu modifier ~/bash_profile du serveur distant afin que ~/bashrc du serveur distant a été exécuté.

3voto

Kevin Points 31

Dans ma situation, j'ai récemment installé chef-local et il m'a demandé d'ajouter une ligne à .bash_profile . Quand je me connecte, .bashrc ne se charge plus, parce qu'il a vu .bash_profile .

Ce que j'ai fait, c'est ajouter une ligne dans .bash_profile :

source .bashrc
export PATH="/opt/chefdk/embedded/bin:$PATH"

Je me suis déconnecté et reconnecté et j'ai eu mon terminal coloré tout de suite.

2voto

Nerian Points 6733

Il y a un commentaire de "Mike E" ci-dessus qui contient la réponse pour moi, mais il n'est pas seulement difficile à lire, il est également difficile de comprendre ce qu'il veut dire si vous n'utilisez pas le logiciel .bashrc beaucoup - et je ne le fais pas.

Après avoir fait quelques manipulations, j'ai obtenu les résultats souhaités en modifiant les lignes suivantes dans le fichier ~/.bashrc sur la machine à laquelle je me suis connecté avec ssh :

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color|*-256color) color_prompt=yes;;
esac

à :

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color|*-256color) color_prompt=yes;;
    xterm) color_prompt=yes;;
esac

Je pense que j'aurais pu simplement ajouter "|xterm" après "color" dans la première ligne, ou creuser et comprendre pourquoi ssh utilisait "xterm" au lieu de "xterm-color" et changer cela, mais cela fonctionne et j'ai d'autres choses à faire maintenant.

1voto

ErichBSchulz Points 111

Je perdais ma couleur en me connectant via un proxy car TERM=dumb alors je l'ai réparé :

ssh myproxy "ssh pi@localhost -p 5000 -tt 'TERM=xterm bash'"

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X