Alterando emuladores de terminal

9

Eu tenho acesso ssh a uma máquina remota. Nesta máquina, se eu executar echo $TERM , recebo xterm .

Se eu quiser mudar meu emulador de terminal para algum outro emulador (supondo que ele esteja instalado na máquina remota), como eu faria isso?

    
por Amelio Vazquez-Reina 01.11.2011 / 16:35

2 respostas

13

O valor da variável de ambiente TERM é usado pelo servidor (no sistema V, ou BSD, sistemas operacionais derivados) para controlar como a entrada é reconhecida pelo sistema e quais recursos existem para a saída. Alguns tipos de terminal são semelhantes o suficiente para que possam ser trocados enquanto ainda permanecem úteis, enquanto outros podem tornar o sistema inutilizável até que você abra uma nova conexão com um valor com suporte para TERM. Por exemplo, de um sistema Linux para outro, você provavelmente experimentaria pouca diferença entre as configurações vt100, vt220 e xterm. A maioria das diferenças estaria em como a saída é exibida e se as cores ou fontes em negrito estão disponíveis para esse tipo de terminal. O banco de dados termcap lista todos os tipos de terminais, com suas várias capacidades.

Contanto que você não mude para um tipo de terminal com o qual o teclado e a tela não sejam compatíveis, você estará bem.

leia a man page de term e termcap no seu sistema para obter mais informações.

Para alterar o tipo de terminal:

no bash:

export TERM=vt100

no bourne shell ou ksh:

TERM=vt100
export TERM

em csh ou tcsh:

setenv TERM vt100

vt100 é um terminal bastante seguro para começar a jogar. é compatível com o xterm, mas não exibe cores ou fontes em negrito, e pode não reconhecer suas teclas F *, mas é improvável que você estrague qualquer coisa usando o vt100.

Muitas pessoas usam detecção de terminal em scripts de inicialização pessoal para otimizar a experiência do usuário, dependendo de como estão entrando no servidor. Por exemplo, defina um PS1 simples se você estiver usando o vt100, use variáveis dinâmicas e de cores ao usar o bash em um xterm.

Boa sorte com sua pesquisa.

    
por 01.11.2011 / 19:47
8

Você está entendendo mal.

Seu console ou terminal ou PuTTY no lado LOCAL é o "emulador de terminal" real, mesmo que hoje em dia apenas encurtemos para "terminais". O uso vem de trás quando as pessoas realmente usavam terminais de monitor e teclado para entrar em um servidor de mainframe, em vez de usar vários consoles e ambientes gráficos de usuário.

A variável $ TERM simplesmente diz ao sistema remoto que tipo de códigos de controle seu terminal entenderá quando os enviar (por exemplo, para gerar menus baseados em texto ou qualquer coisa baseada em libncurses).

Não sei exatamente o que você quer realizar, mas alterar $ TERM provavelmente não ajudará.

    
por 01.11.2011 / 16:48