Wenn Sie eine Schreib auszustellen /dev/pts/X
( /proc/6350/fd/0
, 1
und 2
ist nur ein symbolischer Link auf das), was passiert ist , genau die gleiche Sache , die , wenn Prozess geschieht 6350
(oder eines seiner Kinder, in geeigneter Weise gegabelt) gibt etwas: es an das Terminal schreibt.
Wenn Sie versuchen, von diesem Gerät ( ) zu lesen , cat < /dev/pts/X
passieren funky Dinge. Sie sollten sehen, dass die Dinge, die Sie in die ursprüngliche Shell eingeben, angezeigt werden. (Möglicherweise erst nach der ersten neuen Zeile, die Sie eingegeben haben - ich vermute, das Terminalprogramm ( xterm
oder was auch immer Sie verwenden) führt eine Zeilenpufferung durch, und die 6350
Shell, auf der blockiert wurde, read
erhält dieses Teil; dann kann entweder die Shell oder möglicherweise nicht, gewinne die nachfolgenden Lesungen, aber ich könnte sehr wohl völlig falsch liegen.)
Die Sache ist: Wenn Sie von diesem Gerät lesen oder darauf schreiben, sprechen Sie nicht mit der anderen Shell, die es verwendet. Sie sprechen zum xterm
Beispiel mit dem Terminalemulator . Nur der Terminalemulator kann Daten in diesen Kanal einspeisen (was die Shell liest), und alles, was die Shell schreibt, geht an das Terminal. Das Anbringen einer zweiten Shell ändert daran nichts.
Wenn Sie Befehle in diesen 6530
Prozess einfügen möchten, muss dies über das Terminal erfolgen (unabhängig davon, ob es sich um eine X11-App oder etwas anderes handelt).
Empfohlene Lektüre: Was ist der genaue Unterschied zwischen einem "Terminal", einer "Shell", einem "tty" und einer "Konsole"?