设置终端选项卡标题

设置终端选项卡标题

我正在尝试在 gnome-terminal 中打开几个终端选项卡,到目前为止我已经成功做到了某物,但我现在陷入困境。

因此,我有以下要求:

  • 打开标题为“X”和“Y”的标签
  • 执行一些命令
  • 保持标签打开并准备进一步使用;保留标题。

到目前为止,我已经满足了部分要求,但不是全部:

gnome-terminal --tab -t "X" -e "bash" --tab -t "Y" -e "top"

这将打开两个选项卡:

  1. “X”(然后将标题更改为默认标题)
  2. “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 

并将列表底部的“当终端设置自己的标题时”选项更改为“保留初始标题”。现在,当您启动带有标题的命令时,它会保留下来,因此您的命令将正常工作。

在此处输入图片描述

相关内容