Alle /dev/tty*
Einträge sind device file
gemäß der Unix-Philosophie als etwas bekannt . Sie dienen als Verbindung zwischen Benutzer und tatsächlichem Gerät, können sich jedoch in ihrem Zweck geringfügig unterscheiden.
Virtuelle Konsolen
/dev/tty123
Gerätedateien wie können verwendet werden, um über eine reguläre Shell mit dem System zu interagieren. Dies sind virtuelle Terminals. Das Ubuntu-System ist so konfiguriert, dass standardmäßig TTY 1 bis 6 geöffnet wird. Es können jedoch auch mehrere manuell geöffnet werden. Beispiel:
sudo openvt -c 9 -s "bash"
Das öffnet sich bash
als root auf / dev / tty9 und schaltet Sie sofort auf dieses TTY um (wenn dies auf dem lokalen Terminal erfolgt, aber wenn Sie dies über eine Fernsitzung tun ssh
, in diesem Fall müssen Sie möglicherweise chvt 9
9 verwenden , /dev/tty9
in diesem Beispiel 9 ). Um dasselbe ohne sudo
Nicht-Root zu tun , müssen Sie den Eigentümer von tty ändern, das Sie öffnen möchten. Beispielsweise,
$ sudo chown xieerqi:tty /dev/tty8
$ openvt -c 8 -l
Das würde mich mit meiner Standard-Shell auf tty8 anmelden. In meinen Tests scheint es jedoch so zu sein, dass dies nur über TTY funktioniert. Wenn Sie dies also über den Terminal-Emulator tun, funktioniert dies möglicherweise nicht (ich habe einen Couldn't get a file descriptor referring to the console
Fehler erhalten und habe nur mit dem sudo openvt -c 8 -l
Emulator gearbeitet).
Aus historischer Sicht war dies eine nützliche Funktion, bevor alle ausgefallenen Terminal-Multiplexer erstellt wurden - Sie konnten bis zu 62 Befehle (möglicherweise Server) auf diesen Konsolen erzeugen und sie ausführen lassen, während Sie in der 63. Version arbeiteten. Heutzutage ist es vielleicht nicht mehr so notwendig.
Standardmäßig werden mehrere Gerätedateien erstellt. Aktive sind 1 bis 6, aber man kann ihre Nummer durch Bearbeiten ändern/etc/default/console-setup
, insbesondere diesen Teil:
# Setup these consoles. Most people do not need to change this.
ACTIVE_CONSOLES="/dev/tty[1-6]"
ttyS * Geräte
Hierbei handelt es sich um Gerätedateien, die für serielle Konsolen (auch als RS-232 bezeichnet) verwendet werden. In der Vergangenheit hatten viele Computersysteme eine serielle Schnittstelle. Heutzutage ist dies meistens auf Servertypen von Computern zu finden. Mit RS-232-Hubs können mehrere ttyS-Geräte nützlich sein, mit denen die Verbindung mehrerer Geräte über USB oder Ethernet verwaltet werden kann.
Für Elektrotechniker (was ich am College studiere) verwenden wir die serielle Schnittstelle, um mit Mikrocontrollern und Entwicklungsplatinen (zum Beispiel Arduino) zu interagieren. Single-Port-Computer wie Raspberry Pi verwenden es ebenfalls. Heutzutage wird die serielle Verbindung über ein USB-zu-UART-Kabel hergestellt und die Konsole im Terminal folgendermaßen geöffnet screen
:
screen /dev/ttyUSB0 115200 # the number is baud rate or speed
Beachten Sie, dass Arduino und Raspberry ihre eigene Gerätedatei für die serielle Verbindung erstellen /dev/ttyUSB0
oder/dev/ttyACM0
vcs * geräte
Demnach man vcs
handelt es sich um Konsolenspeichergeräte. In einfachen Worten, wenn Sie dies tun, werden sudo cat /dev/vcs1
Sie sehen, was auf dem Bildschirm angezeigt wird /dev/tty1
, zumindest bis zur maximalen Anzahl von Zeilen in diesem Terminal.
Anzahl der Konsolen verringern
Das Verringern der Anzahl der tatsächlichen Gerätedateien ist nicht möglich, ohne die tty.h
Bibliothek zu ändern und den Kernel neu zu kompilieren ( Referenz und eine andere ). Das Löschen dieser Geräte kann jedoch manuell über diesen Befehl erfolgen:
sudo bash -c 'for num in $(seq 10 63 ) ; do MAKEDEV -v -d "tty$num" ; done'
Dies ist jedoch etwas sinnlos - die Gerätedateien belegen keinen Speicherplatz und beeinflussen die Systemleistung nicht.