Prompt Features
Your custom prompt displays:
- Error Code - Shows exit code if last command failed
- Time - Current time in HH:MM format
- CPU Usage - Real-time CPU percentage
- User@Host - Green for normal user, Red for root
- Working Directory - Full path in yellow
- Git Branch - Current branch if in a git repo
Color Legend
Example Prompt
$ _
Prompt Function Code
function __setprompt {
local LAST_COMMAND=$?
local RED="\033[0;31m"
local GREEN="\033[0;32m"
local YELLOW="\033[1;33m"
local BLUE="\033[0;34m"
local MAGENTA="\033[0;35m"
local CYAN="\033[0;36m"
local DARKGRAY="\033[1;30m"
local NOCOLOR="\033[0m"
PS1=""
# Error Exit Code
if [[ $LAST_COMMAND != 0 ]]; then
PS1+="\[${DARKGRAY}\](\[${RED}\]ERROR ${LAST_COMMAND}\[${DARKGRAY}\])-"
fi
# Date & Time
PS1+="\[${DARKGRAY}\](\[${CYAN}\]\$(date +%H:%M)\[${DARKGRAY}\])-"
# CPU & Net Stats
PS1+="(\[${MAGENTA}\]CPU: $(cpu_usage)%\[${DARKGRAY}\])-"
# User & Host
if [[ $EUID -ne 0 ]]; then
PS1+="\[${GREEN}\]\u@\h"
else
PS1+="\[${RED}\]\u@\h"
fi
# Working Directory
PS1+="\[${DARKGRAY}\]:\[${YELLOW}\]\w\[${NOCOLOR}\]"
# Git Branch
if command -v git &> /dev/null; then
local branch=$(git branch 2>/dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/')
if [ ! -z "$branch" ]; then
PS1+="\[${BLUE}\]${branch}\[${NOCOLOR}\]"
fi
fi
PS1+="\n"
if [[ $EUID -ne 0 ]]; then
PS1+="\[${GREEN}\]$\[${NOCOLOR}\] "
else
PS1+="\[${RED}\]#\[${NOCOLOR}\] "
fi
}
PROMPT_COMMAND='__setprompt'