AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 436632
Accepted
MoonSweep
MoonSweep
Asked: 2018-04-10 13:36:46 +0800 CST2018-04-10 13:36:46 +0800 CST 2018-04-10 13:36:46 +0800 CST

Adequa os valores de variável TERM para um console serial

  • 772

Para habilitar um console serial no Linux, usa-se getty(geralmente, sua variante agetty). Este binário recebe como argumento, entre outros, o valor com o qual inicializar a variável TERM .

No Debian, com Sys V init, o padrão era vt100 . Com systemd, o padrão costumava ser vt102 , e hoje em dia é vt220 .

Depois de brincar um pouco com máquinas virtuais QEMU e virt-viewer, além de virsh consolecomando, notei algumas coisas:

  • Com vt100 , ls --colorexibe cores, mas vimo realce de sintaxe não funciona
  • com vt102 ou vt220 , nenhum deles exibe cores
  • Somente com a variável TERM definida como linux , faça ambos lse vimuse cores

Portanto, acho que, independentemente do "suporte de cores" real, cada aplicativo analisa a variável TERM e age de acordo, o que explicaria as diferenças observadas acima.

Depois de ler o COMO FAZER do Console Serial , entendo que o valor da variável TERM deve depender do modelo real do terminal físico que seria conectado à porta serial, de acordo com suas capacidades.

Observe que, de acordo com o blog de Lennart Poettering , o TERM deve ser definido como linux apenas com terminais virtuais reais (em oposição aos seriais). Por outro lado, o Wiki do Arch Linux não parece se importar (veja as /etc/inittablinhas que ele propõe).

Então minhas perguntas são:

Em um caso geral, o que acontece se a variável TERM for definida como linux em um console conectado a um terminal menos capaz, como um DEC VT100, VT102 ou VT220, ou alguns emuladores de terminal de software RS-232 como minicomou termite?

Mais realisticamente (no meu caso particular), posso definir a variável TERM como linux em um console serial "virtual" em uma VM QEMU, à qual me conectarei por meio de virt-viewerou virsh console?

linux console
  • 1 1 respostas
  • 2131 Views

1 respostas

  • Voted
  1. Best Answer
    Johan Myréen
    2018-04-10T14:29:07+08:002018-04-10T14:29:07+08:00

    A TERMconfiguração informa ao programa aplicativo quais recursos o terminal com o qual ele está se comunicando possui e como utilizar esses recursos (normalmente por meio de uma biblioteca como ncurses). Em linguagem simples: informa quais sequências de controle (escape sequences) deve enviar para mover o cursor pela tela, para mudar a cor do texto, como apagar uma região da tela, quais sequências as teclas de função transmitem, etc. esses recursos podem estar ausentes, como suporte a cores.

    A maioria dos tipos de terminal em uso hoje está de alguma forma relacionada ao "avô" dos "ttys de vidro", o DEC VT100. É por isso que os tipos de terminal são geralmente intercambiáveis, portanto, definir o tipo errado geralmente resulta em uma configuração que funciona principalmente, mas com algumas falhas.

    Então, para responder às perguntas "qual devo usar" e "o que acontece se eu usar a configuração errada"? Algumas sequências de controle podem ser incompatíveis, ou seja, o programa envia sequências de movimento do cursor diferentes daquelas que o emulador de terminal espera. Ou o suporte de cores está ausente. (Aliás, o VT100 original definitivamente não suportava cores...) A configuração correta deve ser fornecida pela documentação do emulador de terminal, mas não há problema em experimentar para ver qual configuração funciona melhor. Não há problema em usar "linux" se funcionar para você.

    • 3

relate perguntas

  • Existe uma maneira de fazer ls mostrar arquivos ocultos apenas para determinados diretórios?

  • Inicie/pare o serviço systemd usando o atalho de teclado [fechado]

  • Necessidade de algumas chamadas de sistema

  • astyle não altera a formatação do arquivo de origem

  • Passe o sistema de arquivos raiz por rótulo para o kernel do Linux

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve