Cos’è un TTY su Linux? (e come usare il comando tty)

Cosa fa il comando tty? Stampa il nome del terminale che stai utilizzando. TTY sta per “teletypewriter”. Qual è la storia dietro il nome del comando? Ci vuole un po ‘più di spiegazione.

Teleprinters dal 1800

Negli anni 1830 e 1840, le macchine note come telescriventi erano sviluppati. Queste macchine potrebbero inviare messaggi digitati “lungo il filo” a luoghi distanti. I messaggi venivano digitati dal mittente su una sorta di tastiera. Sono stati stampati su carta all’estremità ricevente. Erano un passo evolutivo telegrafia, su cui in precedenza si era basata Morse e codici simili.

I messaggi sono stati codificati e trasmessi, quindi ricevuti, decodificati e stampati. C’erano diverse tecniche utilizzate per codificare e decodificare i messaggi. Il più famoso, e uno dei più prolifici, fu brevettato nel 1874 da Émile Baudot, per il quale il velocità di trasmissione è chiamato. Il suo schema di codifica dei caratteri era precedente ASCII di 89 anni.

La codifica di Baudot alla fine è diventata la cosa più vicina a uno standard nella codifica della telescrivente, ed è stata adottata dalla maggior parte dei produttori. Il design hardware originale di Baudot aveva solo cinque tasti, simili ai tasti del pianoforte. L’operatore doveva imparare una particolare combinazione di tasti per ogni lettera. Alla fine, il sistema di codifica Baudot è stato accoppiato a un layout di tastiera tradizionale.

Per sottolineare questo progresso, le macchine furono chiamate telescriventi. Questo è stato abbreviato in telescriventi e infine in TTY. Quindi è qui che otteniamo il file acronimo TTY da, ma cosa c’entra la telegrafia con l’informatica?

ASCII e Telex

Quando ASCII arrivò nel 1963, fu adottato dai produttori di telescriventi. Nonostante l’invenzione e l’uso diffuso del telefono, i telescriventi andavano ancora forte.

Telex era una rete mondiale di telescriventi che consentiva di inviare messaggi scritti in tutto il mondo. Erano i principali mezzi di trasmissione dei messaggi scritti nel periodo successivo alla seconda guerra mondiale fino al boom del fax degli anni ’80.

Anche i computer si stavano evolvendo. Stavano diventando capaci di interagire con gli utenti in tempo reale e di supportare più utenti. Il vecchio metodo di lavoro batch è diventato insufficiente. Le persone non volevano aspettare 24 ore o più per i loro risultati. Fare pile di schede perforate e aspettare durante la notte i risultati non era più accettabile.

Le persone avevano bisogno di un dispositivo che permettesse loro di inserire le istruzioni e di ricevere i risultati. La gente voleva efficienza.

Il telescrivente riproposto

La telescrivente era il candidato perfetto come dispositivo di input / output. Dopo tutto, era un dispositivo progettato per consentire ai messaggi di essere digitati, codificati, inviati, ricevuti, decodificati e stampati.

Cosa importava alla telescrivente se il dispositivo all’altra estremità della connessione non era un’altra telescrivente? Finché parlava la stessa lingua di codifica e poteva ricevere messaggi e rispedire messaggi, la telescrivente era felice.

E, naturalmente, utilizzava una tastiera più o meno standard.

Teletipi emulati dall’hardware

I telescriventi divennero il mezzo predefinito per interagire con i grandi computer mini e mainframe di quell’epoca.

Alla fine furono sostituiti da dispositivi che emulavano quelle macchine elettromeccaniche usando l’elettronica. Questi avevano Tubi a raggi catodici (CRT) invece dei rotoli di carta. Non hanno tremato durante la consegna delle risposte dal computer. Consentivano funzionalità fino a quel momento impossibili, come spostare il cursore sullo schermo, cancellare lo schermo, mettere in grassetto il testo e così via.

Il DEC VT05 è stato uno dei primi esempi di telescrivente virtuale e un antenato del famoso DEC VT100. Sono stati venduti milioni di DEC VT100.

Teletipi emulati dal software

Nell’ambiente desktop di Linux e altri sistemi operativi simili a Unix come macOS, la finestra del terminale e applicazioni come x-term e Konsole sono esempi di telescriventi virtuali. Ma questi sono emulati interamente nel software. Si chiamano pseudo-telescriventi. Questo è stato abbreviato in PTS.

Ed è qui che entra in gioco tty.

Cosa può dirci tty?

In Linux, esiste un multiplexor pseudo-telescrivente che gestisce le connessioni da tutti gli pseudo-telescriventi della finestra del terminale (PTS). Il multiplexor è il master e il PTS sono gli schiavi. Il multiplexor viene indirizzato dal kernel tramite il file del dispositivo situato in / dev / ptmx.

