# $OpenBSD: ksh.kshrc,v 1.32 2018/05/16 14:01:41 mpf 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 USER=$(id -un) UID=$(id -u) 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=${tty##*/} TTY=${TTY:-$tty} # $console is the system console device console=$(sysctl kern.consdev) console=${console#*=} set -o emacs alias ls='ls -F' alias h='fc -l | more' case "$TERM" in sun*-s) # sun console with status line 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' pgrep -qxs $PPID telnet && export TERM=xterms ;; *) ;; esac # do we want window decorations? if [[ -n $ILS ]]; then function ilabel { print -n "${ILS}$*${ILE}">/dev/tty; } function label { print -n "${WLS}$*${WLE}">/dev/tty; } alias stripe='label "$USER@$HOST ($tty) - $PWD"' alias istripe='ilabel "$USER@$HOST ($tty)"' # Run stuff through this to preserve the exit code function _ignore { local rc=$?; "$@"; return $rc; } function wftp { ilabel "ftp $*"; "ftp" "$@"; _ignore eval istripe; } function wcd { \cd "$@"; _ignore eval stripe; } function wssh { \ssh "$@"; _ignore eval 'istripe; stripe'; } function wtelnet { \telnet "$@"; _ignore eval 'istripe; stripe'; } function wsu { \su "$@"; _ignore eval 'istripe; stripe'; } alias su=wsu alias cd=wcd alias ftp=wftp alias ssh=wssh alias telnet=wtelnet 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 df='df -k' alias du='du -k' alias rsize='eval $(resize)' ;; *) # non-interactive ;; esac