当终端路径太长时(如 [user@host ~/very/long/path/to/dir]$),可以通过修改 PS1 环境变量来简化显示。
一、PS1 提示符语法速查
PS1 是控制 Bash 提示符外观的变量,常用转义符如下:
| 转义符 | 含义 |
|---|---|
| \u | 当前用户名 |
| \h | 主机名(短,第一个点前) |
| \H | 完整主机名 |
| \w | 完整工作路径(home 显示为 ~) |
| \W | 仅当前目录名(basename) |
| \t | 当前时间(24 小时制 HH:MM:SS) |
| \d | 日期 |
| \$ | 提示符(root 为 #,普通用户为 $) |
| \n | 换行 |
| \...\\ | 包裹非打印字符(如颜色码) |
二、查看当前 PS1
echo $PS1
CentOS 默认通常是:
[\u@\h \W]\$
三、修改方法
1. 打开 .bashrc
vim ~/.bashrc
只对当前用户生效。若想全局生效,改
/etc/bashrc(需 root)。
2. 在文件末尾添加配置
根据需求选择以下任一方案:
方案 A:只显示当前目录名(最简洁)
export PS1='[\u@\h \W]\$ '
效果:
[user@host dir]$
方案 B:完全不显示路径
export PS1='[\u@\h]\$ '
效果:
[user@host]$
方案 C:限制路径显示层级(推荐)
Bash 内置变量 PROMPT_DIRTRIM 可限制 \w 显示的目录层数:
export PROMPT_DIRTRIM=2
export PS1='[\u@\h \w]\$ '
效果(路径过长时只显示最后 2 级,前面用 ... 代替):
[user@host .../parent/current]$
方案 D:带颜色 + 简洁路径(美观推荐)
export PROMPT_DIRTRIM=2
export PS1='\[\e[32m\]\u@\h\[\e[0m\]:\[\e[34m\]\w\[\e[0m\]\$ '
效果(用户名绿色、路径蓝色):
user@host:~/dir$
颜色码参考:
| 颜色 | 代码 |
|---|---|
| 红 | \e[31m |
| 绿 | \e[32m |
| 黄 | \e[33m |
| 蓝 | \e[34m |
| 紫 | \e[35m |
| 青 | \e[36m |
| 重置 | \e[0m |
方案 E:路径换行显示(命令始终从行首开始)
export PS1='[\u@\h \w]\n\$ '
效果:
[user@host ~/very/long/path]
$
四、让修改生效
保存退出后,执行:
source ~/.bashrc
或:
. ~/.bashrc
无需重启终端即可看到效果。
五、恢复默认
如果不喜欢修改后的效果,直接注释或删除你添加的 export PS1=... 行,然后:
source ~/.bashrc
六、完整示例(推荐配置)
把以下内容追加到 ~/.bashrc 末尾:
# ===== 自定义提示符 =====
export PROMPT_DIRTRIM=2 # 路径最多显示 2 级
export PS1='\[\e[32m\]\u@\h\[\e[0m\]:\[\e[34m\]\w\[\e[0m\]\$ ' # 彩色 + 简洁
效果示例:
user@host:.../project/src$
七、小贴士
| 需求 | 方法 |
|---|---|
| 临时测试(不写文件) | 直接在终端执行 export PS1='...' |
| 全局对所有用户生效 | 修改 /etc/bashrc(需 root) |
| 查看完整路径 | 任何时候执行 pwd |
| 路径太长想暂时切短 | cd 到目标目录后用 PROMPT_DIRTRIM=1 |
一句话总结 :把
PS1中的\w改成\W,或配合PROMPT_DIRTRIM限制层级,就能让终端路径显示更清爽。