35

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

gnome-terminal --title=$PWD 

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

--title=$PWD 

使用 cd 命令。

有没有办法做到这一点?

4

5 回答 5

57

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

bash 和其他 shell 的 Xterm 标题

TL;博士:

将以下内容添加到您的 .bashrc

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

于 2012-05-09T13:35:20.570 回答
19

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

于 2013-10-23T01:47:58.367 回答
8

我这样做是为了覆盖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. 你可能会调整它来做你想做的事。

于 2012-08-01T16:36:13.200 回答
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(如果文件打开,终端名称就是它的名称)

于 2013-11-03T19:20:56.887 回答
1

'basename' 更新了空白问题的答案

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

更新 2013 年 10 月 23 日 1:47 user2909452

于 2020-12-08T17:14:53.637 回答