src/etc/ksh.kshrc

122 lines
2.8 KiB
Plaintext

# $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