Como obter o terminal colorido sobre o ssh?

40

Quando eu conecto por ssh a hosts remotos, tudo é apenas uma única fonte / cor. Eu gostaria de ter cores como eu faço localmente, por exemplo verde para executável e azul para links simbólicos etc. E tal que quando executo $ git diff no host ssh ele me mostra diff com colors =)

    
por Dima 05.12.2010 / 21:14

7 respostas

25

desde que era xterm no servidor, eu percebi que algo estava errado com .bashrc

E de fato! --color=auto funciona somente quando você está conectado ao TTY. Alterando tudo para simplesmente --color in .bashrc e tudo está em cores bonitas agora.

    
por Dima 06.12.2010 / 01:41
7

Parece que as cores já foram definidas em ~/.bashrc para mim e o problema é que o ssh não usa o arquivo bashrc. Você pode usar o bashrc em sua sessão ssh adicionando o seguinte a ~/.bash_profile :

if [ -f ~/.bashrc ]; then
      . ~/.bashrc
fi
    
por dariusz gorczynski 11.04.2015 / 20:12
5

Qual é o conteúdo da sua variável env do XTERM no servidor quando você se conecta a ele?

~ > export | grep -i term
TERM=xterm
    
por Vedran Krivokuća 05.12.2010 / 22:09
5

Isso funcionou para mim:

ssh -t my_host my_command

-t foi a chave. Explicado .

    
por juanpastas 20.10.2016 / 02:57
1

Eu tentei alterar ~./bashrc configurações (tanto no servidor local quanto no remoto), mas parece que não funcionou.

Então notei que ~/.bashrc do servidor remoto nem sequer é executado se eu me conectar a ele por meio do ssh. Então eu fiz ~/.bashrc do servidor remoto para executar colocando if [ -f ~/.bashrc ]; then . ~/.bashrc fi no ~/.bash_profile . do servidor remoto (com base em link ).

Portanto, essa solução não exigia a alteração de nenhum arquivo ~/bashrc diretamente, mas exigia a alteração do arquivo ~/bash_profile do servidor remoto para que ~/bashrc do servidor remoto fosse executado.

    
por chris544 07.03.2016 / 22:57
0

No meu caso, a parte que faltava era ter ls, grep coloridos, etc., que podem ser adicionados adicionando aliases ao arquivo .bashrc:

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

    
por Stuart Clark 31.05.2017 / 09:35
0

Existe um comentário de "Mike E" acima que continha a resposta para mim, mas não é apenas difícil de ler, é difícil descobrir o que ele quer dizer se você não usa .bashrc a muito - e eu não faço.

Depois de enrolar um pouco, obtive os resultados desejados alterando as linhas a seguir em ~/.bashrc na máquina em que estava fazendo o login com ssh:

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

para:

# 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

Estou pensando que eu poderia ter adicionado "| xterm" depois de "color" na primeira linha, ou descobrir por que o ssh estava usando "xterm" em vez de "xterm-colour" e mudar isso, mas isso funciona e eu tenho outras coisas para fazer agora.

    
O
por Mike Wise 15.03.2018 / 22:02