说明

  • \033 或 \e :两者是等价的,表示转义字符(ASCII escape character),即键盘左上角的ESC键。033是ESC的八进制ASCII码。注意,在“老式”说法中,转义字符就是仅指八进制ASCII码033表示的字符,无他。像C语言中的反斜线 \ ,都是后来扩充的。[1][2]
  • \033[ 或 \e[ :也就是 ESC[ ,是一种称为控制序列引导器(Control Sequence Introducer,CSI)的转义序列。所谓转义序列,本质上就是字符串,但终端不会将这些字符串作为普通的文本来显示,而是作为一种命令来执行。转义序列通常用于控制终端的显示细节(如光标位置、颜色、字体风格等)。CSI是转义序列的一种,特点是以 ESC[ 开头。[3]
  • \e[m ( \e[0m 、 \e[00m 、 \033[m 、 \033[0m 、 \033[00m ):在设置命令提示符颜色时,表示“设置颜色的字符串”的结束,注意, \e[m 不是CSI的结束,和CSI没有关系,SCI也没有结束标志。
  • \[ 和 \] :表示中间的字符串是非打印字符,如CSI。[4][5]

颜色控制码

传统颜色控制码为 L;F;Bm ,其中, L 取值为0或1(也可以是00或01),其中,0表示普通亮度,1表示高亮; F 表示字体颜色,取值为30-37(即30+X,X取0-7); B 表示背景色,取值为40-47。[5][2]

还有一种8-bit控制码,参考[2]中SGR--8-bit 一节。

另外一种控制码格式参考[6]。

例子

PS1='\[\e[38;5;39m\][\[\e[38;5;208m\]\u\[\e[38;5;160m\]@\[\e[38;5;69m\]\h\[\e[38;5;214m\]:\[\e[38;5;10m\]\w\[\e[38;5;39m\]]\[\e[38;5;11m\]\$ \[\e[0m\]'

参考

[1] 转义字符 - 维基百科,自由的百科全书
[2] Escape character - Wikipedia (重点是 SGR 一节)
[3] ansi escape - What this character sequence "\033[H\033[J" does in C? - Stack Overflow
[
4] How to Change / Set up bash custom prompt (PS1) in Linux - nixCraft
[5] 自訂 Linux 的 Bash Shell 命令提示字串 Prompt(一):基本用法 - G. T. Wang[6] linux系统终端命令提示符设置(PS1)记录 - 散尽浮华 - 博客园

linux命令提示符高亮的更多相关文章

  1. 漂亮的Linux命令提示符

    漂亮的Linux命令提示符 每天面对着白底黑字(黑底白字)的命令行是否枯燥泛味呢?生活应给是五彩缤纷的,何不为单调无味的生活增添一抹色彩? 下面一起体验一下Linux命令行提示符惊险的整容之旅 惊鸿一 ...

  2. linux命令提示符解析

    linux命令提示符 命令窗口中[root@chengfeng ~]# 表示什么意思?       root        当前登录终端的用户      chengfeng     主机名(/etc/ ...

  3. Server版Linux命令提示符揭秘

            一直都在Ubuntu12.04和12.10  Desktop下玩.如今要在Centos6.3 Server版下做开发了,感觉还是非常不一样的. 克服一个有一个不顺利后,有那种站在山顶的 ...

  4. Linux命令提示符的配置

    Linux登录过程中加载配置文件顺序: /etc/profile → /etc/profile.d/*.sh → ~/.bash_profile → ~/.bashrc → [/etc/bashrc] ...

  5. linux命令提示符[root@localhost ~]#详解

    [root@localhost ~]#   1. @之前代表当前登录用户 在Linux中管理员用户是root,还有一些普通用户: 在此例中,root代表当前登录用户   2. @之后代表当前计算机主机 ...

  6. Linux命令提示符

    命令提示符:prompt [root@localhost ~]# 用户@主机名 所在目录 用户身份(#管理员 $普通用户) 显示提示符格式 Ubuntu sun@u18-2:~$ echo $PS1 ...

  7. 修改Linux命令提示符

    vim .bashrc export PS1='\e[1;32m\u\e[m\e[1;33m@\e[m\e[1;35m\h\e[m:\W\$'

  8. linux命令提示符设置

    变成绿色 [root@localhost /usr/local]#vim /root/.bashrc # .bashrc # User specific aliases and functions a ...

  9. linux命令提示符上色

    vi /etc/profile RED='\[\e[31;1m\]' Yello='\[\e[33;1m\]' Green='\[\e[32;1m\]' End='\[\e[0m\]' Pur='\[ ...

  10. Linux如何修改命令提示符

    1.什么是命令提示符 命令提示符是CLI(command-line interface,命令行界面)在人机交互的过程中提示用户可以进行命令输入的特殊符号,在Linux中普通用户的prompt为“$”, ...

随机推荐

  1. C Primer Plus 第6版 第四章 编程练习参考答案

    编译环境VS Code+WSL GCC 源码请到文末下载 /*第1题*************************/ #include<stdio.h> int main() { ch ...

  2. Chrome谷歌浏览器自动升级后页面字体过小

    谷歌浏览器使用一段时间后系统自动升级后页面字体突然变小,如何进行设置呢,如下 1.在页面右上角选择浏览器设置-外观-自定义字体-设置字号等其他需要配置的参数即可

  3. manim边做边学--动画更新

    今天介绍Manim中用于动画更新的3个类,分别是: UpdateFromFunc:根据自定义的函数来动态更新 Mobject 的属性 UpdateFromAlphaFunc:根据动画的进度来平滑地改变 ...

  4. 经典算法的Java实现

    1.快速排序描述 1.每一轮排序选择一个基准点(pivot)进行分区 1.让小于基准点的元素进入一个分区,大于基准点的元素进入另一个分区 2.当分区完成时,基准点元素的位置就是其最终位置 2.在子分区 ...

  5. neo4j-图数据库

    neo4j是图数据库 初识neo4j,首先我们要知道neo4j是图数据库.我们平常用的数据库一般是RDBMS(关系型数据库),那么什么是图数据库呢?既然有了关系型数据库,那么为什么要有图数据库呢? 1 ...

  6. 使用Hyper-V或者VM虚拟机安装部署Ubantu

    下载Ubantu iso文件 Server版下载 桌面版下载 我使用的是22.04.3版本,目前22.04最新版是22.04.5版本 22.04下载 一.Hyper-V方式 1.安装Hyper-V 参 ...

  7. Transaction rolled back because it has been marked as rollback-only问题解决

    1.背景 在我们的日常开发中,经常会存在在一个Service层中调用另外一个Service层的方法.比如:我们有一个TaskService,里面有一个execTask方法,且这个方法存在事务,这个方法 ...

  8. 另辟新径实现 Blazor/MAUI 本机交互(二)

    Maui 基础 Preferences 是 .NET MAUI 提供的一个静态类,用于存储和检索应用程序的首选项(即设置或配置).它提供了一种简单的键值对存储机制,可以跨平台使用.每个平台使用其本地的 ...

  9. 动手学深度学习-python基础知识介绍(数据处理基础流程)part2

    数据预处理 import os os.makedirs(os.path.join('..','data'),exist_ok=True) data_file=os.path.join('..','da ...

  10. Android开发之定时任务(AlarmManager、WorkManager)

    Android 程序的定时任务主要有AlarmManager.WorkManager两种. 一.AlarmManager AlarmManager,又称闹钟,可以设置一次性任务,周期重复任务,定时重复 ...