鼠小弟生活志 鼠小弟生活志
深圳 --°

2026-08-17Linux配置 - 终端修改显示路径

前置知识

  • 在 Linux 中,终端显示的路径是通过环境变量 PS1 来控制的

有很多linux发行版本默认的Shell已经是Zsh,但网上搜索很多办法还是修改Bash的配置文件

  • 排查:在终端运行echo $SHELL

  • 如果输出 /bin/bash,说明是 Bash,去修改 ~/.bashrc文件

  • 如果输出 /bin/zsh,说明是 Zsh,去修改 ~/.zshrc 文件

办法

临时修改(当前窗口)

export PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ '

(❗注意:大写W)

永久生效(修改配置文件)

  1. shell 配置文件(通常是 ~/.bashrc,如果你用 zsh 则是 ~/.zshrc):

vim ~/.bashrc
  1. 找到控制 PS1 的那一行(通常包含 \w),将其中的小写 \w 改为大写 \W

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ '

(和上面一样,修改为大写W)
3. 让配置生效即可source ~/.bashrc

万金油通用方法

有的终端框架或者美化主题会强制覆盖PS1设置(例如:Oh My Zsh),不想烧脑一个个配置项的去找,可以直接在文件最末端强制重写

❗补充:Zsh 中通常用 PROMPT 或 PS1,且路径简写符号略有不同,Zsh 里只显示最后一级目录通常用 %1~ 或 %c(核心!相当于 Bash 的 \W

补充:

20年之前的博客文章很多提到修改:
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\W\$ '
这种做法目前过时,因为现在配置文件增加了满足颜色条件判断
例如在Ubuntu24中配置如下:

// 支持彩色条件
if [ "$color_prompt" = yes ]; then

    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

else
// 不支持
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '

fi

unset color_prompt force_color_prompt

在 Linux/Bash 的默认配置文件(如 Ubuntu 的 .bashrc)中,系统会通过一段代码来检查当前的终端窗口支不支持显示颜色
这样的做法主要是老旧终端兼容/精简环境不支持颜色,硬塞带颜色控制代码(例如\033[01;32m]),终端无法识别就会打印出乱码
大部分人使用的终端还是支持带颜色,所以 "$color_prompt" = yes,主分支支持带颜色;即修改主分支的w为大写W

附录

常用Bash环境配置默认的特殊符号所代表的意义:

\d :代表日期,格式为weekday month date,例如:"Mon Aug 1"

\H :完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux

\h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略

\t :显示时间为24小时格式,如:HH:MM:SS

\T :显示时间为12小时格式

\A :显示时间为24小时格式:HH:MM

\u :当前用户的账号名称

\v :BASH的版本信息

\w :完整的工作目录名称。家目录会以 ~代替

\W :利用basename取得工作目录名称,所以只会列出最后一个目录

# :下达的第几个命令

$ :提示字符,如果是root时,提示符为:# ,普通用户则为: