从当前终端打开新终端窗口的命令?


44

我通过运行sudo apt-get install xdotool并抛出 xdotool key ctrl+alt+t命令来安装xdotool以从当前窗口打开一个新的终端窗口。

从当前的gnome-terminal打开一个新的终端窗口的命令是什么?


1
Ctrl + Shift + N
2014年

Answers:


65

只需执行以下命令即可:

gnome-terminal

通常,如果您希望从终端打开命令并使其分开(因此它返回到提示符而不必关闭打开的程序),则必须使用以下命令:

gnome-terminal & disown

但是,父终端似乎检测到正在使用同一命令,因此您不需要这样做,gnome-terminal就足够了。xfce4-terminal从Xfce的终端运行,也konsole从KDE的运行,这似乎也发生了(xtermxterm(从xterm xterm)运行时似乎也不起作用- konsole从Gnome / Unity和Xfce的终端运行也可以,但是对于gnome终端的Xfce的终端,需要xfce4-terminal & disown)。

有关更多信息,请访问其gnome-terminal手册页

 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]

1
您可能想要在后台运行它,如下所示:gnome-terminal &。否则,当前的终端将无法使用,因为它将忙于运行另一终端-因此您最终只能使用一个可用的终端,这可能会遗漏要点。
2014年

1
有趣。您显然是对的,但是,我也没有错:)我已经详细检查了这一点。如果我gnome-terminal 另一个实例正在运行时运行(可能是我用来启动此命令的实例)gnome-terminal,则它确实会立即完成,因为它不是在运行一个新实例,而是告诉当前正在运行的实例来打开一个新实例窗口。整rick 但是,如果我gnome-terminal其他任何地方运行,并且没有其他gnome-terminal运行实例,则正如我在前面的注释中所解释的那样,它将阻止用于启动它的终端。
2014年

1
@RafałCieślak-无论如何,konsole似乎根本不需要...很奇怪。我不知道为什么这个问题/答案如此受欢迎:)
Wilf

2
非常感谢,如果您想使用相同的目录打开终端,则可以执行此操作gnome-terminal .
kisanme 2015年

1
如果您使用的是Ubuntu MATE(例如16.x),则是mate-terminal
Frank Nocke

8

从当前终端打开新终端窗口的命令,

xdotool key ctrl+shift+n

要安装xdotool

sudo apt-get install xdotool

4
Ctrl + Shift + T将打开一个新的终端选项卡。
GabrielF 2014年

2
它是一个新的终端...但是在一个新的标签而不是一个新的窗口中。
GabrielF 2014年

1
xdotool key ctrl+shift+n使用gnome-terminal您时,我看不出有任何其他理由要使用。看到man gnome-terminal在这个意义上。
RaduRădeanu2014年

1
Ctrl + Shift + N将打开一个新的终端窗口。
Siddhartha 2015年

仍然认为这很整洁:)是否有Mir或Wayland的等效产品(用于与X服务器无关的实现)
Wilf

0

以下脚本将在当前的gnome-terminal窗口中打开一个新标签,并有选择地为该标签命名。它可以在任何窗口中运行,您不必在gnome-terminal窗口中运行它。并且,如果没有运行gnome-terminal,它将启动一个。唯一需要注意的是,如果您更改了用于打开新标签页的热键,则可能不得不更改该行xdotool key ctrl+T以使用您的热键。

#!/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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.