Created
October 13, 2015 15:55
-
-
Save forestbaker/bc8922cb7f25c0009fe6 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
############################### | |
# FAHD SHARIFF'S BASH PROFILE # | |
############################### | |
HISTCONTROL=ignoredups | |
EDITOR=emacs | |
set -o notify | |
set -o braceexpand | |
set -o emacs | |
########## | |
# PROMPT # | |
########## | |
PS1=\[\e[0m\]\e]2;\u@\h:`tty`>\w[\d,\t]\a\n\[\e[4;34;1m\]\u@\h:\[\e[0;31;1m\]\w>\[\e[m\] | |
############### | |
# COMPLETIONS # | |
############### | |
shopt -s extglob progcomp cdspell | |
# Make directory commands see only directories | |
complete -d cd mkdir rmdir pushd jd | |
# Make file commands see only files | |
complete -f cat less more chown ln strip nedit emacs | |
complete -f -X '!*.@(zip|ZIP|jar|JAR|exe|EXE|pk3|war|wsz|ear|zargo|xpi)' unzip zipinfo | |
complete -f -X '*.Z' compress | |
complete -f -X '!*.@(Z|gz|tgz|Gz|dz)' gunzip zcmp zdiff zcat zegrep zfgrep zgrep zless zmore | |
complete -f -X '!*.Z' uncompress | |
complete -f -X '!*.@(gif|jp?(e)g|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx|GIF|JP?(E)G|TIF?(F)|PN[GM]|P[BGP]M|BMP|XPM|ICO|XWD|TGA|PCX)' ee display | |
complete -f -X '!*.@(gif|jp?(e)g|tif?(f)|png|p[bgp]m|bmp|x[bp]m|rle|rgb|pcx|fits|pm|GIF|JPG|JP?(E)G|TIF?(F)|PNG|P[BGP]M|BMP|X[BP]M|RLE|RGB|PCX|FITS|PM)' xv qiv | |
complete -f -X '!*.@(ps|PS)' gv ggv | |
complete -f -X '!*.@(ps|PS|pdf|PDF)' fmerge | |
complete -f -X '!*.@(dvi|DVI)?(.@(gz|Z|bz2))' xdvi | |
complete -f -X '!*.@(dvi|DVI)' dvips dviselect dvitype | |
complete -f -X '!*.@(pdf|PDF)' acroread gpdf xpdf | |
complete -f -X '!*.texi*' makeinfo texi2html | |
complete -f -X '!*.@(?(la)tex|?(LA)TEX|texi|TEXI|dtx|DTX|ins|INS)' tex latex slitex jadetex pdfjadetex pdftex pdflatex texi2dvi | |
complete -f -X '!*.fig' xfig | |
complete -f -X '!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))' netscape mozilla lynx appletviewer hotjava | |
complete -f -X '!*.tar' tar | |
complete -f -X '!*.java' javac | |
complete -f -X '!*.idl' idl idlj | |
# user commands see only users | |
complete -u su usermod userdel passwd write groups w talk | |
# bg completes with stopped jobs | |
complete -A stopped -P '%' bg | |
# other job commands | |
complete -j -P '%' fg jobs disown | |
# readonly and unset complete with shell variables | |
complete -v readonly unset | |
# set completes with set options | |
complete -A setopt set | |
# shopt completes with shopt options | |
complete -A shopt shopt | |
# unalias completes with aliases | |
complete -a unalias | |
# type and which complete on commands | |
complete -c command type which | |
# complete hostnames | |
complete -A hostname ssh telnet rlogin ftp ping traceroute | |
########### | |
# ALIASES # | |
########### | |
alias ..=cd .. | |
alias ...=cd ../.. | |
alias ....=cd ../../.. | |
alias .....=cd ../../../.. | |
alias cl=clear | |
alias cla=clear;la | |
alias cll=clear;ll | |
alias cls=clear;ls | |
alias clal=clear;lal | |
alias rmdir=rm -rf | |
alias d=date | |
alias ff=find . -name $1 | |
alias h=history | |
alias l=ls | |
alias la=ls -a | |
alias ll=ls -ltr | |
alias lal=ls -al | |
alias ls=ls -F | |
alias sl=ls | |
alias more=less | |
alias mroe=more | |
alias m=more | |
alias r=fc -s | |
alias igrep=grep -i | |
############# | |
# FUNCTIONS # | |
############# | |
#kill a process by name | |
pskill() | |
{ | |
if [ -z $1 ]; then | |
echo -e \e[0;31;1mUsage: pskill [processName]\e[m; | |
else | |
ps -au $USER | grep -i $1 |awk {print kill -9 $1}|sh | |
fi | |
} | |
#jump to a directory | |
jd() | |
{ | |
if [ -z $1 ]; then | |
echo -e \e[0;31;1mUsage: jd [directory]\e[m; | |
else | |
findresults=( $(find . -type d -name $1) ) | |
count=${#findresults[@]} | |
if [ $count = 1 ]; then | |
file=${findresults[0]} | |
cd $file | |
else | |
if [ $count = 0 ]; then | |
echo No such directory | |
else echo Ambiguous: $count directories found | |
fi | |
fi | |
unset findresults | |
unset count | |
fi | |
} | |
#display directory tree structure | |
tree() | |
{ | |
echo -e \033[1;35m | |
(cd ${1-.} ; pwd) | |
find ${1-.} -print | sort -f | sed \ | |
\ | |
-e s,^${1-.},, \ | |
-e /^$/d \ | |
-e s,[^/]*/\([^/]*\)$,\ |-->\1, \ | |
-e s,[^/]*/, | ,g | |
echo -e \033[0m | |
} | |
#mkdir and cd combined | |
mkcd() | |
{ | |
if [ -z $1 ]; then | |
echo -e \e[0;31;1mUsage: mkcd [directory]\e[m; | |
else | |
if [ -d $1 ]; then | |
echo Changed to $1.; | |
cd $1; | |
else | |
mkdir $1; | |
echo Created $1; | |
cd $1; | |
fi; | |
fi | |
} | |
####### | |
# END # | |
####### | |
mesg -n | |
echo -e \e[0;31;1m$USER logged in to `tty` on `date`\e[m |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment