【Linux下自定义Shell终端提示符】

【Linux下自定义Shell终端提示符】,第1张

概述目录 基本转义符 字体颜色 背景颜色 移动光标 @ Linux系统终端提示符的特征由系统环境变量 PS1(Prompt String One)定义。 我们可以通过命令echo $PS1来查看当前设置,如下图: 同样,我们可以通过修改PS1的值来改变终端提示信息: 但这只是临时的修改了,当我们打开新的终端窗口时,提示符又恢复到默认的了。 . 如果希望修改永久生效,我们可以通过更改~/.bashrc文

目录

基本转义符 字体颜色 背景颜色 移动光标

@

linux系统终端提示符的特征由系统环境变量 PS1(Prompt String One)定义。

我们可以通过命令echo $PS1来查看当前设置,如下图:


同样,我们可以通过修改PS1的值来改变终端提示信息:


但这只是临时的修改了,当我们打开新的终端窗口时,提示符又恢复到默认的了。
.
如果希望修改永久生效,我们可以通过更改~/.bashrc文件,如下图:


保存退出后在终端执行. .bashrc刷新,便可看到永久版的终端提示符。
好了,打开新的终端窗去看看吧。
***

基本转义符

Shells提示符中用到的转义字符

序列 显示值
\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格式来表示当前时间,例如"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:反向(前景色和背景色反转)),再之后是一个指令。

序列 文本颜色 序列 文本颜色
3[0;30m 黑色 3[1;30m 黑体黑色
3[0;31m 红色 3[1;31m 黑体红色
3[0;32m 绿色 3[1;32m 黑体绿色
3[0;33m 棕色 3[1;33m 黑体棕色
3[0;34m 蓝色 3[1;34m 黑体蓝色
3[0;35m 粉红 3[1;35m 黑体粉色
3[0;36m 青色 3[1;36m 黑体青色
3[0;37m 浅灰色 3[1;37m 黑体浅灰色

示例

更改终端提示符颜色为黑体蓝色,如下图:


后面的3[00m是用于将后续的字符颜色还原回原来的颜色。
如果没有写这个转义码,将会导致输入的命令颜色也会改变。
所以,我们还可以这样玩:


看到了吧,命令和输出信息的颜色也一同改变了。
***

背景颜色

除了字体颜色,我们还可以设置字体的背景颜色。同样是通过转义的控制编码来实现,下表是背景颜色的控制编码。

序列 背景颜色 序列 背景颜色
3[0;40m 黑色 3[1;44m 蓝色
3[0;41m 红色 3[1;45m 粉红
3[0;42m 绿色 3[1;46m 青色
3[0;43m 棕色 3[1;47m 浅灰色
移动光标

转义编码也可以用来定位光标。这些编码通常被用于:每当提示符出现的时候(会在屏幕的不同位置,比如说上面一个角落),显示一个时钟或者其它一些信息。下表是一系列用来定位光标的转义编码。

转义码 行动
3[l;cH 把光标移到第 l 行,第 c 列
3[nA 把光标向上移动 n 行
3[nB 把光标向下移动 n 行
3[nC 把光标向前移动 n 个字符
3[nD 把光标向后移动 n 个字符
3[2 清空屏幕,把光标移到左上角(第零行,第零列)
3[K 清空从光标位置到当前行末的内容
3[s 存储当前光标位置
3[u 唤醒之前存储的光标位置

写在哈佛墙上的七句话

我颓废的今日,正是昨天殒身之人祈求的明天; 请享受无法回避的痛苦; 觉得自己为时已晚的时候,恰恰是最早的时候; 谁也不可能轻易成功,它来自彻底的自我管理能力和毅力; 现在流的口水,将成为明天的眼泪; 今天不走,明天要跑; 即使此刻,对手也在不停的翻动书页。 总结

以上是内存溢出为你收集整理的【Linux下自定义Shell终端提示符】全部内容,希望文章能够帮你解决【Linux下自定义Shell终端提示符】所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1020004.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存