2011-12-15 24 views
37

ls -la /dev/tty cho thấy kết quả:Điều gì đặc biệt về/dev/tty?

crw-rw-rw- 1 root tty 5, 0 Dec 14 22:21 /dev/tty 

không c lúc đầu có ý nghĩa gì? Khi tôi làm một cái gì đó như nó sẽ in ra thiết bị xuất chuẩn. Tệp/dev/tty chứa những gì?

Trả lời

67

'c' có nghĩa là đó là thiết bị ký tự. tty là một tập tin đặc biệt đại diện cho 'thiết bị đầu cuối điều khiển' cho quá trình hiện tại.

Devices Character

Unix hỗ trợ 'tập tin thiết bị, mà không thực sự tập tin ở tất cả, nhưng các điểm truy cập tập tin giống như các thiết bị phần cứng. Thiết bị 'ký tự' là thiết bị được giao tiếp từng byte (ngược với IO đệm).

TTY

/dev/tty là một tập tin đặc biệt, đại diện cho các thiết bị đầu cuối cho quá trình hiện hành. Vì vậy, khi bạn echo 1 > /dev/tty, tin nhắn của bạn ('1') sẽ xuất hiện trên màn hình của bạn. Tương tự như vậy, khi bạn cat /dev/tty, đầu vào tiếp theo của bạn sẽ bị trùng lặp (cho đến khi bạn nhấn Ctrl-C).

/dev/tty không 'chứa' bất cứ thứ gì như vậy, nhưng bạn có thể đọc từ đó và viết thư cho nó (cho những gì nó đáng giá). Tôi không thể nghĩ ra một sử dụng tốt cho nó, nhưng có những tập tin tương tự mà rất hữu ích cho các hoạt động IO đơn giản (ví dụ /dev/ttyS0 thường cổng nối tiếp của bạn)

quote Đây là từ http://tldp.org/HOWTO/Text-Terminal-HOWTO-7.html#ss7.3:

/dev/tty là viết tắt của terminal điều khiển (nếu có) cho quá trình hiện tại. Để tìm ra tty nào được gắn vào các quá trình nào sử dụng lệnh lệnh "ps -a" tại dấu nhắc trình bao (dòng lệnh). Nhìn vào cột "tty". Đối với quá trình shell bạn đang ở,/dev/tty là thiết bị đầu cuối bạn hiện đang sử dụng. Nhập "tty" tại dấu nhắc trình bao để xem những gì đó là (xem hướng dẫn sử dụng pg. Tty (1))./dev/tty giống như một liên kết đến tên thiết bị đầu cuối thực sự với một số tính năng bổ sung cho lập trình viên C: xem trang hướng dẫn sử dụng tty (4).

Dưới đây là trang người đàn ông: http://linux.die.net/man/4/tty

2

'c' có nghĩa là tệp đặc biệt của ký tự.

8

/dev/tty là một từ đồng nghĩa với các thiết bị đầu cuối kiểm soát (nếu có) của quá trình hiện hành. Như jtl999 nói, đó là một tập tin đặc biệt của nhân vật; đó là những gì các c trong các phương tiện đầu ra ls -l.

man 4 tty hoặc man -s 4 tty sẽ cung cấp cho bạn thêm thông tin hoặc bạn có thể đọc trang người đàn ông trực tuyến here.

Ngẫu nhiên, không nhất thiết phải in tới giá trị của vỏ (mặc dù đó là đầu ra tiêu chuẩn của lệnh pwd). Nếu đầu ra tiêu chuẩn của vỏ đã được chuyển hướng đến một cái gì đó khác với thiết bị đầu cuối, /dev/tty vẫn đề cập đến thiết bị đầu cuối.

Bạn cũng có thể đọc từ /dev/tty, thường sẽ đọc từ bàn phím.

+0

Tôi không thể hiểu được 'pwd>/dev/tty của bạn không nhất thiết phải in. Nếu đầu ra tiêu chuẩn đã được chuyển hướng đến một cái gì đó khác với thiết bị đầu cuối'. Theo tôi, nó sẽ luôn đặt tập tin mô tả 1 của tiến trình thành/dev/tty. Bạn có thể giải thích? – Dagang

+0

@dagang: Ý kiến ​​của bạn bị nhầm lẫn. Nếu đầu ra tiêu chuẩn được chuyển hướng đến một tệp, bộ mô tả tập tin 1 sẽ tham chiếu đến tệp đó, * không * cho thiết bị đầu cuối. Đó là ý nghĩa của chuyển hướng. –

+0

Có, fd 1 có thể tham chiếu đến bất kỳ tệp nào, nhưng '>/dev/tty' luôn có nghĩa là làm cho fd 1 tham chiếu đến thiết bị đầu cuối, bất kể nơi fd 1 đang đề cập đến. Bạn có thể cung cấp một ví dụ để hỗ trợ đối số của bạn không? – Dagang

Các vấn đề liên quan