Τι είναι το TTY στο Linux; (και Πώς να χρησιμοποιήσετε την εντολή tty)

Τι κάνει η εντολή tty; Εκτυπώνει το όνομα του τερματικού που χρησιμοποιείτε. Το TTY σημαίνει “τηλετυπογράφος”. Ποια είναι η ιστορία πίσω από το όνομα της εντολής; Αυτό θέλει λίγο περισσότερη εξήγηση.

Τηλετυπωτές Από το 1800

Στη δεκαετία του 1830 και του 1840, οι μηχανές γνωστές ως τηλετυπωτές αναπτύχθηκαν. Αυτά τα μηχανήματα θα μπορούσαν να στείλουν δακτυλογραφημένα μηνύματα “κάτω από το καλώδιο” σε απομακρυσμένες τοποθεσίες. Τα μηνύματα πληκτρολογήθηκαν από τον αποστολέα σε ένα είδος πληκτρολογίου. Τυπώθηκαν σε χαρτί στο άκρο παραλαβής. Ήταν ένα εξελικτικό βήμα τηλεγραφία, που είχε προηγουμένως στηριχθεί μορς και παρόμοιους κωδικούς.

Τα μηνύματα κωδικοποιήθηκαν και μεταδόθηκαν, στη συνέχεια ελήφθησαν, αποκωδικοποιήθηκαν και εκτυπώθηκαν. Χρησιμοποιήθηκαν διάφορες τεχνικές για την κωδικοποίηση και την αποκωδικοποίηση των μηνυμάτων. Το πιο διάσημο και ένα από τα πιο παραγωγικά, κατοχυρώθηκε με δίπλωμα ευρεσιτεχνίας το 1874 από Émile Baudot, για τους οποίους το ρυθμός baud ονομάζεται. Το σχήμα κωδικοποίησης των χαρακτήρων του ήταν παλιό ASCII στα 89 χρόνια.

Η κωδικοποίηση του Baudot έγινε τελικά ό,τι πιο κοντινό σε ένα πρότυπο στην κωδικοποίηση τηλετυπωτή, και υιοθετήθηκε από τους περισσότερους κατασκευαστές. Το αρχικό σχέδιο υλικού του Baudot είχε μόνο πέντε πλήκτρα, παρόμοια με τα πλήκτρα του πιάνου. Ο χειριστής έπρεπε να μάθει έναν συγκεκριμένο συνδυασμό πλήκτρων για κάθε γράμμα. Τελικά, το σύστημα κωδικοποίησης Baudot συνδυάστηκε με μια παραδοσιακή διάταξη πληκτρολογίου.

Για να σηματοδοτήσει αυτή την πρόοδο, οι μηχανές ονομάστηκαν τηλεγραφομηχανές. Αυτό συντομεύτηκε σε τηλετύπους και τελικά σε TTY. Οπότε εκεί καταλαβαίνουμε αρκτικόλεξο TTY από, αλλά τι σχέση έχει η τηλεγραφία με τους υπολογιστές;

ASCII και Telex

Όταν το ASCII έφτασε το 1963, υιοθετήθηκε από τους κατασκευαστές τηλετύπου. Παρά την εφεύρεση και την ευρεία χρήση του τηλεφώνου, οι τηλετύποι εξακολουθούσαν να είναι ισχυροί.

Τέλεξ ήταν ένα παγκόσμιο δίκτυο τηλετύπων που επέτρεπε την αποστολή γραπτών μηνυμάτων σε όλο τον κόσμο. Αποτελούσαν το κύριο μέσο μετάδοσης γραπτών μηνυμάτων κατά την περίοδο μετά τον Β’ Παγκόσμιο Πόλεμο έως το μπουμ μηχανής φαξ της δεκαετίας του 1980.

  Πώς να παίξετε το Crusader Kings II στο Linux

