Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Ubuntu 終端提示符美化:將用戶名設置為醒目紅色的完整配置指南

編輯:關於 Linux

默認的 Bash 提示符(PS1)顏色單調,長時間操作易視覺疲勞。通過修改 ~/.bashrc 中的 PS1 變量,利用 ANSI 轉義序列可實現用戶名、主機名、路徑、Git 分支等元素的豐富著色。本文以「用戶名紅色高亮」為例,提供完整配置模板與原理解析。

一、PS1 變量與 ANSI 轉義序列基礎

轉義序列效果示例
\e[0m 或 \e[39;49m重置所有屬性結束著色
\e[1m粗體/高亮\e[1mBold\e[0m
\e[31m前景紅色\e[31mRed\e[0m
\e[32m前景綠色\e[32mGreen\e[0m
\e[34m前景藍色\e[34mBlue\e[0m
\e[41m背景紅色\e[41mBgRed\e[0m

在 PS1 中需用 \[ \] 包裹非打印字符序列,防止行寬計算錯誤導致命令行換行混亂。

二、備份並編輯 ~/.bashrc

cp ~/.bashrc ~/.bashrc.bak
gedit ~/.bashrc   # 或 vim/nano

三、定位並替換 PS1 定義段

在文件中搜索 PS1=,通常位於 if [ "$color_prompt" = yes ]; then 邏輯塊內。將整個 if-else-fi 區塊替換為以下統一彩色定義:

# 強制啟用彩色提示符
force_color_prompt=yes

# 統一 PS1 定義(用戶名紅色粗體,主機名綠色,路徑藍色,$ 白色)
PS1='\[\e[1;31m\]\u\[\e[0m\]@\[\e[1;32m\]\h\[\e[0m\]:\[\e[1;34m\]\w\[\e[0m\]\$ '

# 解析:
# \[\e[1;31m\]   -> 開啟 粗體+紅色
# \u            -> 用戶名
# \[\e[0m\]     -> 重置
# @             -> 字面符號 @
# \[\e[1;32m\]   -> 開啟 粗體+綠色
# \h            -> 主機名 (短)
# \[\e[0m\]     -> 重置
# :             -> 字面符號 :
# \[\e[1;34m\]   -> 開啟 粗體+藍色
# \w            -> 當前工作目錄 (完整路徑,~ 縮寫)
# \[\e[0m\]     -> 重置
# \$            -> 提示符 (# 為 root, $ 為普通用戶)
# 空格          -> 美觀分隔

四、可選進階:集成 Git 分支顯示(需安裝 git-prompt.sh)

# 下載 git-prompt.sh (通常系統已自帶 /usr/lib/git-core/git-sh-prompt)
source /usr/lib/git-core/git-sh-prompt  # 或 /etc/bash_completion.d/git-prompt

# 設置顯示風格
GIT_PS1_SHOWDIRTYSTATE=1
GIT_PS1_SHOWSTASHSTATE=1
GIT_PS1_SHOWUNTRACKEDFILES=1
GIT_PS1_SHOWUPSTREAM="auto"

# 含 Git 分支的 PS1 (分支名黃色)
PS1='\[\e[1;31m\]\u\[\e[0m\]@\[\e[1;32m\]\h\[\e[0m\]:\[\e[1;34m\]\w\[\e[0m\]\[\e[1;33m\]$(__git_ps1 " (%s)")\[\e[0m\]\$ '

五、Root 用戶區分配置(可選)

為避免誤操作,建議 Root 提示符顯著不同(如紅色背景):

# 在 /root/.bashrc 中添加
if [[ $EUID -eq 0 ]]; then
    PS1='\[\e[1;37;41m\]\u\[\e[0m\]@\[\e[1;32m\]\h\[\e[0m\]:\[\e[1;34m\]\w\[\e[0m\]\$ '
    # 用戶名白字紅背,極度醒目
fi

六、生效驗證

source ~/.bashrc
# 或重新打開終端

效果預覽:
user@hostname:~/projects$

七、常見問題排查

現象原因解決
提示符顯示亂碼如 \[\e[1;31m\]未用 \[ \] 包裹非打印序列檢查 PS1 中每個轉義序列均被 \[ \] 包圍
修改後無效果編輯錯誤文件、或被後續腳本覆蓋確認編輯 ~/.bashrc,檢查 ~/.bash_profile、/etc/bash.bashrc 是否覆蓋
命令行換行錯位非打印字符未正確標記導致寬度計算錯嚴格使用 \[ \],避免在序列外放入可見字符

PS1修改前後對比截圖

紅色用戶名效果圖

參考配置示例

八、一鍵部署腳本(可直接執行)

#!/bin/bash
# deploy_red_prompt.sh
cat >> ~/.bashrc << 'EOF'

# === Custom Red Username Prompt ===
force_color_prompt=yes
PS1='\[\e[1;31m\]\u\[\e[0m\]@\[\e[1;32m\]\h\[\e[0m\]:\[\e[1;34m\]\w\[\e[0m\]\$ '
EOF
source ~/.bashrc
echo "Red username prompt deployed. Open new terminal to see effect."

執行:bash deploy_red_prompt.sh

九、總結

  • 核心文件:~/.bashrc (交互式非登錄 Shell 讀取)。
  • 核心變量:PS1,使用 \[ANSI_CODE\] 包裹顏色代碼。
  • 用戶名紅色關鍵:\[\e[1;31m\]\u\[\e[0m\]。
  • 生效命令:source ~/.bashrc。
  • Root 區分配置可顯著降低誤操作風險。

三分鐘配置,終身受益的視覺區分度,讓每一次敲擊鍵盤都清晰可辨。

Copyright © Windows教程網 All Rights Reserved