Il comando tty stamperà il nome del file del dispositivo che il tuo slave pseudo-telescrivente sta usando per interfacciarsi con il master. E questo, in effetti, è il numero della finestra del tuo terminale.

Vediamo cosa riporta tty per la nostra finestra di terminale:

tty

La risposta mostra che siamo connessi al file del dispositivo in / dev / pts / 0.

La nostra finestra di terminale, che è un’emulazione software di una telescrivente (TTY), è interfacciata al multiplexor pseudo-telescrivente come pseudo-telescrivente (PTS). E sembra essere il numero zero.

L’opzione silenziosa

L’opzione -s (silenzioso) fa sì che tty non generi alcun output.

tty -s

tty -s in una finestra di terminale

Tuttavia, produce un valore di uscita:

0: se lo standard input proviene da un dispositivo TTY, emulato o fisico.
1: se lo standard input non proviene da un dispositivo TTY.
2: errore di sintassi, sono stati utilizzati parametri della riga di comando errati.
3: si è verificato un errore di scrittura.

È probabile che sia molto utile nello scripting Bash. Ma, anche sulla riga di comando, possiamo dimostrare come eseguire un comando solo se stai eseguendo in una finestra di terminale (una sessione TTY o PTS).

tty -s && echo "In a tty"

tty -s && echo

Poiché siamo in esecuzione in una sessione TTY, il nostro codice di uscita è 0 e il secondo comando viene eseguito.

Il comando who

Altri comandi possono rivelare il tuo numero TTY. Il comando who elencherà le informazioni per tutti gli utenti registrati, incluso te stesso.

Alec e Mary sono collegati in remoto al computer Linux. Sono collegati a PTS uno e due.

L’utente dave viene mostrato come connesso a “: 0”.

Rappresenta lo schermo e la tastiera fisicamente collegati al computer. Anche se lo schermo e la tastiera sono dispositivi hardware, sono comunque collegati al multiplexor tramite un file di dispositivo. tty rivela che è / dev / pts / 2.

who
tty

who e tty in una finestra di terminale

Accesso a un TTY

È possibile accedere a una sessione TTY a schermo intero tenendo premuti i tasti Ctrl + Alt e premendo uno dei tasti funzione.

Ctrl + Alt + F3 farà apparire il prompt di accesso di tty3.

console tty3

Se accedi ed esegui il comando tty, vedrai che sei connesso a / dev / tty3.

Questo non è uno pseudo-telescrivente (emulato nel software); è una telescrivente virtuale (emulata nell’hardware). Utilizza lo schermo e la tastiera collegati al computer per emulare una telescrivente virtuale come faceva il DEC VT100.

Puoi usare i tasti funzione Ctrl + Alt con i tasti funzione da F3 a F6 e avere quattro sessioni TTY aperte se lo desideri. Ad esempio, potresti essere loggato a tty3 e premere Ctrl + Alt + F6 per andare a tty6.

console tty6

Per tornare al tuo ambiente desktop grafico, premi Ctrl + Alt + F2.

Premendo Ctrl + Alt + F1 tornerai al prompt di accesso della sessione del desktop grafico.

Un tempo, da Ctrl + Alt + F1 a Ctrl + Alt + F6 si aprivano le console TTY a schermo intero e Ctrl + Alt + F7 ti riportava al tuo ambiente desktop grafico. Se stai eseguendo una vecchia distribuzione Linux, questo potrebbe essere il modo in cui si comporta il tuo sistema.

Questo è stato testato sulle attuali versioni di Manjaro, Ubuntu e Fedora e si sono comportati tutti in questo modo:

Ctrl + Alt + F1: torna alla schermata di accesso all’ambiente desktop grafico.
Ctrl + Alt + F2: torna all’ambiente desktop grafico.
Ctrl + Alt + F3: apre TTY 3.
Ctrl + Alt + F4: apre TTY 4.
Ctrl + Alt + F5: apre TTY 5.
Ctrl + Alt + F6: apre TTY 6.

L’accesso a queste console a schermo intero consente alle persone che utilizzano installazioni Linux solo dalla riga di comando, e molti server Linux sono configurati in questo modo, di avere più console disponibili.

Hai mai lavorato su una macchina Linux con un ambiente desktop grafico e qualcosa ha causato il blocco della tua sessione? Ora puoi passare a una delle sessioni della console TTY in modo da poter provare a correggere la situazione.

Puoi usare top e ps per provare a identificare l’applicazione fallita, quindi usare kill per terminarla, o semplicemente usare shutdown per provare a chiuderla con la grazia consentita dallo stato del computer.

Tre piccole lettere con molta storia

Il comando tty prende il nome da un dispositivo della fine del 1800, apparso in Unix nel 1971 e fa parte dei sistemi operativi Linux e Unix fino ad oggi.

Il piccoletto ha una bella storia alle spalle.