O que é um TTY no Linux? (e como usar o comando tty)

O que o comando tty faz? 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 desenvolvidos. 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 em telegrafia, que anteriormente dependia de 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, para quem o taxa de transmissão é nomeado. Seu esquema de codificação de caracteres pré-datado ASCII por 89 anos.

A codificação de Baudot acabou se tornando a coisa mais próxima de um padrão na codificação de teleimpressora e foi adotada pela maioria dos fabricantes. O design original do hardware 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 é aí que obtemos o acrônimo TTY de, 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 no período após a Segunda Guerra Mundial até o boom da máquina de fax da década de 1980.

  As 6 melhores ferramentas de mineração de criptomoedas para Linux

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 mini e mainframes da época.

Eles foram eventualmente substituídos por dispositivos que emulavam essas máquinas eletromecânicas usando a eletrônica. 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 desktop 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-telétipos. Isso foi abreviado para PTS.

E é aí que entra o tty.

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.

  Como criar livros de áudio no Linux com M4Baker

O comando tty 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 quais relatórios tty 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

A opção -s (silenciosa) faz com que tty não gere 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"

tty -s && echo

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 comando who listará informações de todos os usuários conectados, incluindo você.

Alec e Mary estão conectados remotamente 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.

who
tty

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ê logar e emitir o comando tty, verá que está conectado a / dev / tty3.

  Como instalar o Microsoft Visual Studio Code no Linux

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 versões atuais do Manjaro, Ubuntu e Fedora e todos se comportaram da seguinte forma:

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 o TTY 3.
Ctrl + Alt + F4: Abre o TTY 4.
Ctrl + Alt + F5: Abre o TTY 5.
Ctrl + Alt + F6: Abre o 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 top e ps para tentar identificar o aplicativo com falha e, em seguida, usar kill para encerrá-lo, ou apenas usar shutdown para tentar encerrar tão normalmente quanto o estado do computador permitir.

Três Cartinhas com Muita História

O comando tty recebe 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.