Add PS1 setup
This commit is contained in:
parent
54bd5338d2
commit
1c2ddd8c5b
3 changed files with 185 additions and 1 deletions
|
@ -7,7 +7,10 @@ if [ -x /usr/bin/dircolors ]; then
|
|||
alias fgrep='fgrep --color=auto'
|
||||
alias egrep='egrep --color=auto'
|
||||
fi
|
||||
alias ls='ls --color=auto'
|
||||
alias ll='ls -lah'
|
||||
alias la='ls -A'
|
||||
alias flip="shuf -i 0-1 -n 1 | sed -e 's/1/Pile/' -e 's/0/Face/'"
|
||||
alias dl="wget -r -k -T 5 -t 2 -U 'Mozilla/5.0 (X11; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0' "
|
||||
alias paste="pastebin -m -n Hactar"
|
||||
alias pass="tr -dc A-Za-z0-9_ < /dev/urandom | head -c 20 | xargs"
|
||||
|
|
174
.bash_ps
Normal file
174
.bash_ps
Normal file
|
@ -0,0 +1,174 @@
|
|||
# Normal Colors
|
||||
Black='\e[0;30m' # Black
|
||||
Red='\e[0;31m' # Red
|
||||
Green='\e[0;32m' # Green
|
||||
Yellow='\e[0;33m' # Yellow
|
||||
Blue='\e[0;34m' # Blue
|
||||
Purple='\e[0;35m' # Purple
|
||||
Cyan='\e[0;36m' # Cyan
|
||||
White='\e[0;37m' # White
|
||||
|
||||
# Bold
|
||||
BBlack='\e[1;30m' # Black
|
||||
BRed='\e[1;31m' # Red
|
||||
BGreen='\e[1;32m' # Green
|
||||
BYellow='\e[1;33m' # Yellow
|
||||
BBlue='\e[1;34m' # Blue
|
||||
BPurple='\e[1;35m' # Purple
|
||||
BCyan='\e[1;36m' # Cyan
|
||||
BWhite='\e[1;37m' # White
|
||||
|
||||
# Background
|
||||
On_Black='\e[40m' # Black
|
||||
On_Red='\e[41m' # Red
|
||||
On_Green='\e[42m' # Green
|
||||
On_Yellow='\e[43m' # Yellow
|
||||
On_Blue='\e[44m' # Blue
|
||||
On_Purple='\e[45m' # Purple
|
||||
On_Cyan='\e[46m' # Cyan
|
||||
On_White='\e[47m' # White
|
||||
|
||||
NC="\e[m" # Color Reset
|
||||
#-------------------------------------------------------------
|
||||
# Shell Prompt - for many examples, see:
|
||||
# http://www.debian-administration.org/articles/205
|
||||
# http://www.askapache.com/linux/bash-power-prompt.html
|
||||
# http://tldp.org/HOWTO/Bash-Prompt-HOWTO
|
||||
# https://github.com/nojhan/liquidprompt
|
||||
#-------------------------------------------------------------
|
||||
# Current Format: [TIME USER@HOST PWD] >
|
||||
# TIME:
|
||||
# Green == machine load is low
|
||||
# Orange == machine load is medium
|
||||
# Red == machine load is high
|
||||
# ALERT == machine load is very high
|
||||
# USER:
|
||||
# Cyan == normal user
|
||||
# Orange == SU to user
|
||||
# Red == root
|
||||
# HOST:
|
||||
# Cyan == local session
|
||||
# Green == secured remote connection (via ssh)
|
||||
# Red == unsecured remote connection
|
||||
# PWD:
|
||||
# Green == more than 10% free disk space
|
||||
# Orange == less than 10% free disk space
|
||||
# ALERT == less than 5% free disk space
|
||||
# Red == current user does not have write privileges
|
||||
# Cyan == current filesystem is size zero (like /proc)
|
||||
# >:
|
||||
# White == no background or suspended jobs in this shell
|
||||
# Cyan == at least one background job in this shell
|
||||
# Orange == at least one suspended job in this shell
|
||||
#
|
||||
# Command is added to the history file each time you hit enter,
|
||||
# so it's available to all shells (using 'history -a').
|
||||
|
||||
|
||||
# Test connection type:
|
||||
if [ -n "${SSH_CONNECTION}" ]; then
|
||||
CNX="\e[3"$(hostname | md5sum | cut -c 1)"m"
|
||||
#CNX="\e["$(hostname | od | tr ' ' '\n' | awk '{total = total + $1}END{print 30 + (total % 6)}')"m"
|
||||
#CNX=${Green} # Connected on remote machine, via ssh (good).
|
||||
elif [[ "${DISPLAY%%:0*}" != "" ]]; then
|
||||
CNX=${ALERT} # Connected on remote machine, not via ssh (bad).
|
||||
else
|
||||
CNX=${BCyan} # Connected on local machine.
|
||||
fi
|
||||
|
||||
# Test user type:
|
||||
if [[ ${USER} == "root" ]]; then
|
||||
SU=${Red} # User is root.
|
||||
elif [[ ${USER} != $(logname) ]]; then
|
||||
SU=${BRed} # User is not login user.
|
||||
else
|
||||
SU=${BCyan} # User is normal (well ... most of us are).
|
||||
fi
|
||||
|
||||
|
||||
|
||||
NCPU=$(grep -c 'processor' /proc/cpuinfo) # Number of CPUs
|
||||
SLOAD=$(( 100*${NCPU} )) # Small load
|
||||
MLOAD=$(( 200*${NCPU} )) # Medium load
|
||||
XLOAD=$(( 400*${NCPU} )) # Xlarge load
|
||||
|
||||
|
||||
# Returns system load as percentage, i.e., '40' rather than '0.40)'.
|
||||
function load()
|
||||
{
|
||||
local SYSLOAD=$(cut -d " " -f1 /proc/loadavg | tr -d '.')
|
||||
# System load of the current host.
|
||||
echo $((10#$SYSLOAD)) # Convert to decimal.
|
||||
}
|
||||
|
||||
# Returns a color indicating system load.
|
||||
function load_color()
|
||||
{
|
||||
local SYSLOAD=$(load)
|
||||
if [ ${SYSLOAD} -gt ${XLOAD} ]; then
|
||||
echo -en ${ALERT}
|
||||
elif [ ${SYSLOAD} -gt ${MLOAD} ]; then
|
||||
echo -en ${Red}
|
||||
elif [ ${SYSLOAD} -gt ${SLOAD} ]; then
|
||||
echo -en ${BRed}
|
||||
else
|
||||
echo -en ${Green}
|
||||
fi
|
||||
}
|
||||
|
||||
# Returns a color according to free disk space in $PWD.
|
||||
function disk_color()
|
||||
{
|
||||
if [ ! -w "${PWD}" ] ; then
|
||||
echo -en ${Red}
|
||||
# No 'write' privilege in the current directory.
|
||||
elif [ -s "${PWD}" ] ; then
|
||||
local used=$(command df -P "$PWD" |
|
||||
awk 'END {print $5} {sub(/%/,"")}')
|
||||
if [ ${used} -gt 95 ]; then
|
||||
echo -en ${ALERT} # Disk almost full (>95%).
|
||||
elif [ ${used} -gt 90 ]; then
|
||||
echo -en ${BRed} # Free disk space almost gone.
|
||||
else
|
||||
echo -en ${Green} # Free disk space is ok.
|
||||
fi
|
||||
else
|
||||
echo -en ${Cyan}
|
||||
# Current directory is size '0' (like /proc, /sys etc).
|
||||
fi
|
||||
}
|
||||
|
||||
# Returns a color according to running/suspended jobs.
|
||||
function job_color()
|
||||
{
|
||||
if [ $(jobs -s | wc -l) -gt "0" ]; then
|
||||
echo -en ${BRed}
|
||||
elif [ $(jobs -r | wc -l) -gt "0" ] ; then
|
||||
echo -en ${BCyan}
|
||||
fi
|
||||
}
|
||||
|
||||
# Adds some text in the terminal frame (if applicable).
|
||||
|
||||
|
||||
# Now we construct the prompt.
|
||||
PROMPT_COMMAND="history -a"
|
||||
case ${TERM} in
|
||||
*term | rxvt | linux)
|
||||
PS1="\[\$(load_color)\][\A\[${NC}\] "
|
||||
# Time of day (with load info):
|
||||
PS1="\[\$(load_color)\][\A\[${NC}\] "
|
||||
# User@Host (with connection type info):
|
||||
PS1=${PS1}"\[${SU}\]\u\[${NC}\]@\[${CNX}\]\h\[${NC}\] "
|
||||
# PWD (with 'disk space' info):
|
||||
PS1=${PS1}"\[\$(disk_color)\]\W]\[${NC}\] "
|
||||
# Prompt (with 'job' info):
|
||||
PS1=${PS1}"\[\$(job_color)\]>\[${NC}\] "
|
||||
# Set title of current xterm:
|
||||
PS1=${PS1}"\[\e]0;[\u@\h] \w\a\]"
|
||||
;;
|
||||
*)
|
||||
PS1="(\A \u@\h \W) > " # --> PS1="(\A \u@\h \w) > "
|
||||
# --> Shows full pathname of current dir.
|
||||
;;
|
||||
esac
|
9
.bashrc
9
.bashrc
|
@ -1,10 +1,17 @@
|
|||
[ -z "$PS1" ] && return
|
||||
|
||||
export PATH=$PATH:~/bin
|
||||
export VISUAL=/bin/nano
|
||||
export EDITOR=/bin/nano
|
||||
export CLASSPATH=$CLASSPATH:/opt:/opt/autoser
|
||||
export VDPAU_TRACE=1
|
||||
|
||||
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
|
||||
. /etc/bash_completion
|
||||
fi
|
||||
if [ -f ~/.bash_aliases ]; then
|
||||
. ~/.bash_aliases
|
||||
fi
|
||||
|
||||
if [ -f ~/.bash_ps ]; then
|
||||
. ~/.bash_ps
|
||||
fi
|
||||
|
|
Loading…
Add table
Reference in a new issue