Qu’est-ce qu’un TTY sous Linux? (et comment utiliser la commande tty)

Que fait la commande tty? Il imprime le nom du terminal que vous utilisez. TTY signifie «téléscripteur». Quelle est l’histoire derrière le nom de la commande? Cela demande un peu plus d’explications.

Télécimprimeurs des années 1800

Dans les années 1830 et 1840, des machines appelées téléimprimeurs ont été développés. Ces machines pourraient envoyer des messages dactylographiés «sur le fil» à des endroits éloignés. Les messages ont été tapés par l’expéditeur sur une sorte de clavier. Ils ont été imprimés sur papier à la réception. Ils étaient une étape évolutive dans télégraphie, qui reposait auparavant sur Morse et codes similaires.

Les messages étaient codés et transmis, puis reçus, décodés et imprimés. Il y avait plusieurs techniques utilisées pour encoder et décoder les messages. Le plus célèbre et l’un des plus prolifiques a été breveté en 1874 par Émile Baudot, pour qui le débit en bauds est appelé. Son schéma d’encodage de caractères est pré-daté ASCII de 89 ans.

L’encodage de Baudot est finalement devenu la chose la plus proche d’une norme d’encodage de téléimprimeur, et il a été adopté par la plupart des fabricants. La conception matérielle originale de Baudot n’avait que cinq touches, similaires aux touches de piano. L’opérateur devait apprendre une combinaison de touches particulière pour chaque lettre. Finalement, le système d’encodage Baudot a été couplé à une disposition de clavier traditionnelle.

Pour marquer cette avancée, les machines ont été nommées téléscripteurs. Cela a été raccourci aux télétypes et finalement aux ATS. C’est donc là que nous obtenons le acronyme TTY, mais qu’est-ce que la télégraphie a à voir avec l’informatique?

ASCII et télex

Lorsque l’ASCII est arrivé en 1963, il a été adopté par les fabricants de téléscripteurs. En dépit de l’invention et de l’utilisation répandue du téléphone, les télétypes fonctionnaient toujours très bien.

Télex était un réseau mondial de télétypes qui permettait d’envoyer des messages écrits dans le monde entier. Ils ont été le principal moyen de transmettre des messages écrits dans la période qui a suivi la Seconde Guerre mondiale jusqu’à la boom de télécopieur des années 1980.

  Voici comment fonctionnent les captures d'écran sur Android

Les ordinateurs évoluent également. Ils devenaient capables d’interagir avec les utilisateurs en temps réel et de prendre en charge plusieurs utilisateurs. L’ancienne méthode de travail par lots est devenue insuffisante. Les gens ne voulaient pas attendre 24 heures ou plus pour leurs résultats. Faire des piles de cartes perforées et attendre des résultats pendant la nuit n’était plus acceptable.

Les gens avaient besoin d’un appareil qui leur permettrait de saisir des instructions et de recevoir des résultats. Les gens voulaient de l’efficacité.

Le télétype réutilisé

Le télétype était le candidat idéal comme dispositif d’entrée / sortie. C’était, après tout, un appareil conçu pour permettre aux messages d’être tapés, encodés, envoyés, reçus, décodés et imprimés.

Qu’est-ce que le télétype se souciait si l’appareil à l’autre bout de la connexion n’était pas un autre télétype? Tant qu’il parlait le même langage d’encodage et pouvait recevoir des messages et renvoyer des messages, le télétype était heureux.

Et bien sûr, il utilisait un clavier plus ou moins standard.

Télétypes émulés matériels

Les télétypes sont devenus le moyen par défaut d’interagir avec les grands mini et gros ordinateurs de cette époque.

Ils ont finalement été remplacés par des appareils qui imitaient ces machines électromécaniques utilisant l’électronique. Ceux-ci avaient Tubes à rayons cathodiques (CRT) au lieu de rouleaux de papier. Ils n’ont pas tremblé lors de la livraison des réponses de l’ordinateur. Ils permettaient des fonctionnalités jusqu’ici impossibles, telles que déplacer le curseur sur l’écran, effacer l’écran, mettre du texte en gras, etc.

le DÉC VT05 était un des premiers exemples de télétype virtuel et un ancêtre du célèbre DÉC VT100. Des millions de DEC VT100 ont été vendus.

Télétypes émulés par logiciel

Dans l’environnement de bureau de Linux et d’autres systèmes d’exploitation de type Unix tels que macOS, la fenêtre de terminal et des applications telles que terme x et Konsole sont des exemples de télétypes virtuels. Mais ceux-ci sont entièrement émulés dans le logiciel. Ils sont appelés pseudo-télétypes. Cela a été abrégé en PTS.

Et c’est là que tty entre en jeu.

Que peut nous dire tty?

Sous Linux, il existe un multiplexeur pseudo-télétype qui gère les connexions de tous les pseudo-télétypes de la fenêtre du terminal (PTS). Le multiplexeur est le maître et les PTS sont les esclaves. Le multiplexeur est adressé par le noyau via le fichier de périphérique situé dans / dev / ptmx.

  Comment regarder des films Fast & Furious sur Netflix depuis n'importe où?

La commande tty affichera le nom du fichier de périphérique que votre pseudo-télétype esclave utilise pour s’interfacer avec le maître. Et c’est effectivement le numéro de la fenêtre de votre terminal.

