萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Ubuntu 終端機提示符美化:將用戶名顯示為紅色、綠色、藍色等自定義顏色 (PS1 變數配置)

前言:PS1 變數控制 Bash 提示符外觀

Bash 提示符由環境變數 `PS1` 定義,包含 **ANSI 轉義碼** 設定顏色、樣式、顯示內容 (用戶名、主機名、路徑、Git 分支、時間等)。修改 `~/.bashrc` 即可永久生效。

一、 理解 ANSI 色碼

代碼顏色/屬性說明
`\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 中必須用 `\[` 和 `\]` 包裹非打印字元序列**,否則命令行編輯 (換行、刪除、歷史導航) 會錯位。

二、 備份並編輯 `~/.bashrc`

cp ~/.bashrc ~/.bashrc.bak.$(date +%F)
gedit ~/.bashrc  # 或 nano/vim/code

三、 定位並修改 PS1 相關區塊

尋找類似代碼 (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

方案 A:直接修改現有 `color_prompt=yes` 分支 (保留原邏輯,只改顏色)

# 將用戶名 \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\]      重置
# \$               提示符 ($ 或 #)

方案 B:註釋掉原邏輯,在檔案末尾追加自定義 PS1 (更直觀、不受原邏輯干擾)

# 註釋掉原有 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 用戶提示符區分 (紅底白字/閃爍警示)

編輯 `/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=閃爍

六、 參考:網路上常見的 PS1 範例

# 經典綠色用戶名@主機名:藍色路徑$ (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\$ '

七、 進階工具:Starship / Oh My Posh / Powerlevel10k (Zsh) — 開箱即用的極致美化

  • Starship (Rust 寫、跨 Shell Bash/Zsh/Fish/PowerShell、極速、配置 `~/.config/starship.toml`):**最推薦現代選擇**。`curl -sS https://starship.rs/install.sh | sh` → 在 `~/.bashrc` 末尾加 `eval "$(starship init bash)"`。
  • Oh My Posh (Go 寫、跨平台、主題豐富、JSON 配置)。
  • Powerlevel10k (Zsh 專用、極致快、配置嚮導 `p10k configure`)。

總結

修改 `~/.bashrc` 中 `PS1` 變數,用 `\[\033[01;31m\]` 將 `\u` (用戶名) 包裹即可變紅。**記住 `\[` `\]` 包裹非打印序列**,否則命令行會亂碼。追求極致體驗請直接上 **Starship**,一條指令安裝,跨 Shell、跨平台、開箱即用、配置人性化。

copyright © 萬盛學電腦網 all rights reserved