Tutte le /dev/tty*
voci sono conosciute come device file
, secondo la filosofia Unix. Servono come collegamento tra l'utente e il dispositivo reale, ma il loro scopo può differire leggermente.
Console virtuali
I file di dispositivo come /dev/tty123
possono essere utilizzati per interagire con il sistema tramite una normale shell. Questi sono terminali virtuali. Il sistema Ubuntu è configurato per l'apertura di default da TTY 1 a 6, ma è possibile aprirne di più manualmente, ad esempio:
sudo openvt -c 9 -s "bash"
Si aprirà bash
come root su / dev / tty9 e passerà immediatamente a quel TTY (se fatto sul terminale locale, ma se lo fai tramite una ssh
sessione remota , nel qual caso potresti dover usare chvt 9
, dove 9 è /dev/tty9
in questo esempio). Per fare lo stesso senza sudo
non-root, dovrai cambiare la proprietà di tty che vuoi aprire. Per esempio,
$ sudo chown xieerqi:tty /dev/tty8
$ openvt -c 8 -l
Ciò mi farebbe accedere con la mia shell predefinita su tty8. Nei miei test, tuttavia, sembra che funzioni solo tramite TTY, quindi se lo stai facendo tramite l'emulatore di terminale, potrebbe non funzionare (ho ricevuto un Couldn't get a file descriptor referring to the console
errore e ha sudo openvt -c 8 -l
funzionato solo per me dall'emulatore)
Dal punto di vista storico, prima che fossero creati tutti i fantasiosi multiplexer terminali, questa era una funzione utile: potresti generare fino a 62 comandi (forse server) su quelle console e lasciarli funzionare mentre lavoravano al 63 °. Al giorno d'oggi, potrebbe non essere necessario.
Esistono più file di dispositivo creati per impostazione predefinita. Quelli attivi sono compresi tra 1 e 6, ma è possibile modificarne il numero modificando /etc/default/console-setup
, in particolare questa parte:
# Setup these consoles. Most people do not need to change this.
ACTIVE_CONSOLES="/dev/tty[1-6]"
dispositivi ttyS *
Si tratta di file di dispositivi utilizzati per console seriali, noto anche come UART (noto anche come RS-232). In passato molti sistemi informatici venivano forniti con porta seriale. Al giorno d'oggi, questo potrebbe essere trovato principalmente sul tipo di server di computer. Più dispositivi ttyS potrebbero essere utili con hub RS-232, che consentono la gestione di più dispositivi tramite USB o Ethernet.
Per gli ingegneri elettrici (che è ciò che mi sto laureando in un college), usiamo la porta seriale per interagire con i microcontrollori e le schede di sviluppo (Arduino, per esempio). Anche i computer a porta singola, come Raspberry Pi, lo usano. Al giorno d'oggi, la connessione seriale viene stabilita utilizzando il cavo da USB a UART e aprendo la console nel terminale in questo screen
modo:
screen /dev/ttyUSB0 115200 # the number is baud rate or speed
Si noti che Arduino e Raspberry creeranno il proprio file del dispositivo per la connessione seriale, /dev/ttyUSB0
oppure/dev/ttyACM0
dispositivi vcs *
Secondo man vcs
questi sono i dispositivi di memoria della console. In parole semplici, se lo fai sudo cat /dev/vcs1
vedrai cosa c'è sullo schermo /dev/tty1
, almeno fino al massimo numero di linee in quel terminale.
Diminuendo il numero di console
Ridurre il numero di file effettivi del dispositivo non è possibile senza alterare la tty.h
libreria e ricompilare il kernel ( Riferimenti e un altro ). Tuttavia, l'eliminazione di tali dispositivi può essere eseguita manualmente tramite questo comando:
sudo bash -c 'for num in $(seq 10 63 ) ; do MAKEDEV -v -d "tty$num" ; done'
Questo, tuttavia, è in qualche modo inutile: i file del dispositivo non occupano spazio e non influenzano le prestazioni del sistema.