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

Máquina de escrever para teletipo
Junho Marie Sobrito / Shutterstock.com

O que o ttycomando 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 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. Havia várias técnicas 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 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 teletipoeiras. Isso foi abreviado para teletipos e, eventualmente, para TTYs. Então é daí que tiramos o acrônimo  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 eram 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.

Recomendado:  Como alterar o aplicativo de senha de preenchimento automático padrão no iPhone e iPad

Os computadores também estavam evoluindo. Eles estavam se tornando capazes de interagir com os usuários em tempo real e 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 enviados. 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 as 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 se tornaram 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 o macOS, a janela do terminal e aplicativos como o x-term e o 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 ttyentra.

O que o tty pode nos dizer?

No Linux, há 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.

Recomendado:  Como adicionar e gerenciar perfis de vídeo Amazon Prime

O ttycomando 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 ttyrelatórios para nossa janela de terminal:

tty

tty em uma janela de terminal

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 -sopção (silenciosa) faz ttycom que não gere saída.

tty -s

tty -s em uma janela de terminal

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.

Isso provavelmente será 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 "In a tty" em uma janela de terminal

Como estamos executando em uma sessão TTY, nosso código de saída é 0 e o segundo comando é executado.

"In a tty" em uma janela de terminal

O que comanda

Outros comandos podem revelar seu número TTY. O whocomando 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. ttyrevela que é / dev / pts / 2.

Who
tty

quem e tty em uma janela de terminal

Acessando um TTY

Você pode acessar uma sessão TTY de 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.

console tty3

Se você logar e emitir o ttycomando, verá que está conectado a / dev / tty3.

Recomendado:  Como fazer com que os aplicativos do iPhone sempre solicitem acesso ao local

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.

console 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 retornaria 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:

  1. Ctrl + Alt + F1 : Retorna à tela de login do ambiente gráfico da área de trabalho.
  2. Ctrl + Alt + F2 : retorna ao ambiente gráfico da área de trabalho.
  3. Ctrl + Alt + F3 : Abre o TTY 3.
  4. Ctrl + Alt + F4 : Abre o TTY 4.
  5. Ctrl + Alt + F5 : Abre o TTY 5.
  6. 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 algo fez com que sua sessão travasse? Agora você pode pular para uma das sessões do console TTY para tentar corrigir a situação.

Você pode usar tope pspara tentar identificar o aplicativo com falha e, em seguida kill, usar shutdownpara encerrá- lo ou apenas usar para tentar encerrar tão normalmente quanto o estado do computador permitir.

Três Cartinhas com Muita História

O ttycomando 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.