Comment obtenir un terminal coloré sur ssh?

41

Lorsque je me connecte via ssh à des hôtes distants, tout n’est qu’une seule police / couleur. Je voudrais avoir des couleurs comme je le fais localement vert pour exécutable et bleu pour les liens symboliques etc. Et tel que quand je lance $ git diff sur l'hôte ssh cela me montre diff avec les couleurs =)

    
posée Dima 05.12.2010 - 21:14
la source

7 réponses

25

Hm. comme il était xterm sur le serveur, j'ai pensé que quelque chose n'allait pas avec .bashrc

Et en effet! --color=auto ne fonctionne que lorsque vous êtes connecté à TTY. Changer tout pour simplement --color en .bashrc et tout est maintenant dans de jolies couleurs.

    
réponse donnée Dima 06.12.2010 - 01:41
la source
8

On dirait que les couleurs étaient déjà définies dans ~/.bashrc pour moi et que le problème est que ssh n'utilise pas le fichier bashrc. Vous pouvez utiliser bashrc dans votre session ssh en ajoutant ce qui suit à ~/.bash_profile :

if [ -f ~/.bashrc ]; then
      . ~/.bashrc
fi
    
réponse donnée dariusz gorczynski 11.04.2015 - 20:12
la source
7

Cela a fonctionné pour moi:

ssh -t my_host my_command

-t était la clé. Expliqué .

    
réponse donnée juanpastas 20.10.2016 - 02:57
la source
5

Quel est le contenu de votre variable env XTERM sur le serveur lorsque vous vous y connectez?

~ > export | grep -i term
TERM=xterm
    
réponse donnée Vedran Krivokuća 05.12.2010 - 22:09
la source
1

J'ai essayé de modifier les paramètres ~./bashrc (sur les serveurs local et distant), mais cela ne semblait pas fonctionner.

Puis, j'ai remarqué que ~/.bashrc du serveur distant n'est même pas exécuté si je me connecte à celui-ci via ssh. J'ai donc fait que ~/.bashrc du serveur distant s'exécute par puttinng if [ -f ~/.bashrc ]; then . ~/.bashrc fi dans le serveur distant ~/.bash_profile . (basé sur lien ).

Cette solution ne nécessitait donc pas de modifier directement les fichiers ~/bashrc , mais il fallait changer le fichier ~/bash_profile du serveur distant pour que le fichier ~/bashrc du serveur distant soit exécuté.

    
réponse donnée chris544 07.03.2016 - 22:57
la source
0

Dans mon cas, la partie manquante consistait à avoir des couleurs ls, grep, etc. qui peuvent être ajoutées en ajoutant des alias au fichier .bashrc:

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

etc.

    
réponse donnée Stuart Clark 31.05.2017 - 09:35
la source
0

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

Après avoir tourné un peu, j'ai obtenu les résultats souhaités en changeant les lignes suivantes dans ~/.bashrc sur la machine avec laquelle je me connectais 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 autour et comprendre pourquoi ssh utilisait "xterm" au lieu de "xterm-color" et changer cela, mais ceci fonctionne et j'ai d'autres choses à faire maintenant.

    
réponse donnée Mike Wise 15.03.2018 - 22:02
la source

Lire d'autres questions sur les étiquettes