Linux下自定义Shell终端提示符
Posted Title
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下自定义Shell终端提示符相关的知识,希望对你有一定的参考价值。
目录
@
Linux系统终端提示符的特征由系统环境变量 PS1
(Prompt String One)定义。
我们可以通过命令echo $PS1
来查看当前设置,如下图:
同样,我们可以通过修改PS1
的值来改变终端提示信息:
但这只是临时的修改了,当我们打开新的终端窗口时,提示符又恢复到默认的了。
.
如果希望修改永久生效,我们可以通过更改~/.bashrc
文件,如下图:
保存退出后在终端执行. .bashrc
刷新,便可看到永久版的终端提示符。
好了,打开新的终端窗去看看吧。
***
基本转义符
Shells提示符中用到的转义字符
序列 | 显示值 |
---|---|
a |
以ASCII格式编码的铃声,当遇到这个转移序列时,计算机会发出嗡嗡的响声 |
d |
以日,月,天格式来表示当前日期。例如,"Mon May 26" |
h |
本地机的主机名,但不带末尾的域名 |
H |
完整的主机名 |
j |
运行在当前shell会话中的工作数 |
l |
当前终端设备名 |
|
一个换行符 |
|
一个回车符 |
s |
shell程序名 |
|
以24小时制,hours:minutes:seconds的格式表示当前时间 |
T |
以12小时制表示当前时间 |
@ |
以12小时制,AM/PM格式来表示当前时间,例如"10:51 PM" |
A |
以24小时制,hours:minutes 格式表示当前时间 |
u |
当前用户名 |
v |
shell 程序的版本号,例如4.3 |
V |
shell 程序的详细版本号,例如4.3.11 |
w |
当前工作目录名 |
W |
当前工作目录名的最后部分 |
! |
当前命令的历史号 |
# |
当前 shell 会话中的命令数 |
$ |
这会显示一个"$"字符,除非你拥有超级用户权限。在那种情况下, 它会显示一个"#"字符 |
[ |
标志着一系列一个或多个非打印字符的开始。这被用来嵌入非打印的控制字符,这些字符以某种方式来操作终端仿真器,比方说移动光标或者是更改文本颜色 |
] |
标志着非打印字符序列结束 |
示例
使用转移符A
,将终端提示符修改为显示当前时间,如下图:
***
字体颜色
字体颜色是由ANSI转义编码来控制的,该控制编码会嵌入字符流中并发送给终端仿真器。
但是,该控制编码不会被"打印"到终端上,而是会被终端解释为一个指令。正如我们上面看到的字符序列最下面的两个[
和]
,就是用来封装这些非打印字符的。
一个ANSI转义编码以一个八进制033(这个编码是由退出按键
产生的)开头,其后跟着一个可选的字符属性(0:正常
、1:黑体
、4:下划线
、5:闪烁
、7:反向
(前景色和背景色反转)),再之后是一个指令。
序列 | 文本颜色 | 序列 | 文本颜色 |
---|---|---|---|
|