GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Befehl im aktiven Remote-Terminal ausführen?

Angenommen, Sie haben einen Terminalemulator (T1) mit einer PID von 6350 geöffnet.

Geben Sie an einem anderen Terminal diesen Befehl ein (C1):

echo "lsn" > /proc/6350/fd/0

Dies schreibt ls und die neue Zeile in T1, führt sie aber nicht aus. Warum?

Ich habe auch versucht, cat|bash zu verwenden mit echo "lsn" > /proc/catid/fd/0 aber es wird immer noch nicht ausgeführt.

Wie kann ich den Befehl in einem anderen Terminal echoen und den Befehl ausführen lassen?

mögliche Antwort :

$ mkfifo toto;
$ bash < toto;
$ echo "ls" > toto;

In diesem Fall können Sie nicht mehr direkt in das Terminal schreiben (alles wird so angezeigt, wie der Befehl (C1) es in diesem Terminal angezeigt hat.

Akzeptierte Antwort:

Es gibt ein Befehlszeilenprogramm namens ttyecho das einen Befehl an ein anderes Terminal (tty/pts) senden und den Befehl ausführen lassen kann.

sudo ttyecho -n /dev/pts/5 ls

Siehe:Dienstprogramm zum Senden von Befehlen oder Daten an andere Terminals (tty/pts)

Siehe auch:ttyecho Quellcode auf github.

Ein weiterer interessanter tty-Befehl ist selector , ein interaktiver Musterabgleicher in Echtzeit in der Konsole, der den tty-Eingabepuffer aktualisiert.

# selector examples
selector -v -x @ <(find . -maxdepth 2 -type d | awk '{print $0"@cd "$0}')
selector -v -x @ <(grep -E -o 'http[^ ]+' fileWithURLS)

Siehe:Selektor – DYNAMISCHE SUCHE IN DER KONSOLE


Linux
  1. Befehl auf einem definierten Bereich von Verzeichnissen ausführen?

  2. 5 Verwendungen des mv-Befehls im Linux-Terminal

  3. Übergeben von Variablen im Remote-SSH-Befehl

  4. Linux Befehl remote ausführen

  5. ip-Befehl im Mac OS X-Terminal

So führen Sie einen Shell-Befehl mit Python aus

Verknüpfungen zum Navigieren im Terminalverlauf

So zeichnen Sie alles auf, was Sie im Terminal tun

Wie führe ich einen Befehl in einem Shell-Skript aus?

Verlaufsbefehl in Linux – Zeigen Sie den Verlauf des Linux-Terminals an

Cut auf Linux Terminal verwenden