GNU/Linux >> Znalost Linux >  >> Linux

Provést příkaz ve vzdáleném aktivním terminálu?

Předpokládejme, že máte otevřený emulátor terminálu (T1) s PID 6350.

Z jiného terminálu zadejte tento příkaz (C1):

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

To zapíše ls a nový řádek v T1, ale neprovede jej. Proč?

Zkoušel jsem také použít cat|bash pomocí echo "lsn" > /proc/catid/fd/0 ale stále není provedena.

Jak mohu odeslat příkaz do jiného terminálu a nechat příkaz provést?

možná odpověď:

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

V tomto případě již nemůžete zapisovat přímo do terminálu (vše se zobrazuje stejně, jako příkaz (C1) zobrazoval věc v tomto terminálu.

Přijatá odpověď:

Existuje nástroj příkazového řádku s názvem ttyecho který může poslat příkaz na jiný terminál (tty/pts) a nechat příkaz provést.

sudo ttyecho -n /dev/pts/5 ls

Viz:Nástroj pro odesílání příkazů nebo dat do jiných terminálů (tty/pts)

Viz také:ttyecho zdrojový kód na githubu.

Dalším zajímavým příkazem tty je selector , interaktivní nástroj pro vyhledávání vzorů v reálném čase v konzoli, který aktualizuje vstupní vyrovnávací paměť tty.

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

Viz:volič – DYNAMIC SEARCH IN CONSOLE


Linux
  1. Mac Terminal diskutil příklady příkazů

  2. gnome-terminal:příkaz nenalezen

  3. linux spustit příkaz vzdáleně

  1. Spusťte příkaz v jiném terminálu přes /dev/pts

  2. ip příkaz v terminálu Mac OS X

  3. Jak vzdáleně spustit příkaz ssh a příkaz sudo bez hesla

  1. Provést příkaz v definovaném rozsahu adresářů?

  2. Provést příkaz Nohup se vstupem?

  3. | V příkazu terminálu?