Führen Sie den Befehl in einem anderen (neuen) Terminalfenster aus

32

Wie führe ich einen Befehl in einem anderen Terminalfenster aus?

Beispiel: Ich habe ein Terminal-Fenster geöffnet, und wenn ich einen Befehl ausführen möchte apropos editor, wird er ausgeführt und in dieses Fenster ausgegeben. Ich möchte den gleichen Befehl jedoch auf einem anderen Terminalfenster (neues Fenster) ausführen, anstatt auf dem aktuellen Fenster des ersten Terminals .

Weitere Klarstellung :
Ich muss suggest-command <command>das neue Terminalfenster öffnen und <command>in dem (neu geöffneten) Fenster erwähnte ausführen . (Wo suggest-commandist ein Beispiel für einen Befehlsvorschlag.)

Wie geht das?

Pandya
quelle
1
Klicken Sie mit der rechten Maustaste auf das Terminalsymbol und klicken Sie auf "Neues Terminal öffnen".
Raphael
Es tut mir leid, wenn ich wie ein Lamen klinge, aber das habe ich aus Ihrer Frage verstanden.
Raphael
Gnome-Terminal richtig?
Braiam
Während das Öffnen eines neuen Terminals möglicherweise Ihr Problem löst, möchten Sie möglicherweise auch einfach nohup verwenden, die Ausgabe umleiten und Ihren Editor in den Hintergrund stellen. nohup apropos editor &> /dev/null &
Panther
Ich verstehe auch nicht: Warum nicht ein neues Terminal öffnen?
Josef Klimuk

Antworten:

29

Dies könnte das sein, wonach Sie suchen:

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

oder (kurz):

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

Es öffnet gnome-terminal mit Ihrem zuletzt ausgeführten Befehl ( !!) und bleibt mit der Befehlsausgabe in der Shell geöffnet, auch mit einem interaktiven Befehl wie topoder less...

In Ihrem Fall ist es:

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

oder

gnome-terminal -x sh -c "apropos editor; bash"
Chaos
quelle
2
Ein bisschen kürzergnome-terminal -x sh -c "!!; bash"
TuKsn
10

Starten Sie eine weitere Instanz des Terminals, das Sie ausführen möchten:

xterm -hold -e 'apropos editor' & 

Beachten Sie die -hold. Die meisten Terminals werden nach Ausführung des Befehls, den Sie ihnen geben, beendet. Es gibt bereits ungefähr ein Dutzend Fragen dazu auf der Website:

Eine Alternative dazu ist die Verwendung einer Anwendung, die beendet werden muss. nanobleibt für sich alleine offen. Wenn Sie nur auf dem Bildschirm ausgeben, können Sie dies folgendermaßen weiterleiten less:

xterm -e 'apropos editor | less' & 

Das heißt, in Ihrem Fall (wie die beiden anderen gesagt haben) scheint es einfacher zu sein, einfach ein anderes Terminal zu öffnen und Ihren Befehl auszuführen.

Oli
quelle
Kann ich gnome-terminalstatt xtermdann wie geht das?
Pandya
Ich bin gespannt, wie das mit xfce4-terminal gemacht wird (xfce4-terminal öffnet einen neuen Prozess, xterm nicht - in meinem Fall möchte ich eigentlich keinen neuen Prozess).
Shule
7

Jedes Terminal ist sogar ein Programm, das Sie wie jedes andere Programm starten können, &um es in den Hintergrund zu stellen und eine Liste von Argumenten usw. anzugeben.

Welches Terminal verwendet werden soll, hängt zunächst von der Verfügbarkeit des von Ihnen verwendeten Systems ab (ob es installiert ist oder nicht), dann von deren Besonderheiten und dann von Ihrem persönlichen Geschmack.

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

Beachten Sie die Unterschiede zwischen -holdder xtermund--hold von konsole.

Jede Realisierung hat verschiedene Optionen , die Sie mit der Hilfe überprüfen müssen. Sogar die Hilfe kann auf unterschiedliche Weise aufgerufen werden. Sie können das findenman konsole das nicht funktioniert und Sie müssen direkt nach der ausführbaren Datei mit fragen --help.

Dies ist eine Liste der Terminals, die Sie auf Ihrem System durchsuchen können

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
Hastur
quelle
3

Sie können die -eOption zum Gnome-Terminal wie folgt verwenden:

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

Hier shist die Shell, die das Gnome-Terminal öffnet. Beachten Sie, dass dies das Terminal verlässt, sobald der Befehl beendet wurde. Weitere Informationen finden Sie auf der Handbuchseite zum Gnome-Terminal .

Job in
quelle
Wie halte ich ein neues geöffnetes Terminal, das nach Beendigung / Beendigung des Befehls beendet wird?
Pandya
3
  1. Öffne zwei Terminals.
  2. Identifizieren jedes Terminals mit ttyBefehl;
  3. Angenommen, sie identifizieren sich mit / dev / pts / 0 und / dev / pts / 1.
  4. Im Terminal pts / 0 wird stdout mit dem execBefehl auf pts / 1 umgeleitet :exec 1>/dev/pts/1
  5. Jetzt wird jeder Befehl stdout, der vom Terminal pts / 0 ausgegeben wird, in pts / 1 angezeigt.
  6. Zurück stdout mit commad umleiten: exec 1>/dev/pts/0
  7. Jetzt funktioniert pts / 0 stdout wie zuvor.

YouTube-Video:

Vitalie Ghelbert
quelle
1

Nach Ubuntu 18.04 LTS möchten Sie möglicherweise von -ezu --, dh gnome-terminal -ezu wechseln , gnome-terminal --weil -eund -xbeide veraltet sind.

kensaii
quelle
1

Hier sind meine 50 Cent mit Terminator:

terminator -x "script.sh; bash"

Das funktioniert auch, aber ich kann Ihnen den Unterschied nicht sagen:

terminator -e "script.sh; bash"

Beachten Sie, dass das Skript auch ein Befehl sein kann.

Getestet auf Ubuntu 18.04 LTS.

Reginaldo Santos
quelle