/dev/tty
adalah tty pengendali dari proses saat ini , untuk setiap proses yang benar-benar membuka file khusus ini. Itu belum tentu perangkat konsol virtual (/dev/tty
n ), dan bisa berupa pty, port serial, dll. Jika tty yang mengontrol bukan konsol virtual, maka prosesnya tidak harus berinteraksi dengan perangkat konsol meskipun pseudottynya benar-benar diterapkan di konsol sistem. Misalnya untuk shell di emulator terminal di bawah Xserver yang berjalan secara lokal, program tersebut membentuk rantai interaksi seperti:
Cangkang Unix
⇕ /dev/pts/2
(≡ /dev/tty
untuk prosesnya)
driver kernel pty
⇕ /dev/ptmx
emulator terminal
⇕ Protokol X Window
server X
⇕ /dev/tty7
(≡ /dev/tty
untuk server)
konsol sistem
z x c ↿⇂[_̈░░]
pengguna
Penggunaan /dev/tty
oleh program userland meliputi:
- Tulis sesuatu ke terminal pengontrol, abaikan semua pengalihan dan pipa;
- Buat ioctl() – lihat tty_ioctl(4);
- Misalnya, lepaskan dari terminal (TIOCNOTTY).
/dev/tty0
adalah konsol virtual sistem operasi yang saat ini aktif (terlihat di monitor). . File khusus ini tidak mungkin digunakan secara signifikan oleh perangkat lunak sistem, tetapi /dev/console
sebenarnya adalah “alias” untuk tty0
dan /dev/console
banyak digunakan oleh daemon syslog dan, terkadang, oleh kernel itu sendiri.
Eksperimen untuk menunjukkan perbedaannya:jalankan root
shell pada tty3
(Ctrl +Alt +F3 ) atau di emulator terminal. Sekarang
# sleep 2; echo test >/dev/tty
lalu dengan cepat Ctrl +Alt +F2 , tunggu selama dua detik, dan Ctrl +Alt + apapun kembali. Di mana Anda melihat outputnya?
Dan sekarang tes yang sama untuk /dev/tty0
.
/dev/tty adalah tty pengendali untuk setiap proses. Ini mungkin cangkang Anda.
Jika proses Anda tidak memiliki tty pengontrol, /dev/tty tidak tersedia, mis. berlaku untuk daemon.
Jika proses Anda memiliki tty pengontrol, maka /dev/tty adalah alias driver untuk driver tty sebenarnya yang digunakan proses Anda untuk stdin, stdout, atau stderr.
Lihat man -s7d tty
untuk informasi lebih lanjut. Perhatikan bahwa bagian di mana manual ini berada mungkin berbeda antara OS yang berbeda dan jangan bingung dengan halaman manual di bagian 1. Jadi, periksa mis. man -k tty
.