Esegui il comando su un'altra (nuova) finestra del terminale


32

Come eseguire qualsiasi comando in un'altra finestra del terminale?

Esempio: ho aperto una finestra del terminale e se eseguo un comando simile apropos editor, quindi viene eseguito e emette su quella finestra. Ma voglio eseguire lo stesso comando su un'altra finestra del terminale (nuova finestra) invece sulla finestra presente dal primo terminale .

Ulteriori chiarimenti :
ho bisogno suggest-command <command>che apra la nuova finestra del terminale ed esegua menzionato <command>in quella finestra (appena aperta). (dove suggest-commandè un esempio di suggerimento di comando.)

Come farlo?


1
Fare clic con il tasto destro sull'icona del terminale e fare clic su "Apri nuovo terminale".
Raffaello,

Scusa se sembro un lamen, ma è quello che ho capito dalla tua domanda.
Raffaello,

gnome-terminal giusto?
Braiam,

Mentre l'apertura di un nuovo terminale può risolvere il tuo problema, potresti anche voler semplicemente usare nohup, reindirizzare l'output e mettere il tuo editor in background. nohup apropos editor &> /dev/null &
Pantera,

Inoltre non capisco: perché non aprire un nuovo terminale?
Josef Klimuk,

Risposte:


29

Questo potrebbe essere quello che cerchi:

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

o (a breve):

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

Apre gnome-terminal con l'ultimo comando ( !!) eseguito e rimane aperto con l'output del comando nella shell, anche con un comando interattivo come topo less...

Nel tuo caso è:

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

o

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

2
Un po 'più cortognome-terminal -x sh -c "!!; bash"
TuKsn

10

Avvia un'altra istanza di qualunque terminale tu voglia eseguire:

xterm -hold -e 'apropos editor' & 

Nota il -hold. La maggior parte dei terminali uscirà dopo aver eseguito il comando di alimentazione. Ci sono già una dozzina di domande sul sito:

Un'alternativa a quella è quella di utilizzare un'applicazione che deve essere chiusa. nanorimarrà aperto da solo. Se stai solo trasmettendo allo schermo, puoi inserirlo in less:

xterm -e 'apropos editor | less' & 

Detto questo, nel tuo caso (come hanno detto gli altri due) sembra più semplice aprire un altro terminale ed eseguire il comando.


Posso usare gnome-terminalinvece di xtermCome?
Pandya,

Sono curioso di sapere come farlo con xfce4-terminal (xfce4-terminal apre un nuovo processo, mentre xterm non lo fa - nel mio caso, in realtà non voglio un nuovo processo).
Shule,

7

Ogni terminale è persino un programma che puoi avviare come qualsiasi altro programma, con cui &mettere in background, fornendo un elenco di argomenti e così via.

Il terminale da utilizzare dipende innanzitutto dalla disponibilità del sistema che si sta utilizzando (se sono installati o meno), successivamente dalla loro peculiarità e quindi dal vostro gusto personale.

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

Nota le differenze tra -holddi xterme --holddi konsole.

Ogni realizzazione ha diverse opzioni che devi verificare con l'aiuto. Anche l'aiuto può essere invocato in modo diverso. Puoi scoprire che man konsolenon funziona e quindi devi chiedere direttamente all'eseguibile con --help.

Questo è un elenco di terminali che puoi cercare sul tuo sistema

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

Puoi usare l' -eopzione per gnome-terminal come segue:

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

Ecco shla shell che gnome-terminal apre. Si noti che ciò uscirà dal terminale non appena il comando è terminato. Per ulteriori informazioni, consultare la pagina del manuale di gnome-terminal .


Come conservare il nuovo terminale aperto, che esce dopo il comando finito / terminato?
Pandya,

3
  1. Aprire due terminali;
  2. Identificare ciascun terminale con ttycomando;
  3. Supponendo che siano identificati con / dev / pts / 0 e / dev / pts / 1;
  4. Nel terminale pts / 0 reindirizzando stdout a pts / 1 con il execcomando:exec 1>/dev/pts/1
  5. Ora ogni comando stdout in uscita dal terminale pts / 0 viene visualizzato in pts / 1;
  6. Reindirizzamento indietro stdout con commad: exec 1>/dev/pts/0
  7. Ora pts / 0 stdout funziona come prima.

Video Youtube:


1

Dopo Ubuntu 18.04 LTS, potresti voler passare da -ea --, cioè gnome-terminal -ea gnome-terminal --perché -ee -xsono entrambi deprecati.


1

Ecco i miei 50 centesimi con Terminator:

terminator -x "script.sh; bash"

Anche questo funziona, ma non posso dirti la differenza:

terminator -e "script.sh; bash"

Si noti che lo script potrebbe anche essere un comando.

Testato su Ubuntu 18.04 LTS.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.