Khi bạn đưa ra một ghi vào /dev/pts/X
( /proc/6350/fd/0
, 1
và 2
chỉ là một liên kết tượng trưng đến đó), những gì xảy ra là chính xác những điều tương tự xảy ra khi quá trình 6350
(hoặc một trong các con của nó, chia hai phù hợp) một cái gì đó kết quả đầu ra: nó ghi vào các thiết bị đầu cuối.
Nếu bạn cố đọc từ thiết bị đó ( cat < /dev/pts/X
), những điều thú vị sẽ xảy ra. Bạn sẽ thấy những thứ bạn gõ trong trình bao ban đầu xuất hiện. (Khá có thể chỉ sau dòng mới đầu tiên bạn đã nhập - Tôi đoán chương trình thiết bị đầu cuối ( xterm
hoặc bất cứ thứ gì bạn đang sử dụng) thực hiện một số bộ đệm dòng và 6350
lớp vỏ bị chặn trên read
đó có thể là vỏ; không, giành chiến thắng trong các lần đọc tiếp theo, nhưng tôi rất có thể sai hoàn toàn về điều này.)
Vấn đề là: khi bạn đọc hoặc ghi vào thiết bị đó, bạn sẽ không nói chuyện với lớp vỏ khác đang sử dụng nó. Bạn đang nói chuyện với trình giả lập thiết bị đầu cuối ( xterm
ví dụ). Chỉ trình giả lập thiết bị đầu cuối mới có thể đưa dữ liệu vào kênh đó (những gì shell đọc) và tất cả những gì shell ghi vào thiết bị đầu cuối. Gắn vỏ thứ hai không thay đổi điều đó.
Nếu bạn muốn đưa các lệnh vào 6530
quá trình đó, nó sẽ phải thực hiện điều đó thông qua thiết bị đầu cuối (cho dù đó là ứng dụng X11 hay thứ gì khác).
Đề nghị đọc: Sự khác biệt chính xác giữa 'thiết bị đầu cuối', 'vỏ', 'tty' và 'bàn điều khiển' là gì?