export PS1='\e[1;32m\][\e[1m\]\e[3;35m\]\u\e[0;34m\]@\e[1;33m\]\H\e[1;32m\]][\e[1;34m\]\t\e[1;32m\]][$([[ $? != 0 ]] && echo -ne "\e[31mFAIL\e[0m" || echo -ne "\e[34mOK\e[0m")\e[1;32m\]] \e[1m\]\e[3;30m\]\w\e[0m\]\n\$ '
这个命令是用来设置 Bash shell 的提示符(PS1
)的。PS1
是一个环境变量,用于定义命令行提示符的显示格式。通过修改 PS1
,你可以自定义命令行提示符的外观和行为。
下面是对这个 PS1
设置的详细解释:
1. 颜色和样式控制
\e[1;32m\]
:设置文本颜色为亮绿色(1;32
)。\e[1m\]
:设置文本为粗体(1
)。\e[3;35m\]
:设置文本为斜体(3
)并设置颜色为紫色(35
)。\e[0;34m\]
:重置文本样式(0
)并设置颜色为蓝色(34
)。\e[1;33m\]
:设置文本为粗体(1
)并设置颜色为黄色(33
)。\e[1;34m\]
:设置文本为粗体(1
)并设置颜色为蓝色(34
)。\e[31m\]
:设置文本颜色为红色(31
)。\e[34m\]
:设置文本颜色为蓝色(34
)。\e[3;30m\]
:设置文本为斜体(3
)并设置颜色为黑色(30
)。\e[0m\]
:重置所有样式和颜色。
2. 提示符内容
\u
:当前用户名。\H
:主机名。\t
:当前时间(24小时制,格式为HH:MM:SS
)。\w
:当前工作目录的完整路径。\n
:换行符。\$
:如果当前用户是 root,则显示#
,否则显示$
。
3. 条件判断
$([[ $? != 0 ]] && echo -ne "\e[31mFAIL\e[0m" || echo -ne "\e[34mOK\e[0m")
:这是一个条件判断语句,用于检查上一个命令的退出状态($?
)。如果上一个命令失败($? != 0
),则显示红色的FAIL
;如果成功,则显示蓝色的OK
。
4. 结构解析
\e[1;32m\][\e[1m\]\e[3;35m\]\u\e[0;34m\]@\e[1;33m\]\H\e[1;32m\]]
:显示[用户名@主机名]
,其中用户名是紫色斜体,主机名是黄色粗体,整体用亮绿色方括号括起来。[\e[1;34m\]\t\e[1;32m\]]
:显示当前时间,时间显示为蓝色粗体,用亮绿色方括号括起来。[$([[ $? != 0 ]] && echo -ne "\e[31mFAIL\e[0m" || echo -ne "\e[34mOK\e[0m")\e[1;32m\]]
:显示上一个命令的执行状态,失败显示红色FAIL
,成功显示蓝色OK
,用亮绿色方括号括起来。\e[1m\]\e[3;30m\]\w\e[0m\]\n\$
:显示当前工作目录,目录路径显示为黑色斜体,换行后显示$
或#
。
5. 总结
这个 PS1
设置了一个非常详细的命令行提示符,包含了用户名、主机名、当前时间、上一个命令的执行状态、当前工作目录等信息,并且使用了多种颜色和样式来区分不同的部分。