惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
腾讯CDC
博客园 - 聂微东
爱范儿
爱范儿
罗磊的独立博客
P
Proofpoint News Feed
博客园 - Franky
博客园 - 三生石上(FineUI控件)
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
酷 壳 – CoolShell
酷 壳 – CoolShell
Jina AI
Jina AI
Blog — PlanetScale
Blog — PlanetScale
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 司徒正美
美团技术团队
MongoDB | Blog
MongoDB | Blog
WordPress大学
WordPress大学
A
About on SuperTechFans
I
InfoQ
博客园_首页
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
H
Help Net Security
Microsoft Azure Blog
Microsoft Azure Blog
G
Google Developers Blog

博客园 - keleman

lambda 如何捕获 所在子线程ID 配置 git 到达 通过 git &&ssh 登录 gitee.com 和 github.com 整理于豆包问答,测试可以实现 由QThread::currentThread()引出的 如何在线程中安全运行任务 由豆包整理的 持有 std::unique_ptr 的 lambda → 不能放进 std::function 从豆包整理 C++ Lambda 捕获方式・安全写法速查表 整理自豆包 C++14 Lambda 相比 C++11 的核心改进 firefox 149 在 linux mint 21 上的 mozillia 源安装 qt GUI 如何利用q thread 和qfuturwatcher 实现 不阻塞主线程? xargs 和管道 |的区别 一加5t的volte怎么设置 做上位机软件设计 下位机软件设计 qt 将槽函数在子线程中执行的方法 以二级指针作为函数参数,并从函数中分配空间的原理 std::forward<T> ,std::move 使用场景的区别 VS2017 设置 类模板参数推导(CTAD, Class Template Argument Deduction) postEvent 和 sendEvent的区别 QObject Event( )customEvent( ) 函数区别 关于实际项目中必要的几个文件操作接口 QwaitCondition.的工作原理 【Debian】更换软件 源出现的Certificate问题解决方法 python 的几个常用的函数 知识点 设置 docker 国内的 映像加速器 docker 容器安装软件 docke 容器设置代理 docker 安装问题
linux PS1 提示符的颜色设置
keleman · 2024-06-26 · via 博客园 - keleman

背景

linux的PS1的各个字段 如 \h \ w \W \d \t 等 可以通过设置显示的颜色 更加醒目 有个性
找了好几个帖子 都没看懂语法,
最后找到设置PS1字段颜色

经过实践成功
语法记录如下:
- \e[ ->表示前(背)景颜色的开始设置
- x;ym ->设置的颜色 (x=1 加粗高亮显示 , y的值确定是设置前景(30-37) ,只有 ym时设置背景 (40-47)
- \e[m -> 设置颜色结束

颜色影响从开始设置颜色标志到下一个开始设置颜色标志(或颜色结束标志)之间的字段(字符)

提示符如果最后没有设置 颜色结束标志 则会影响 命令执行的屏幕输出信息的颜色

example1 只设置前景颜色 颜色代码 30--37
export PS1="\e[0;33m\h \e[1;34m \u \\$ \e[m"
其中前景颜色组合为 用1替换0 则为粗字体(深色)
0;30
0;31
0;32
0;33
0;34
0;35
0;36
0;37

example2 只设置背景颜色
export PS1="\e[41m\h @ \e[42m\u \\$ \e[m"

example3 设置前景和背景颜色
export PS1="\e[1;33m \h @ \e[42m \u \e[1;35m\d \\$ \e[m"

example
PS1="\e[32m\w \e[33m'\t' \e[36m$ \e[0m"
应该为
PS1="[\e[32m]\w [\e[33m]'\t' [\e[36m]$ [\e[0m]"

在bash中,所有在PS1中的非打印字符都必须用'[]'(不包括引号)将其包围起来,否则在计算提示符长度时也会将其计算在内,导致其无法正确地换行,也就出现了回到行首的情况
打印类字符如下:PS1 的常用参数如下
  
\d :代表日期,格式为weekday month date,例如:"Mon Aug 1"
  \H :完整的主机名称
  \h :仅取主机名中的第一个名字
  \t :显示时间为24小时格式,如:HH:MM:SS
  \T :显示时间为12小时格式
  \A :显示时间为24小时格式:HH:MM
  \u :当前用户的账号名称
  \v :BASH的版本信息
  \w :完整的工作目录名称
  \W :利用basename取得工作目录名称,只显示最后一个目录名
  # :下达的第几个命令
  $ :提示字符,如果是root用户,提示符为 # ,普通用户则为 $

非打印类字符:颜色的转义序列符就是非打印字符