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

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

1.1       downsj      1: :
1.24    ! rpe         2: #      $OpenBSD: ksh.kshrc,v 1.23 2016/09/10 08:00:12 rpe Exp $
1.1       downsj      3: #
                      4: # NAME:
1.8       deraadt     5: #      ksh.kshrc - global initialization for ksh
1.1       downsj      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
1.8       deraadt    29: #      use this file is hereby granted provided that
1.1       downsj     30: #      the above copyright notice and this notice are
1.8       deraadt    31: #      left intact.
1.1       downsj     32:
                     33: case "$-" in
                     34: *i*)   # we are interactive
                     35:        # we may have su'ed so reset these
                     36:        USER=`whoami 2>/dev/null`
1.12      david      37:        USER=${USER:-`id | sed 's/^[^(]*(\([^)]*\)).*/\1/'`}
1.3       marc       38:        UID=`id -u`
1.1       downsj     39:        case $UID in
                     40:        0) PS1S='# ';;
                     41:        esac
1.12      david      42:        PS1S=${PS1S:-'$ '}
1.1       downsj     43:        HOSTNAME=${HOSTNAME:-`uname -n`}
                     44:        HOST=${HOSTNAME%%.*}
                     45:
                     46:        PROMPT="$USER:!$PS1S"
                     47:        #PROMPT="<$USER@$HOST:!>$PS1S"
                     48:        PPROMPT='$USER:$PWD:!'"$PS1S"
                     49:        #PPROMPT='<$USER@$HOST:$PWD:!>'"$PS1S"
                     50:        PS1=$PPROMPT
                     51:        # $TTY is the tty we logged in on,
                     52:        # $tty is that which we are in now (might by pty)
                     53:        tty=`tty`
                     54:        tty=`basename $tty`
1.12      david      55:        TTY=${TTY:-$tty}
1.21      rpe        56:        # $console is the system console device
                     57:        console=$(sysctl machdep.console_device)
                     58:        console=${console#*=}
1.8       deraadt    59:
1.1       downsj     60:        set -o emacs
                     61:
                     62:        alias ls='ls -CF'
                     63:        alias h='fc -l | more'
1.20      rpe        64:
1.1       downsj     65:        case "$TERM" in
1.3       marc       66:        sun*-s)
                     67:                # sun console with status line
1.22      rpe        68:                if [[ $tty != $console ]]; then
1.1       downsj     69:                        # ilabel
                     70:                        ILS='\033]L'; ILE='\033\\'
                     71:                        # window title bar
                     72:                        WLS='\033]l'; WLE='\033\\'
                     73:                fi
                     74:                ;;
                     75:        xterm*)
                     76:                ILS='\033]1;'; ILE='\007'
                     77:                WLS='\033]2;'; WLE='\007'
1.12      david      78:                parent="`ps -ax 2>/dev/null | grep $PPID | grep -v grep`"
                     79:                case "$parent" in
1.1       downsj     80:                *telnet*)
1.12      david      81:                export TERM=xterms;;
1.1       downsj     82:                esac
                     83:                ;;
                     84:        *)      ;;
                     85:        esac
                     86:        # do we want window decorations?
1.22      rpe        87:        if [[ -n $ILS ]]; then
1.16      halex      88:                function ilabel { print -n "${ILS}$*${ILE}">/dev/tty; }
                     89:                function label { print -n "${WLS}$*${WLE}">/dev/tty; }
1.1       downsj     90:
                     91:                alias stripe='label "$USER@$HOST ($tty) - $PWD"'
                     92:                alias istripe='ilabel "$USER@$HOST ($tty)"'
                     93:
1.19      halex      94:                # Run stuff through this to preserve the exit code
                     95:                function _ignore { local rc=$?; "$@"; return $rc; }
                     96:
                     97:                function wftp { ilabel "ftp $*"; "ftp" "$@"; _ignore eval istripe; }
                     98:
                     99:                function wcd     { \cd "$@";     _ignore eval stripe; }
                    100:
                    101:                function wssh    { \ssh "$@";    _ignore eval 'istripe; stripe'; }
                    102:                function wtelnet { \telnet "$@"; _ignore eval 'istripe; stripe'; }
                    103:                function wsu     { \su "$@";     _ignore eval 'istripe; stripe'; }
                    104:
1.1       downsj    105:                alias su=wsu
                    106:                alias cd=wcd
                    107:                alias ftp=wftp
1.6       todd      108:                alias ssh=wssh
1.1       downsj    109:                alias telnet=wtelnet
1.18      halex     110:                eval stripe
                    111:                eval istripe
1.1       downsj    112:                PS1=$PROMPT
                    113:        fi
                    114:        alias quit=exit
                    115:        alias cls=clear
                    116:        alias logout=exit
                    117:        alias bye=exit
                    118:        alias p='ps -l'
                    119:        alias j=jobs
                    120:        alias o='fg %-'
1.20      rpe       121:        alias df='df -k'
                    122:        alias du='du -k'
1.1       downsj    123:        alias rsize='eval `resize`'
                    124: ;;
                    125: *)     # non-interactive
                    126: ;;
                    127: esac
                    128: # commands for both interactive and non-interactive shells
                    129:
                    130: # is $1 missing from $2 (or PATH) ?
1.16      halex     131: function no_path {
1.23      rpe       132:        eval _v="\$${2:-PATH}"
                    133:        case :$_v: in
                    134:        *:$1:*) return 1;;              # no we have it
                    135:        esac
                    136:        return 0
1.1       downsj    137: }
                    138: # if $1 exists and is not in path, append it
1.16      halex     139: function add_path {
1.23      rpe       140:        [[ -d ${1:-.} ]] && no_path $* && eval ${2:-PATH}="\$${2:-PATH}:$1"
1.1       downsj    141: }
                    142: # if $1 exists and is not in path, prepend it
1.16      halex     143: function pre_path {
1.23      rpe       144:        [[ -d ${1:-.} ]] && no_path $* && eval ${2:-PATH}="$1:\$${2:-PATH}"
1.1       downsj    145: }
                    146: # if $1 is in path, remove it
1.16      halex     147: function del_path {
1.23      rpe       148:        no_path $* || eval ${2:-PATH}=`eval echo :'$'${2:-PATH}: |
                    149:                sed -e "s;:$1:;:;g" -e "s;^:;;" -e "s;:\$;;"`
1.1       downsj    150: }