Desativar cores no terminal e no SSH

10

Minha máquina Linux local tem saída de terminal colorida como essa;

QuandoeuSSHparaumacaixapfSense/BSD,mudaascoresassim:

Mesmo quando eu SSH de para uma máquina que não tem uma saída de terminal local colorida, e SSH de lá para esta caixa pfSense / FreeBSD, ela permite saída colorida e começa a produzir saída colorida indesejada /

Existe algo que eu possa mudar localmente para que quando eu SSH para a caixa pfSense da minha máquina local ou através de uma máquina intermediária, meu cliente irá ignorar as configurações de cores remotas. O ideal é que eu queira ficar em preto e branco, com apenas dois tons de fundo e cor de texto?

    
por jwbensley 20.12.2012 / 12:27

5 respostas

6

As cores no seu terminal aparecem porque o tty envia sequências de controle codificadas em ANSI para dizer ao seu terminal para alterar as cores. Alguns, se não a maioria dos aplicativos de terminal podem ser configurados para ignorar isso e exibir todo o texto em uma cor.

Em xterm , você pode usar a opção -cm . Para o Konsole, pode-se alterar o mapeamento de todas as cores para o mesmo. Seu aplicativo de terminal XFCE pode ter opções semelhantes.

    
por 20.12.2012 / 13:15
5

A alteração da variável TERM para alguma entrada compatível, mas sem suporte para cores, pode funcionar. Como:

TERM=xterm-old

Basicamente, você precisa de um TERM conhecido pelo sistema termostato ou banco de dados terminfo do FreeBSD para o qual TERM=the-term tput colors não retorna um número positivo e para GNU ls, um para o qual dircolors -p | grep -x 'TERM the-term' não retorna nada. Ele ainda pode não funcionar para aplicativos que produzem sequências de escape de cores, independentemente de o terminal solicitar ou não suporte.

Como alternativa, você pode usar o GNU screen para desativar cores, como (sintaxe zsh):

screen -c =(printf %s\n "termcapinfo * 'AF=\E[1m:AB=\E[7m'") ssh ...

Isso habilitaria negrito para cada tentativa de definir a cor de primeiro plano e reverter para cada tentativa de definir o plano de fundo.

Eu acho que tudo se resume ao fato de que o FreeBSD assume que o fundo do terminal é preto (ou pelo menos escuro). Onde você usa xterm em vez de xfce-terminal , pode alterar dinamicamente a cor de segundo plano e de primeiro plano e / ou as cores individuais para definir perfis de cores diferentes. Isso é feito através de seqüências de escape, mas você também pode usar o comando xtermcontrol que torna isso mais fácil.

    
por 20.12.2012 / 13:18
1

Caso você não queira modificar seu ~ / .bashrc, que tenho certeza que contém algo como export PS2=.....+colors...... :

No console linux, tente TERM=linux-m1b ou TERM=linux-m2 para ficar monocromático como "Gray / White / Black e Dim" para linux-m1b ou "Green / White / Black e Blue" (vintage!) para linux -m2 ...

Com o Putty (há uma porta para usuários do Mac), use TERM=putty-m1b e TERM=putty-m2 ...

Isso fará exatamente o que você precisa, mas: Você precisará de um banco de dados terminfo recente para isso ou obtê-lo de lá, se necessário: wget http://canal.chez.com/linux.ti ; tic -x linux.ti

Alex. PS: o xterm-mono parece não existir mais.

    
por 10.10.2016 / 16:08
1

Digite o seguinte comando para removê-lo:

$ ls --color=none

ou use unalias para removê-lo:

$ unalias ls
    
por 20.12.2012 / 12:30
-1

Primeiro, verifique seu alias padrão:

alias

alias ls-'ls --color=auto

Se o não funcionar e você precisar de uma solução rápida. Experimente este ls e awk pipe:

vi /usr/local/bin/list
#!/bin/bash
ls $1
exit

defina perms 744 .
Um lugar seguro para isso seria /usr/local/bin Certifique-se de que seu PATH inclua /usr/local/bin .

Mais uma vez, use a discrição.

Uma coisa… as cores servem para marcar diretórios… desligar o ls="ls --color=auto" deixa apenas nomes… ls -aF ou ls -F anexará os nomes dos diretórios com / . Então eu sugiro que você esteja ciente. Você poderia alias ls="ls -aF" ou alias ls="ls -F" .

    
por 25.01.2017 / 20:02