前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何调教你的终端提示符?

如何调教你的终端提示符?

作者头像
编程珠玑
发布2020-03-31 12:28:23
1K0
发布2020-03-31 12:28:23
举报
文章被收录于专栏:编程珠玑

bashrc配置

每次我们登录一个shell终端的时候,前面都有一些固定的显示信息:

代码语言:javascript
复制
root@ubuntu:#

这些显示信息其实可以配置的。

我们打开用户家目录下的.bashrc文件,找到类似下面的关于PS1的内容:

代码语言:javascript
复制
if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\W\$ '
fi

这里就是用来配置你的终端显示的了。

有必要对里面的一些信息进行解释。例如[\033[01;32m]中,01为前景色,32为背景色,颜色代码如下:

代码语言:javascript
复制
前景色 背景色  
30      40      黑色
31      41      红色
32      42      绿色
33      43      黄色
34      44      蓝色
35      45      紫红色
36      46      青蓝色
37      47      白色

举个例子:

代码语言:javascript
复制
$ echo -e "\033[31m red color \033[0m"
 red color 

而其他的符号什么意思呢?

代码语言:javascript
复制
\d :代表日期,
\H :完整的主机名称
\h :仅取主机的第一个名字
\t :显示时间为24小时格式,如:HH:MM:SS
\T :显示时间为12小时格式
\A :显示时间为24小时格式:HH:MM
\u :用户名
\v :BASH的版本信息
\w :完整的工作目录名称
\W :列出最后一个目录
\$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$

所以说白了,就是根据你自己的需要配置自己终端想要的信息。

这个时候我们再来看前面的其中一条简单的配置:

代码语言:javascript
复制
'${debian_chroot:+($debian_chroot)}\u@\h:\W\$ '

$debian_chroot这里我们可以忽略,因为它是一个变量的值,我们完全可以自定义。 可以看到这里有:

代码语言:javascript
复制
\u 用户名
\h 主机名
\W 最后一个目录名
\$ 提示字符

而通过命令获取的相关内容分别为:

代码语言:javascript
复制
$ whoami
root
$ hostname
ubuntu
$ basename `pwd`
公众号编程珠玑

所以我的终端最终显示的是:

代码语言:javascript
复制
root@ubuntu:公众号编程珠玑# 

通常来说,默认的配置就可以了,经常需要改动的可能就是默认它显示了全路径,这里只需要将

代码语言:javascript
复制
\w 替换为 \W

即可。

然后执行命令:

代码语言:javascript
复制
source ~/.bashrc

让配置生效即可。

再来梳理一下过程:

  • 根据需要修改PS1显示项
  • 执行source .bashrc使其生效

这里注意,Linux启动过程中,配置文件加载是有顺序的, 某用户家目录下的bashrc只影响当前用户,如果想要全系统修改生效,可以修改/etc/bash.bashrc(系统差异,可能不一样)。

如何显示当前git分支

其实到这里你应该基本上已经明白了,无非就是将git当前分支的信息配置在PS1中罢了。

如何获取当前git分支

我们都知道:

代码语言:javascript
复制
$ git branch
  master
* testBranch

可以查看分支信息,其中前面有*的表示当前所在分支,所以我们通过字符处理拿到即可。 或者直接通过命令:

代码语言:javascript
复制
$ git rev-parse --abbrev-ref HEAD
testBranch

拿到。

将分支信息配置在PS1中

考虑到有的目录下可能并不存在git项目,所以需要做是否为空的判断,也要注意处理标准错误。因此将获取git分支信息的部分写成一个shell函数:

代码语言:javascript
复制
git_branch()
{
   branch=`git rev-parse --abbrev-ref HEAD 2>/dev/null`
   if [ "${branch}" != "" ]
   then
       if [ "${branch}" = "(no branch)" ]
       then
           branch="(`git rev-parse --short HEAD`...)"
       fi
       echo "($branch)"
   fi
}

将其加入到.bashrc文件结尾中,然后修改PS1的内容:

代码语言:javascript
复制
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\W$(git_branch)\$ '
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W$(git_branch)\[\033[00m\]\$ '

修改完成后保存,执行:

代码语言:javascript
复制
$ source ~/.bashrc

当前里面的颜色你可以根据自己的需要自定义。再来看看之前的效果,是不是觉得没那么难配置了?

总结

实际上就是根据自己的需要去配置终端显示罢了,可以自己选择颜色,变量内容等等。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程珠玑 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何显示当前git分支
    • 如何获取当前git分支
      • 将分支信息配置在PS1中
      • 总结
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档