BSD_su HP_su Linux_su
#----------------------------------------------------------------------#
# Handle some annoying su situations
#----------------------------------------------------------------------#
HP_su () {
if [ "$1" = "-" ]
then
/bin/su "$@"
else
if [ "$1" = "" ]
then
p1=root
else
p1=$1
fi
/bin/su $p1 -rcfile $HMGHOME/.bashrc
fi
}
#----------------------------------------------------------------------#
Linux_su () {
if [ "$1" = "-" ]
then
/bin/su "$@"
else
if [ "$1" = "" ]
then
command su -p
else
command su -p $1
fi
fi
}
#----------------------------------------------------------------------#
BSD_su () {
if [ "$1" = "-" ]
then
/usr/bin/su "$@"
elif [ "$1" = "" ]
then
command su -m root -c /usr/local/bin/bash
else
command su -m root "$@"
fi
}
#----------------------------------------------------------------------#
Set the alias su according to the current platform
#----------------------------------------------------------------------#
uname=`uname -s`
case "$uname" in
HP-UX) alias su HP_su;;
Linux) alias su Linux_su
ulimit -Sc 0 # avoid core files
;;
FreeBSD)
alias su BSD_su
ulimit -Sc 0 # avoid core files
unset TERMCAP
;;
esac
#----------------------------------------------------------------------#
alias
#----------------------------------------------------------------------#
function alias () {
local name=$1
if [ "$name" = "" ]; then
builtin alias
else
shift
local value="$*"
if [ "$value" = "" ]; then
builtin alias $name
else
builtin alias $name="$value"
fi
fi
}
#----------------------------------------------------------------------#
cutf
#----------------------------------------------------------------------#
cutf ()
{
awk '{print $'$1'}'
}
#----------------------------------------------------------------------#
dc
#----------------------------------------------------------------------#
function dc {
if [ $# -eq 1 -a -d "$1" ]
then
/bin/echo '\007'"you probably mean 'cd' not 'dc'"
cd $1
else
command dc $*
fi
}
##----------------------------------------------------------------------#
dirs dsd dsdc dth files links
##----------------------------------------------------------------------#
function dirs {
ls -la $* | grep "^d" | more
}
##----------------------------------------------------------------------#
# Conditional definition of dsd
if [ `uname` = SunOS ]
then
if [ `uname -r | cut -d. -f1` -lt 5 ]
then
platform=sunos4
fi
fi
if [ "$platform" = sunos4 ]
then #--------------------------------------------------------
function dsd {
F=Ag
ls -l$F "$@" | grep -v '~$' | cut -c1-28,34- | more
stty cs8
}
else #--------------------------------------------------------
function dsd {
F=A
ls -l$F "$@" | grep -v '~$' | more
}
fi
##----------------------------------------------------------------------#
function dsdc {
dsdc_today="`date '+%b %e'`"
dsd $* | grep "$dsdc_today"
}
##----------------------------------------------------------------------#
function dth {
case $1 in
+*) lines=-`echo $1 | cut -c2-`;shift;;
esac
ls -lat "$@" | head $lines
}
##----------------------------------------------------------------------#
function files {
ls -la $* | grep "^-" | grep -v "~$" | more
}
##----------------------------------------------------------------------#
function links {
ls -la $* | grep "^l" | more
}
##----------------------------------------------------------------------#
gt_doit gttv gttvu gtx
##----------------------------------------------------------------------#
export GNUTAR=`$HOME/.ENV./set_gnutar.sh`
echo GNUTAR set to $GNUTAR. Use export GNUTAR=xxx to change.
function gt_doit {
case $p1 in
*.bz2) gzip=bzip2;;
esac
command nice $gzip -$garg $p1 | $GNUTAR -$targ - $*
}
function gttv {
if echo $1 | grep '\.uu$' > /dev/null 2>&1
then
precmd="uudecode -p $1 | "
shift
fi
gzip=gzip; garg=vdc; targ=tvf; p1=$1; shift
eval $precmd gt_doit| $PAGER
}
# gttvu doesn't need the file to have a .uu filetype
function gttvu {
if [ `uname` = Linux ]
then
precmd="uudecode -o /dev/stdout $1 | "
else
precmd="uudecode -p $1 | "
fi
gzip=gzip; garg=vdc; targ=tvf; p1=; shift
eval $precmd gt_doit | $PAGER
}
function gtx {
p1=$1
shift
gzip=gzip; garg=dc; targ=xpf; gt_doit $*
# command nice gzip -dc $p1 | /bin/nice $GNUTAR -xpf - $*
}
#----------------------------------------------------------------------#
help
#----------------------------------------------------------------------#
function help {
# Assume no arg means standard help
if [ "$1" = "" ]
then
builtin help
return
fi
echo 'For bash help, use builtin help'
# avoid backup files:
files=`ls ~/help*/help_*${1}* 2>/dev/null | grep -v "~$"`
if [ "$files" = '' ]
then # no matches: try for bash help
builtin help $1
return
fi
echo "$files"
echo 'ls ~/help*/help_*'${1}'* | grep -v "~$"'
less $files
}
#----------------------------------------------------------------------#
lesh
#----------------------------------------------------------------------#
# lesh - less the most recent file(s)
# Usage: lesh [+n] [args]
# n number of files (default: 1)
# Other args become args of ls so eg -c
function lesh () {
lines=-1
case $1 in
+*) lines=-`echo $1 | cut -c2-`;shift;;
esac
if [ $# -eq 0 ]
then
args=.
else
args="$*"
fi
__files=`find $args -maxdepth 1 -type f`
less `ls -trd $__files | tail $lines`
unset lines __files
}
#----------------------------------------------------------------------#
lest
#----------------------------------------------------------------------#
function lest () {
x='`'
ans=`type $1`
if [ $? -eq 0 ]
then
less `type $1 | cut -d\( -f2 | cut -d\) -f1 \
| cut -d$x -f2 | cut -d"'" -f1 | awk '{print $NF}'`
fi
unset x ans
}
#----------------------------------------------------------------------#
loc
#----------------------------------------------------------------------#
function loc {
dir=.
case $# in
0) echo Needs at least one arg
return
;;
1) ;;
2) dir="$1"
shift
;;
*) echo Too many args
return
;;
esac
(set -x; command nice find $dir $xdev -name \*$1\* -print)
}
# locl = locate locally
function locl {
xdev='-xdev'
loc "$@"
}
#----------------------------------------------------------------------#
mangl
#----------------------------------------------------------------------#
function mangl () {
nroff -man $* | less -is
}
#----------------------------------------------------------------------#
mcd
#----------------------------------------------------------------------#
function mcd () {
mkdir $*
n=`expr $# - 1`
shift $n
cd $1
}
#----------------------------------------------------------------------#
ping
#----------------------------------------------------------------------#
if [ `uname` = SunOS ]; then if [ `uname -r | cut -f1 -d.` -ge 5 ]
then
function ping {
command ping -s $1 56 1
}
fi;fi
if [ `uname` = Linux -o `uname` = FreeBSD -o `uname` = Darwin ]
then
function ping {
command ping -c 1 $1
}
fi
#----------------------------------------------------------------------#
truss
#----------------------------------------------------------------------#
function truss {
if [ $# -lt 1 ]
then
cat >&2 <<XXX
Usage (for function): truss <command>
which creates /tmp/<command>.truss
Otherwise use `command -v truss`
XXX
return
fi
if [ "$1" = '-p' ]
then
output=/tmp/pid_$2.truss
else
p1=`basename $1`
output=/tmp/$p1.truss
fi
echo "Use less '+/execve|open.*= [^-]' $output" >&2
if [ "`uname`" = SunOS ]
then
command truss -o $output -fall -rall -wall -vall "$@"
elif [ "`uname`" = FreeBSD ]
then
command truss -o $output -fae "$@"
else
# at the moment means linux
strace -o $output -f "$@"
fi
}
#----------------------------------------------------------------------#