更改gnome-terminal标题以反映当前目录?

时间:2012-05-09 13:27:47

标签: gnome-terminal

我想更改gnome-terminal窗口的标题以反映当前目录。 有没有办法做到这一点?一个脚本可能是? “改变终端标题”线程没有多大帮助。 我们使用命令时手动:

gnome-terminal --title=$PWD 

它可以工作,但是会创建一个新的终端实例(如预期的那样)。 我希望能够使用

--title=$PWD 

使用cd命令。

有没有办法实现这个目标?

5 个答案:

答案 0 :(得分:45)

由于gnome-terminal使用与xterm相同的控制命令,因此该页面可能会有所帮助。

Xterm Title for bash and other shells

TL; DR:

将以下内容添加到.bashrc

PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'

答案 1 :(得分:11)

PROMPT_COMMAND='echo -ne "\033]0;$(basename ${PWD})\007"'将仅显示当前目录作为标题

答案 2 :(得分:3)

我这样做是为了覆盖cd命令并将pwd设置为标题:

function title { echo -en "\033]2;$1\007"; }
function cd { dir=$1; if [ -z "$dir" ]; then dir=~; fi; builtin cd "$dir" && title `pwd`; }
cd `pwd`

我刚把它扔进我的~/.bash_aliases。你可以调整它来做你想做的事。

答案 3 :(得分:1)

我不是专家,但您应该尝试编辑〜/ .bashrc文件。如果我正确理解你的问题,你可以根据我(我使用的是Ubuntu 12.04)更改.bashrc。 “旧”行已注释掉,新版本位于其下方(附加注释)。

case "$TERM" in
xterm*|rxvt*)
  # OLD PS1 directive
    #PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
  # NEW PS1 directive, shows only current directory name as terminal window name
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\W\a\]$PS1"
    ;;
*)
    ;;
esac

结果是我的终端标题等于我当前的目录标题,例如。 cd Documents/projects我的终端标题为projects后(如果文件已打开,则终端名称为其名称)

答案 4 :(得分:0)

通过“基本名称”更新的空白问题答案

PROMPT_COMMAND='echo -ne "\033]0;$(basename "$(pwd)")\007"'

Upadate在13年10月23日在1:47回答user2909452