home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / pdksh-4.9-src.tgz / tar.out / contrib / pdksh / etc / profile (.txt) < prev    next >
Microsoft Windows Help File Content  |  1996-09-28  |  7KB  |  259 lines

  1. # NAME:
  2. #    profile - global initialization for sh,ksh
  3. # DESCRIPTION:
  4. #    This file is processed during login by /bin/sh
  5. #    and /bin/ksh.  It is used to setup the default user
  6. #    environment.
  7. # SEE ALSO:
  8. #    $HOME/.profile
  9. #    /etc/ksh.kshrc
  10. # RCSid:
  11. #    $Id: profile,v 1.6 93/09/29 08:57:52 sjg Exp $
  12. #    @(#)Copyright (c) 1991 Simon J. Gerraty
  13. #    This file is provided in the hope that it will
  14. #    be of use.  There is absolutely NO WARRANTY.
  15. #    Permission to copy, redistribute or otherwise
  16. #    use this file is hereby granted provided that 
  17. #    the above copyright notice and this notice are
  18. #    left intact. 
  19. sigs="2 3"
  20. trap "" $sigs    # don't interrupt us
  21. add_path () { [ -d $1 ] && eval ${2:-PATH}="\$${2:-PATH}:$1"; }
  22. pre_path () { [ -d $1 ] && eval ${2:-PATH}="$1:\$${2:-PATH}"; }
  23. del_path () { eval ${2:-PATH}=`eval echo :'$'${2:-PATH}: | 
  24.     sed -e "s;:$1:;:;g" -e "s;^:;;" -e "s;:\$;;"`; }
  25. case "$_INIT_" in
  26. *env*) ;;
  27. *)    # do these once
  28.     _INIT_="$_INIT_"env
  29.     export _INIT_
  30.     case `echo -n ""` in
  31.     -n*)
  32.       _N_=""; _C_="\c";;
  33.       _N_="-n"; _C_="";;
  34.     esac
  35.     if [ -f /unix ]; then
  36.           # System V
  37.       [ -z "$TZ" -a -f /etc/TIMEZONE ] && . /etc/TIMEZONE
  38.         set -- `who -r`
  39.           case "$3" in
  40.           S|5|0)    SINGLE=y;;
  41.           *)    SINGLE=n;;
  42.       esac
  43.         # sys_config.sh should set ARCH,OS,C,N,HOSTNAME,uname
  44.           # we use these in lots of scripts...
  45.             [ "$SINGLE" = n -a -f /etc/sys_config.sh ] && . /etc/sys_config.sh
  46.         else
  47.           [ -f /etc/sys_config.sh ] && . /etc/sys_config.sh
  48.           SINGLE=n        # doesn't matter so much
  49.     # pick one of the following for the default umask
  50.     umask 002    # relaxed    -rwxrwxr-x
  51.     # umask 022    # cautious    -rwxr-xr-x
  52.     # umask 027    # uptight    -rwxr-x---
  53.     # umask 077    # paranoid    -rwx------
  54.     # you can override the default umask
  55.     # for specific groups later...
  56.     if [ -d /local ]; then
  57.         LOCAL=/local
  58.     else
  59.         LOCAL=/usr/local
  60.     # defaults (might be reset below)
  61.     PATH=/bin:/usr/bin
  62.     MANPATH=/usr/man
  63.     SPOOL=/usr/spool
  64.     defterm=vt220
  65.     # set system specific things,
  66.     # eg. set PATH,MANPATH 
  67.     # override default ulimit if desired.
  68.     # defult ulmit is unlimited on SunOS
  69.     # and 4Mb for most System V
  70.     case $OS in
  71.     SunOS)
  72.         # On sun's /bin -> /usr/bin so leave it out!
  73.         PATH=/usr/bin:/usr/ucb:/usr/5bin:.
  74.     SCO-UNIX)
  75.         defterm=ansi
  76.     B.O.S.)
  77.         MANPATH=/usr/catman
  78.         SRC_COMPAT=_SYSV
  79.         export SRC_COMPAT
  80.     386bsd)
  81.         MANPATH=/usr/share/man
  82.         add_path /usr/X386/man MANPATH
  83.         MAILDIR=/var/mail
  84.         SPOOL=/var/spool
  85.     esac
  86.     # add_path only adds them if they exist
  87.     add_path /sbin
  88.     add_path /usr/sbin
  89.     add_path /usr/distbin
  90.     add_path /usr/ucb
  91.     add_path /usr/lbin
  92.     add_path /usr/dbin
  93.     add_path /usr/ldbin
  94.     add_path ${LOCAL}/bin
  95.     add_path /usr/bin/X11
  96.     # ensure . is at end
  97.     PATH=$PATH:.
  98.     case "$HOME" in
  99.     /)    ;;
  100.     ""|/tmp)
  101.         echo "Using /tmp for HOME"
  102.         HOME=/tmp; export HOME
  103.         pre_path $HOME/bin
  104.     esac
  105.     add_path ${LOCAL}/man MANPATH
  106.     # make sure these are set at least once
  107.     LOGNAME=${LOGNAME:-`logname`}
  108.     USER=${USER:-$LOGNAME}
  109.     # we expect id to produce output like:
  110.     # uid=100(sjg) gid=10(staff) groups=10(staff),...
  111.     S='('
  112.     E=')'
  113.     GROUP=`id | cut -d= -f3 | \
  114.         sed -e "s;^[^${S}][^${S}]*${S}\([^${E}][^${E}]*\)${E}.*$;\1;"`
  115.     UID=`id | cut -d= -f2 | \
  116.                 sed -e "s;\([^${S}]*\)${S}.*;\1;"`
  117.     # set some group specific defaults
  118.     case "$GROUP" in
  119.     staff)    # staff deal with things that non-staff 
  120.         # have no business looking at
  121.         umask 027
  122.     extern)    # we put external accounts in group "extern"
  123.         # give them as much privacy as we can...
  124.         umask 077
  125.         ulimit 16384    # 8Mb file limit
  126.         TMOUT=600    # idle timeout
  127.     esac
  128.     unset S E GROUP
  129.     export LOCAL TTY PATH LOGNAME USER
  130.     if [ -t 1 ]; then
  131.         # we are interactive
  132.         TTY=`tty`
  133.         TTY=`basename $TTY`
  134.         if [ -f /etc/organization ]; then
  135.             ORGANIZATION="`cat /etc/organization`"
  136.             COPYRIGHT="Copyright (c) `date +19%y` $ORGANIZATION"
  137.             export ORGANIZATION COPYRIGHT
  138.         # set up some env variables
  139.         MAIL=${MAILDIR:-$SPOOL/mail}/$USER
  140.         MAILPATH=$MAIL:/etc/motd
  141.         EMACSDIR=${LOCAL}/lib/emacs
  142.         PAGER=${PAGER:-more}
  143.         export MAIL EMACSDIR MANPATH MAILPATH PAGER
  144.         CVSROOT=${LOCAL}/src/master
  145.         EDITOR=emacs
  146.         FCEDIT=$EDITOR
  147.         export CVSROOT FCEDIT EDITOR
  148.         case $UID in 
  149.         0)    PROMPT="<$LOGNAME@$HOSTNAME># ";;
  150.         *)    PROMPT="<$LOGNAME@$HOSTNAME>$ ";;
  151.         esac
  152.         [ -f /etc/profile.TeX ] && . /etc/profile.TeX
  153.     else
  154.         TTY=none
  155.     # test (and setup if we are Korn shell)
  156.     if [ "$RANDOM" != "$RANDOM" ]; then
  157.         # we are Korn shell
  158.         SHELL=/bin/ksh
  159.         ENV=${HOME%/}/.kshrc
  160.         if [ ! -f $ENV ]; then
  161.             ENV=/etc/ksh.kshrc
  162.         HISTFILE=${HOME%/}/.ksh_hist
  163.         case $UID in
  164.             PROMPT="<$LOGNAME@$HOSTNAME:!># ";;
  165.         *)    PROMPT="<$LOGNAME@$HOSTNAME:!>$ ";;
  166.         esac
  167.         export HISTSIZE HISTFILE ENV
  168.         CDPATH=.:$HOME
  169.         if [ "$TMOUT" ]; then
  170.             typeset -r TMOUT
  171.     else
  172.         SHELL=/bin/sh
  173.     PS1=$PROMPT
  174.     export SHELL PS1 EDITOR PATH PROMPT HOSTNAME CDPATH
  175. # login time initialization
  176. case "$_INIT_" in
  177. *log*) ;;
  178. *)    _INIT_="$_INIT_"log
  179.     case "$SINGLE" in
  180.     y)    ;;
  181.     if [ TTY != none -a "$0" != "-su" -a "$LOGNAME" = "`logname`" -a ! -f ~/.hushlogin ]
  182.     then
  183.         case $OS in
  184.         B.O.S.)
  185.             case $TTY in
  186.             ttyp*)    stty sane    # problems with telnetd
  187.                 ;;
  188.             esac
  189.             ;;
  190.         esac
  191.         # ensure known state
  192.         stty isig icanon intr '^c' erase '^h' kill '^u' eof '^d' 
  193.         mesg y
  194.         case $TERM in
  195.         network|unknown|dialup|"") 
  196.           echo ${_N_} "Enter terminal type [$defterm]: ${_C_}" 1>&2
  197.           read tmpterm
  198.           TERM=${tmpterm:-$defterm}
  199.           ;;
  200.         esac
  201.         case "$TERM" in
  202.         pc3)
  203.             stty erase ^?
  204.             ;;
  205.         esac
  206.         # not all of the following are appropriate at all sites
  207.         # Sun's don't need to cat /etc/motd for instance
  208.         case "$OS" in
  209.         SunOS)    ;;
  210.         SCO-UNIX)    
  211.             [ -s /etc/motd ] && cat /etc/motd
  212.             [ -x /usr/bin/mail -a -s "$MAIL" ] && 
  213.                 echo "You have mail."
  214.             [ -x /usr/bin/news ] && /usr/bin/news -n
  215.             ;;
  216.         386bsd)
  217.             # hardware flow control works so use it
  218.             case $TTY in
  219.             ttyd*)    # dialups
  220.                 stty  -ixon -ixany
  221.                 stty crtscts
  222.                 ;;
  223.             esac
  224.             ;;
  225.             [ -s /etc/motd ] && cat /etc/motd
  226.             if [ -x /usr/bin/mailx ]; then
  227.                if mailx -e; then
  228.                 echo "You have mail."
  229.                 # show the the headers, this might
  230.                 # be better done in .profile so they
  231.                 # can override it.
  232. #                mailx -H
  233.               fi
  234.             fi
  235.             [ -x /usr/bin/news ] && /usr/bin/news -n
  236.             ;;
  237.         esac
  238.         if [ -f $LOCAL/etc/1stlogin.ann ]; then
  239.             [ -f $HOME/... ] || sh $LOCAL/etc/1stlogin.ann
  240. #        [ -x /usr/games/fortune ] && /usr/games/fortune -a
  241.         # remind folk who turned on reply.pl to turn it off.
  242.         if [ -f $HOME/.forward ]; then
  243.             echo "Your mail is being forwarded to:"
  244.             cat $HOME/.forward
  245.             if [ -f $HOME/.recording ]; then
  246.                 echo "Perhaps you should run \"reply.pl off\""
  247.             fi
  248.     unset tmpterm defterm C N _C_ _N_
  249.     esac
  250.     case "$TERM" in
  251.     network|unknown|"")    TERM=vt100;;
  252.     esac
  253.     export TERM TTY
  254. # Handle X-terminals if necessary
  255. [ "$SINGLE" = n -a -f /etc/profile.X11 ] && . /etc/profile.X11
  256. # make sure you have this bit last
  257. trap $sigs    # restore signals
  258. unset sigs
  259.