Οι υπολογιστές εξελίχθηκαν επίσης. Έγιναν ικανοί να αλληλεπιδρούν με τους χρήστες σε πραγματικό χρόνο και να υποστηρίζουν πολλούς χρήστες. Η παλιά μέθοδος εργασίας κατά παρτίδες έγινε ανεπαρκής. Οι άνθρωποι δεν ήθελαν να περιμένουν 24 ώρες ή περισσότερο για τα αποτελέσματά τους. Το να φτιάχνεις στοίβες από διάτρητα φύλλα και να περιμένεις μια νύχτα για αποτελέσματα δεν ήταν πλέον αποδεκτό.

Οι άνθρωποι χρειάζονταν μια συσκευή που θα τους επέτρεπε να εισάγουν οδηγίες και να τους αποστέλλονται τα αποτελέσματα. Ο κόσμος ήθελε αποτελεσματικότητα.

The Teletype Repurposed

Ο τηλετύπος ήταν ο τέλειος υποψήφιος ως συσκευή εισόδου/εξόδου. Ήταν, τελικά, μια συσκευή σχεδιασμένη για να επιτρέπει την πληκτρολόγηση, την κωδικοποίηση, την αποστολή, τη λήψη, την αποκωδικοποίηση και την εκτύπωση των μηνυμάτων.

Τι ένοιαζε ο τηλετύπος αν η συσκευή στο άλλο άκρο της σύνδεσης δεν ήταν άλλος τηλετύπος; Όσο μιλούσε την ίδια γλώσσα κωδικοποίησης και μπορούσε να λαμβάνει μηνύματα και να στέλνει μηνύματα πίσω, ο τηλετύπος ήταν χαρούμενος.

Και φυσικά, χρησιμοποίησε ένα περισσότερο ή λιγότερο τυπικό πληκτρολόγιο.

Τηλέτυποι εξομοίωσης υλικού

Οι Teletypes έγιναν το προεπιλεγμένο μέσο αλληλεπίδρασης με τους μεγάλους mini και mainframe υπολογιστές εκείνης της εποχής.

Τελικά αντικαταστάθηκαν από συσκευές που μιμούνται αυτές τις ηλεκτρομηχανικές μηχανές που χρησιμοποιούν ηλεκτρονικά. Αυτά είχαν Σωλήνες καθοδικών ακτίνων (CRT) αντί για ρολά χαρτιού. Δεν έτρεμαν όταν έδιναν απαντήσεις από τον υπολογιστή. Επιτρέπουν έως τώρα αδύνατη λειτουργικότητα, όπως η μετακίνηση του δρομέα γύρω από την οθόνη, το καθάρισμα της οθόνης, το έντονο κείμενο και ούτω καθεξής.

ο DEC VT05 ήταν ένα πρώιμο παράδειγμα εικονικού τηλετύπου και πρόγονος του διάσημου DEC VT100. Εκατομμύρια DEC VT100 πωλήθηκαν.

Τηλέτυποι εξομοίωσης λογισμικού

Στο περιβάλλον επιφάνειας εργασίας του Linux και άλλων λειτουργικών συστημάτων που μοιάζουν με Unix, όπως το macOS, το παράθυρο τερματικού και εφαρμογές όπως π.χ. x-term και Κονσόλα είναι παραδείγματα εικονικών τηλετύπων. Αλλά αυτά προσομοιώνονται εξ ολοκλήρου σε λογισμικό. Ονομάζονται ψευδο-τηλέτυποι. Αυτό συντομεύτηκε σε PTS.

Και εκεί μπαίνει το tty.

Τι μπορεί να μας πείτε;

Στο Linux, υπάρχει ένας ψευδο-τηλετυπικός πολυπλέκτης που χειρίζεται τις συνδέσεις από όλους τους ψευδο-τηλετύπους του παραθύρου τερματικού (PTS). Ο πολυπλέκτης είναι ο κύριος και το PTS είναι οι σκλάβοι. Ο πολυπλέκτης διευθυνσιοδοτείται από τον πυρήνα μέσω του αρχείου συσκευής που βρίσκεται στο /dev/ptmx.

  Πώς να εγκαταστήσετε το Teamspeak Client σε Linux

