版权声明:郭振银学习记录 https://blog.csdn.net/karelcn/article/details/82826645
** 终端提示符PS1的值由静态文本或和转义字符序列组成.
如:PS1="[\u@\h \w]$ "
1.基本转义字符
转义字符 | 含义 | 转义字符 | 含义 | |
---|---|---|---|---|
\a | ASCII铃声。在遇到该转义字符时,计算机发出哔哔声 | |||
\d | 当前日期,一星期、月、日的形式表示,如“Mon May 26” | |||
\t | 当前时间24小时制,格式为小时:分钟:秒 | \T | 当前时间12小时制 | |
\@ | 当前时间12小时制,格式为AM/PM格式来表示当前时间,例如“10:51 PM” | \A | 当前时间23小时制,格什温小时:分钟 | |
\u | 当前用户名 | |||
\v | shell程序的版本号 | \V | sehll程序的版本号和发行号 | |
\w | 当前工作目录名 | \W | 当前工作目录名称的最后一部分 | |
\h | 本地机器的主机名,不带域名 | \H | 完整的主机名 | |
\j | 当前shell会话中进行的任务个数 | |||
\l | 当前终端设备的名称 | |||
\n | 换行符 | |||
\r | 回车符 | |||
\s | shell程序的名称 | |||
\! | 当前命令的历史编号 | |||
\# | 当前shell会话的输入的命令数 | |||
\$ | 在非管理员权限下输出‘$‘符号,管理员权限输出‘#’ | |||
\[ | 标志着一系列一个或多个非打印字符的开始。这被用来嵌入非打印的控制字符,这些字符以某种方式来操作终端仿真器,比方说移动光标或者是更改文本颜色。 | \] | 标志着非打印字符序列结束 |
2.控制文本颜色和光标移动
在PS1中使用要使用非打印字符开始和结束符号
通过ANSI转义的编码来控制
一个ANSI转义编码以一个八进制\033(该代码由转义键[escape key] 产生)开始,后面跟着可选的字符属性,之后是一条指令
bash \033 也支持\e <=> \033
格式\033[0;30m “\033开始 [ 开头 ;分隔(可使用多个数值,用分号隔开) m结尾”
可选属性
数字 | 含义 |
---|---|
0 | 正常 |
1 | 加粗 |
4 | 下划线 |
5 | 闪烁 |
7 | 反向(前景背景色反转) |
前景色/字颜色 30~39
背景色/字背景颜色 40~49
使用脚本测试颜色
#!/bin/bash
#
#测试颜色
cl='\e[0m'
echo -e "\n前景色(字的颜色):\n"
for I in {0..9};do
echo -e "色号(3${I}) 正常(0):\033[0;3${I}m A $cl 加粗(1):\033[1;3${I}m A $cl 前景背景颜色反转(7):\033[7;3${I}m A $cl"
done
echo -e "\n背景色(字的背景颜色):\n"
for I in {0..9};do
echo -e "色号(4${I}) 正常(0):\033[0;4${I}m B $cl 加粗(1):\033[1;4${I}m B $cl 前景背景颜色反转(7):\033[7;4${I}m B $cl"
done
测试样本
其它
\33[0m 关闭所有属性
\33[1m 设置高亮度
\33[4m 下划线
\33[5m 闪烁
\33[7m 反显
\33[8m 消隐
\33[30m – \33[37m 设置前景色
\33[40m – \33[47m 设置背景色
\33[nA 光标上移n行
\33[nB 光标下移n行
\33[nC 光标右移n行
\33[nD 光标左移n行
\33[y;xH 自定义光标移到第 y 行,第 x 列。
\33[2J 清屏
\33[K 清除从光标到行尾的内容
\33[s 存储当前光标位置
\33[u 恢复之前存储光标位置
\33[?25l 隐藏光标
\33[?25h 显示光标
3.应用脚本
临时:
PS1='\[\033[0;43m\][\u@\h] \[\033[0m\]\[\033[0;46m <\w> \[\033[0m\]\n[\d \@ bash-\v]\$ '
临时全局:export PS1
保存开机就有:将上面代码添加到~/.bashrc文件中或者~/.bash_profile文件中