summaryrefslogtreecommitdiff
path: root/etc/ksh.kshrc
diff options
context:
space:
mode:
authorJason Downs <downsj@cvs.openbsd.org>1996-08-14 08:28:05 +0000
committerJason Downs <downsj@cvs.openbsd.org>1996-08-14 08:28:05 +0000
commit726fb988f32c7a1b0076504f7babdb7c7ce8414a (patch)
tree10a2943760691860e75cb774d9bcfe7d368a6dc3 /etc/ksh.kshrc
parent4ff1d90fe9a0835132ab53e220b769128b649309 (diff)
Add /etc/ksh.kshrc.
Diffstat (limited to 'etc/ksh.kshrc')
-rw-r--r--etc/ksh.kshrc211
1 files changed, 211 insertions, 0 deletions
diff --git a/etc/ksh.kshrc b/etc/ksh.kshrc
new file mode 100644
index 00000000000..59a1714e78c
--- /dev/null
+++ b/etc/ksh.kshrc
@@ -0,0 +1,211 @@
+:
+# $OpenBSD: ksh.kshrc,v 1.1 1996/08/14 08:28:04 downsj 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/'`}
+ 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'
+ _cd() { "cd" $*; }
+ # the PD ksh is not 100% compatible
+ case "$KSH_VERSION" in
+ *PD*) # PD ksh
+ case "$TERM" in
+ pc3|pcvt*|xterm*)
+ # bind arrow keys
+ bind '^[['=prefix-2
+ bind '^XA'=up-history
+ bind '^XB'=down-history
+ bind '^XC'=forward-char
+ bind '^XD'=backward-char
+ ;;
+ esac
+ ;;
+ *) # real ksh ?
+ [ -r $HOME/.functions ] && . $HOME/.functions
+ set -o trackall
+ ;;
+ esac
+ case "$TERM" in
+ sun*)
+ # these are not as neat as their csh equivalents
+ 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}"; }
+ label () { print -n "${WLS}$*${WLE}"; }
+
+ alias stripe='label "$USER@$HOST ($tty) - $PWD"'
+ alias istripe='ilabel "$USER@$HOST ($tty)"'
+
+ wftp () { ilabel "ftp $*"; "ftp" $*; eval istripe; }
+ wcd () { _cd $*; 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 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`'
+
+ case "$TERM" in
+ sun*|xterm*)
+ case $tty in
+ tty[p-w]*)
+ case "$DISPLAY" in
+ "")
+ DISPLAY="`who | grep $TTY | sed -n 's/.*(\([^:)]*\)[:)].*/\1/p' | sed 's/\([a-zA-Z][^.]*\).*/\1/'`:0"
+ ;;
+ esac
+ ;;
+ esac
+ case "$DISPLAY" in
+ ozen*|:*)
+ stty erase "^?"
+ ;;
+ *)
+ stty erase "^h"
+ ;;
+ esac
+ export DISPLAY
+ ;;
+ esac
+
+;;
+*) # 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;:\$;;"`
+}