如何从命令行在 GNOME 终端中打开新选项卡?[关闭]
- 2024-10-17 08:47:00
- admin 原创
- 65
问题描述:
我正在使用 Ubuntu 9.04 x64,当我写入时:
gnome-terminal --tab
在终端上,我希望它在同一个终端窗口中打开一个新选项卡。但它却打开了一个新窗口。
我发现它的目的是在新窗口中打开一个新选项卡,即,如果我写:
gnome-terminal --tab --tab
它将打开一个带有两个选项卡的新窗口。
那么,问题是,如何使用命令在当前gnome-terminal
窗口中打开新选项卡?
解决方案 1:
您还可以让每个选项卡运行一组命令。
gnome-terminal --tab -e "tail -f somefile" --tab -e "some_other_command"
解决方案 2:
#!/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
这将自动确定相应的终端并相应地打开选项卡。
解决方案 3:
我找到了最简单的方法:
gnome-terminal --tab -e 'command 1' --tab -e 'command 2'
我使用而不是直接使用终端。所以我真正想要的是一个单一而简单的命令/shell 文件来构建具有多个窗口的tmux
开发。shell 代码如下:env
`tmux`
#!/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
解决方案 4:
更详细一点的版本(从另一个窗口使用):
#!/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 #
解决方案 5:
以防万一,你想打开
一个新窗口
有两个标签
并在其中执行命令
并让它们保持开放……
干得好:
gnome-terminal --geometry=73x16+0+0 --window \n --working-directory=/depot --title='A' --command="bash -c ls;bash" \n --tab --working-directory=/depot/kn --title='B' --command="bash -c ls;bash"
(mate-terminal
顺便说一下也一样)
解决方案 6:
为了整合上面的一些不同观点,这里有一个脚本,它将运行传递给该脚本的任何参数vim new_tab.sh
:
#!/bin/bash
#
# Dependencies:
# sudo apt install xdotool
WID=$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"| awk '{print $5}')
xdotool windowfocus $WID
xdotool key ctrl+shift+t
wmctrl -i -a $WID
sleep 1; xdotool type --delay 1 --clearmodifiers "$@"; xdotool key Return;
接下来使其可执行:
chmod +x new_tab.sh
现在你可以用它在新标签页中运行你想要的任何内容:
./new_tab.sh "watch ls -l"
解决方案 7:
我没有安装 gnome-terminal,但您应该能够通过在命令行上使用dbus-send进行 DBUS 调用来执行此操作。
解决方案 8:
考虑使用 Roxterm。
roxterm --tab
在当前窗口中打开一个选项卡。
解决方案 9:
对于寻求不使用命令行的解决方案的人:ctrl+shift+t
解决方案 10:
要在同一个终端窗口中打开多个选项卡,您可以采用以下解决方案。
示例脚本:
pwd='/Users/pallavi/Documents/containers/platform241/etisalatwallet/api-server-tomcat-7/bin'
pwdlog='/Users/pallavi/Documents/containers/platform241/etisalatwallet/api-server-tomcat-7/logs'
pwd1='/Users/pallavi/Documents/containers/platform241/etisalatwallet/core-server-jboss-7.2/bin'
logpwd1='/Users/pallavi/Documents/containers/platform241/etisalatwallet/core-server-jboss-7.2/standalone/log'
osascript -e "tell application \"Terminal\"" \n
-e "tell application \"System Events\" to keystroke \"t\" using {command down}" \n-e "do script \"cd $pwd\" in front window" \n-e "do script \"./startup.sh\" in front window" \n-e "tell application \"System Events\" to keystroke \"t\" using {command down}" \n-e "do script \"cd $pwdlog\" in front window" \n-e "do script \"tail -f catalina.out \" in front window" \n-e "tell application \"System Events\" to keystroke \"t\" using {command down}" \n-e "do script \"cd $pwd1\" in front window" \n-e "do script \"./standalone.sh\" in front window" \n-e "tell application \"System Events\" to keystroke \"t\" using {command down}" \n-e "do script \"cd $logpwd1\" in front window" \n-e "do script \"tail -f core.log \" in front window" \n-e "end tell"
> /dev/null
相关推荐
热门文章
项目管理软件有哪些?
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件
热门标签
云禅道AD