[BACK]Return to ksh.kshrc CVS log [TXT][DIR] Up to [local] / src / etc

Annotation of src/etc/ksh.kshrc, Revision 1.2

1.1       downsj      1: :
1.2     ! kstailey    2: #      $OpenBSD: ksh.kshrc,v 1.1 1996/08/14 08:28:04 downsj Exp $
1.1       downsj      3: #
                      4: # NAME:
                      5: #      ksh.kshrc - global initialization for ksh
                      6: #
                      7: # DESCRIPTION:
                      8: #      Each invocation of /bin/ksh processes the file pointed
                      9: #      to by $ENV (usually $HOME/.kshrc).
                     10: #      This file is intended as a global .kshrc file for the
                     11: #      Korn shell.  A user's $HOME/.kshrc file simply requires
                     12: #      the line:
                     13: #              . /etc/ksh.kshrc
                     14: #      at or near the start to pick up the defaults in this
                     15: #      file which can then be overridden as desired.
                     16: #
                     17: # SEE ALSO:
                     18: #      $HOME/.kshrc
                     19: #
                     20:
                     21: # RCSid:
                     22: #      $From: ksh.kshrc,v 1.4 1992/12/05 13:14:48 sjg Exp $
                     23: #
                     24: #      @(#)Copyright (c) 1991 Simon J. Gerraty
                     25: #
                     26: #      This file is provided in the hope that it will
                     27: #      be of use.  There is absolutely NO WARRANTY.
                     28: #      Permission to copy, redistribute or otherwise
                     29: #      use this file is hereby granted provided that
                     30: #      the above copyright notice and this notice are
                     31: #      left intact.
                     32:
                     33: case "$-" in
                     34: *i*)   # we are interactive
                     35:        # we may have su'ed so reset these
                     36:        # NOTE: SCO-UNIX doesn't have whoami,
                     37:        #       install whoami.sh
                     38:        USER=`whoami 2>/dev/null`
                     39:         USER=${USER:-`id | sed 's/^[^(]*(\([^)]*\)).*/\1/'`}
                     40:        case $UID in
                     41:        0) PS1S='# ';;
                     42:        esac
                     43:         PS1S=${PS1S:-'$ '}
                     44:        HOSTNAME=${HOSTNAME:-`uname -n`}
                     45:        HOST=${HOSTNAME%%.*}
                     46:
                     47:        PROMPT="$USER:!$PS1S"
                     48:        #PROMPT="<$USER@$HOST:!>$PS1S"
                     49:        PPROMPT='$USER:$PWD:!'"$PS1S"
                     50:        #PPROMPT='<$USER@$HOST:$PWD:!>'"$PS1S"
                     51:        PS1=$PPROMPT
                     52:        # $TTY is the tty we logged in on,
                     53:        # $tty is that which we are in now (might by pty)
                     54:        tty=`tty`
                     55:        tty=`basename $tty`
                     56:         TTY=${TTY:-$tty}
1.2     ! kstailey   57:        # console is the system console device
        !            58:        console=`sysctl machdep.console_device | cut -d' ' -f3`
        !            59:
1.1       downsj     60:        set -o emacs
                     61:
                     62:        alias ls='ls -CF'
                     63:        alias h='fc -l | more'
                     64:        _cd() { "cd" $*; }
                     65:        # the PD ksh is not 100% compatible
                     66:        case "$KSH_VERSION" in
                     67:        *PD*)   # PD ksh
                     68:                case "$TERM" in
                     69:                pc3|pcvt*|xterm*)
                     70:                        # bind arrow keys
                     71:                        bind '^[['=prefix-2
                     72:                        bind '^XA'=up-history
                     73:                        bind '^XB'=down-history
                     74:                        bind '^XC'=forward-char
                     75:                        bind '^XD'=backward-char
                     76:                        ;;
                     77:                esac
                     78:                ;;
                     79:        *)      # real ksh ?
                     80:                [ -r $HOME/.functions ] && . $HOME/.functions
                     81:                set -o trackall
                     82:                ;;
                     83:        esac
                     84:        case "$TERM" in
                     85:        sun*)
                     86:                # these are not as neat as their csh equivalents
