Bashrc

From Attie's Wiki
(Difference between revisions)
Jump to: navigation, search
m
m
 
(3 intermediate revisions by one user not shown)
Line 38: Line 38:
 
alias ll='ls -l'
 
alias ll='ls -l'
 
alias lll='ls -la'
 
alias lll='ls -la'
 +
alias llp='ll *.patch'
 
alias x='exit'
 
alias x='exit'
 
alias j='jobs'
 
alias j='jobs'
Line 43: Line 44:
 
umask 0022
 
umask 0022
  
if [ "$TERM" == "xterm" ]; then
+
case "${TERM}" in
######################
+
"xterm" | \
### setup a nice prompt for xterm ###
+
"screen")
#: 'host cwd'
+
######################
PS1_TITLE="\e]0;\h \w\007\]"
+
### setup a nice prompt for xterm ###
#: 'hh:mm:ss'
+
function resolve_dirname() {
PS1_TIME="\e[0;33m\]\T\e[0m"
+
local DEFAULT="${1-\w}"; shift
#: 'user@host:cwd [jobs]'
+
local DIR=$(pwd)
PS1_INFO="\e[32m\]\u\e[90m\]@\e[35m\]\h\e[90m\]:\e[36m\[\w\e[0m\] [\j]"
+
awk -F : "BEGIN{rc=1}{if(\$1==\"${DIR}\"){printf \$2;rc=0;nextfile}}END{exit rc}" ~/.dir_names 2>/dev/null || echo -n "${DEFAULT}"
#: trademark hashes
+
}
if [ "$(whoami)" == "root" ]; then
+
function compile_prompt() {
PS1_HASHSTART="\e[0m\]#\e[91m\]#\e[31m\]#\e[0m "
+
local RET=${1-?}; shift
PS1_HASHEND=" \e[31m\]#\e[91m\]#\e[0m\]#\e[0m"
+
if [ "$(whoami)" == "root" ]; then
else
+
local HASH_START="\e[0m\]#\e[91m\]#\e[31m\]#\e[0m "
PS1_HASHSTART="\e[0m\]#\e[94m\]#\e[34m\]#\e[0m "
+
local HASH_END=" \e[31m\]#\e[91m\]#\e[0m\]#\e[0m"
PS1_HASHEND=" \e[34m\]#\e[94m\]#\e[0m\]#\e[0m"
+
else
fi
+
local HASH_START="\e[0m\]#\e[94m\]#\e[34m\]#\e[0m "
#: '$ '
+
local HASH_END=" \e[34m\]#\e[94m\]#\e[0m\]#\e[0m"
PS1_PROMPT="$ "
+
fi
#: '$?'
+
 
PS1_FULL="${PS1_TITLE}${PS1_HASHSTART}${PS1_TIME} ${PS1_INFO}${PS1_HASHEND}"
+
echo -n "\[\e]0;${PS1_TITLE-$(resolve_dirname) \h} \007\]"
PS1_ERROR="\e[91m\$RET\e[0m"
+
echo -n "${HASH_START}\e[0;33m\]\T \e[32m\]\u\e[90m\]@\e[35m\]\h\e[90m\]:\e[36m\[\w\e[0m\] [\j]${HASH_END}"
PS1="${PS1_PROMPT}"
+
[ "${RET}" != "0" ] && echo -n " \e[91m${RET}"
PROMPT_COMMAND='RET=$?;if [ "$RET" != "0" ]; then PS1="${PS1_FULL} ${PS1_ERROR}${PS1_DEPTH}\n${PS1_PROMPT}"; else PS1="${PS1_FULL}${PS1_DEPTH}\n${PS1_PROMPT}"; fi; export PS1;'
+
[ ${BASH_DEPTH-0} -gt 0 ] && echo -n " \e[90m{${BASH_DEPTH-?},${BASH_OPWD-?}}"
export PS1_PROMPT
+
echo "\e[0m"
export PS1_FULL
+
echo -n "${PS1_PROMPT-$ }"
export PS1_ERROR
+
}
export PS1
+
export PS1="${PS1_PROMPT-$ }"
export PROMPT_COMMAND
+
export PROMPT_COMMAND='export PS1="$(compile_prompt $?)"'
### end the prompt bit ###
+
### end the prompt bit ###
##########################
+
##########################
else
+
;;
export PS1="\e[32m\]\u@\h:\w$\e[0m\] "
+
 
fi
+
*)
 +
export PS1="\e[32m\]\u@\h:\w$\e[0m\] "
 +
