|
|
- :
- # $OpenBSD: ksh.kshrc,v 1.12 2005/02/07 06:08:10 david Exp $
- #
- # NAME:
- # ksh.kshrc - global initialization for ksh
- #
- # DESCRIPTION:
- # Each invocation of /bin/ksh processes the file pointed
- # to by $ENV (usually $HOME/.kshrc).
- # This file is intended as a global .kshrc file for the
- # Korn shell. A user's $HOME/.kshrc file simply requires
- # the line:
- # . /etc/ksh.kshrc
- # at or near the start to pick up the defaults in this
- # file which can then be overridden as desired.
- #
- # SEE ALSO:
- # $HOME/.kshrc
- #
-
- # RCSid:
- # $From: ksh.kshrc,v 1.4 1992/12/05 13:14:48 sjg Exp $
- #
- # @(#)Copyright (c) 1991 Simon J. Gerraty
- #
- # This file is provided in the hope that it will
- # be of use. There is absolutely NO WARRANTY.
- # Permission to copy, redistribute or otherwise
- # use this file is hereby granted provided that
- # the above copyright notice and this notice are
- # left intact.
-
- case "$-" in
- *i*) # we are interactive
- # we may have su'ed so reset these
- # NOTE: SCO-UNIX doesn't have whoami,
- # install whoami.sh
- USER=`whoami 2>/dev/null`
- USER=${USER:-`id | sed 's/^[^(]*(\([^)]*\)).*/\1/'`}
- UID=`id -u`
- case $UID in
- 0) PS1S='# ';;
- esac
- PS1S=${PS1S:-'$ '}
- HOSTNAME=${HOSTNAME:-`uname -n`}
- HOST=${HOSTNAME%%.*}
-
- PROMPT="$USER:!$PS1S"
- #PROMPT="<$USER@$HOST:!>$PS1S"
- PPROMPT='$USER:$PWD:!'"$PS1S"
- #PPROMPT='<$USER@$HOST:$PWD:!>'"$PS1S"
- PS1=$PPROMPT
- # $TTY is the tty we logged in on,
- # $tty is that which we are in now (might by pty)
- tty=`tty`
- tty=`basename $tty`
- TTY=${TTY:-$tty}
-
- set -o emacs
-
- alias ls='ls -CF'
- alias h='fc -l | more'
- # the PD ksh is not 100% compatible
- case "$KSH_VERSION" in
- *PD*) # PD ksh
- ;;
- *) # real ksh ?
- [ -r $HOME/.functions ] && . $HOME/.functions
- set -o trackall
- ;;
- esac
- case "$TERM" in
- sun*-s)
- # sun console with status line
- if [ "$tty" != "$console" ]; then
- # ilabel
- ILS='\033]L'; ILE='\033\\'
- # window title bar
- WLS='\033]l'; WLE='\033\\'
- fi
- ;;
- xterm*)
- ILS='\033]1;'; ILE='\007'
- WLS='\033]2;'; WLE='\007'
- parent="`ps -ax 2>/dev/null | grep $PPID | grep -v grep`"
- case "$parent" in
- *telnet*)
- export TERM=xterms;;
- esac
- ;;
- *) ;;
- esac
- # do we want window decorations?
- if [ "$ILS" ]; then
- ilabel () { print -n "${ILS}$*${ILE}">/dev/tty; }
- label () { print -n "${WLS}$*${WLE}">/dev/tty; }
-
- alias stripe='label "$USER@$HOST ($tty) - $PWD"'
- alias istripe='ilabel "$USER@$HOST ($tty)"'
-
- wftp () { ilabel "ftp $*"; "ftp" $*; eval istripe; }
- wcd () { \cd "$@" && eval stripe; }
- wssh ()
- {
- "ssh" "$@"
- eval istripe
- eval stripe
- }
- wtelnet ()
- {
- "telnet" "$@"
- eval istripe
- eval stripe
- }
- wrlogin ()
- {
- "rlogin" "$@"
- eval istripe
- eval stripe
- }
- wsu ()
- {
- "su" "$@"
- eval istripe
- eval stripe
- }
- alias su=wsu
- alias cd=wcd
- alias ftp=wftp
- alias ssh=wssh
- alias telnet=wtelnet
- alias rlogin=wrlogin
- eval stripe
- eval istripe
- PS1=$PROMPT
- fi
- alias quit=exit
- alias cls=clear
- alias logout=exit
- alias bye=exit
- alias p='ps -l'
- alias j=jobs
- alias o='fg %-'
- alias ls='ls -gCF'
-
- # add your favourite aliases here
- OS=${OS:-`uname -s`}
- case $OS in
- HP-UX)
- alias ls='ls -CF'
- ;;
- *BSD)
- alias df='df -k'
- alias du='du -k'
- ;;
- esac
- alias rsize='eval `resize`'
- ;;
- *) # non-interactive
- ;;
- esac
- # commands for both interactive and non-interactive shells
-
- # is $1 missing from $2 (or PATH) ?
- no_path () {
- eval _v="\$${2:-PATH}"
- case :$_v: in
- *:$1:*) return 1;; # no we have it
- esac
- return 0
- }
- # if $1 exists and is not in path, append it
- add_path () {
- [ -d ${1:-.} ] && no_path $* && eval ${2:-PATH}="\$${2:-PATH}:$1"
- }
- # if $1 exists and is not in path, prepend it
- pre_path () {
- [ -d ${1:-.} ] && no_path $* && eval ${2:-PATH}="$1:\$${2:-PATH}"
- }
- # if $1 is in path, remove it
- del_path () {
- no_path $* || eval ${2:-PATH}=`eval echo :'$'${2:-PATH}: |
- sed -e "s;:$1:;:;g" -e "s;^:;;" -e "s;:\$;;"`
- }
|