1.2     ! kstailey   87:                if [ "$tty" != "$console" ]; then
1.1       downsj     88:                        # ilabel
                     89:                        ILS='\033]L'; ILE='\033\\'
                     90:                        # window title bar
                     91:                        WLS='\033]l'; WLE='\033\\'
                     92:                fi
                     93:                ;;
                     94:        xterm*)
                     95:                ILS='\033]1;'; ILE='\007'
                     96:                WLS='\033]2;'; WLE='\007'
                     97:                 parent="`ps -ax 2>/dev/null | grep $PPID | grep -v grep`"
                     98:                 case "$parent" in
                     99:                *telnet*)
                    100:                   export TERM=xterms;;
                    101:                esac
                    102:                ;;
                    103:        *)      ;;
                    104:        esac
                    105:        # do we want window decorations?
                    106:        if [ "$ILS" ]; then
                    107:                ilabel () { print -n "${ILS}$*${ILE}"; }
                    108:                label () { print -n "${WLS}$*${WLE}"; }
                    109:
                    110:                alias stripe='label "$USER@$HOST ($tty) - $PWD"'
                    111:                alias istripe='ilabel "$USER@$HOST ($tty)"'
                    112:
                    113:                wftp () { ilabel "ftp $*"; "ftp" $*; eval istripe; }
                    114:                wcd () { _cd $*; eval stripe; }
                    115:                wtelnet ()
                    116:                {
                    117:                        "telnet" "$@"
                    118:                        eval istripe
                    119:                        eval stripe
                    120:                }
                    121:                wrlogin ()
                    122:                {
                    123:                        "rlogin" "$@"
                    124:                        eval istripe
                    125:                        eval stripe
                    126:                }
                    127:                wsu ()
                    128:                {
                    129:                        "su" "$@"
                    130:                        eval istripe
                    131:                        eval stripe
                    132:                }
                    133:                alias su=wsu
                    134:                alias cd=wcd
                    135:                alias ftp=wftp
                    136:                alias telnet=wtelnet
                    137:                alias rlogin=wrlogin
                    138:                eval stripe
                    139:                eval istripe
                    140:                PS1=$PROMPT
                    141:        fi
                    142:        alias quit=exit
                    143:        alias cls=clear
                    144:        alias logout=exit
                    145:        alias bye=exit
                    146:        alias p='ps -l'
                    147:        alias j=jobs
                    148:        alias o='fg %-'
                    149:        alias ls='ls -gCF'
                    150:
                    151: # add your favourite aliases here
                    152:        OS=${OS:-`uname -s`}
                    153:        case $OS in
                    154:        HP-UX)
                    155:                alias ls='ls -CF'
                    156:                 ;;
                    157:        *BSD)
                    158:                alias df='df -k'
                    159:                alias du='du -k'
                    160:                ;;
                    161:        esac
                    162:        alias rsize='eval `resize`'
                    163:
                    164:        case "$TERM" in
                    165:        sun*|xterm*)
                    166:                case $tty in
                    167:                tty[p-w]*)
                    168:                        case "$DISPLAY" in
                    169:                        "")
                    170:                                DISPLAY="`who | grep $TTY | sed -n 's/.*(\([^:)]*\)[:)].*/\1/p' | sed 's/\([a-zA-Z][^.]*\).*/\1/'`:0"
                    171:                                ;;
                    172:                        esac
                    173:                        ;;
                    174:                esac
                    175:                case "$DISPLAY" in
                    176:                ozen*|:*)
                    177:                        stty erase "^?"
                    178:                        ;;
                    179:                *)
                    180:                        stty erase "^h"
                    181:                        ;;
                    182:                esac
                    183:                export DISPLAY
                    184:                ;;
                    185:        esac
                    186:
                    187: ;;
                    188: *)     # non-interactive
                    189: ;;
                    190: esac
                    191: # commands for both interactive and non-interactive shells
                    192:
                    193: # is $1 missing from $2 (or PATH) ?
                    194: no_path () {
                    195:   eval _v="\$${2:-PATH}"
                    196:   case :$_v: in
                    197:   *:$1:*) return 1;;           # no we have it
                    198:   esac
                    199:   return 0
                    200: }
                    201: # if $1 exists and is not in path, append it
                    202: add_path () {
                    203:   [ -d ${1:-.} ] && no_path $* && eval ${2:-PATH}="\$${2:-PATH}:$1"
                    204: }
                    205: # if $1 exists and is not in path, prepend it
                    206: pre_path () {
                    207:   [ -d ${1:-.} ] && no_path $* && eval ${2:-PATH}="$1:\$${2:-PATH}"
                    208: }
                    209: # if $1 is in path, remove it
                    210: del_path () {
                    211:   no_path $* || eval ${2:-PATH}=`eval echo :'$'${2:-PATH}: |
                    212:     sed -e "s;:$1:;:;g" -e "s;^:;;" -e "s;:\$;;"`
                    213: }