我想更改 gnome-terminal 窗口的标题以反映当前目录。有没有办法做到这一点?一个脚本可能是?“更改终端标题”线程没有多大帮助。当我们使用命令时手动:
gnome-terminal --title=$PWD
它可以工作,但是会创建一个新的终端实例(如预期的那样)。我希望能够使用
--title=$PWD
使用 cd 命令。
有没有办法做到这一点?
我想更改 gnome-terminal 窗口的标题以反映当前目录。有没有办法做到这一点?一个脚本可能是?“更改终端标题”线程没有多大帮助。当我们使用命令时手动:
gnome-terminal --title=$PWD
它可以工作,但是会创建一个新的终端实例(如预期的那样)。我希望能够使用
--title=$PWD
使用 cd 命令。
有没有办法做到这一点?
由于 gnome-terminal 使用与 xterm 相同的控制命令,此页面可能会有所帮助。
TL;博士:
将以下内容添加到您的 .bashrc
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
PROMPT_COMMAND='echo -ne "\033]0;$(basename ${PWD})\007"'
将仅显示当前目录作为标题
我这样做是为了覆盖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
. 你可能会调整它来做你想做的事。
我不是专家,但您应该尝试编辑您的 ~/.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
(如果文件打开,终端名称就是它的名称)
'basename' 更新了空白问题的答案
PROMPT_COMMAND='echo -ne "\033]0;$(basename "$(pwd)")\007"'
更新 2013 年 10 月 23 日 1:47 user2909452