Bash 提示符配置指南
Apr 29, 2026 · 1805 字
一般来说安装的 Ubuntu 等 Linux 发行版的 Bash 提示符都是默认的。但是笔者最近使用 TencentOS Server 4 的时候发现系统没有默认的 .bashrc 文件,也就没有提示符,经常需要输入 pwd 来查看当前路径,非常的不便。遂研究了一下如何设置 bash 的提示符。
绝大多数的 Shell 都是通过 PS1 环境变量来设置提示符的。PS1 是 Primary Prompt String 的缩写,表示主提示符字符串。你可以在 PS1 中使用各种占位符来显示不同的信息,比如用户名、主机名、当前目录、时间等等。
只需要在 ~/.bashrc 文件中添加一行代码来设置 PS1 变量即可。例如:
export PS1='\[\e[32m\]\u@\h\[\e[0m\]:\[\e[34m\]\w\[\e[0m\]\$ '
PS1 占位符列表
不同的 Shell 可能支持不同的占位符,以下是 Bash Shell 中常用的 PS1 占位符列表:
| 占位符 | 说明 |
|---|---|
\u | 当前用户名 |
\h | 主机名(短格式) |
\H | 完整主机名 |
\w | 当前工作目录(完整路径) |
\W | 当前工作目录(仅目录名) |
\d | 当前日期(Mon DD) |
\t | 当前时间(HH:MM:SS) |
\T | 当前时间(12小时制 HH:MM:SS) |
\@ | 当前时间(12小时制,AM/PM) |
\A | 当前时间(24小时制 HH:MM) |
\j | shell 中的后台作业数 |
\l | shell 的终端设备名 |
\n | 换行符 |
\r | 回车符 |
\s | shell 的名称 |
\v | bash 版本 |
\V | bash 版本和补丁级别 |
\e | ANSI 转义符(\033) |
\\ | 反斜杠 |
\$ | 如果 UID=0 显示 #,否则显示 $ |
\! | 当前命令的历史记录号 |
\# | 当前 shell 会话中的命令号 |
\nnn | 八进制值为 nnn 的字符 |
\[ | 不可打印字符序列的开始(用于颜色控制) |
\] | 不可打印字符序列的结束(用于颜色控制) |
你也可以使用 https://bash-prompt-generator.org/ 这样的工具来生成你喜欢的 PS1 提示符。
此外还有 starship 这样的跨平台提示符工具,支持多种 shell 和操作系统,可以提供更丰富的功能和美观的界面,但需要额外安装和配置。