炫酷的提示符

自定义提示

在本文中,我们将介绍一些细节 — shell提示。 该检查将揭示shell的一些内部工作原理以及终端仿真器程序本身。

就像Linux中的许多东西一样,shell提示符是高度可配置的,尽管我们已经将其视为理所当然,但是一旦学会了如何控制它,该提示符便是一个非常有用的设备。

提示解剖

默认提示符如下:

[xiongze@iZerb5rob3dcf6Z ~]$ 

注意到,它包含用户名主机名和当前的工作目录。该提示由名为PS1的环境变量定义( “prompt string one”的缩写)。 我们可以使用echo命令查看PS1的内容:

[xiongze@iZerb5rob3dcf6Z ~]$ echo $PS1
[\u@\h \W]\$

从结果中,我们可以看到PS1包含一些我们在提示符下看到的字符,例如方括号,@符号和$符号。反斜杠转义的特殊字符。这是shell在提示字符串中特殊对待的部分字符列表:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

尝试新的设计

使用此特殊字符列表,我们可以更改提示以查看效果。首先,我们将备份现有的字符串,以便我们稍后将其还原。为此,我们将复制现有的字符串到我们创建的另一个shell变量中:

[root@iZerb5rob3dcf6Z ~]$ ps1_old="$PS1"
[root@iZerb5rob3dcf6Z ~]$ echo $ps1_old 
[\u@\h \W]\$
#任何时候只需执行此操作即可恢复初始状态
[root@iZerb5rob3dcf6Z ~]$ PS1="$ps1_old"

修改PS1的值:

[root@iZerb5rob3dcf6Z ~]# PS1="\$"
$pwd
/root
$echo $PS1
$
#我们包括了\ [和\]序列。自从ASCII铃(\ a)不会“打印”,也就是说,它不会移动光标,我们需要知道bash,以便它可以正确确定提示的长度。
$PS1="\[\d\]\$"
六 6月 13$echo $PS1
\[\d\]$
六 6月 13$PS1="\A \h \$"
13:42 iZerb5rob3dcf6Z $echo $PS1
\A \h $

增加颜色

大多数终端仿真器程序会响应某些非打印字符序列,以控制诸如字符属性(如颜色,粗体文本和可闪烁文本)和光标位置之类的内容。

通过向终端仿真器发送嵌入在要显示的字符流中的ANSI转义码来控制字符颜色。 控制代码不会“打印”在显示器上,而是由终端解释为指令。

正如我们在上表中,\ [\]序列用于封装非打印字符。ANSI转义代码以八进制 033(由转义键生成的代码)开头,后跟可选的 字符属性,然后是指令。 例如,
将文本颜色设置为正常(属性 = 0)的代码,黑色文本为:

\033 [0 ; 30m

这是可用文本颜色的表格。 请注意,颜色分为两组,通过使用粗体字符属性(1)进行区分,该属性创建“浅”颜色的外观,以下是用于设置文本颜色的转义序列:
在这里插入图片描述在这里插入图片描述
尝试发出红色提示。在开头插入转义代码:
在这里插入图片描述
关闭颜色

\033[0m  关闭颜色。这会影响文本和背景。

但是注意,在提示符后键入的所有文本也都是红色。为此,我们需在提示的末尾添加另一个转义代码,告诉终端返回以前的颜色:
在这里插入图片描述
在这里插入图片描述
也可以使用下面列出的代码设置文本背景颜色。背部底色不支持粗体属性。
在这里插入图片描述
我们可以通过对第一个进行简单的更改来创建背景的提示:
在这里插入图片描述
注意:除了普通(0)和粗体(1)字符属性外,文本也可能是同时指定下划线(4),闪烁(5)和反转(7)属性。

保存提示

我们可以通过将提示添加到我们的.bashrc中来使其永久保存文件。

总结

更多精彩内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值