home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Professional
/
OS2PRO194.ISO
/
os2
/
sysutils
/
kornshel
/
profile
< prev
next >
Wrap
Text File
|
1992-08-25
|
7KB
|
279 lines
:
# NAME:
# profile - global initialization for sh,ksh
#
# DESCRIPTION:
# This file is processed during login by /bin/sh
# and /bin/ksh. It is used to setup the default user
# environment.
#
# SEE ALSO:
# $HOME/.profile
# /etc/ksh.kshrc
# RCSid:
# $Id: profile,v 1.4 1992/08/10 12:00:11 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 "$_INIT_" in
*env*) ;;
*) # do these once
_INIT_="$_INIT_"env
export _INIT_
case `echo -n ""` in
-n*)
_N_=""; _C_="\c";;
*)
_N_="-n"; _C_="";;
esac
if [ -f /unix ]; then
# System V
[ -z "$TZ" -a -f /etc/TIMEZONE ] && . /etc/TIMEZONE
set -- `who -r`
case "$3" in
S|5|0) SINGLE=y;;
*) SINGLE=n;;
esac
# sys_config.sh should set ARCH,OS,C,N,HOSTNAME,uname
# we use these in lots of scripts...
[ "$SINGLE" = n -a -f /etc/sys_config.sh ] && . /etc/sys_config.sh
else
[ -f /etc/sys_config.sh ] && . /etc/sys_config.sh
SINGLE=n # doesn't matter so much
fi
# pick one of the following for the default umask
# umask 002 # relaxed -rwxrwxr-x
umask 022 # cautious -rwxr-xr-x
# umask 027 # uptight -rwxr-x---
# umask 077 # paranoid -rwx------
# you can override the default umask
# for specific groups later...
if [ -d /local ]; then
LOCAL=/local
else
LOCAL=/usr/local
fi
# set system specific things,
# eg. set PATH,MANPATH
# override default ulimit if desired.
# defult ulmit is unlimited on SunOS
# and 4Mb for most System V
case $OS in
SunOS)
# On sun's /bin -> /usr/bin so leave it out!
PATH=/usr/bin:/usr/ucb:/usr/5bin:.
MANPATH=/usr/man
defterm=vt220
;;
SCO-UNIX)
PATH=/bin:/usr/bin:/usr/lbin:/usr/dbin:/usr/ldbin:.
MANPATH=/usr/man
defterm=ansi
;;
B.O.S.)
PATH=/bin:/usr/bin:.
if [ -d /usr/ucb ]; then
PATH=$PATH:/usr/ucb
fi
MANPATH=/usr/catman
defterm=vt220
SRC_COMPAT=_SYSV
export SRC_COMPAT
;;
*)
PATH=/bin:/usr/bin:.
if [ -d /usr/ucb ]; then
PATH=$PATH:/usr/ucb
fi
MANPATH=/usr/catman
defterm=vt220
;;
esac
if [ -d ${LOCAL}/bin ]; then
PATH=$PATH:${LOCAL}/bin
fi
case "$HOME" in
/) ;;
""|/tmp)
echo "Using /tmp for HOME"
HOME=/tmp; export HOME
;;
*)
if [ -d $HOME/bin ]; then
PATH=$PATH:$HOME/bin
fi
;;
esac
if [ -d ${LOCAL}/man ]; then
MANPATH=$MANPATH:${LOCAL}/man
fi
# make sure these are set at least once
LOGNAME=${LOGNAME:-`logname`}
USER=${USER:-$LOGNAME}
# we expect id to produce output like:
# uid=100(sjg) gid=10(staff) groups=10(staff),...
S='('
E=')'
GROUP=`id | cut -d= -f3 | \
sed -e "s;^[^${S}][^${S}]*${S}\([^${E}][^${E}]*\)${E}.*$;\1;"`
UID=`id | cut -d= -f2 | \
sed -e "s;\([^${S}]*\)${S}.*;\1;"`
# set some group specific defaults
case "$GROUP" in
staff) # staff deal with things that non-staff
# have no business looking at
umask 027
;;
extern) # we put external accounts in group "extern"
# give them as much privacy as we can...
umask 077
ulimit 16384 # 8Mb file limit
TMOUT=600 # idle timeout
;;
esac
unset S E GROUP
export LOCAL TTY PATH LOGNAME USER
if [ -t 1 ]; then
# we are interactive
TTY=`tty`
TTY=`basename $TTY`
ORGANIZATION=""
COPYRIGHT="Copyright (c) `date +19%y` $ORGANIZATION"
export ORGANIZATION COPYRIGHT
# set up some env variables
MAIL=/usr/spool/mail/$USER
MAILPATH=/usr/spool/mail/$USER:/etc/motd
EMACSDIR=${LOCAL}/lib/emacs
PAGER=${PAGER:-more}
export MAIL EMACSDIR MANPATH MAILPATH PAGER
CVSROOT=${LOCAL}/src/master
EDITOR=emacs
FCEDIT=$EDITOR
export CVSROOT FCEDIT EDITOR
# EMACSLOADPATH=$EMACSDIR/lisp
# [ -d $LOCAL/lib/lisp ] && EMACSLOADPATH=$LOCAL/lib/lisp:$EMACSLOADPATH
# [ -d $HOME/lisp ] && EMACSLOADPATH=$HOME/lisp:$EMACSLOADPATH
case $UID in
0) PROMPT="<$LOGNAME@$HOSTNAME># ";;
*) PROMPT="<$LOGNAME@$HOSTNAME>$ ";;
esac
# PUBDIR=/usr/spool/uucppublic
# export PUBDIR EMACSLOADPATH
[ -f /etc/profile.TeX ] && . /etc/profile.TeX
else
TTY=none
fi
# test (and setup if we are Korn shell)
if [ "$RANDOM" != "$RANDOM" ]; then
# we are Korn shell
SHELL=/bin/ksh
ENV=${HOME%/}/.kshrc
HISTFILE=${HOME%/}/.ksh_hist
case $UID in
0)
PROMPT="<$LOGNAME@$HOSTNAME:!># ";;
*) PROMPT="<$LOGNAME@$HOSTNAME:!>$ ";;
esac
export HISTSIZE HISTFILE ENV
CDPATH=.:$HOME
if [ "$TMOUT" ]; then
typeset -r TMOUT
fi
else
SHELL=/bin/sh
fi
PS1=$PROMPT
export SHELL PS1 EDITOR PATH PROMPT HOSTNAME CDPATH
;;
esac
# login time initialization
case "$_INIT_" in
*log*) ;;
*) _INIT_="$_INIT_"log
case "$SINGLE" in
y) ;;
*)
if [ TTY != none -a "$0" != "-su" -a "$LOGNAME" = "`logname`" -a ! -f ~/.hushlogin ]
then
case $OS in
B.O.S.)
case $TTY in
ttyp*) stty sane # problems with telnetd
;;
esac
;;
esac
# ensure known state
stty isig icanon intr '^c' erase '^h' kill '^u' eof '^d'
mesg y
case $TERM in
network|unknown|dialup|"")
echo ${_N_} "Enter terminal type [$defterm]: ${_C_}" 1>&2
read tmpterm
TERM=${tmpterm:-$defterm}
;;
esac
# not all of the following are appropriate at all sites
# Sun's don't need to cat /etc/motd for instance
case "$OS" in
SunOS) ;;
SCO-UNIX)
[ -s /etc/motd ] && cat /etc/motd
[ -x /usr/bin/mail -a -s "$MAIL" ] &&
echo "You have mail."
[ -x /usr/bin/news ] && /usr/bin/news -n
;;
*)
[ -s /etc/motd ] && cat /etc/motd
if [ -x /usr/bin/mailx ]; then
if mailx -e; then
echo "You have mail."
# show the the headers, this might
# be better done in .profile so they
# can override it.
# mailx -H
fi
fi
[ -x /usr/bin/news ] && /usr/bin/news -n
;;
esac
# [ -x /usr/games/fortune ] && /usr/games/fortune -a
# remind folk who turned on reply.pl to turn it off.
if [ -f $HOME/.forward ]; then
echo "Your mail is being forwarded to:"
cat $HOME/.forward
if [ -f $HOME/.recording ]; then
echo "Perhaps you should run \"reply.pl off\""
fi
fi
fi
unset tmpterm defterm C N _C_ _N_
esac
case "$TERM" in
network|unknown|"") TERM=vt100;;
esac
export TERM TTY
;;
esac
# Handle X-terminals if necessary
[ "$SINGLE" = n -a -f /etc/profile.X11 ] && . /etc/profile.X11