使用命令行在gnome-terminal中打开一个新选项卡

Vik*_*ary 115 linux terminal console ubuntu

当我写作

gnome-terminal

在终端,我希望它在同一终端窗口中打开一个新选项卡.但它开启了一个新窗口.

我发现它的目的是在新窗口中打开一个新选项卡,即如果我写的话

gnome-terminal

它会打开一个带有两个标签的新窗口.

所以,问题是,如何使用命令打开当前窗口中的新选项卡gnome-terminal

我正在使用Ubuntu 9.04 x64.

Cha*_*ert 68

您还可以让每个选项卡运行set命令.

gnome-terminal --tab -e "tail -f somefile" --tab -e "some_other_command"
Run Code Online (Sandbox Code Playgroud)

  • 我得到'为这个终端创建子进程时出错'以响应`gnome-terminal --tab -e"cd/tmp"` (11认同)
  • @Hedgehog,我有办法:`gnome-terminal --tab --working-directory ="/ home/user/X/Y /"`.我不是为什么,但是"〜/ X/Y /"`没有用. (3认同)

utk*_*bey 66

#!/bin/sh

WID=$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"| awk '{print $5}')
xdotool windowfocus $WID
xdotool key ctrl+shift+t
wmctrl -i -a $WID
Run Code Online (Sandbox Code Playgroud)

这将自动确定相应的终端并相应地打开选项卡.

  • @Calin使用`sleep 1; xdotool type --delay 1 --clearmodifiers"your command"; xdotool key返回;`运行命令. (10认同)
  • 谢谢你的解决方案.但是,我不清楚如何在不同的选项卡中执行不同的命令.无论我在哪里添加命令,它们都会在第一个选项卡中执行.你能为此包括一个解决方案吗? (6认同)
  • 谢谢,效果很好.以适当的形式 - `WID = xprop -root | grep"_NET_ACTIVE_WINDOW(WINDOW)"| awk'{print $ 5}'; xdotool windowfocus $ WID; xdotool键ctrl + shift + t $ WID` (3认同)
  • 为什么WID和windowfocus位?窗户不会聚焦吗? (2认同)

小智 7

我找到了最简单的方法:

gnome-terminal --tab -e 'command 1' --tab -e 'command 2'
Run Code Online (Sandbox Code Playgroud)

我使用tmux而不是直接使用终端.所以我想要的是一个简单的命令/ shell文件来构建env具有多个tmux窗口的开发.shell代码如下:

#!/bin/bash
tabs="adb ana repo"
gen_params() {

    local params=""
    for tab in ${tabs}
    do  
        params="${params} --tab -e 'tmux -u attach-session -t ${tab}'"
    done
    echo "${params}"
}
cmd="gnome-terminal $(gen_params)"
eval $cmd
Run Code Online (Sandbox Code Playgroud)


jno*_*jno 5

更复杂的版本(从另一个窗口使用):

#!/bin/bash

DELAY=3

TERM_PID=$(echo `ps -C gnome-terminal -o pid= | head -1`) # get first gnome-terminal's PID
WID=$(wmctrl -lp | awk -v pid=$TERM_PID '$3==pid{print $1;exit;}') # get window id

xdotool windowfocus $WID
xdotool key alt+t # my key map
xdotool sleep $DELAY # it may take a while to start new shell :(
xdotool type --delay 1 --clearmodifiers "$@"
xdotool key Return

wmctrl -i -a $WID # go to that window (WID is numeric)

# vim:ai
# EOF #
Run Code Online (Sandbox Code Playgroud)


Fra*_*cke 5

以防万一,你想打开

  • 一个新窗口
  • 有两个选项卡
  • 并在那里执行命令
  • 并让它们保持开放......

干得好:

gnome-terminal --geometry=73x16+0+0 --window \
  --working-directory=/depot --title='A' --command="bash -c ls;bash" \
  --tab --working-directory=/depot/kn --title='B' --command="bash -c ls;bash"
Run Code Online (Sandbox Code Playgroud)

(顺便说一句也一样mate-terminal。)