Befehl zum Öffnen eines neuen Terminalfensters vom aktuellen Terminal aus?

45

Ich habe xdotool installiert, indem ich den Befehl ausgeführt sudo apt-get install xdotoolund geworfen habe xdotool key ctrl+alt+t, um ein neues Terminalfenster von dem aktuellen zu öffnen. Aber es hat nicht funktioniert.

Was war der Befehl, um ein neues Terminalfenster vom aktuellen Gnome-Terminal aus zu öffnen?

Avinash Raj
quelle
1
ctrl + shift + n
wim

Antworten:

66

Nur dieser Befehl reicht aus:

gnome-terminal

Wenn Sie möchten, dass ein Befehl vom Terminal aus geöffnet und getrennt wird (damit er zur Eingabeaufforderung zurückkehrt, ohne dass das geöffnete Programm geschlossen werden muss) , müssen Sie Folgendes verwenden:

gnome-terminal & disown

Das übergeordnete Terminal scheint jedoch zu erkennen, dass derselbe Befehl verwendet wird, sodass Sie dies nicht tun müssen, und es gnome-terminalwird ausreichen. Dies scheint auch geschehen beim Laufen xfce4-terminalvon Xfce des Terminals, konsolevon KDE als auch (nicht zu funktionieren scheint beim Laufen xtermaus xterm(siehe auch xterm xterm) - Running konsolevon Gnome / Unity & Xfce Terminal funktioniert auch , aber für Xfce Terminal im GNOME - Terminal Sie brauchen xfce4-terminal & disown).

Weitere Informationen finden Sie auf gnome-terminalder Handbuchseite :

 gnome-terminal  [-e,  --command=STRING]   [-x, --execute ]  [--window-with-profile=PROFILENAME]  [--tab-with-profile=PRO‐
       FILENAME]    [--window-with-profile-internal-id=PROFILEID]    [--tab-with-profile-internal-id=PROFILEID]    [--role=ROLE]
       [--show-menubar]   [--hide-menubar]   [--geometry=GEOMETRY]   [--disable-factory]  [-t, --title=TITLE]  [--working-direc‐
       tory=DIRNAME]  [--usage]  [-?, --help]
Wilf
quelle
1
Wahrscheinlich wollen Sie es im Hintergrund laufen, wie folgt aus: gnome-terminal &. Andernfalls ist das aktuelle Terminal nicht mehr verwendbar, da es gerade mit dem Ausführen des anderen Terminals beschäftigt ist. Sie haben also nur ein verwendbares Terminal, dem möglicherweise der Punkt fehlt.
Rafał Cieślak
1
Interessant. Sie haben anscheinend recht, aber ich irre mich auch nicht :) Ich habe das gerade im Detail überprüft. Wenn ich laufe, gnome-terminal während bereits eine andere Instanz davon ausgeführt wird (möglicherweise die, mit der ich diesen Befehl starte), wird das Programm tatsächlich sofort beendet, da statt einer neuen Instanz gnome-terminaldie derzeit ausgeführte Instanz angewiesen wird, eine neue Instanz zu öffnen Fenster. Tricky. Aber wenn ich gnome-terminalvon irgendetwas anderem aus laufe und es keine anderen Laufinstanzen gibt gnome-terminal, funktioniert dies wie im vorherigen Kommentar erklärt und blockiert das Terminal, mit dem es gestartet wurde.
Rafał Cieślak
1
@ RafałCieślak - jedenfalls konsolescheint gar nicht zu brauchen ... komisch. Ich habe keine Ahnung, warum diese Frage / Antwort so beliebt ist :)
Wilf
2
Vielen Dank, wenn Sie ein Terminal mit demselben Verzeichnis öffnen möchten, können Sie dies tun,gnome-terminal .
kisanme
1
Wenn Sie auf Ubuntu MATE sind (zB 16.x), ist esmate-terminal
Frank Nocke
8

Befehl zum Öffnen eines neuen Terminalfensters vom aktuellen Terminal aus,

xdotool key ctrl+shift+n

Zu installieren xdotool,

sudo apt-get install xdotool
Avinash Raj
quelle
4
Strg + Umschalt + T öffnet eine neue Terminal-Registerkarte.
GabrielF
2
Es ist ein neues Terminal ... aber in einem neuen Tab und nicht in einem neuen Fenster.
GabrielF
1
Ich sehe keinen Grund für die Verwendung, xdotool key ctrl+shift+nwährend gnome-terminalSie viele andere Optionen haben; siehe man gnome-terminalin diesem Sinne.
Radu Rădeanu
1
Strg + Umschalt + N öffnet ein neues Terminalfenster.
Siddhartha
Denken Sie immer noch, dass dies ordentlich ist :)
Wilf
0

Das folgende Skript öffnet eine neue Registerkarte im aktuellen Gnome-Terminal-Fenster und gibt dieser Registerkarte optional einen Titel. Dies funktioniert in jedem Fenster, Sie müssen sich nicht in einem Gnome-Terminal-Fenster befinden, um es auszuführen. Und wenn kein Gnome-Terminal läuft, startet es eines. Die einzige Einschränkung ist, dass Sie, wenn Sie den Hotkey zum Öffnen einer neuen Registerkarte geändert haben, möglicherweise die Zeile ändern müssen, um xdotool key ctrl+Tstattdessen Ihren Hotkey zu verwenden.

#!/bin/bash

DELAY=1
# get title we are going to set tab too, default to Terminal
title="Terminal"
if [ $# -eq 1 ]; then
    title="$1"
fi    

# get pid of running terminal server
TPID=$(ps -C gnome-terminal-server -o pid | tail -1 | sed -e's/\s//g')
if [ ${TPID} == "PID" ]; then
    # no terminal process running yet, so just start one
    gnome-terminal -t "$title" --tab
    exit 0
fi

# there is a terminal, get window id of the running terminal server
WID=$(wmctrl -lp | awk -v pid=$TPID '$3==pid{print $1;exit;}')
# get title of currently active tab
TTITLE=`xwininfo -id 0x5000006 | grep xwininfo | awk '{print $5;exit}'`
if [ "$TTITLE" == "\"Terminal\"" ]; then
    # so we don't go into an infinite loop later
    TTITLE="we had a terminal named terminal $$"
fi
# get focus on active terminal tab
xdotool windowfocus $WID
# use keyboard shortcut to open new tab
xdotool key ctrl+T

# see if we have created tab and are in terminal
NTITLE=`xwininfo -id 0x5000006 | grep xwininfo | awk '{print $5;exit}'`
waited=0
while [ "$TTITLE" == "$NTITLE" ]; do
    # sleep for 1 second before we try again
    xdotool sleep 1
    NTITLE=`xwininfo -id 0x5000006 | grep xwininfo | awk '{print $5;exit}'`
    if [ $waited == 0 ]; then
    echo "Waiting "
    waited=1
    fi
    echo -n "."
done    
if [ $waited == 1 ]; then
    echo ""
fi    

# active tab is the new one we created, wait DELAY seconds just to be sure we can type into it to set tab name
xdotool sleep $DELAY
xdotool type --clearmodifiers "termtitle $title"
xdotool key Return
# make tab the active window and raise it to top
wmctrl -i -a $WID
exit 0
seth
quelle