Linux自定义终端提示符
转移大全(echo -e "\a"等)
序列 显示值
\a
以 ASCII 格式编码的铃声 . 当遇到这个转义序列时,计算机会发出嗡嗡的响声。\d
以日,月,天格式来表示当前日期。例如,“Mon May 26.”\h
本地机的主机名,但不带末尾的域名。\H
完整的主机名。\j
运行在当前 shell 会话中的工作数。\l
当前终端设备名。\n
一个换行符。\r
一个回车符。\s
shell 程序名。\t
以24小时制,hours:minutes:seconds 的格式表示当前时间.\T
以12小时制表示当前时间。\@
以12小时制,AM/PM 格式来表示当前时间。\A
以24小时制,hours:minutes 格式表示当前时间。\u
当前用户名。\v
shell 程序的版本号。\V
Version and release numbers of the shell.\w
当前工作目录名。\W
当前工作目录名的最后部分。\!
当前命令的历史号。\#
当前 shell 会话中的命令数。\$
这会显示一个"$“字符,除非你拥有超级用户权限。在那种情况下, 它会显示一个”#"字符。\[
标志着一系列一个或多个非打印字符的开始。这被用来嵌入非打印 的控制字符,这些字符以某种方式来操作终端仿真器,比方说移动光标或者是更改文本颜色。\]
标志着非打印字符序列结束。
赋值
将一个变量的内容赋值给一个变量
old=$USER
这样的话使用$old
就是相同的效果了。
如何使用自己的提示符?
PS1="\a\$"
这样的话每次都会有一个提示音。
$PS1="\A \u\$"
01:52 thomashuke$
这样的话就重置了提示符。
给输出添加颜色
用转义序列来设置文本颜色
序列 | 文本颜色 | 序列 | 文本颜色 |
---|---|---|---|
\033[0;30m | 黑色 | \033[1;30m | 深灰色 |
\033[0;31m | 红色 | \033[1;31m | 浅红色 |
\033[0;32m | 绿色 | \033[1;32m | 浅绿色 |
\033[0;33m | 棕色 | \033[1;33m | 黄色 |
\033[0;34m | 蓝色 | \033[1;34m | 浅蓝色 |
\033[0;35m | 粉红 | \033[1;35m | 浅粉色 |
\033[0;36m | 青色 | \033[1;36m | 浅青色 |
\033[0;37m | 浅灰色 | \033[1;37m | 白色 |
用转义序列来设置背景颜色
\033[0;40m | 蓝色 | \033[1;44m | 黑色 |
---|---|---|---|
\033[0;41m | 红色 | \033[1;45m | 紫色 |
\033[0;42m | 绿色 | \033[1;46m | 青色 |
\033[0;43m | 棕色 | \033[1;47m | 浅灰色 |
光标移动转义序列
转义编码 | 行动 |
---|---|
\033[l;cH | 把光标移到第 l 行,第 c 列 |
\033[nA | 把光标向上移动 n 行。 |
\033[nB | 把光标向下移动 n 行。 |
\033[nC | 把光标向前移动 n 个字符。 |
\033[nD | 把光标向后移动 n 个字符。 |
\033[2J | 清空屏幕,把光标移到左上角(第零行,第零列)。 |
\033[K | 清空从光标位置到当前行末的内容。 |
\033[s | 存储当前光标位置。 |
\033[u | 唤醒之前存储的光标位置。 |
分析
序列 | 行动 |
---|---|
[ | 开始一个非打印字符序列。其真正的目的是为了让 bash 能够正确地计算提示符的大小。如果没有这个转义字符的话,命令行编辑 功能会弄错光标的位置。 |
\033[s | 存储光标位置。这个用来使光标能回到原来提示符的位置, 当长条和时钟显示到屏幕上方之后。当心一些 终端仿真器不推崇这个编码。 |
\033[0;0H | 把光标移到屏幕左上角,也就是第零行,第零列的位置。 |
\033[0;41m | 把背景设置为红色。 |
\033[K | 清空从当前光标位置到行末的内容。因为现在 背景颜色是红色,则被清空行背景成为红色,以此来创建长条。注意虽然一直清空到行末, 但是不改变光标位置,它仍然在屏幕左上角。 |
\033[1;33m | 把文本颜色设为黄色。 |
\t | 显示当前时间。虽然这是一个可“打印”的元素,但我们仍把它包含在提示符的非打印部分, 因为我们不想 bash 在计算可见提示符的真正大小时包括这个时钟在内。 |
\033[0m | 关闭颜色设置。这对文本和背景都起作用。 |
\033[u | 恢复到之前保存过的光标位置处。 |
] | 结束非打印字符序列。 |
<\u@\h \W>$ | 提示符字符串。 |
输出特效格式控制:
\033[0m 关闭所有属性
\033[1m 设置高亮度
\03[4m 下划线
\033[5m 闪烁
\033[7m 反显
\033[8m 消隐
\033[30m – \033[37m 设置前景色
\033[40m – \033[47m 设置背景色
光标位置等的格式控制:
\033[nA 光标上移n行
\03[nB 光标下移n行
\033[nC 光标右移n行
\033[nD 光标左移n行
\033[y;xH设置光标位置
\033[2J 清屏
\033[K 清除从光标到行尾的内容
\033[s 保存光标位置
\033[u 恢复光标位置
\033[?25l 隐藏光标
\33[?25h 显示光标
整理:
编码 颜色/动作
0 重新设置属性到缺省设置
1 设置粗体
2 设置一半亮度(模拟彩色显示器的颜色)
4 设置下划线(模拟彩色显示器的颜色)
5 设置闪烁
7 设置反向图象
22 设置一般密度
24 关闭下划线
25 关闭闪烁
27 关闭反向图象
30 设置黑色前景
31 设置红色前景
32 设置绿色前景
33 设置棕色前景
34 设置蓝色前景
35 设置紫色前景
36 设置青色前景
37 设置白色前景
38 在缺省的前景颜色上设置下划线
39 在缺省的前景颜色上关闭下划线
40 设置黑色背景
41 设置红色背景
42 设置绿色背景
43 设置棕色背景
44 设置蓝色背景
45 设置紫色背景
46 设置青色背景
47 设置白色背景
49 设置缺省黑色背景
特效可以叠加,需要使用“;”隔开,例如:闪烁+下划线+白底色+黑字为 \033[5;4;47;30m闪烁+下划线+白底色+黑字为\033[0m
下面是一段小例子
[plain] view plain copy
- #!/bin/bash
-
- #下面是字体输出颜色及终端格式控制
- #字体色范围:30-37
看到了字体使用数字+m的方式 - echo -e “\033[30m 黑色字 \033[0m”
- echo -e “\033[31m 红色字 \033[0m”
- echo -e “\033[32m 绿色字 \033[0m”
- echo -e “\033[33m 黄色字 \033[0m”
- echo -e “\033[34m 蓝色字 \033[0m”
- echo -e “\033[35m 紫色字 \033[0m”
- echo -e “\033[36m 天蓝字 \033[0m”
- echo -e “\033[37m 白色字 \033[0m”
- #字背景颜色范围:40-47
- echo -e “\033[40;37m 黑底白字 \033[0m”
- echo -e “\033[41;30m 红底黑字 \033[0m”
- echo -e “\033[42;34m 绿底蓝字 \033[0m”
- echo -e “\033[43;34m 黄底蓝字 \033[0m”
- echo -e “\033[44;30m 蓝底黑字 \033[0m”
- echo -e “\033[45;30m 紫底黑字 \033[0m”
- echo -e “\033[46;30m 天蓝底黑字 \033[0m”
- echo -e “\033[47;34m 白底蓝字 \033[0m”
- #控制选项说明
- #\033[0m 关闭所有属性
- #\033[1m 设置高亮度
- #\033[4m 下划线
- echo -e “\033[4;31m 下划线红字 \033[0m”
- #闪烁
- echo -e “\033[5;34m 红字在闪烁 \033[0m”
- #反影
- echo -e "\033[8m 消隐 \033[0m "
- #\033[30m-\033[37m 设置前景色
- #\033[40m-\033[47m 设置背景色
- #\033[nA光标上移n行
- #\033[nB光标下移n行
- echo -e “\033[4A 光标上移4行 \033[0m”
- #\033[nC光标右移n行
- #\033[nD光标左移n行
- #\033[y;xH设置光标位置
- #\033[2J清屏
- #\033[K清除从光标到行尾的内容
- echo -e “\033[K 清除光标到行尾的内容 \033[0m”
- #\033[s 保存光标位置
- #\033[u 恢复光标位置
- #\033[?25| 隐藏光标
- #\033[?25h 显示光标
- echo -e “\033[?25l 隐藏光标 \033[0m”
- echo -e “\033[?25h 显示光标 \033[0m”
参考资料:https://it.0voice.com