Η εντολή tty θα εκτυπώσει το όνομα του αρχείου της συσκευής που χρησιμοποιεί το slave του ψευδο-τηλετύπου σας για τη διασύνδεση με το master. Και αυτός, ουσιαστικά, είναι ο αριθμός του παραθύρου του τερματικού σας.

Ας δούμε τι αναφορές tty για το παράθυρο του τερματικού μας:

tty

Η απάντηση δείχνει ότι είμαστε συνδεδεμένοι στο αρχείο της συσκευής στο /dev/pts/0.

Το παράθυρο του τερματικού μας, το οποίο είναι μια προσομοίωση λογισμικού ενός τηλετύπου (TTY), διασυνδέεται με τον πολυπλέκτη ψευδο-τηλετύπου ως ψευδο-τηλετύπος (PTS). Και τυχαίνει να είναι ο αριθμός μηδέν.

Η Σιωπηλή Επιλογή

Η επιλογή -s (σιωπηλή) κάνει το tty να μην παράγει έξοδο.

tty -s

Ωστόσο, παράγει μια τιμή εξόδου:

0: εάν η τυπική είσοδος προέρχεται από μια συσκευή TTY, προσομοιωμένη ή φυσική.
1: εάν η τυπική είσοδος δεν προέρχεται από συσκευή TTY.
2: Σφάλμα σύνταξης, χρησιμοποιήθηκαν λανθασμένες παράμετροι γραμμής εντολών.
3: Παρουσιάστηκε σφάλμα εγγραφής.

Αυτό είναι πιθανό να είναι πιο χρήσιμο στο σενάριο του Bash. Όμως, ακόμη και στη γραμμή εντολών, μπορούμε να δείξουμε πώς να εκτελείτε μια εντολή μόνο εάν εκτελείτε σε ένα παράθυρο τερματικού (μια περίοδο λειτουργίας TTY ή PTS).

tty -s && echo "In a tty"

tty -s && echo

Επειδή εκτελούμε μια περίοδο λειτουργίας TTY, ο κωδικός εξόδου μας είναι 0 και η δεύτερη εντολή εκτελείται.

Οι που Διοικούν

Άλλες εντολές μπορούν να αποκαλύψουν τον αριθμό TTY σας. Η εντολή who θα εμφανίσει πληροφορίες για όλους τους συνδεδεμένους χρήστες, συμπεριλαμβανομένου του εαυτού σας.

Ο Alec και η Mary συνδέονται εξ αποστάσεως με τον υπολογιστή Linux. Συνδέονται με PTS ένα και δύο.

Το dave χρήστη εμφανίζεται ως συνδεδεμένο στο “:0”.

Αυτό αντιπροσωπεύει την οθόνη και το πληκτρολόγιο που είναι φυσικά συνδεδεμένα με τον υπολογιστή. Παρόλο που η οθόνη και το πληκτρολόγιο είναι συσκευές υλικού, εξακολουθούν να είναι συνδεδεμένα στον πολυπλέκτη μέσω ενός αρχείου συσκευής. Το tty αποκαλύπτει ότι είναι /dev/pts/2.

who
tty

Πρόσβαση σε TTY

Μπορείτε να αποκτήσετε πρόσβαση σε μια περίοδο λειτουργίας TTY σε πλήρη οθόνη κρατώντας πατημένα τα πλήκτρα Ctrl+Alt και πατώντας ένα από τα πλήκτρα λειτουργιών.

Ctrl+Alt+F3 θα εμφανίσει την προτροπή σύνδεσης του tty3.

  Πώς να εγκαταστήσετε τον διακομιστή Web Caddy σε Linux

Εάν συνδεθείτε και εκδώσετε την εντολή tty, θα δείτε ότι είστε συνδεδεμένοι στο /dev/tty3.

