O que é um TTY no Linux? (e como usar o comando tty)
O que faz o tty
comando fazer? Ele imprime o nome do terminal que você está usando. TTY significa “teletipo”. Qual é a história por trás do nome do comando? Isso exige um pouco mais de explicação.
Teleimpressoras de 1800
Nas décadas de 1830 e 1840, máquinas conhecidas como teleimpressoras foram desenvolvidas. Essas máquinas podiam enviar mensagens digitadas “pelo fio” para locais distantes. As mensagens foram digitadas pelo remetente em uma espécie de teclado. Eles foram impressos em papel na extremidade de recebimento. Eles foram um passo evolutivo na telegrafia, que antes contava com Morse e códigos semelhantes.
As mensagens foram codificadas e transmitidas, depois recebidas, decodificadas e impressas. Várias técnicas foram usadas para codificar e decodificar as mensagens. O mais famoso e um dos mais prolíficos foi patenteado em 1874 por Émile Baudot, que deu nome à taxa de transmissão. Seu esquema de codificação de caracteres era anterior ao ASCII em 89 anos.
A codificação de Baudot eventualmente se tornou a coisa mais próxima de um padrão na codificação de teleimpressora e foi adotada pela maioria dos fabricantes. O design de hardware original de Baudot tinha apenas cinco teclas, semelhantes às teclas de piano. O operador era obrigado a aprender uma combinação de teclas específica para cada letra. Eventualmente, o sistema de codificação Baudot foi acoplado a um layout de teclado tradicional.
Para marcar esse avanço, as máquinas foram chamadas de teletipoaspiradoras. Isso foi abreviado para teletipos e, eventualmente, para TTYs. Então é daí que tiramos a sigla TTY, mas o que telegrafia tem a ver com computação?
ASCII e Telex
Quando o ASCII chegou em 1963, foi adotado pelos fabricantes de teletipos. Apesar da invenção e do uso generalizado do telefone, os teletipos ainda estavam fortes.
Telex era uma rede mundial de teletipos que permitia o envio de mensagens escritas para todo o mundo. Eles foram o principal meio de transmissão de mensagens escritas desde a Segunda Guerra Mundial até o boom dos aparelhos de fax na década de 1980.
Os computadores também estavam evoluindo. Eles estavam se tornando capazes de interagir com os usuários em tempo real e de oferecer suporte a vários usuários. O antigo método de trabalho em lote tornou-se insuficiente. As pessoas não queriam esperar 24 horas ou mais pelos resultados. Fazer pilhas de cartões perfurados e esperar pelos resultados durante a noite não era mais aceitável.
As pessoas precisavam de um dispositivo que lhes permitisse inserir instruções e receber os resultados. As pessoas queriam eficiência.
O teletipo reaproveitado
O teletipo era o candidato perfeito como dispositivo de entrada / saída. Afinal, era um dispositivo projetado para permitir que mensagens fossem digitadas, codificadas, enviadas, recebidas, decodificadas e impressas.
O que importava para o teletipo se o dispositivo na outra extremidade da conexão não era outro teletipo? Contanto que falasse a mesma linguagem de codificação e pudesse receber e enviar mensagens de volta, o teletipo era feliz.
E, claro, ele usava um teclado mais ou menos padrão.
Teletipos emulados por hardware
Os teletipos tornaram-se o meio padrão de interação com os grandes computadores mini e mainframe daquela época.
Eles foram eventualmente substituídos por dispositivos que emulado aquelas máquinas eletromecânicas que usam eletrônicos. Estes tinham tubos de raios catódicos (CRTs) em vez de rolos de papel. Eles não tremeram ao entregar as respostas do computador. Eles permitiam funcionalidades até então impossíveis, como mover o cursor pela tela, limpar a tela, colocar o texto em negrito e assim por diante.
O DEC VT05 foi um dos primeiros exemplos de teletipo virtual e um ancestral do famoso DEC VT100. Milhões de DEC VT100s foram vendidos.
Teletipos emulados por software
No ambiente de área de trabalho do Linux e outros sistemas operacionais semelhantes ao Unix, como macOS, a janela do terminal e aplicativos como x-term e Konsole são exemplos de teletipos virtuais. Mas eles são emulados inteiramente no software. Eles são chamados de pseudo-teletipos. Isso foi abreviado para PTS.
E é aí que tty
entra.
O que o tty pode nos dizer?
No Linux, existe um multiplexador de pseudo-teletipo que controla as conexões de todos os pseudo-teletipos de janela de terminal (PTS). O multiplexador é o mestre e os PTS são os escravos. O multiplexador é endereçado pelo kernel por meio do arquivo de dispositivo localizado em / dev / ptmx.
O tty
O comando imprimirá o nome do arquivo de dispositivo que seu escravo de pseudo-teletipo está usando para fazer interface com o mestre. E esse, efetivamente, é o número de sua janela de terminal.
Vamos ver o que tty
relatórios para nossa janela de terminal:
tty
A resposta mostra que estamos conectados ao arquivo do dispositivo em / dev / pts / 0.
Nossa janela de terminal, que é uma emulação de software de um teletipo (TTY), faz a interface com o multiplexador de pseudo-teletipo como um pseudo-teletipo (PTS). E acontece que é o número zero.
A Opção Silenciosa
O -s
opção (silenciosa) causa tty
para não gerar saída.
tty -s
Ele produz um valor de saída, no entanto:
- 0: se a entrada padrão vem de um dispositivo TTY, emulado ou físico.
- 1: se a entrada padrão não vier de um dispositivo TTY.
- 2: Erro de sintaxe, parâmetros de linha de comando incorretos foram usados.
- 3: Ocorreu um erro de gravação.
É provável que isso seja mais útil em scripts Bash. Mas, mesmo na linha de comando, podemos demonstrar como ter um comando executado apenas se você estiver executando em uma janela de terminal (uma sessão TTY ou PTS).
tty -s && echo "In a tty"
Como estamos executando em uma sessão TTY, nosso código de saída é 0 e o segundo comando é executado.
O que comanda
Outros comandos podem revelar seu número TTY. O quem
comando irá listar informações de todos os usuários conectados, incluindo você.
Alec e Mary estão remotamente conectados ao computador Linux. Eles estão conectados ao PTS um e dois.
O usuário dave é mostrado como conectado a “: 0”.
Isso representa a tela e o teclado fisicamente conectados ao computador. Mesmo que a tela e o teclado sejam dispositivos de hardware, eles ainda estão conectados ao multiplexador por meio de um arquivo de dispositivo. tty
revela que é / dev / pts / 2.
quem
tty
RELACIONADO:Como determinar a conta de usuário atual no Linux
Acessando um TTY
Você pode acessar uma sessão TTY em tela inteira mantendo pressionadas as teclas Ctrl + Alt e pressionando uma das teclas de função.
Ctrl + Alt + F3 trará o prompt de login de tty3.
Se você entrar e emitir o tty
comando, você verá que está conectado a / dev / tty3.
Este não é um pseudo-teletipo (emulado no software); é um teletipo virtual (emulado em hardware). Ele está usando a tela e o teclado conectados ao seu computador, para emular um teletipo virtual como o DEC VT100 costumava fazer.
Você pode usar as teclas de função Ctrl + Alt com as teclas de função F3 a F6 e ter quatro sessões TTY abertas, se desejar. Por exemplo, você pode estar logado em tty3 e pressionar Ctrl + Alt + F6 para ir para tty6.
Para voltar ao ambiente gráfico da área de trabalho, pressione Ctrl + Alt + F2.
Pressionar Ctrl + Alt + F1 o levará de volta ao prompt de login da sessão da área de trabalho gráfica.
Ao mesmo tempo, Ctrl + Alt + F1 até Ctrl + Alt + F6 abriria os consoles TTY de tela inteira e Ctrl + Alt + F7 faria com que você retornasse ao seu ambiente de área de trabalho gráfico. Se você estiver executando uma distribuição Linux mais antiga, pode ser assim que seu sistema se comporta.
Isso foi testado em atual versões do Manjaro, Ubuntu e Fedora e todos eles se comportaram assim:
- Ctrl + Alt + F1: Retorna à tela de login do ambiente gráfico da área de trabalho.
- Ctrl + Alt + F2: Retorna ao ambiente gráfico da área de trabalho.
- Ctrl + Alt + F3: Abre TTY 3.
- Ctrl + Alt + F4: Abre TTY 4.
- Ctrl + Alt + F5: Abre o TTY 5.
- Ctrl + Alt + F6: Abre TTY 6.
Ter acesso a esses consoles de tela inteira permite que as pessoas que usam instalações do Linux apenas por linha de comando - e muitos servidores Linux são configurados dessa forma - tenham vários consoles disponíveis.
Você já trabalhou em uma máquina Linux com um ambiente de área de trabalho gráfico e alguma coisa fez sua sessão travar? Agora você pode pular para uma das sessões do console TTY para tentar corrigir a situação.
Você pode usar principal
e ps
para tentar identificar o aplicativo com falha, use mate
para encerrá-lo, ou apenas usar desligar
para tentar encerrar tão normalmente quanto o estado do computador permitir.
RELACIONADO:Como interromper processos do terminal Linux
Três Cartinhas com Muita História
O tty
O comando recebeu o nome de um dispositivo do final de 1800, apareceu no Unix em 1971 e faz parte do Linux e de sistemas operacionais semelhantes ao Unix até hoje.
O rapazinho tem uma história e tanto atrás de si.