/dev/tty
là tty kiểm soát của quy trình hiện tại , cho bất kỳ quy trình nào thực sự mở tệp đặc biệt này. Nó không nhất thiết là một thiết bị điều khiển ảo ( /dev/tty
n ) và có thể là mộtpty, một cổng nối tiếp, v.v. Nếu tty điều khiển không phải là bàn điều khiển ảo, thì quá trình không phải tương tác với các thiết bị bàn điều khiển ngay cả khi giả hành của nó thực sự được thực hiện trên bảng điều khiển hệ thống. Ví dụ. đối với hệ vỏ trong trình giả lập thiết bị đầu cuối trong máy chủ X chạy cục bộ, các chương trình cho biết tạo thành chuỗi tương tác như:
Unix shell
⇕ /dev/pts/2
(≡ /dev/tty
cho các quá trình của nó)
kernel pty lái xe
⇕ /dev/ptmx
terminal emulator
⇕ X Window giao thức
X server
⇕ /dev/tty7
(≡ /dev/tty
cho máy chủ)
hệ thống giao diện điều khiển
zxc↿⇂ [_̈░░]
người dùng
Sử dụng /dev/tty
bởi các chương trình người dùng bao gồm:
- Viết một cái gì đó đến thiết bị đầu cuối kiểm soát, bỏ qua tất cả các chuyển hướng và đường ống;
- Tạo một ioctl () - xem tty_ioctl (4);
- Ví dụ: tách khỏi thiết bị đầu cuối (TIOCNOTTY).
/dev/tty0
là bảng điều khiển ảo hiện đang hoạt động (tức là hiển thị trên màn hình) của hệ điều hành . Phần mềm đặc biệt này không được sử dụng đáng kể bởi phần mềm hệ thống, nhưng /dev/console
hầu như là một bí danh của Googletty0
và /dev/console
được sử dụng nhiều bởi các trình nền syslog và đôi khi, bởi chính hạt nhân.
Thử nghiệm để cho thấy sự khác biệt: chạy root
shell trên tty3
( Ctrl+ Alt+ F3) hoặc trong trình giả lập thiết bị đầu cuối. Hiện nay
# sleep 2; echo test >/dev/tty
sau đó nhanh chóng Ctrl+ Alt+ F2, đợi trong hai giây và Ctrl+ Alt+ bất cứ điều gì trở lại. Bạn thấy đầu ra ở đâu?
Và bây giờ thử nghiệm tương tự cho /dev/tty0
.