GNU/Linux >> Linux Esercitazione >  >> Linux

Eseguire il comando nel terminale attivo remoto?

Supponiamo di avere un emulatore di terminale (T1) aperto con un PID di 6350.

Da un altro terminale, digita questo comando (C1):

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

Questo scrive ls e la nuova riga in T1 ma non la esegue. Perché?

Ho anche provato a usare cat|bash con echo "lsn" > /proc/catid/fd/0 ma non viene ancora eseguito.

Come posso eseguire l'eco del comando in un altro terminale e far eseguire il comando?

possibile risposta :

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

In questo caso non puoi più scrivere direttamente nel terminale (tutto viene visualizzato allo stesso modo in cui il comando (C1) mostrava cosa in questo terminale.

Risposta accettata:

C'è un'utilità da riga di comando chiamata ttyecho che può inviare un comando a un altro terminale (tty/pts) e far eseguire il comando.

sudo ttyecho -n /dev/pts/5 ls

Vedi:Utilità per inviare comandi o dati ad altri terminali (tty/pts)

Vedi anche:ttyecho codice sorgente su github.

Un altro comando tty interessante è selector , un pattern matcher interattivo in tempo reale nella console che aggiorna il buffer di input tty.

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

Vedi:selettore – RICERCA DINAMICA IN CONSOLE


Linux
  1. Eseguire il comando Nohup con l'input?

  2. Terminale Ctrl+s contro Ctrl+z?

  3. | In Comando Terminale?

  4. Esempi di comandi diskutil per terminale Mac

  5. Esegui un comando in un altro terminale tramite /dev/pts

Come eseguire un comando Shell con Python

Scorciatoie per la navigazione nella cronologia del terminale

Come registrare tutto ciò che fai nel terminale

Come eseguire un comando in uno script della shell?

Comando cronologia in Linux:visualizza la cronologia del terminale Linux

Utilizzo di cut su terminale Linux