Voyons ce que tty rapporte pour notre fenêtre de terminal:

tty

tty dans une fenêtre de terminal

La réponse montre que nous sommes connectés au fichier de périphérique à / dev / pts / 0.

Notre fenêtre de terminal, qui est une émulation logicielle d’un télétype (TTY), est interfacée avec le multiplexeur pseudo-télétype en tant que pseudo-télétype (PTS). Et il se trouve que c’est le numéro zéro.

L’option silencieuse

L’option -s (silent) fait que tty ne génère aucune sortie.

tty -s

tty -s dans une fenêtre de terminal

Cela produit une valeur de sortie, cependant:

0: si l’entrée standard provient d’un appareil TTY, émulée ou physique.
1: si l’entrée standard ne provient pas d’un appareil TTY.
2: Erreur de syntaxe, des paramètres de ligne de commande incorrects ont été utilisés.
3: Une erreur d’écriture s’est produite.

Ceci est probablement le plus utile dans les scripts Bash. Mais, même sur la ligne de commande, nous pouvons montrer comment faire exécuter une commande uniquement si vous exécutez dans une fenêtre de terminal (une session TTY ou PTS).

tty -s && echo "In a tty"

tty -s && echo

Étant donné que nous exécutons une session TTY, notre code de sortie est 0 et la deuxième commande est exécutée.

Le qui commande

D’autres commandes peuvent révéler votre numéro TTY. La commande who répertorie les informations de tous les utilisateurs connectés, y compris vous-même.

Alec et Mary sont connectés à distance à l’ordinateur Linux. Ils sont connectés aux PTS un et deux.

L’utilisateur dave est indiqué comme étant connecté à «: 0».

Cela représente l’écran et le clavier physiquement connectés à l’ordinateur. Même si l’écran et le clavier sont des périphériques matériels, ils sont toujours connectés au multiplexeur via un fichier de périphérique. tty révèle qu’il s’agit de / dev / pts / 2.

who
tty

who et tty dans une fenêtre de terminal

Accéder à un TTY

Vous pouvez accéder à une session TTY en plein écran en maintenant les touches Ctrl + Alt enfoncées et en appuyant sur l’une des touches de fonction.

Ctrl + Alt + F3 affichera l’invite de connexion de tty3.

  Comment réparer Laisser les applications s'exécuter en arrière-plan Réinitialisation sur Windows 10

console tty3

Si vous vous connectez et exécutez la commande tty, vous verrez que vous êtes connecté à / dev / tty3.

Ce n’est pas un pseudo-télétype (émulé dans un logiciel); c’est un télétype virtuel (émulé dans le matériel). Il utilise l’écran et le clavier connectés à votre ordinateur pour émuler un télétype virtuel comme le faisait le DEC VT100.

Vous pouvez utiliser les touches de fonction Ctrl + Alt avec les touches de fonction F3 à F6 et ouvrir quatre sessions TTY si vous le souhaitez. Par exemple, vous pouvez être connecté à tty3 et appuyer sur Ctrl + Alt + F6 pour accéder à tty6.

console tty6

Pour revenir à votre environnement de bureau graphique, appuyez sur Ctrl + Alt + F2.

Appuyer sur Ctrl + Alt + F1 vous ramènera à l’invite de connexion de votre session de bureau graphique.

À un moment donné, Ctrl + Alt + F1 jusqu’à Ctrl + Alt + F6 ouvrirait les consoles TTY plein écran, et Ctrl + Alt + F7 vous ramènerait à votre environnement de bureau graphique. Si vous exécutez une ancienne distribution Linux, cela peut être la façon dont votre système se comporte.

Cela a été testé sur les versions actuelles de Manjaro, Ubuntu et Fedora et ils se sont tous comportés comme ceci:

Ctrl + Alt + F1: vous renvoie à l’écran de connexion de l’environnement de bureau graphique.
Ctrl + Alt + F2: vous renvoie à l’environnement de bureau graphique.
Ctrl + Alt + F3: ouvre TTY 3.
Ctrl + Alt + F4: ouvre TTY 4.
Ctrl + Alt + F5: ouvre TTY 5.
Ctrl + Alt + F6: ouvre TTY 6.

L’accès à ces consoles plein écran permet aux personnes utilisant uniquement des installations en ligne de commande de Linux – et de nombreux serveurs Linux sont configurés de cette façon – d’avoir plusieurs consoles disponibles.

Avez-vous déjà travaillé sur une machine Linux avec un environnement de bureau graphique et quelque chose a-t-il fait geler votre session? Vous pouvez maintenant accéder à l’une des sessions de la console TTY afin d’essayer de remédier à la situation.

Vous pouvez utiliser top et ps pour essayer d’identifier l’application qui a échoué, puis utiliser kill pour la terminer, ou simplement utiliser shutdown pour essayer de fermer aussi gracieusement que l’état de l’ordinateur le permet.

Trois petites lettres avec beaucoup d’histoire

La commande tty tire son nom d’un périphérique de la fin des années 1800, apparu sous Unix en 1971, et fait encore partie des systèmes d’exploitation de type Linux et Unix à ce jour.

Le petit bonhomme a toute une histoire derrière lui.