bash个性化配置(包含PS1)

参考:
https://www.cnblogs.com/iois/p/11665825.html
https://blog.csdn.net/ikkyphoenix/article/details/119282386
https://github.com/agnoster/agnoster-zsh-theme

命令提示符-PS1

PS1

bash的命令提示符由环境变量PS1定义。

PS1 在每个命令之前显示的主提示符,因此它是每个人都不同的。 
PS2 当一个命令需要更多的输入(例如,一个多行命令)中显示的辅助提示。
PS3 不是很常用。
PS4 也是不常用。

PS1语法格式

\u 表示用户(username)\h 表示主机(hostname)\w 表示当前工作目录(directory)\$ 如果您不是超级用户 (非root),则插入一个 "$";如果您是超级用户(root),则显示一个 "#"\[ 这个字符应该出现在不占位转义字符(如颜色转义字符)之前,它使bash能够正确计算自动换行;
\] 这个字符应该出现在不占位转义字符(如颜色转义字符)之后;
\e ASCII转义字符序列开始(也可以键入 \033);
\a ASCII响铃字符(也可以键入 \007);
\d "Wed Sep 06"格式的日期;
\H 主机的全称(如 "mybox.mydomain.com");
\j 在此shell中通过按 ^Z挂起的进程数;
\l 此shell的终端设备名 (如"ttyp4");
\n 换行符;
\r 回车符;
\s shell的名称(如 "bash");
\t 24小时制时间(如 "23:01:01");
\T 12小时制时间(如 "11:01:01");
\@ 带有 am/pm的 12小时制时间;
\v bash的版本(如 2.04);
\V Bash版本(包括补丁级别) ?/td>;
\W 当前工作目录的“基名 (basename)”(如 "drobbins");
\! 当前命令在历史缓冲区中的位置;
\# 命令编号(只要您键入内容,它就会在每次提示时累加);
\xxx 插 入一个用三位数 xxx(用零代替未使用的数字,如 "/007")表示的 ASCII 字符;
\\ 反斜 杠。 

PS1配色方案

颜色控制部分:\[+配色格式+\]
其中配色格式以\e[开始,m结束 (\e表示escape,八进制\033,下同)

\e[ X m  
  • X
    • X可以分别由A、B、F或它们的组合表示,组合时由分号“;”分割
    • X <=> A(或B或F)
    • X <=> A;B;F(或B;A或其它任意方式,甚至可以A;B;F;A) 总之,后面的配置会影响前面的配置。比如,F会影响A和B的配置 。
  • B为背景颜色,编号40~47
  • A为文本属性
  • F为字体颜色,编号30~37
  • 关闭颜色输出:\e[00m

颜色、属性控制表:

背景颜色(B)文本属性(A)文本颜色(F)
40:黑色00:重置文本和背景30:黑色
41:红色01:设置高亮度31:红色
42:绿色04:下划线32:绿色
43:黄色05:闪烁33:黄色
44:蓝色07:反显34:蓝色
45:紫色08:消隐35:紫色
46:青色36:青色
47:白色37:白色

在一个X内,后面的A、B、F设置会影响前面的A、B、F设置,会直接影响此X的设置结果在不同X之间,如先X1和后X2。X2只能影响到X1在X2之后的显示(即X2之后的内容由X1和X2叠加共同作用),在X1到X2之间仍由X1显示,X2无法影响。

有了以上格式基础,就可以自由地修改PS1了。

手搓 agnoster 风格提示栏

  1. 需要提前安装好Powerline字体,可参考:vim-airline( 包含Powerline字体下载)
  2. 如果不喜欢提示栏字体为粗体,将下面的01删去即可,如\[\033[01;30;43m\]->\[\033[30;43m\]
# agnoster主题
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;30;43m\] \u@\h \[\033[01;33;44m\]\[\033[01;30;44m\] \w \[\033[00;01;34m\] \[\033[00m\]'

在这里插入图片描述

# agnoster主题-去用户名版
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;30;44m\] \w \[\033[00;01;34m\] \[\033[00m\]'

在这里插入图片描述

手搓 Parrot OS 风格提示栏

# 蓝色弯
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;34m\]╭──[\[\033[01;32m\]\u@\h\[\033[01;34m\]]-[\[\033[01;36m\]\w\[\033[01;34m\]]\n\[\033[01;34m\]╰─\[\033[00m\]\$ '

在这里插入图片描述

# 蓝色直角
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;34m\]┌──[\[\033[01;32m\]\u@\h\[\033[01;34m\]]-[\[\033[01;36m\]\w\[\033[01;34m\]]\n\[\033[01;34m\]└─\[\033[00m\]\$ '

在这里插入图片描述

终端标题

修改完PS1后,会出现一个问题:原本实时显示user@host:dir的GNOME 终端模拟器标题只能显示Terminal了。

想要获得上图所示的效果,可以在.bashrc中进行如下设置:

# 终端状态栏中显示user@hostname:dir
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}:${PWD/#$HOME/\~}\007"'

在 GNOME 终端(gnome-terminal)中,终端标题是通过特殊的控制序列设置的。GNOME 终端支持 ANSI 转义序列,其中\033]0;...\007被可以用来设置终端的标题。

PROMPT_COMMAND是一个在每次显示新的提示符之前执行的命令,结合echo命令设置为在每次提示符出现之前更新终端标题。

echo -ne "\033]0;${USER}@${HOSTNAME}:${PWD/#$HOME/\~}\007"
  • -n-eecho命令的选项
    • -n 选项表示在输出文本之后不要添加换行符
    • -e 选项表示启用转义字符的解释,这样echo 就可以解释包含转义字符的特殊序列
  • ${PWD/#$HOME/\~} 这部分使用了 Bash 的字符串替换操作,将 $HOME(用户的主目录)替换为 ~

这样,每次执行cd时,终端标题都会相应地更新。

更换目录字体颜色

shell处于暗色背景时,默认的蓝色目录字体不是很明显,为了方便查看,可以在.bashrc中将其设置为更加显眼的青色。

# 将ls显示目录字体换成青色,以适应偏紫色主题
export LS_COLORS=${LS_COLORS}'di=01;36':
  • 32
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值