Cosa fa il comando tty di Linux? Visualizza il nome del terminale che stai utilizzando.
Origine di Linux tty
Qual è l’origine del termine “tty”? Beh, è un po’ più difficile da spiegare…
Telescriventi di un tempo
Durante gli anni 1830 e 1840 furono sviluppate macchine chiamate telescriventi. Questi dispositivi potrebbero trasmettere messaggi digitati “down the wire” in altri luoghi. Il mittente ha utilizzato un dispositivo simile a una tastiera per digitare il messaggio ed è stato stampato su carta all’estremità ricevente. Erano un passo evolutivo nella telegrafia, che in precedenza era stata affidata a Morse.
I messaggi sono stati crittografati e inviati, quindi decodificati e stampati. Sono stati codificati utilizzando una varietà di tecniche. Il più famoso, oltre che uno dei più prolifici, fu brevettato nel 1874 da Émile Baudot, da cui prende il nome il “baud rate”. Il suo metodo di codifica dei caratteri ha preceduto ASCII di 89 anni.
La codifica di Baudot alla fine è diventata lo standard de facto per la codifica delle telescriventi ed è stata adottata dalla maggior parte dei produttori. Il design hardware originale di Baudot consisteva in soli cinque tasti, simili al pianoforte. Per ogni lettera, l’operatore doveva memorizzare una specifica sequenza di tasti. Il sistema di codifica Baudot è stato successivamente collegato a un layout di tastiera tradizionale.
Per commemorare quel progresso, le macchine furono soprannominate telescriventi. La parola teletipi è stata abbreviata in TTY, che alla fine è diventato il suo nome comune. Allora, qual è il problema con la telegrafia e i computer?
ASCII e Telex
I produttori di telescriventi lo adottarono nel 1963 e divenne lo standard del settore per la trasmissione di testo. Nonostante l’invenzione e l’uso diffuso del telefono, le telescriventi erano ancora prevalenti.
Telex era una rete di telescrivente mondiale che consentiva l’invio di comunicazioni scritte in tutto il mondo. È stato il principale mezzo per inviare informazioni scritte durante il secondo dopoguerra fino al boom dei fax negli anni ’80.
Anche i computer stavano migliorando. Sono stati in grado di interagire con gli utenti finali in tempo reale e supportare molte persone. Il vecchio approccio al lavoro in batch si è rivelato 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.
L’avvento dei computer e lo sviluppo di una nuova tecnologia ha creato la necessità di un software che consenta agli utenti di inviare e ricevere dati. Volevamo efficienza.
La telescrivente riproposta
La telescrivente era un candidato ideale per un dispositivo di input/output perché era una macchina che permetteva di digitare, codificare, trasmettere, ricevere, decodificare e stampare messaggi.
Al telescrivente non importava se il dispositivo all’altra estremità del collegamento non era un altro telescrivente. La telescriveva andava bene fintanto che poteva parlare lo stesso linguaggio di codifica. Utilizzava una tastiera più o meno standard con un layout leggermente modificato.
Teletipi emulati hardware
I telescriventi divennero il modo de facto per interagire con i grandi computer mini e mainframe di quell’epoca, sostituendo le macchine telegrafiche.
Questi sono stati infine soppiantati da dispositivi che li simulavano utilizzando l’elettronica, con tubi a raggi catodici (CRT) invece di rotoli di carta. Non tremavano mentre consegnavano le risposte dal computer. Hanno abilitato funzionalità precedentemente impossibili come spostare il cursore sullo schermo, cancellare lo schermo e testo in grassettotra le altre cose.
Il DEC VT05 è stato uno dei primi telescriventi virtuali e il suo discendente è il famoso DEC VT100. Il DEC VT100 ha venduto milioni di unità.
Telescriventi emulati da software
La finestra del terminale e applicazioni come x-term e Konsole sono teletipi virtuali nell’ambiente desktop Linux e altri sistemi operativi simili a Unix, come macOS. Tuttavia, sono interamente simulati. Si chiamano telescriventi falsi. L’acronimo è stato abbreviato in PTS.
Ed è qui che entra in gioco il comando tty di Linux.
A proposito di MacOS, ti piacerebbe installare Linux sul tuo iPad?
Cosa puoi fare su Linux?
C’è un “multiplexor pseudo-teletipo” in Linux che gestisce tutte le connessioni PTS della finestra del terminale. Il master è il multiplexor e i PTS sono i suoi slave. Il kernel comunica con il multiplexor tramite il suo file di dispositivo in /dev/ptmx
Il comando tty stamperà il nome del file del dispositivo che il tuo pseudo-teletipo slave sta usando per interfacciarsi con il master. E questo, in effetti, è il numero della finestra del tuo terminale.
Vediamo cosa riporta tty di Linux:
tty
La risposta mostra che siamo connessi al file del dispositivo in /dev/pts/0.
La finestra del terminale, che è un’imitazione software di una telescrivente, è collegata allo pseudo multiplexor della telescrivente come PTS. Ed è zero.
L’opzione silenziosa
L’opzione -s (silenziosa) fa sì che tty non generi alcun output.
tty -s
Produce un valore di uscita se:
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.
Questo sarà molto utile negli script Bash. Tuttavia, anche dalla riga di comando, potremmo mostrarti come eseguire un comando se ti trovi in una finestra di terminale (una sessione TTY o PTS).
tty -s && echo "In a tty"
Poiché siamo in esecuzione in una sessione TTY, il nostro codice di uscita è 0 e viene eseguito il secondo comando.
Correlati: è necessario controllare questi 189 comandi del terminale Linux
Il comando chi
Il comando “chi” elencherà tutti gli utenti che hanno effettuato l’accesso. User2 e User3 sono collegati in remoto al computer Linux. Sono collegati a PTS uno e due. Utente1 viene visualizzato come connesso a “:0”. Il file del dispositivo dello schermo e della tastiera è collegato al multiplexor del computer. Sebbene lo schermo e la tastiera siano dispositivi hardware, sono comunque collegati al multiplexor tramite un file del dispositivo. tty indica che è /dev/pts/2.
who
Accesso a un TTY
Tenendo premuti i tasti Ctrl+Alt e premendo uno dei tasti funzione, è possibile accedere a una sessione TTY a schermo intero. Ctrl+Alt+F3 farà apparire il prompt di login di tty3. Se accedi ed emetti il comando tty, vedrai che sei connesso a /dev/tty3.
Questa non è una telescrivente falsa (emulata nel software); è una telescrivente virtuale (emulata nell’hardware). Sta emulando una telescrivente virtuale, come la DEC VT100, con lo schermo e la tastiera collegati al tuo computer. Se lo desideri, puoi stabilire quattro sessioni TTY Linux utilizzando i tasti funzione con la combinazione Ctrl+Alt. Se selezioni questa opzione, ad esempio, e sei connesso a tty3, premi Ctrl+Alt+F6 per andare a tty6.
Per tornare al tuo ambiente desktop grafico, premi Ctrl+Alt+F2. Se stai utilizzando un ambiente desktop grafico, premendo Ctrl+Alt+F1 tornerai alla schermata di accesso della sessione del desktop grafico. Le console TTY Linux a schermo intero sono accessibili contemporaneamente utilizzando i tasti da Ctrl+Alt+F1 a Ctrl+Alt+F6 e il ritorno all’ambiente desktop grafico è possibile tramite Ctrl+Alt+F7. Se stai usando una vecchia distribuzione Linux, questo potrebbe essere il modo in cui funziona per te.
Questo è stato testato sulle versioni attuali di Manjaro, Ubuntu e Fedora e si sono comportati tutti in questo modo:
Ctrl+Alt+F1: riporta alla schermata di accesso dell’ambiente desktop grafico.
Ctrl+Alt+F2: riporta 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 agli utenti che utilizzano installazioni Linux solo da riga di comando e molti server Linux sono configurati in questo modo, per avere numerose console accessibili.
Hai mai lavorato su un sistema Linux con un’interfaccia utente grafica e qualcosa ha bloccato la tua sessione? Ora puoi passare a una delle sessioni della console TTY per tentare di risolvere il problema.
Utilizzo top
e ps
per cercare l’applicazione non riuscita, quindi terminarla con kill o semplicemente chiuderla il più delicatamente possibile.
Le 3 piccole lettere che hanno una lunga storia
Il comando tty di Linux prende il nome da un dispositivo obsoleto della fine del 1800, utilizzato per la prima volta in Unix nel 1971, e fa ancora parte di Linux e di altri sistemi operativi simili a Unix. Questo piccoletto ha una bella storia alle spalle.