我正在尝试在 gnome-terminal 中打开几个终端选项卡,到目前为止我已经成功做到了某物,但我现在陷入困境。
因此,我有以下要求:
- 打开标题为“X”和“Y”的标签
- 执行一些命令
- 保持标签打开并准备进一步使用;保留标题。
到目前为止,我已经满足了部分要求,但不是全部:
gnome-terminal --tab -t "X" -e "bash" --tab -t "Y" -e "top"
这将打开两个选项卡:
- “X”(然后将标题更改为默认标题)
- “Y”,但是我退出后该选项卡就会关闭
top
。
有没有办法打开一个标签,启动bash
,但是不是更改标题?我试过用 Google,但放弃了。
编辑:它不一定是一个命令。
答案1
要保留选项卡标题,您需要在中注释以下几行.bashrc
:
# If this is an xterm set the title to user@host:dir
#case "$TERM" in
#xterm*|rxvt*)
# PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
# ;;
#*)
# ;;
#esac
然后gnome-terminal --tab -t "X" -e "bash" --tab -t "Y" -e "top"
就会按预期工作:
答案2
正如你所看到的其他答案,每次 shell 输出提示时,选项卡的标题都会被更改。执行后,top
选项卡会退出,因为你让它运行的命令已经完成...
我将执行以下操作:
步骤 1:使用 shell 调用终端,添加如下环境变量:
gnome-terminal --tab -t X -e "env MYTAB=X bash" --tab -t Y -e "env MYTAB=Y bash"
第 2 步:在末尾添加.bashrc
以下代码:
#if MYTAB is not set, return
[ -z "$MYTAB" ] && return
# reset the cursor and title
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
PS1="\[\e]0;$MYTAB \w\a\]$PS1" #title: $MYTAB and current dir
# execute the commands for every tab
case "$MYTAB" in
X)
echo this is X
;;
Y)
echo this is Y
top
;;
esac
...我认为这很容易理解,你可以用你需要的命令/调整来修改。经过测试,运行正常;退出top
选项卡后,你仍然可以查看提示和选项卡。
屏幕截图(按下“q”后top
):
答案3
我假设它不必是一个命令,而是提供一种完全图形化的方式来执行此操作。
启动 gnome-terminal 后,“文件”菜单允许您打开新选项卡,这些选项卡将分配有指定标题。可以通过“终端”菜单或右键单击选项卡并从上下文菜单中执行此操作来更改。
然后,您可以打开顶部和任何其他您想要的命令,它们都在终端中,作为从任何其他终端运行的正常、不受约束的进程运行 - 仅桌面环境 - 在感觉它完成了应该做的事情后不会死。
答案4
在玩耍的时候,我发现这根本不是命令,而是配置文件。
去:
Edit | Profiles | (Default) | Edit | Title and Command
并将列表底部的“当终端设置自己的标题时”选项更改为“保留初始标题”。现在,当您启动带有标题的命令时,它会保留下来,因此您的命令将正常工作。