My personal favourite alias is ll='ls -ltr' and I don't understand why some people still type in the long form for such a common command.
###############################
# 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
I commend you, this is a great bashrc! Mine is pretty well developed, but I definitely added quite a few new items from your examples!
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteNice bashrc .. Thank You! I edited my bashrc and added a bunch of stuff from yours. Mine even looks better now. :)
ReplyDelete