# If not running interactively, don't do anything
[ -z "$PS1" ] && return
# don't put duplicate lines in the history. See bash(1) for more options
export HISTCONTROL=ignoredups
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(lesspipe)"
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color)
PS1='${debian_chroot:+($debian_chroot)}[033[01;32m]u@h[033[00m]:[033[01;34m]w[033[00m]$ '
;;
*)
PS1='${debian_chroot:+($debian_chroot)}u@h:w$ '
;;
esac
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PROMPT_COMMAND='echo -ne "033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}007"'
;;
*)
;;
esac
# Use emacs to track history
set -o emacs
set -o notify
# shopt -s cdable_vars # enable cd $var
shopt -u cdspell # enable spelling correction if there is a matching
shopt -s checkhash # check hash || check path
shopt -u checkwinsize # check window size && update LINES and COLUMNS
shopt -s cmdhist # save multiline command into single entry
shopt -s dotglob # expand ".filename"
# Set auto_resume if you want to resume on "emacs", as well as on
# "%emacs".
auto_resume=exact
# enable color support of ls and also add handy aliases
if [ "$TERM" != "dumb" ]; then
eval "`dircolors -b`"
alias ls='ls --color=auto'
#alias dir='ls --color=auto --format=vertical'
#alias vdir='ls --color=auto --format=long'
fi
# some more ls aliases
alias ll='ls -l'
alias la='ls -A'
alias l='ls -pCF'
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
if [ -d ~/bin ] ; then
PATH=~/bin:"${PATH}"
fi
# Set Aliases and Functions
if [ -f ~/.function ]; then
. ~/.function
fi
if [ -f ~/.alias ]; then
. ~/.alias
fi
# make less works better
#alias more="less"
export LESS='-i -M -F -R -P%t?f%f :stdin .?pb%pb%:?lbLine %lb:?bbByte %bb:-...'
code
alias drscheme='LANG=en_US.UTF-8 /opt/drscheme/bin/drscheme'
alias rxvt='LANG=en_US.UTF-8 rxvt'
alias xterm='LANG=en_US.UTF-8 xterm'
alias dir="ls -lrt"
alias hl="ls -a"
alias lt="ls -altp"
alias lst="ls -ogApx"
alias dir="ls -Ap"
alias lm='ls -al |more'
alias j='jobs -l'
alias path='echo -e ${PATH//:/\n}'
# spelling typos
alias moer='more'
alias moew='more'
alias pdw=pwd
alias ss="ps -aux"
alias dot='ls .[a-zA-Z0-9_]*'
alias news="xterm -g 80x45 -e trn -e -S1 -N &"
alias texclean='rm -f *.toc *.aux .bzr.log *.cp *.fn *.tp *.vr *.pg *.ky'
alias clean='echo -n "Really clean this directory?";
read yorn;
if test "$yorn" = "y"; then
rm -f #* *~ .*~ .gtkrc-2.0.bak .gtkrc-2.0.bak *.tmp .*.tmp core a.out;
echo "Cleaned.";
else
echo "Not cleaned.";
fi'
alias h='history'
alias m='less'
code
#-------------------------------------------------------------------------------
# FUNCTIONS
#-------------------------------------------------------------------------------
ff ()
{
find . -type f -name '*'$*'*' -follow ;
}
ffe ()
{
find . -type f -name '*'$1'*' -exec "${2:-file}" {} ; ;
}
ffde ()
{
find . -type d -name '*'$1'*' -follow -exec "${2:-file}" {} ; ;
}
cuttail() # Cut last n lines in file, 10 by default.
{
nlines=${2:-10}
sed -n -e :a -e "1,${nlines}!{P;N;D;};N;ba" $1
}
repeat() # repeat n times command
{
local i max
max=$1; shift;
i=0
while [ $i -lt $max ]; do
eval "$@";
i=$((i+1))
done
}
psgrep()
{
ps -aux | grep $1 | grep -v grep
}
term()
{
TERM=$1
export TERM
tset
}
# there is already a 'watch'
followup()
{
if [ $# -ne 1 ] ; then
tail -f nohup.out
else
tail -f $1
fi
}
chmog()
{
if [ $# -ne 4 ] ; then
echo "usage: chmog mode owner group file"
return 1
else
chmod $1 $4
chown $2 $4
chgrp $3 $4
fi
}
emptydir-f()
{
typeset file dir=${1:-.}
[[ -d $dir ]] || {
echo "$FUNCNAME: $dir is not a directory" >&2
return 2
}
for file in $dir/.* $dir/*
do
case ${file#$dir/} in
.|..) ;;
*) [[ -e $file ]];let $?;return;;
*) return 1;;
esac
done
}
inpath()
{
local PROG
path=$(echo $PATH | sed 's/^:/.:/
s/::/:.:/g
s/:$/:./
s/:/ /g')
for x in $path
do
[ -x $x/$1 ] && { PROG=$x/$1; break; }
done
[ -n "$PROG" ]
}