unset PROMPT_COMMAND
 +
;;
 +
esac
  
 
if [ "${BASH_DEPTH}" == "" ]; then
 
if [ "${BASH_DEPTH}" == "" ]; then
Line 83: Line 88:
 
export BASH_DEPTH=$((BASH_DEPTH + 1))
 
export BASH_DEPTH=$((BASH_DEPTH + 1))
 
export BASH_OPWD="$(pwd)"
 
export BASH_OPWD="$(pwd)"
fi
 
 
if [ ${BASH_DEPTH} -gt 0 ]; then
 
export PS1_DEPTH=" \e[90m{${BASH_DEPTH},${BASH_OPWD}}\e[0m"
 
 
fi
 
fi
  

Latest revision as of 08:53, 13 April 2017

Below is the extended contents of my ~/.bashrc_mine file (include it from ~/.bashrc)

if [ "$ATTIE_PATH" == "" ]; then
	export PATH=~/.bin:$PATH
	export ATTIE_PATH=done
fi
 
if [ -x $(which screen) ]; then
	if [ "$STY" ]; then
		alias is='echo yes'
		alias exit='screen -d $STY'
		alias qs='kill `echo $STY|cut -d "." -f 1`'
	else
		alias is='echo no'
		alias us='screen -d -R uni'
		alias ss='screen -S `date "+screen_%d-%b-%Y_%k:%M.%S"`'
		alias sl='screen -list'
		alias sc='screen -d -R'
	fi
else
	echo "WARNING: /usr/bin/screen was not found. screen aliases not inserted..."
fi
 
export EDITOR="vim"
 
if [ "$WINDOWID" != "" ]; then
	xrdb ~/.Xresources
fi
 
alias admesg='sudo tail -n 0 -f /var/log/messages'
alias pingdd='sudo killall -USR1 dd'
alias mps='ps -U $USER -f'
alias nano='nano -wzSA -T 2'
alias less='less -cR'
alias su='sudo su'
alias l='ls'
alias ll='ls -l'
alias lll='ls -la'
alias llp='ll *.patch'
alias x='exit'
alias j='jobs'
 
umask 0022
 
case "${TERM}" in
	"xterm" | \
	"screen")
		######################
		### setup a nice prompt for xterm ###
		function resolve_dirname() {
			local DEFAULT="${1-\w}"; shift
			local DIR=$(pwd)
			awk -F : "BEGIN{rc=1}{if(\$1==\"${DIR}\"){printf \$2;rc=0;nextfile}}END{exit rc}" ~/.dir_names 2>/dev/null || echo -n "${DEFAULT}"
		}
		function compile_prompt() {
			local RET=${1-?}; shift
			if [ "$(whoami)" == "root" ]; then
				local HASH_START="\e[0m\]#\e[91m\]#\e[31m\]#\e[0m "
				local HASH_END=" \e[31m\]#\e[91m\]#\e[0m\]#\e[0m"
			else
				local HASH_START="\e[0m\]#\e[94m\]#\e[34m\]#\e[0m "
				local HASH_END=" \e[34m\]#\e[94m\]#\e[0m\]#\e[0m"
			fi
 
			echo -n "\[\e]0;${PS1_TITLE-$(resolve_dirname) \h} \007\]"
			echo -n "${HASH_START}\e[0;33m\]\T \e[32m\]\u\e[90m\]@\e[35m\]\h\e[90m\]:\e[36m\[\w\e[0m\] [\j]${HASH_END}"
			[ "${RET}" != "0" ] && echo -n " \e[91m${RET}"
			[ ${BASH_DEPTH-0} -gt 0 ] && echo -n " \e[90m{${BASH_DEPTH-?},${BASH_OPWD-?}}"
			echo "\e[0m"
			echo -n "${PS1_PROMPT-$ }"
		}
		export PS1="${PS1_PROMPT-$ }"
		export PROMPT_COMMAND='export PS1="$(compile_prompt $?)"'
		### end the prompt bit ###
		##########################
		;;
 
	*)
		export PS1="\e[32m\]\u@\h:\w$\e[0m\] "
		unset PROMPT_COMMAND
		;;
esac
 
if [ "${BASH_DEPTH}" == "" ]; then
	export BASH_DEPTH=0
else
	export BASH_DEPTH=$((BASH_DEPTH + 1))
	export BASH_OPWD="$(pwd)"
fi
 
alias xterm='BASH_DEPTH="" xterm'
 
export HISTSIZE=10000
export HISTFILESIZE=10000
Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox