GNU/Linux >> Tutoriels Linux >  >> Linux

Exécuter la commande dans le terminal actif distant ?

Supposons que vous ayez un émulateur de terminal (T1) ouvert avec un PID de 6350.

Depuis un autre terminal, tapez cette commande (C1) :

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

Cela écrit ls et la nouvelle ligne dans T1 mais ne l'exécute pas. Pourquoi ?

J'ai aussi essayé d'utiliser cat|bash avec echo "lsn" > /proc/catid/fd/0 mais il n'est toujours pas exécuté.

Comment puis-je faire écho à la commande dans un autre terminal et exécuter la commande ?

réponse possible :

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

Dans ce cas vous ne pouvez plus écrire directement dans le terminal (tout s'affiche de la même manière que la commande (C1) affichait la chose dans ce terminal.

Réponse acceptée :

Il existe un utilitaire de ligne de commande appelé ttyecho qui peut envoyer une commande à un autre terminal (tty/pts) et exécuter la commande.

sudo ttyecho -n /dev/pts/5 ls

Voir :Utilitaire pour envoyer des commandes ou des données à d'autres terminaux (tty/pts)

Voir aussi :ttyecho code source sur github.

Une autre commande tty intéressante est selector , un comparateur de modèles interactif en temps réel dans la console qui met à jour le tampon d'entrée tty.

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

Voir :sélecteur – RECHERCHE DYNAMIQUE EN CONSOLE


Linux
  1. Terminal Ctrl+s contre Ctrl+z ?

  2. Exécuter une commande où un fichier est trouvé ?

  3. | Dans Terminal Command ?

  4. Exemples de commande diskutil du terminal Mac

  5. Commande ip dans le terminal Mac OS X

Comment exécuter une commande Shell avec Python

Raccourcis pour naviguer dans l'historique du terminal

Comment enregistrer tout ce que vous faites dans le terminal

Comment exécuter une commande dans un script shell ?

Commande d'historique sous Linux - Afficher l'historique du terminal Linux

Utilisation de cut sur Linux Terminal