Αυτό δεν είναι ψευδο-τηλετύπος (εξομοιούμενος σε λογισμικό). είναι ένας εικονικός τηλετύπος (εξομοιούμενος σε υλικό). Χρησιμοποιεί την οθόνη και το πληκτρολόγιο που είναι συνδεδεμένα στον υπολογιστή σας, για να μιμηθεί έναν εικονικό τηλετύπο όπως το DEC VT100 που συνήθιζε.

Μπορείτε να χρησιμοποιήσετε τα πλήκτρα λειτουργιών Ctrl+Alt με τα πλήκτρα λειτουργιών F3 έως F6 και να ανοίξετε τέσσερις συνεδρίες TTY, εάν το επιλέξετε. Για παράδειγμα, θα μπορούσατε να συνδεθείτε στο tty3 και να πατήσετε Ctrl+Alt+F6 για να μεταβείτε στο tty6.

Για να επιστρέψετε στο γραφικό περιβάλλον της επιφάνειας εργασίας σας, πατήστε Ctrl+Alt+F2.

Πατώντας Ctrl+Alt+F1 θα επιστρέψετε στην προτροπή σύνδεσης της γραφικής συνεδρίας επιφάνειας εργασίας σας.

Κάποια στιγμή, το Ctrl+Alt+F1 έως το Ctrl+Alt+F6 θα άνοιγε τις κονσόλες TTY πλήρους οθόνης και το Ctrl+Alt+F7 θα σας επέστρεφε στο γραφικό περιβάλλον επιφάνειας εργασίας σας. Εάν εκτελείτε μια παλαιότερη διανομή Linux, μπορεί να συμπεριφέρεται έτσι το σύστημά σας.

Αυτό δοκιμάστηκε στις τρέχουσες εκδόσεις των Manjaro, Ubuntu και Fedora και συμπεριφέρθηκαν όλα ως εξής:

Ctrl+Alt+F1: Σας επιστρέφει στην οθόνη σύνδεσης του γραφικού περιβάλλοντος επιφάνειας εργασίας.
Ctrl+Alt+F2: Σας επιστρέφει στο γραφικό περιβάλλον επιφάνειας εργασίας.
Ctrl+Alt+F3: Ανοίγει το TTY 3.
Ctrl+Alt+F4: Ανοίγει το TTY 4.
Ctrl+Alt+F5: Ανοίγει το TTY 5.
Ctrl+Alt+F6: Ανοίγει το TTY 6.

Η πρόσβαση σε αυτές τις κονσόλες πλήρους οθόνης επιτρέπει σε άτομα που χρησιμοποιούν εγκαταστάσεις Linux μόνο στη γραμμή εντολών —και πολλοί διακομιστές Linux έχουν ρυθμιστεί με αυτόν τον τρόπο— να έχουν διαθέσιμες πολλές κονσόλες.

Δουλέψατε ποτέ σε μια μηχανή Linux με γραφικό περιβάλλον επιφάνειας εργασίας και είχατε κάτι που προκάλεσε το πάγωμα της συνεδρίας σας; Τώρα μπορείτε να μεταβείτε σε μία από τις περιόδους λειτουργίας της κονσόλας TTY ώστε να προσπαθήσετε να διορθώσετε την κατάσταση.

Μπορείτε να χρησιμοποιήσετε το top και το ps για να προσπαθήσετε να προσδιορίσετε την αποτυχημένη εφαρμογή, στη συνέχεια να χρησιμοποιήσετε τη λειτουργία kill για να την τερματίσετε ή απλώς να χρησιμοποιήσετε τον τερματισμό λειτουργίας για να προσπαθήσετε να κλείσετε όσο χαριτωμένα επιτρέπει η κατάσταση του υπολογιστή.

Τρία μικρά γράμματα με πολλή ιστορία

Η εντολή tty πήρε το όνομά της από μια συσκευή από τα τέλη του 1800, που εμφανίστηκε στο Unix το 1971 και είναι μέρος λειτουργικών συστημάτων Linux και Unix μέχρι σήμερα.

Ο μικρός έχει μια μεγάλη ιστορία πίσω του.