Exécuter la commande sur une autre (nouvelle) fenêtre de terminal


32

Comment exécuter une commande dans une autre fenêtre de terminal?

Exemple: j'ai ouvert une fenêtre de terminal et si j'exécute une commande comme apropos editor, alors elle s'exécute et sort sur cette fenêtre. Mais je veux exécuter la même commande sur une autre fenêtre de terminal (nouvelle fenêtre) à la place sur la fenêtre actuelle du premier terminal .

Précision supplémentaire :
j'ai besoin de suggest-command <command>cette nouvelle fenêtre de terminal ouverte et exécutez-la mentionnée <command>dans cette fenêtre (nouvellement ouverte). (où suggest-commandest un exemple de suggestion de commande.)

Comment faire ça?


1
Faites un clic droit sur l'icône du terminal et cliquez sur "Ouvrir un nouveau terminal".
Raphael

Désolé si je ressemble à un lamen, mais c'est ce que j'ai compris de votre question.
Raphael

gnome-terminal à droite?
Braiam

Bien que l'ouverture d'un nouveau terminal puisse résoudre votre problème, vous pouvez également utiliser simplement nohup, rediriger la sortie et mettre votre éditeur en arrière-plan. nohup apropos editor &> /dev/null &
Panther

Je ne comprends pas non plus: pourquoi ne pas ouvrir un nouveau terminal?
Josef Klimuk

Réponses:


29

Cela pourrait être ce que vous recherchez:

gnome-terminal -e "bash -c \"!!; exec bash\""

ou (prochainement):

gnome-terminal -x sh -c "!!; bash"

Il ouvre gnome-terminal avec votre dernière commande ( !!) exécutée et il reste ouvert avec la sortie de commande dans le shell, même avec une commande interactive comme topou less...

Dans votre cas, c'est:

gnome-terminal -e "bash -c \"apropos editor; exec bash\""

ou

gnome-terminal -x sh -c "apropos editor; bash"

2
Un peu plus courtgnome-terminal -x sh -c "!!; bash"
TuKsn

10

Démarrez une autre instance du terminal que vous souhaitez exécuter:

xterm -hold -e 'apropos editor' & 

Notez le -hold. La plupart des terminaux se fermeront après avoir exécuté la commande que vous leur avez fournie. Il y a déjà une dizaine de questions à ce sujet sur le site:

Une alternative à cela est d'utiliser une application qui doit être fermée. nanorestera ouvert de lui-même. Si vous sortez simplement sur l'écran, vous pouvez le diriger vers less:

xterm -e 'apropos editor | less' & 

Cela dit, dans votre cas (comme les deux autres l'ont dit), il semble plus facile d'ouvrir simplement un autre terminal et d'exécuter votre commande.


Puis-je utiliser gnome-terminalplutôt que xtermComment?
Pandya

Je suis curieux de savoir comment faire cela avec xfce4-terminal (xfce4-terminal ouvre un nouveau processus, tandis que xterm ne le fait pas - dans mon cas, je ne veux en fait pas de nouveau processus).
Shule

7

Chaque terminal est même un programme que vous pouvez lancer comme n'importe quel autre programme, avec &pour mettre en arrière-plan, donnant une liste d'arguments et ainsi de suite.

Le terminal à utiliser dépend d'abord de la disponibilité du système que vous utilisez (s'il est installé ou non), de sa particularité puis de vos goûts personnels.

  konsole   --hold -e "ls" &  
  xterm      -hold -e "ls" &  
  gnome-terminal   -e "ls" & ...  

Notez les différences entre -holdde xtermet --holdde konsole.

Chaque réalisation a différentes options que vous devez vérifier avec l'aide. Même l'aide peut être invoquée de différentes manières. Vous pouvez constater que man konsolecela ne fonctionne pas et vous devez donc demander directement à l'exécutable avec --help.

Ceci est une liste de terminaux que vous pouvez rechercher sur votre système

aterm          - AfterStep terminal with transparency support
gnome-terminal - default terminal for GNOME
guake          - A dropdown terminal for GNOME
konsole        - default terminal for KDE
Kuake          - a dropdown terminal for KDE
mrxvt          - Multi-tabbed rxvt clone
rxvt           - for the X Window System (and, in the form of a Cygwin port, 
                 for Windows) 
rxvt-unicode   - rxvt clone with unicode support
xfce4-terminal - default terminal for Xfce desktop 
                 environment with dropdown support
Terminator     - is a GPL terminal emulator. It is available on
                 Microsoft Windows, Mac OS X, Linux and other Unix X11 systems.
Terminology    - enhanced terminal supportive of multimedia 
                 and text manipulation for X11 and Linux framebuffer
tilda          - A drop down terminal
wterm          - It is a fork of rxvt, designed to be lightweight, but still
                 full of features
xterm          - default terminal for the X Window System
Yakuake        - (Yet Another Kuake), a dropdown terminal for KDE

3

Vous pouvez utiliser l' -eoption de gnome-terminal comme suit:

gnome-terminal -e 'sh -c propose editor'

Voici shle shell que gnome-terminal ouvre. Notez que cela quittera le terminal dès que la commande sera terminée. Faire référence à la page de manuel de gnome-terminal pour plus d'informations.


Comment maintenir le nouveau terminal ouvert, qui se termine après la fin / la fin de la commande?
Pandya

3
  1. Ouvrez deux terminaux;
  2. Identification de chaque terminal avec ttycommande;
  3. Supposons qu'ils s'identifient avec / dev / pts / 0 et / dev / pts / 1;
  4. Dans le terminal pts / 0, rediriger stdout vers pts / 1 avec la execcommande:exec 1>/dev/pts/1
  5. Maintenant, chaque sortie standard de commande du terminal pts / 0 s'affiche en pts / 1;
  6. Rediriger la sortie standard avec la commande: exec 1>/dev/pts/0
  7. Maintenant, pts / 0 stdout fonctionne comme avant.

Vidéo Youtube:


1

Après Ubuntu 18.04 LTS, vous souhaiterez peut-être passer de -eà --, c'est- gnome-terminal -eà- dire à gnome-terminal --parce que -eet -xsont tous deux obsolètes.


1

Voilà mes 50 cents avec Terminator:

terminator -x "script.sh; bash"

Cela fonctionne aussi, mais je ne peux pas vous faire la différence:

terminator -e "script.sh; bash"

Notez que le script peut également être une commande.

Testé sur Ubuntu 18.04 LTS.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.