Annotation of src/etc/ksh.kshrc, Revision 1.18
1.1 downsj 1: :
1.17 halex 2: # $OpenBSD: ksh.kshrc,v 1.16 2011/07/04 19:52:37 halex 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: # NOTE: SCO-UNIX doesn't have whoami,
37: # install whoami.sh
38: USER=`whoami 2>/dev/null`
1.12 david 39: USER=${USER:-`id | sed 's/^[^(]*(\([^)]*\)).*/\1/'`}
1.3 marc 40: UID=`id -u`
1.1 downsj 41: case $UID in
42: 0) PS1S='# ';;
43: esac
1.12 david 44: PS1S=${PS1S:-'$ '}
1.1 downsj 45: HOSTNAME=${HOSTNAME:-`uname -n`}
46: HOST=${HOSTNAME%%.*}
47:
48: PROMPT="$USER:!$PS1S"
49: #PROMPT="<$USER@$HOST:!>$PS1S"
50: PPROMPT='$USER:$PWD:!'"$PS1S"
51: #PPROMPT='<$USER@$HOST:$PWD:!>'"$PS1S"
52: PS1=$PPROMPT
53: # $TTY is the tty we logged in on,
54: # $tty is that which we are in now (might by pty)
55: tty=`tty`
56: tty=`basename $tty`
1.12 david 57: TTY=${TTY:-$tty}
1.8 deraadt 58:
1.1 downsj 59: set -o emacs
60:
61: alias ls='ls -CF'
62: alias h='fc -l | more'
63: # the PD ksh is not 100% compatible
64: case "$KSH_VERSION" in
65: *PD*) # PD ksh
66: ;;
67: *) # real ksh ?
68: [ -r $HOME/.functions ] && . $HOME/.functions
69: set -o trackall
70: ;;
71: esac
72: case "$TERM" in
1.3 marc 73: sun*-s)
74: # sun console with status line
1.2 kstailey 75: if [ "$tty" != "$console" ]; then
1.1 downsj 76: # ilabel
77: ILS='\033]L'; ILE='\033\\'
78: # window title bar
79: WLS='\033]l'; WLE='\033\\'
80: fi
81: ;;
82: xterm*)
83: ILS='\033]1;'; ILE='\007'
84: WLS='\033]2;'; WLE='\007'
1.12 david 85: parent="`ps -ax 2>/dev/null | grep $PPID | grep -v grep`"
86: case "$parent" in
1.1 downsj 87: *telnet*)
1.12 david 88: export TERM=xterms;;
1.1 downsj 89: esac
90: ;;
91: *) ;;
92: esac
93: # do we want window decorations?
94: if [ "$ILS" ]; then
1.16 halex 95: function ilabel { print -n "${ILS}$*${ILE}">/dev/tty; }
96: function label { print -n "${WLS}$*${WLE}">/dev/tty; }
1.1 downsj 97:
98: alias stripe='label "$USER@$HOST ($tty) - $PWD"'
99: alias istripe='ilabel "$USER@$HOST ($tty)"'
100:
1.18 ! halex 101: function wftp { ilabel "ftp $*"; "ftp" "$@"; eval istripe; }
! 102: function wcd { \cd "$@" && eval stripe; }
1.16 halex 103: function wssh
1.6 todd 104: {
1.15 otto 105: local rc
1.6 todd 106: "ssh" "$@"
1.15 otto 107: rc=$?
1.18 ! halex 108: eval istripe
! 109: eval stripe
1.15 otto 110: return $rc
1.6 todd 111: }
1.16 halex 112: function wtelnet
1.1 downsj 113: {
1.15 otto 114: local rc
1.1 downsj 115: "telnet" "$@"
1.15 otto 116: rc=$?
1.18 ! halex 117: eval istripe
! 118: eval stripe
1.15 otto 119: return $rc
1.1 downsj 120: }
1.16 halex 121: function wrlogin
1.1 downsj 122: {
1.15 otto 123: local rc
1.1 downsj 124: "rlogin" "$@"
1.15 otto 125: rc=$?
1.18 ! halex 126: eval istripe
! 127: eval stripe
1.15 otto 128: return $rc
1.1 downsj 129: }
1.16 halex 130: function wsu
1.1 downsj 131: {
1.15 otto 132: local rc
1.1 downsj 133: "su" "$@"
1.15 otto 134: rc=$?
1.18 ! halex 135: eval istripe
! 136: eval stripe
1.15 otto 137: return $rc
1.1 downsj 138: }
139: alias su=wsu
140: alias cd=wcd
141: alias ftp=wftp
1.6 todd 142: alias ssh=wssh
1.1 downsj 143: alias telnet=wtelnet
144: alias rlogin=wrlogin
1.18 ! halex 145: eval stripe
! 146: eval istripe
1.1 downsj 147: PS1=$PROMPT
148: fi
149: alias quit=exit
150: alias cls=clear
151: alias logout=exit
152: alias bye=exit
153: alias p='ps -l'
154: alias j=jobs
155: alias o='fg %-'
156:
157: # add your favourite aliases here
158: OS=${OS:-`uname -s`}
159: case $OS in
160: HP-UX)
1.9 deraadt 161: alias ls='ls -CF'
1.12 david 162: ;;
1.1 downsj 163: *BSD)
164: alias df='df -k'
165: alias du='du -k'
166: ;;
1.8 deraadt 167: esac
1.1 downsj 168: alias rsize='eval `resize`'
169: ;;
170: *) # non-interactive
171: ;;
172: esac
173: # commands for both interactive and non-interactive shells
174:
175: # is $1 missing from $2 (or PATH) ?
1.16 halex 176: function no_path {
1.1 downsj 177: eval _v="\$${2:-PATH}"
178: case :$_v: in
179: *:$1:*) return 1;; # no we have it
180: esac
181: return 0
182: }
183: # if $1 exists and is not in path, append it
1.16 halex 184: function add_path {
1.1 downsj 185: [ -d ${1:-.} ] && no_path $* && eval ${2:-PATH}="\$${2:-PATH}:$1"
186: }
187: # if $1 exists and is not in path, prepend it
1.16 halex 188: function pre_path {
1.1 downsj 189: [ -d ${1:-.} ] && no_path $* && eval ${2:-PATH}="$1:\$${2:-PATH}"
190: }
191: # if $1 is in path, remove it
1.16 halex 192: function del_path {
1.8 deraadt 193: no_path $* || eval ${2:-PATH}=`eval echo :'$'${2:-PATH}: |
1.1 downsj 194: sed -e "s;:$1:;:;g" -e "s;^:;;" -e "s;:\$;;"`
195: }