ksh.kshrc revision 1.11
1: 2# $OpenBSD: ksh.kshrc,v 1.11 2002/12/08 22:40:45 marc Exp $ 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 33case "$-" 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 UID=`id -u` 41 case $UID in 42 0) PS1S='# ';; 43 esac 44 PS1S=${PS1S:-'$ '} 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` 57 TTY=${TTY:-$tty} 58 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 73 sun*-s) 74 # sun console with status line 75 if [ "$tty" != "$console" ]; then 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' 85 parent="`ps -ax 2>/dev/null | grep $PPID | grep -v grep`" 86 case "$parent" in 87 *telnet*) 88 export TERM=xterms;; 89 esac 90 ;; 91 *) ;; 92 esac 93 # do we want window decorations? 94 if [ "$ILS" ]; then 95 ilabel () { print -n "${ILS}$*${ILE}">/dev/tty; } 96 label () { print -n "${WLS}$*${WLE}">/dev/tty; } 97 98 alias stripe='label "$USER@$HOST ($tty) - $PWD"' 99 alias istripe='ilabel "$USER@$HOST ($tty)"' 100 101 wftp () { ilabel "ftp $*"; "ftp" $*; eval istripe; } 102 wcd () { \cd "$@" && eval stripe; } 103 wssh () 104 { 105 "ssh" "$@" 106 eval istripe 107 eval stripe 108 } 109 wtelnet () 110 { 111 "telnet" "$@" 112 eval istripe 113 eval stripe 114 } 115 wrlogin () 116 { 117 "rlogin" "$@" 118 eval istripe 119 eval stripe 120 } 121 wsu () 122 { 123 "su" "$@" 124 eval istripe 125 eval stripe 126 } 127 alias su=wsu 128 alias cd=wcd 129 alias ftp=wftp 130 alias ssh=wssh 131 alias telnet=wtelnet 132 alias rlogin=wrlogin 133 eval stripe 134 eval istripe 135 PS1=$PROMPT 136 fi 137 alias quit=exit 138 alias cls=clear 139 alias logout=exit 140 alias bye=exit 141 alias p='ps -l' 142 alias j=jobs 143 alias o='fg %-' 144 alias ls='ls -gCF' 145 146# add your favourite aliases here 147 OS=${OS:-`uname -s`} 148 case $OS in 149 HP-UX) 150 alias ls='ls -CF' 151 ;; 152 *BSD) 153 alias df='df -k' 154 alias du='du -k' 155 ;; 156 esac 157 alias rsize='eval `resize`' 158;; 159*) # non-interactive 160;; 161esac 162# commands for both interactive and non-interactive shells 163 164# is $1 missing from $2 (or PATH) ? 165no_path () { 166 eval _v="\$${2:-PATH}" 167 case :$_v: in 168 *:$1:*) return 1;; # no we have it 169 esac 170 return 0 171} 172# if $1 exists and is not in path, append it 173add_path () { 174 [ -d ${1:-.} ] && no_path $* && eval ${2:-PATH}="\$${2:-PATH}:$1" 175} 176# if $1 exists and is not in path, prepend it 177pre_path () { 178 [ -d ${1:-.} ] && no_path $* && eval ${2:-PATH}="$1:\$${2:-PATH}" 179} 180# if $1 is in path, remove it 181del_path () { 182 no_path $* || eval ${2:-PATH}=`eval echo :'$'${2:-PATH}: | 183 sed -e "s;:$1:;:;g" -e "s;^:;;" -e "s;:\$;;"` 184} 185