PS1(或提示字符串 1)是主要提示变量,它定义 Linux shell 环境中命令行提示的外观和元素。
它提供了多个自定义选项,使您的命令提示符信息更丰富且更具视觉吸引力。本教程将讨论这些细节,增强您的命令行界面体验。
查看当前 PS1
您可以使用以下命令查看当前的 PS1 字符串:
echo $PS1
Output:
\u@\h:\w\$
命令echo $PS1
显示 PS1 的值环境变量,代表提示字符串的当前状态。
在这里,转义码充当各种信息的占位符:
-
\u
:当前用户名
-
\h
:主机名到第一个点
-
\w
:当前工作目录
-
\$
:显示$
对于普通用户来说,#
对于根
PS1 转义序列
以下是可在 PS1 中用于自定义提示的转义序列的完整列表:
-
\a
: ASCII 响铃字符
-
\d
:日期,格式为“工作日月日”
-
\e
: ASCII 转义字符
-
\h
:主机名,直到第一个点
-
\H
:完整主机名
-
\j
:当前由 shell 管理的作业数量
-
\l
:shell 终端设备名称的基本名称
-
\n
: 新队
-
\r
: 回车
-
\s
: 外壳名称
-
\t
:24 小时制 HH:MM:SS 格式的当前时间
-
\T
:12 小时制 HH:MM:SS 格式的当前时间
-
\@
:当前时间(上午 12 点/下午 12 点)格式
-
\u
:当前用户名
-
\v
: Bash 版本
-
\V
:Bash 的发布,版本 + 补丁级别
-
\w
:当前工作目录,$HOME 缩写为波浪号
-
\W
: 的基本名称$PWD
, with $HOME
用波形符缩写
-
\!
:该命令的历史编号
-
\#
:该命令的命令号
-
\$
:如果UID为0,#
, 否则$
-
\\
: 反斜杠
-
\nnn
:八进制数nnn对应的字符
-
\e[...m
:终端转义序列(允许着色)
您可以使用这些转义序列来制作信息丰富且令人愉悦的命令提示符。
简单的文本定制
您可以简单地在 PS1 字符串中包含您想要的任何文本。这是一个例子:
export PS1="MyCustomPrompt:\w\$ "
Output:
MyCustomPrompt:/path/to/directory$
此处,文本“MyCustomPrompt”已放置在提示字符串的开头,后跟当前工作目录。
在 PS1 中使用颜色
以下是在 PS1 中使用颜色的方法:
export PS1="\e[31m\u@\h:\e[32m\w\e[0m\$ "
Output:
user@hostname:/path/to/directory$
这里,用户名和主机名是红色的(\e[31m
),工作目录为绿色(\e[32m
).
The \e[0m
将后续文本的颜色重置为默认值。
-
\e[31m
: Red
-
\e[32m
: Green
-
\e[33m
: Yellow
-
\e[34m
: Blue
-
\e[35m
:洋红色
-
\e[36m
: Cyan
-
\e[37m
: White
您可以使用这些颜色代码来创建具有视觉吸引力且信息丰富的提示。
有条件定制
您可以根据条件自定义提示。具体做法如下:
if [ "$USER" = "root" ]; then
PS1="\e[31m\u@\h:\w\$\e[0m "
else
PS1="\u@\h:\w\$ "
fi
root 用户的命令输出:
root@hostname:/path/to/directory$
此代码片段检查当前用户是否为“root”,并将红色应用于 root 提示,而对其他用户则保持不变。
此类条件自定义可以扩展为包括其他属性,例如主机名、环境等。
显示Git分支信息
对于那些使用 Git 存储库的人来说,在提示中包含当前分支名称会很方便。就是这样:
export PS1="\u@\h:\w\$(git rev-parse --abbrev-ref HEAD 2>/dev/null)\$ "
Output:
user@hostname:/path/to/repo/master$
命令git rev-parse --abbrev-ref HEAD
检索当前的 Git 分支名称,并在提示字符串本身内执行。
如果不在 Git 存储库中,它将不会在工作目录之后显示任何内容。
使用子shell函数
您可以使用子 shell 函数将动态内容合并到 PS1 中。这是一个例子:
get_loadavg() {
awk '{ print $1 }' /proc/loadavg
}
export PS1="\u@\h:\w Load:\$(get_loadavg)\$ "
Output:
user@hostname:/path/to/directory Load:0.45$
在这里,get_loadavg
函数获取系统的平均负载/proc/loadavg
,提示执行该函数,显示负载平均值。
使用 ASCII 艺术和自定义符号
您可以在提示中包含 ASCII 艺术或自定义符号。这是一个简单的例子:
export PS1="
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)