Bash 提示符由環境變數 `PS1` 定義,包含 **ANSI 轉義碼** 設定顏色、樣式、顯示內容 (用戶名、主機名、路徑、Git 分支、時間等)。修改 `~/.bashrc` 即可永久生效。
| 代碼 | 顏色/屬性 | 說明 |
|---|---|---|
| `\033[0m` / `\[\e[0m\]` | 重置 | 關閉所有屬性,恢復預設 |
| `\033[1m` | 粗體/高亮 | |
| `\033[30m`~`\033[37m` | 前景色 (黑紅綠黃藍洋紅青白) | **31=紅、32=綠、33=黃、34=藍、35=紫、36=青、37=白** |
| `\033[90m`~`\033[97m` | 高亮前景色 (亮黑/灰~亮白) | 91=亮紅、92=亮綠... |
| `\033[40m`~`\033[47m` | 背景色 | 41=紅底、42=綠底... |
**在 PS1 中必須用 `\[` 和 `\]` 包裹非打印字元序列**,否則命令行編輯 (換行、刪除、歷史導航) 會錯位。
cp ~/.bashrc ~/.bashrc.bak.$(date +%F)
gedit ~/.bashrc # 或 nano/vim/code
尋找類似代碼 (Ubuntu 預設 `~/.bashrc` 片段):
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
# 將用戶名 \u 設為紅色 (31; 加粗 01)
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u\[\033[00m\]@\[\033[01;32m\]\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
# 解析:
# \[\033[01;31m\] 紅色粗體 開啟
# \u 用戶名
# \[\033[00m\] 重置
# @ 字面字符 @
# \[\033[01;32m\] 綠色粗體 開啟
# \h 主機名
# \[\033[00m\] 重置
# : 字面字符 :
# \[\033[01;34m\] 藍色粗體 開啟
# \w 完整工作目錄
# \[\033[00m\] 重置
# \$ 提示符 ($ 或 #)
# 註釋掉原有 if/else/fi 區塊 (前面加 #)
# if [ "$color_prompt" = yes ]; then ...
# fi
# 追加自定義 PS1 (紅色用戶名、綠色主機名、藍色路徑)
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u\[\033[00m\]@\[\033[01;32m\]\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
source ~/.bashrc
# 或 . ~/.bashrc
# 或重新打開終端機

編輯 `/root/.bashrc` (需 sudo),設定明顯區分的提示符:
# Root 紅底白字粗體閃爍 (極度醒目)
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;37;41;5m\]\u\[\033[00m\]@\[\033[01;32m\]\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
# 37=白字, 41=紅底, 5=閃爍
# 經典綠色用戶名@主機名:藍色路徑$ (Ubuntu 預設 color_prompt=yes)
PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
# 含 Git 分支 (需安裝 git-prompt.sh / 使用 __git_ps1)
PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;33m\]$(__git_ps1 " (%s)")\[\033[00m\]\$ '
# 含時間、返回碼、Python 虛擬環境
PS1='\[\033[01;31m\]\t\[\033[00m\] \[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\] $(__venv_ps1) \[\033[01;33m\]$(__git_ps1)\[\033[00m\]\n\$ '
修改 `~/.bashrc` 中 `PS1` 變數,用 `\[\033[01;31m\]` 將 `\u` (用戶名) 包裹即可變紅。**記住 `\[` `\]` 包裹非打印序列**,否則命令行會亂碼。追求極致體驗請直接上 **Starship**,一條指令安裝,跨 Shell、跨平台、開箱即用、配置人性化。