优化ubuntu下终端的title

这篇博客分享了如何优化Ubuntu终端的标题,使其显示当前工作目录,通过修改.bashrc文件中的PS1环境变量,实现了终端标题随着目录变化而实时更新,解决了命令过长导致的覆盖问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ubuntu下的terminal终端的title总是terminal,要是打开多个的话,找起来很麻烦,于是我就在网上找了找解决方法,但是都没有成功。

所以只能自己修改下试试,结果成功了,现在分享给大家,哈哈...

我的目的很简单就是想把$PWD打印到终端title上,刚开始我不知道怎么修改title,也不知道随着我们操作终端更改当前路径后怎么

刷新title。

1.在看我的.bashrc时,发现一个函数:

function title
{
             echo -en "\033]2;$@\007"
}

于是我在终端上尝试命令

title $PWD

结果terminal的title被改变了,但是当我cd到另一个目录时,title并没有随之改变,这时我联想到了我们在终端cd到其他目录时,

终端命令提示器会提示当前路径在哪里,它是随着我们的cd命令及时更新的。

2.于是我想到了环境变量PS1。

把上面的命令修改下

echo -en "\033]2;$PWD\007"

加到.bashrc文件中的PS1中

添加前:

export PS1='\[\e[01;31m\][\u@\[\e[01;34m\]\w] `[[ -d .git ]] && echo -n -e "\[\e[01;33m\]\[\e[01;34m\]"`\$ \[\e[01;32m\]'

添加后:

<1>export PS1='\[\e[01;31m\][\u@\[\e[01;34m\]\w] `[[ -d .git ]] && echo -n -e "\[\e[01;33m\]\[\e[01;34m\]"`\$ \[\e[01;32m\]`echo -ne "\033]2;$PWD\007"`'

注意两个红色的标点不是单引号,而是tab键上面那个(反引号)

这样重启终端,或者执行source ~/.bashrc命令重启后就可以生效。

祝大家好运~

以上这么修改会出现一些问题,因为打印更新标题的这部分代码和和输入的命令有冲突,故更新如下:

<2>export PS1='\[\e[01;31m\][\u@\[\e[01;34m\]\w] `echo -ne "\033]2;$PWD\007"`\$ \[\e[01;32m\]'

这样的话,更新标题的代码(上面蓝色粗体)加到了系统信息部分(这部分不会和输入信息有冲突)

<3>经过使用<2>的配置发现,在某些地方仍然会出现问题,现象是:当命令过长时(还没有到达终端的行尾),就会换行,但是并没有另起一行,而是把本行从头覆盖了,这个问题把我纠结了很久...我一直找不到出现这个现象的原因。

后来我尝试了如下这种方案,结果成功了,暂时还没有发现问题..

export PS1='\[\e[01;31m\][\u@\[\e[01;34m\]\w]\[\033]2;\w\007\]\$ \[\e[01;32m\]'

export PS1='\[\e[01;31m\][\u@\[\e[01;34m\]\w]\[\033]2;$PWD\007\]\$ \[\e[01;32m\]'

这两种应该都是可以的~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值