默認 user@host:/path$ 提示符過長、信息冗余。通過修改 PS1 環境變量,可自定義顏色、路徑深度、Git 分支、時間等信息,構建專屬高效終端。
| 代碼 | 含義 | 示例輸出 |
|---|---|---|
\u | 當前用戶名 | ubuntu |
\h | 主機名 (短) | server01 |
\H | 主機名 (全域名) | server01.example.com |
\w | 完整工作目錄 (家目錄顯示 ~) | /home/ubuntu/projects |
\W | 當前目錄名 (basename) | projects |
\$ | 提示符 (# root, $ 普通用戶) | $ |
\t | 時間 24制 (HH:MM:SS) | 14:30:25 |
\T | 時間 12制 (HH:MM:SS) | 02:30:25 |
\@ | 時間 12制 (am/pm) | 02:30 PM |
\d | 日期 (Weekday Month Date) | Tue Jan 25 |
\v | Bash 版本 | 5.0.17 |
\V | Bash 版本詳情 | 5.0.17(1)-release |
\! | 歷史命令編號 | 1024 |
\j | 後台任務數 | 2 |
\l | 終端設備名 | pts/0 |
# 格式: \[\033[ATTR;FG;BGm\]
# 屬性: 0=重置 1=粗體 4=下劃線 7=反轉
# 前景: 30-37 (黑紅綠黃藍洋紅青白)
# 背景: 40-47
# 90-97/100-107: 高亮前景/背景
# 示例:綠色用戶@主機 藍色路徑
PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
# 必須用 \[\] 包裹非打印字符,否則命令行換行計算錯誤
export PS1='[\w]\$ '
# 輸出: [/home/ubuntu]$
# 退出終端失效
vim ~/.bashrc
# 找到 PS1 設置區域 (約第 50-60 行)
# 修改為:
if [ "$color_prompt" = yes ]; then
PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='[\w]\$ ' # 簡潔模式:只顯示路徑
fi
# 立即生效
source ~/.bashrc
PS1='\[\033[36m\]\W\[\033[00m\] \[\033[32m\]➜\[\033[00m\] '
# 輸出: projects ➜
source /usr/lib/git-core/git-sh-prompt # Ubuntu 路徑
PS1='\[\033[36m\]\W\[\033[00m\] \[\033[33m\]$(__git_ps1 "(%s)")\[\033[00m\] \[\033[32m\]➜\[\033[00m\] '
# 輸出: projects (main) ➜
PS1='\[\033[32m\]\u@\h \[\033[34m\]\w\[\033[00m\]\n\[\033[33m\]\$\[\033[00m\] '
# 輸出:
# ubuntu@server projects
# $
PS1='$(if [ $? -eq 0 ]; then echo "\[\033[32m\]✓"; else echo "\[\033[31m\]✗ $?"; fi) \[\033[36m\]\W\[\033[00m\] ➜ '
# 輸出: ✓ projects ➜ 或 ✗ 1 projects ➜
PS2='\[\033[33m\]>\[\033[00m\] ' # 多行輸入續行
PS3='\[\033[36m\]Select:\[\033[00m\] ' # select 選單
PS4='\[\033[35m\]+\[\033[00m\] ' # set -x 調試跟蹤
\[\] 包裹顏色碼 → 命令行換行混亂/etc/bash.bashrc 影響所有用戶source ~/.bashrc 而非重新登錄\$ 區分 root/普通用戶定製 PS1,讓終端成為得心應手的生產力工具而非信息噪音源。