Wszystkie /dev/tty*
wpisy są znane jako device file
, zgodnie z filozofią Uniksa. Służą jako łącznik między użytkownikiem a rzeczywistym urządzeniem, ale ich przeznaczenie może się nieznacznie różnić.
Konsole wirtualne
Pliki urządzeń, takie jak, /dev/tty123
mogą być używane do interakcji z systemem za pośrednictwem zwykłej powłoki. Są to wirtualne terminale. System Ubuntu jest skonfigurowany tak, aby domyślnie otwierać TTY od 1 do 6, ale można ręcznie otworzyć więcej, na przykład:
sudo openvt -c 9 -s "bash"
Otworzy się bash
jako root na / dev / tty9 i natychmiast przełączy cię do tego TTY (jeśli zrobiono to na terminalu lokalnym, ale jeśli robisz to za pośrednictwem ssh
sesji zdalnej , w takim przypadku możesz potrzebować użyć chvt 9
, gdzie 9 jest /dev/tty9
w tym przykładzie). Aby zrobić to samo bez użytkownika sudo
root, musisz zmienić własność tty, którą chcesz otworzyć. Na przykład,
$ sudo chown xieerqi:tty /dev/tty8
$ openvt -c 8 -l
To by mnie zalogowało przy użyciu domyślnej powłoki na tty8. Jednak w moich testach wydaje się, że działa to tylko przez TTY, więc jeśli robisz to za pomocą emulatora terminala, może to nie działać (dostaję Couldn't get a file descriptor referring to the console
błąd i sudo openvt -c 8 -l
działało tylko dla mnie z emulatora)
Z historycznego punktu widzenia, zanim powstały wszystkie fantazyjne multipleksery terminali, była to przydatna funkcja - można było spawnować do 62 poleceń (być może serwerów) na tych konsolach i pozwolić im działać, pracując na 63. miejscu. W dzisiejszych czasach może nie być tak konieczne.
Domyślnie utworzonych jest wiele plików urządzeń. Aktywne mają od 1 do 6, ale można zmienić ich liczbę , edytując /etc/default/console-setup
, a konkretnie tę część:
# Setup these consoles. Most people do not need to change this.
ACTIVE_CONSOLES="/dev/tty[1-6]"
urządzenia ttyS *
Są to pliki urządzeń używane przez konsole szeregowe, znane również jako UART (znane również jako RS-232). W przeszłości wiele systemów komputerowych miało port szeregowy. Obecnie można to najczęściej znaleźć na komputerach typu serwer. Wiele urządzeń ttyS może być użytecznych z koncentratorami RS-232, które umożliwiają podłączanie wielu urządzeń zarządzanych przez USB lub Ethernet.
W przypadku inżynierów elektryków (na których głównie studiuję na studiach) używamy portu szeregowego do interakcji z mikrokontrolerami i płytami programistycznymi (na przykład Arduino). Używają go także komputery z jednym portem, takie jak Raspberry Pi. Obecnie połączenie szeregowe jest ustanawiane za pomocą kabla USB do UART i otwieranie konsoli w terminalu poprzez screen
:
screen /dev/ttyUSB0 115200 # the number is baud rate or speed
Uwaga: Arduino i Raspberry utworzą własny plik urządzenia dla połączenia szeregowego /dev/ttyUSB0
lub/dev/ttyACM0
urządzenia vcs *
Zgodnie z man vcs
nimi są urządzenia pamięci konsoli. Krótko mówiąc, jeśli to zrobisz sudo cat /dev/vcs1
, zobaczysz, co jest na ekranie /dev/tty1
, przynajmniej do maksymalnej liczby linii w tym terminalu.
Zmniejszenie liczby konsol
Zmniejszenie liczby rzeczywistych plików urządzeń nie jest możliwe bez zmiany tty.h
biblioteki i ponownej kompilacji jądra ( Reference i inny ). Jednak usuwanie tych urządzeń można wykonać ręcznie za pomocą tego polecenia:
sudo bash -c 'for num in $(seq 10 63 ) ; do MAKEDEV -v -d "tty$num" ; done'
Jest to jednak nieco bezcelowe - pliki urządzeń nie zajmują miejsca i nie wpływają na wydajność systemu.