Linux console (Português)

Status de tradução:
Esse artigo é uma tradução de
Linux console
. Data da última tradução: 2020-06-30. Você pode ajudar a sincronizar a tradução, se houver
alterações
na versão em inglês.
Artigos relacionados
/Configuração de teclado
Screen capture#Virtual console
Color output in console
getty
De acordo com
Wikipédia
:
O
console Linux
é um console do sistema interno ao
kernel Linux
. O console Linux fornece uma maneira de o kernel e outros processos enviarem a saída de texto ao usuário e receberem entrada de texto do usuário. O usuário normalmente insere texto com um teclado de computador e lê o texto de saída em um monitor de computador. O kernel Linux tem suporte a consoles virtuais - consoles que são logicamente separados, mas que acessam o mesmo teclado físico e tela.
Este artigo descreve os conceitos básicos do console do Linux e como configurar a exibição da fonte. A configuração do teclado é descrita na subpágina
/Configuração de teclado
.
Implementação
O console, diferentemente da maioria dos serviços que interagem diretamente com os usuários, é implementado no kernel. Isso contrasta com o software de emulação de terminal, como o
Xterm
, que é implementado no espaço do usuário como um aplicativo normal. O console sempre fez parte dos kernels Linux lançados, mas sofreu mudanças em sua história, mais notavelmente a transição para o uso do
framebuffer
e suporte a
Unicode
.
Apesar de muitos aprimoramentos no console, sua total retrocompatibilidade com o hardware legado significa que ele é limitado em comparação com um emulador de terminal gráfico.
Consoles virtuais
O console é apresentado ao usuário como uma série de
consoles virtuais
. Estes dão a impressão de que vários terminais independentes estão sendo executados simultaneamente; cada console virtual pode ser conectado com diferentes usuários, executar seu próprio shell e ter suas próprias configurações de fonte. Os consoles virtuais usam um dispositivo
/dev/ttyX
, e você pode alternar entre eles pressionando
Alt+F
x
(onde
x
é igual ao número do console virtual, começando com 1) . O dispositivo
/dev/console
é automaticamente mapeado para o console virtual ativo.
Veja também
chvt(1)
,
openvt(1)
e
deallocvt(1)
.
Modo de texto
Como o Linux começou originalmente como um kernel para hardware de PC, o console foi desenvolvido usando gráficos
CGA/EGA/VGA
padrão da IBM, que todos os PCs suportavam na época. Os gráficos operaram no modo de texto VGA, que fornece um display simples de 80x25 caracteres com 16 cores. Este modo legado é semelhante aos recursos dos terminais de texto dedicados, como a série
DEC VT100
. Ainda é possível inicializar no modo texto se o hardware do sistema suportar, mas quase todas as distribuições modernas (incluindo o Arch Linux) usam o console framebuffer.
Console framebuffer
Como o Linux foi portado para outras arquiteturas não-PC, foi necessária uma solução melhor, uma vez que outras arquiteturas não usam adaptadores gráficos compatíveis com VGA e podem não suportar modos de texto. O console framebuffer foi implementado para fornecer um console padrão em todas as plataformas e, portanto, apresenta a mesma interface no estilo VGA, independentemente do hardware gráfico subjacente. Como tal, o console do Linux não é um emulador de terminal, mas um terminal por si só. Ele usa o tipo de terminal
linux
e é amplamente compatível com o VT100.
Atalhos de teclado
Atalho de teclado
Descrição
Ctrl+Alt+Del
Reinicia o computador (especificado pelo link simbólico
/usr/lib/systemd/system/ctrl-alt-del.target
)
Alt+F1
,
F2
,
F3
, ...
Alterna para o
n
º console virtual
Alt+ ←
Alterna para o console virtual anterior
Alt+ →
Alterna para o próximo console virtual
Scroll Lock
Quando Scroll Lock está ativado, entrada/saída está travada
Shift+PgUp
/
PgDown
Rola o buffer de console para cima/para baixo
Ctrl+c
Encerra a tarefa atual
Ctrl+d
Insere um EOF (fim de arquivo)
Ctrl+z
Pausa a tarefa atual
Veja também
console_codes(4)
.
Fontes
Nota
Esta seção é sobre o
console do Linux
. Para soluções de console alternativas que oferecem mais recursos (fontes Unicode completas, adaptadores gráficos modernos, etc.), consulte
KMSCON
ou projetos semelhantes.
Por padrão, o
console virtual
usa a fonte embutida no kernel com um conjunto de caracteres
CP437
[1]
, mas isso pode ser alterado facilmente.
O
console do Linux
usa a codificação UTF-8 por padrão, mas como o framebuffer padrão compatível com VGA é usado, uma fonte do console é limitada a um padrão 256 ou 512 glifos. Se a fonte tiver mais de 256 glifos, o número de cores será reduzido de 16 para 8. Para atribuir o símbolo correto a ser exibido ao valor Unicode fornecido, é necessário um mapa de tradução especial, geralmente chamado de
unimap
. Atualmente, a maioria das fontes do console tem o
unimap
embutido; historicamente, tinha que ser carregado separadamente.
O pacote
kbd
fornece ferramentas para alterar a fonte do console virtual e o mapeamento de fontes. As fontes disponíveis são salvas no diretório
/usr/share/kbd/consolefonts/
, aquelas que terminam com
.psfu
ou
.psfu.gz
possuem um mapa de tradução Unicode embutido.
Os keymaps (mapas de teclado), a conexão entre a tecla pressionada e o caractere usado pelo computador, são encontrados nos subdiretórios de
/usr/share/kbd/keymaps/
, veja
/Configuração de teclado
para detalhes.
Nota
Substituir a fonte pode causar problemas com programas que esperam uma fonte de estilo VGA padrão, como aqueles que usam gráficos de desenho de linha.
Dica
Para idiomas baseados na Europa escritos em letras latinas/gregas, você pode usar a fonte
eurlatgr
, que inclui uma ampla gama de variações de letras latinas/gregas, bem como caracteres especiais
[2]
.
Visualizar alterações e alterações temporárias
Dica
Uma biblioteca organizada de imagens para visualização está disponível:
Linux console fonts screenshots
.
$ showconsolefont
mostra uma tabela de glifos ou letras de uma fonte.
setfont
altera temporariamente a fonte se passado um nome de fonte (em
/usr/share/kbd/consolefonts/
) tal como
$ setfont lat2-16 -m 8859-2
Os nomes das fontes diferenciam maiúsculo de minúsculo. Com nenhum parâmetro,
setfont
retorna o console para a fonte padrão.
Então, para ter uma fonte
8x8 pequena
, com aquela fonte instalada como visto abaixo, use, por exemplo:
$ setfont -h8 /usr/share/kbd/consolefonts/drdos8x8.psfu.gz
Para ter uma fonte
maior
, a fonte Terminus (
terminus-font
) está disponível em muitos tamanhos, tal como
ter-132n
que é maior.
Dica
Todos os comandos alteradores de fonte podem ser digitados as "cegas".
Nota
setfont
só funciona no console atualmente em uso. Quaisquer outros consoles, ativos ou inativos, não são afetados.
Configuração persistente
A variável
FONT
em
/etc/vconsole.conf
é usado para definir a fonte na inicialização, de forma persistente para todos consoles. Veja
vconsole.conf(5)
para detalhes.
Para exibir caracteres tais como
Č, ž, đ, š
or
Ł, ę, ą, ś
usando a fonte
lat2-16.psfu.gz
:
/etc/vconsole.conf
...
FONT=lat2-16
FONT_MAP=8859-2
Isso significa que a segunda parte dos caracteres ISO/IEC 8859 é usada com tamanho 16. Você pode alterar o tamanho da fonte usando outros valores (por exemplo,
lat2-08
). Para as regiões determinadas pela especificação 8859, veja
Wikipedia:ISO/IEC 8859#The parts of ISO/IEC 8859
.
Para usar a fonte especificada no early userspace, use o hook
consolefont
em
/etc/mkinitcpio.conf
. Veja
Mkinitcpio#HOOKS
para mais informações.
Se as fontes parecerem não mudar na inicialização, ou mudarem apenas temporariamente, é mais provável que tenham sido reiniciadas quando o driver gráfico foi inicializado e o console foi mudado para o framebuffer. Para evitar isso, carregue seu driver de gráficos anteriormente. Veja por exemplo
Kernel mode setting#Early KMS start
,
[3]
ou outras maneiras de configurar seu framebuffer antes de
/etc/vconsole.conf
é aplicado.
Rolagem de texto
A rolagem de texto permite que o usuário volte e veja o texto que saiu da tela de um console de texto. Isso é possível graças a um buffer criado entre o adaptador de vídeo e o dispositivo de exibição chamado de buffer de rolagem (
scrollback buffer
, em inglês). Por padrão, as combinações de teclas de
Shift+PageUp
e
Shift+PageDown
rolam o buffer para cima e para baixo.
Se a rolagem para cima não mostrar informações suficientes, você precisará expandir seu buffer de rolagem para reter mais resultados. Isso é feito ajustando o console de framebuffer do kernel (fbcon) com o
parâmetro do kernel
fbcon=scrollback:Nk
sendo
N
o tamanho do buffer desejado em kilobytes. O tamanho padrão é 32k.
Se isso não funcionar, o console de framebuffer pode não estar ativado corretamente. Verifique a
documentação do console de framebuffer
para outros parâmetros, por exemplo para alterar o driver do framebuffer.
HiDPI
Veja
HiDPI#Linux console (tty)
.
Tons audíveis
Veja
PC speaker#Beep
[
link quebrado
: seção inválida]
.
Veja também
The TTY demystified – Linus Åkesson