UNIX-Einführung - 9.Punkt-Files
  
  
  
              9. Meine Arbeitsumgebung
              ========================
  
                 Punktfiles
  
  
  
  Jedes anständige Programm benutzt Punktfiles oder Punktdirectories, um 
  Nutzereinstellungen zu erfahren bzw. abzulegen. Wenn keine nutzerspezifischen
  Einstellung vorhanden sind, wird auf Standards zurückgegriffen. Die Standards
  sind entweder in Files gespeichert oder in das Programm eincompiliert. 
  Wenn die Standards in einem File gespeichert sind, können diese durch den 
  Systemadministrator verändert werden.
  Typische Positionen für derartige Standardfiles sind:
  
      /etc/
      /etc/default/
      /etc/profile.d/
      /usr/share/
      /usr/lib/
      /lib/
  





nextback          SS 2010 - 1





  
  Programme und ihre Punktfiles - eine Übersicht
     
     .Xauthority         -  X-Server - entfernter Zugriff
     .Xdefaults          -  X-Applikationen
     .Xmodmap            -  X-Server - Tastatur
     .Xresources         -  X-Applikationen
     .acrobat            -  Acrobat-Reader
     .adobe              -  Adobe
     .bash_history       -  Bash - Shell - History-File
     .bashrc             -  Bash  - Shell- Konfigurationsfile
     .cshrc              -  C-Shell - Konfigurationsfile
     .elm                -  Elm - Mail-Reader - Mail-Front-End
     .emacs              -  EMACS
     .emacs.d            -  EMACS
     .exrc               -  ex
     .exrv               -  ex
     .forward            -  Mail-SMTP-Server
     .gnome              -  GNOME
     .gnu-emacs          -  EMACS
     .gnupg              -  PGP
     .gv                 -  GV - Ghostview
     .history            -  History von Shells
     .hotjava            -  java
     .java               -  java
     .kde                -  KDE
     .kermrc             -  Kermit
     .kismet             -  Kismet


nextback          SS 2010 - 2





  
     .mailcap            -  MAIL-Front-End
     .mc                 -  MC
     .mcop               -
     .mcoprc             -
     .mime.types         -  Mime - Mail-Front-End
     .mozilla            -  Mozilla
     .mplayer            -
     .muttrc             -  Mutt - Mail-Front-End
     .netscape           -  Netscape
     .netscape6          -  Netscape
     .newsrc-news        -  News-Reader
     .pinerc             -  Pine - Mail-Reader - Mail-Front-End
     .profile            -  Sh - Shell - Konfigurationsfile
     .public_html        -  Apache
     .qt                 -  Qt - Grafikbibliothek
     .rnd                -  Zufallszahlen
     .ssh                -  Ssh - User-Konfiguration
     .ssh-agent          -  Ssh
     .tcshrc             -  TCSH - Shell - Konfigurationsfile
     .tex                -  TEX
     .viminfo            -  VIM, VI
     .vimrc              -  VIM, VI
     .xinitrc            -  X-Server - Start User
     .xserverrc.secure   -
     .xsession           -  X-Server
     .xsession-errors    -  X-Server - Fehler
  


nextback          SS 2010 - 3





  
  Fehlerhafte Punktfiles können zum Absturz eines Programms führen.
  Im ungünstigsten Fall kann ein fehlerhaftes Punktfile das Login
  eines Nutzers verhindern. Deshalb ist bei der Modifikation von
  Punktfiles Vorsicht geboten. Man sollte immer Sicherheitskopien 
  anlegen und die Änderung ausprobieren bevor man sich ausloggt. 
  
  Also:
  
       cp <Punktfile> <Punktfile>.old  # bei Files
      oder 
       cp -r <Punktfile> <Punktfile>.old  # bei Directories
  
  Sollte man dies vergessen haben:
     
      rm -r <Punktfile>
  
    dadurch werden die entsprechenden Punktfiles gelöscht
    und das Programm greift auf den Standard zurück!!!!











nextback          SS 2010 - 4





  
  Einstellen der Punktfiles/Umgebung am Institut
  
    Die Systemadministratoren haben schon etwas für die Nutzer gemacht.
  
  Ändern der Umgebung für einen Nutzer mit:
  
        /usr/local/bin/huinstall
  
    Der Nutzer kann dabei folgende Einstellungen wählen:
  
             Mailserver - Server, auf dem die Mail des Nutzers
                          gespeichert wird. Für neue Studenten immer
  
                                mailbox
  
             Shell - vom Nutzer nach dem Login benutzte Standarshell.
                     Folgende Shells stehen zur Verfügung:
                       sh    - Bourne Shell
                       csh   - C-Shell
                       bash  - Bourne Again Shell (für Anfänger empfohlen)
                       tcsh  - Turbo C-Shell
                       ksh   - Korn-Shell
  
  Nach dem Ändern ist ein Logout und ein neues Login notwendig, damit
  die Änderungen notwendig werden
  
  Hier ist die Vorlesung im Crashkurs zu Ende. Neugierige können zu Hause 
  weiterlesen.

nextback          SS 2010 - 5





  
  .profile  -  Startfile für sh und bash
  
    Abarbeitung:   nur bei login!!!!
  
  Beispiel (Informatik - huinstall):
  
  
  ##
  ##  .profile
  ##   Version 1.5
  ##   Mon Nov 03 11:20:49 DFT 2003
  ##   j-p bell, p kaempfer
  ##   Aenderungen auf eigene Gefahr, schwere Fehler verhindern ein Login
  ##  wird von sh unter Linux 
  ##  und von sh und ksh unter Solaris benutzt
  ##
  ## Diese Datei wurde automatisch durch huinstall erzeugt !
  ##
  ## Anhand des entsprechenden  Hostnamens, Systemnamens und NEWSHELL
  ## werden unterschiedliche Initialisierungen unterschieden.
  ##  .profile wird von sh und ksh benutzt, deshalb ein paar Kopfstaende
  ##
  # Enthaelt die gewuenschte Shell, falls dies von der LOGIN-Shell abweicht
  #
  NEWSHELL=bash
  
  # Der vorlaeufige Pfad wird gesetzt, nicht aendern
  PATH="/usr/bin:/bin:/usr/local/bin"; export PATH
  
nextback          SS 2010 - 6





  # Envoirmentvariablen fuer  System und Host setzen:
  SYSTEM=`uname -s`
  if [ ${SYSTEM} = "SunOS" ] && [ `uname -r | cut -c1` -ge 5 ]; then
  	SYSTEM="Solaris"
  fi
  HOST=`hostname`
  export SYSTEM HOST
  if [ -z "$LOGNAME" ] ; then
  	LOGNAME=`logname`;export LOGNAME
  fi
  if [ -z "$USER" ] ; then
  	USER="$LOGNAME"
  fi
  export USER LOGNAME
  
  # fuer Leute, die GNU mehr vertrauen
  # Achtung Probleme bei man unter Solaris
  # PATH="/usr/local/bin:/usr/bin:/bin"; export PATH
  
  # Envoirmentvariablen fuer Mail 
  # Fuer Studenten:     /vol/mailslv1/${USER}
  # Fuer Mitarbeiter:   /vol/mail/${USER}
  MAIL=/vol/mail/${USER};export MAIL
  MAILSERVER=mail ; export MAILSERVER
  umask 077
  
  
  case $SYSTEM in


nextback          SS 2010 - 7





  
  Solaris )
     #
     # dieser Teil wird unter Solaris auch von der ksh abgearbeitet, dafuer kein .kshrc
     #
     #  AKTSHELL enthaelt ksh oder sh 
     AKTSH=`ps -efa |  awk  '{  if ( $2 == NN ) print $8 ; }' NN=$$ | sed s/-//`
     AKTSHELL=`basename $AKTSH`
     if [ "$AKTSHELL" != "ksh" ] ; then
        AKTSHELL=sh
     fi
     LOGIN=`ps -efa |  awk  '{  if ( $2 == NN ) print $8 ; }' NN=$$ | grep - `
  
     PATH="${PATH}:/usr/local/TeX/bin:/usr/local/X11/bin/:${HOME}/bin:."
     PATH="${PATH}:/usr/ucb:/usr/sbin/:/sbin:/usr/dt/bin:."
     # Fuer Java den Pfad erweitern
     PATH="/usr/local/Java/bin:${PATH}"
     MANPATH=/usr/local/man:/usr/man:/usr/local/X11/man:/usr/dt/man
     # Zu guter Letzt die Pfade exportieren ..
     export PATH MANPATH
  
     for PATHDIR in /bin /usr/bin /usr/local/bin
         do
           if [ -x  ${PATHDIR}/$AKTSHELL ] ; then
  	         SHELL=${PATHDIR}/$AKTSHELL ; export SHELL
                   break
           fi
     done
     MYSHELL=$SHELL

nextback          SS 2010 - 8





     if [  "$DT" ] ; then
            for PATHDIR in /bin /usr/bin /usr/local/bin
              do
                if [ -x  $PATHDIR/$NEWSHELL ] ; then
  	         SHELL=$PATHDIR/$NEWSHELL ; export SHELL
                   break
  	      fi
            done
            AKTSHELL=$NEWSHELL
            SHELLSWITCHED=1 ; export SHELLSWITCHED
     else
       if [ "x$LOGIN" != "x" ] ; then     # Shell ist interaktiv.
         if [ $NEWSHELL != "$AKTSHELL" ] ; then  # $NEWSHELL laeuft nicht
           if [ "x$SHELLSWITCHED" = "x" ] ; then   # Shell noch nicht geswitchet
              SHELLSWITCHED=1 ; export SHELLSWITCHED
              for PATHDIR in /bin /usr/bin /usr/local/bin
                do
                  if [ -x  $PATHDIR/$NEWSHELL ] ; then
                     SHELL=$PATHDIR/$NEWSHELL ; export SHELL
  	           if [ "$NEWSHELL" = "tcsh" ] ; then exec $PATHDIR/$NEWSHELL -l ; fi
  	           if [ "$NEWSHELL" = "csh" ] ; then exec $PATHDIR/$NEWSHELL -i ; fi
  	           if [ "$NEWSHELL" = "ksh" ] ; then exec $PATHDIR/$NEWSHELL -i ; fi
  	           if [ "$NEWSHELL" = "bash" ] ; then exec $PATHDIR/$NEWSHELL -i ; fi
  	           if [ "$NEWSHELL" = "sh" ] ; then exec $PATHDIR/$NEWSHELL  ; fi
  	        fi
              done
              echo "Es existiert keine $NEWSHELL."
           fi
         fi
       fi
nextback          SS 2010 - 9





       SHELLSWITCHED=1 ; export SHELLSWITCHED
       # Setze einige Shellvariablen:
       HISTSIZE=20
       HISTFILESIZE=20
       FIGNORE=".o:.vim:.bak:.BAK:\~"
       PS1="$HOST $USER \$ "
       export HISTSIZE HISTFILESIZE FIGNORE
       # Aliases und Variablen koennen auch abhaengig von installierten
       # Programmen gesetzt werden, z.B vim fuer vi, less fuer more:
       # $EDITOR wird von einigen Programme (elm, knews) als Defaulteditor
       # verwendet, analog kann man so seinen Lieblingseditor waehlen.
       if [ -x /usr/bin/vim ] ; then
  	EDITOR=vim; export EDITOR
  	alias vi=/usr/bin/vim
       elif [ -x /usr/local/bin/vim ] ; then
  	EDITOR=vim; export EDITOR
  	alias vi=/usr/local/bin/vim
       else
  	# Besser als ed
  	EDITOR=vi; export EDITOR
       fi
       # if [ -x /usr/bin/less -o -x /usr/local/bin/less ] ; then
       # 	PAGER=less;export PAGER
       # fi
       # die Aliases 'psa' und 'psu' hinzugefuegt.
       alias psa="ps -ef"
       alias psu="psa |grep $USER |grep -v 'ps -ux' |grep -v grep |more"
     fi
     ;;

nextback          SS 2010 - 10





  Linux )
  
     # diese Passage wird  von Linux  unter folgenden Bedingungen sekundaer abgearbeitet 
     #     sh  (bash)  - nach Abarbeitung von .bashrc
     #    ksh          - nach Abarbeitung von .kshrc
  
     MANPATH=/usr/local/man:/usr/share/man:/usr/man:/usr/local/X11/man:/usr/X11/man
     # fuer kde und gnome erweitern
     PATH="${PATH}:/opt/gnome/bin:/opt/gnome2/bin:/opt/kde2/bin:/opt/kde3/bin"
     PATH="${PATH}:/usr/local/X11/bin:/usr/X11/bin:${HOME}/bin:."
     PATH="${PATH}:/usr/sbin:/sbin"
     # Fuer Java den Pfad erweitern und andere Einstellungen
     PATH="${PATH}:/usr/lib/java/bin"
     # Zu guter Letzt die Pfade exportieren ..
     export PATH MANPATH
  
     ;;
  
  * )
  	PATH="/usr/local/bin:/usr/bin:/bin:/usr/ucb/:${HOME}/bin:."
  	echo SYSTEM $SYSTEM unbekannt.
     ;;
  esac







nextback          SS 2010 - 11





  
  .bashrc   -  Startfile für bash
  
    Abarbeitung:   beim Starten jeder bash
  
  Beispiel (Informatik - huinstall):
  
  
  ##
  ##  .bashrc
  ##   Version 1.6
  ##   Mon Nov 03 11:17:42 DFT 2003
  ##   j-p bell, p kaempfer
  ##   Aenderungen auf eigene Gefahr, schwere Fehler verhindern ein Login
  ##   wird von bash benutzt
  ##   Achtung unter Linux ist sh ein Link auf bash, die bash arbeitet dann erst .bashrc ab
  ##   und dann .profile
  ##
  ## Diese Datei wurde automatisch durch huinstall erzeugt !
  ##
  ## Anhand des entsprechenden  Hostnamens, Systemnamens und NEWSHELL
  ## werden unterschiedliche Initialisierungen unterschieden.
  #
  # Enthaelt die gewuenschte Shell, falls dies von der LOGIN-Shell abweicht
  #
  NEWSHELL=bash
  
  # Der vorlaeufige Pfad wird gesetzt, nicht aendern
  PATH="/bin:/usr/bin:/usr/local/bin"; export PATH
  
nextback          SS 2010 - 12





  # Envoirmentvariablen fuer Hostname und System  setzen:
  SYSTEM=`uname -s`
  if [ ${SYSTEM} = "SunOS" ] && [ `uname -r | cut -c1` -ge 5 ]; then
  	SYSTEM="Solaris"
  fi
  HOST=`hostname`
  export HOST SYSTEM
  
  if [ -z "$LOGNAME" ] ; then
  	LOGNAME=`logname`;export LOGNAME
  fi
  
  if [ -z "$USER" ] ; then
  	USER="$LOGNAME"
  fi
  export USER LOGNAME
  # Envoirmentvariablen fuer Mail  
  #  Studenten:   /vol/mailslv1/${USER}
  #  Mitarbeiter: /vol/mail/${USER}
  MAIL=/vol/mail/${USER};export MAIL
  MAILSERVER=mail ; export MAILSERVER
  # fuer Leute, die GNU mehr vertrauen
  # Achtung Probleme bei man unter Solaris
  # PATH="/usr/local/bin:/bin:/usr/bin"; export PATH
  umask 077
  #
  # Systemabhaengige Einstellungen 
  #
  case $SYSTEM in

nextback          SS 2010 - 13





  Solaris )
  
     PATH="${PATH}:/usr/local/TeX/bin:/usr/local/X11/bin/:${HOME}/bin:."
     PATH="${PATH}:/usr/sbin/:/sbin:/usr/dt/bin:."
     # Fuer Java den Pfad erweitern
     PATH="/usr/local/Java/bin:${PATH}"
     MANPATH=/usr/local/man:/usr/man:/usr/local/X11/man:/usr/dt/man
     #  Pfade exportieren ..
     export PATH MANPATH 
  
     for PATHDIR in /bin /usr/bin /usr/local/bin
         do
           if [ -x  ${PATHDIR}/bash ] ; then
                   SHELL=${PATHDIR}/bash ; export SHELL
                   break
           fi
     done
     MYSHELL=$SHELL
  
     if [  "$DT" ] ; then
            for PATHDIR in /bin /usr/bin /usr/local/bin
              do
                if [ -x  $PATHDIR/$NEWSHELL ] ; then
                   SHELL=$PATHDIR/$NEWSHELL ; export SHELL
                   break
                fi
            done
            SHELLSWITCHED=1 ; export SHELLSWITCHED
     else

nextback          SS 2010 - 14





       if [ ! -z "$PS1" ] ; then     # Shell ist interaktiv.
         if [ "$NEWSHELL" != "bash" ] ; then   # $NEWSHELL laeuft nicht
           if [ "x$SHELLSWITCHED" = "x" ] ; then   # Shell noch nicht geswitchet
              SHELLSWITCHED=1 ; export SHELLSWITCHED
              for PATHDIR in /bin /usr/bin /usr/local/bin
                do
                  if [ -x  $PATHDIR/$NEWSHELL ] ; then
                    SHELL=$PATHDIR/$NEWSHELL ; export SHELL
  	          if [ "$NEWSHELL" = "tcsh" ] ; then exec $PATHDIR/$NEWSHELL -l ; fi
  	          if [ "$NEWSHELL" = "csh" ] ; then exec $PATHDIR/$NEWSHELL -i ; fi
  	          if [ "$NEWSHELL" = "ksh" ] ; then exec $PATHDIR/$NEWSHELL -i ; fi
  	          if [ "$NEWSHELL" = "sh" ] ; then exec $PATHDIR/$NEWSHELL  ; fi
  	        fi
             done
             echo "bashrc Es existiert keine $NEWSHELL ."
           fi
         fi
       fi
       SHELLSWITCHED=1 ; export SHELLSWITCHED
       # Setze einige Shellvariablen:
       HISTSIZE=20
       HISTFILESIZE=20
       FIGNORE=".o:.vim:.bak:.BAK:\~"
       # Prompt definieren
       PS1="\h \u \# ( \W ) \$ "
       export HISTSIZE HISTFILESIZE FIGNORE PS1
       # HISTCONTROL=ignoredups;export HISTCONTROL
       set -o ignoreeof	 # CRTL-D NICHT als exit,
       # Eigene Aliases koennen in der Datei ~/.alias_bash definiert werden.
       if [ -f ~/.alias_bash ] ; then
nextback          SS 2010 - 15





  	source ~/.alias_bash
       fi
       # Systemahaengige Aliases koennen in der Datei ~/.alias_bash.Solaris
       if [ -f ~/.alias_bash.Solaris ] ; then
  	   source ~/.alias_bash.Solaris
       fi
       # Aliases und Variablen koennen auch abhaengig von installierten
       # Programmen gesetzt werden, z.B vim fuer vi, less fuer more:
       # $EDITOR wird von einigen Programme (elm, knews) als Defaulteditor
       # verwendet, analog kann man so seinen Lieblingseditor waehlen.
       if [ -x /usr/bin/vim ] ; then
  	   EDITOR=vim; export EDITOR
  	   alias vi=/usr/bin/vim
       elif [ -x /usr/local/bin/vim ] ; then
  	   EDITOR=vim; export EDITOR
  	   alias vi=/usr/local/bin/vim
       else
  	   # Besser als ed
  	   EDITOR=vi; export EDITOR
       fi
       # if [ -x /usr/bin/less -o -x /usr/local/bin/less ] ; then
       # 	PAGER=less;export PAGER
       # fi
       # die Aliases 'psa' und 'psu' hinzugefuegt.
       alias psa="ps -ef"
       alias psu="ps -ef|grep $USER |grep -v 'ps -ef' |grep -v grep |more"
       alias sh="SHELL=/bin/sh; export SHELL; SHELLSWITCHED=1 ; export SHELLSWITCHED ; /bin/sh; SHELL=$MYSHELL; export SHELL"
       alias ksh="SHELL=/bin/ksh; export SHELL; SHELLSWITCHED=1 ; export SHELLSWITCHED ; /bin/ksh; SHELL=$MYSHELL; export SHELL"
     fi
     ;;
nextback          SS 2010 - 16





  Linux )
  
     AKTSH=`ps --no-heading -fp $$  | awk '{  print $8 ; }' | sed s/-// `
     AKTSHELL=`basename $AKTSH`
     if [ "$AKTSHELL" != "sh" ] ; then
       AKTSHELL=bash
     fi
  
     MANPATH=/usr/local/man:/usr/share/man:/usr/man:/usr/local/X11/man:/usr/X11/man
     # fuer kde und gnome den Pfad erweitern
     PATH="${PATH}:/opt/kde2/bin:/opt/kde3/bin:/opt/gnome/bin:/opt/gnome2/bin"
     PATH="${PATH}:/usr/local/X11/bin:/usr/X11/bin:${HOME}/bin:."
     PATH="${PATH}:/usr/sbin:/sbin"
     # Fuer Java den Pfad erweitern und andere Einstellungen
     PATH="${PATH}:/usr/lib/java/bin"
     #  Pfade exportieren ..
     export PATH MANPATH 
     for PATHDIR in /bin /usr/bin /usr/local/bin
         do
           if [ -x  ${PATHDIR}/${AKTSHELL} ] ; then
                   SHELL=${PATHDIR}/${AKTSHELL} ; export SHELL
                   break
           fi
     done
     MYSHELL=$SHELL





nextback          SS 2010 - 17





  
     if [ ! -z "$PS1" ] ; then     # Shell ist interaktiv.
       if [ $NEWSHELL != "$AKTSHELL" ] ; then   # $NEWSHELL laeuft noch nicht
          if [ "x$SHELLSWITCHED" = "x" ] ; then   # Shell noch nicht geswitchet
            SHELLSWITCHED=1 ; export SHELLSWITCHED
            # versuche $NEWSHELL als login-shell zu starten
            for PATHDIR in /bin /usr/bin /usr/local/bin
              do
                if [ -x  $PATHDIR/$NEWSHELL ] ; then
                   SHELL=$PATHDIR/$NEWSHELL ; export SHELL
  	         if [ "$NEWSHELL" = "tcsh" ] ; then exec $PATHDIR/$NEWSHELL -l ; fi
  	         if [ "$NEWSHELL" = "csh" ] ; then exec $PATHDIR/$NEWSHELL -i ; fi
  	         if [ "$NEWSHELL" = "ksh" ] ; then exec $PATHDIR/$NEWSHELL -i ; fi
  	         if [ "$NEWSHELL" = "sh" ] ; then exec $PATHDIR/$NEWSHELL  ; fi
  	         if [ "$NEWSHELL" = "bash" ] ; then exec $PATHDIR/$NEWSHELL  -i ; fi
  	      fi
           done
           echo "Es existiert keine $NEWSHELL ."
         fi
       fi
       SHELLSWITCHED=1 ; export SHELLSWITCHED
       # Setze einige Shellvariablen:
       HISTSIZE=20
       HISTFILESIZE=20
       FIGNORE=".o:.vim:.bak:.BAK:\~"
       # Prompt definieren
       PS1="\h \u \# ( \W ) \$ "
       export HISTSIZE HISTFILESIZE FIGNORE PS1
       # HISTCONTROL=ignoredups;export HISTCONTROL
       set -o ignoreeof	 # CRTL-D NICHT als exit,
nextback          SS 2010 - 18





    
       # Eigene Aliases koennen in der Datei ~/.alias_bash definiert werden.
       # bash kann (leider) auch keine Alias-Expansion
       if [ -f ~/.alias_bash ] ; then
  	source ~/.alias_bash
       fi
       # Systemahaengige Aliases koennen in der Datei ~/.alias_bash.Linux`
       if [ -f ~/.alias_bash.Linux ] ; then
  	   source ~/.alias_bash.Linux
       fi
       # Aliases und Variablen koennen auch abhaengig von installierten
       # Programmen gesetzt werden, z.B vim fuer vi, less fuer more:
       # $EDITOR wird von einigen Programme (elm, knews) als Defaulteditor
       # verwendet, analog kann man so seinen Lieblingseditor waehlen.
       if [ -x /usr/bin/vim ] ; then
  	   EDITOR=vim; export EDITOR
  	   alias vi=/usr/bin/vim
       elif [ -x /usr/local/bin/vim ] ; then
  	   EDITOR=vim; export EDITOR
  	   alias vi=/usr/local/bin/vim
       else
  	   # Besser als ed
  	   EDITOR=vi; export EDITOR
       fi
       # if [ -x /usr/bin/less -o -x /usr/local/bin/less ] ; then
       # 	PAGER=less;export PAGER
       # fi
       
       # die Aliases 'psa' und 'psu' hinzugefuegt.
       alias psa="ps -aux"
nextback          SS 2010 - 19





       alias psu="ps -aux|grep $USER |grep -v 'ps -aux' |grep -v grep |more"
       alias ksh="SHELL=/usr/bin/ksh; export SHELL; SHELLSWITCHED=1 ; export SHELLSWITCHED ; /usr/bin/ksh; SHELL=$MYSHELL; export SHELL"
       alias sh="SHELL=/bin/sh; export SHELL; SHELLSWITCHED=1 ; export SHELLSWITCHED ; /bin/sh; SHELL=$MYSHELL; export SHELL"
       alias kde="SHELLSWITCHED= ; export SHELLSWITCHED ;xinit ${HOME}/.startkde"
       alias gnome="SHELLSWITCHED= ; export SHELLSWITCHED ;xinit ${HOME}/.startgnome"
       if [ "x$DISPLAY" != "x" ] ; then
              STARTXAUSSCHRIFT=ja; export STARTXAUSSCHRIFT
       fi
       if [ "x$STARTXAUSSCHRIFT" = "x" ] ; then
         STARTXAUSSCHRIFT=ja; export STARTXAUSSCHRIFT
         echo
         echo Starten der X-Umgebung
         echo "   kde        (startet kde)"
         echo "        oder"
         echo "   gnome      (startet gnome)"
         echo
       fi
     fi
     ;;
  * )
     echo SYSTEM $SYSTEM unbekannt.
     ;;
  esac







nextback          SS 2010 - 20





  
  .cshrc    -  Startfile für csh
  
    Abarbeitung:   beim Starten jeder C-Shell
  
  Beispiel (Informatik - huinstall):
  
  
  ##
  ##  .cshrc 
  ##   Version 1.6
  ##   Mon Nov 03 11:18:30 DFT 2003
  ##   j-p bell, p kaempfer
  ##   Aenderungen auf eigene Gefahr, schwere Fehler verhindern ein Login
  ##  wird von csh benutzt
  ##
  ## Diese Datei wurde automatisch durch huinstall erzeugt 
  ##
  ## Anhand des entsprechenden  Hostnamens, Systemnamens und NEWSHELL
  ## werden unterschiedliche Initialisierungen unterschieden.
  # Enthaelt die gewuenschte Shell, falls dies von der LOGIN-Shell abweicht
  set NEWSHELL="bash"
  # Der vorlaeufige Pfad wird gesetzt, nicht aendern
  setenv PATH "/bin:/usr/bin:/usr/local/bin"
  if ( ! $?LOGNAME )  setenv LOGNAME `logname`
  if ( ! $?USER )  setenv USER ${LOGNAME}
  # Envoirmentvariablen fuer Mail 
  #   fuer Studenten:    /vol/mailslv1/${USER}
  #   fuer Mitarbeiter:  /vol/mail/${USER}
  setenv MAIL /vol/mail/${USER}
nextback          SS 2010 - 21





  setenv MAILSERVER mail
  setenv HOST `hostname`
  setenv SYSTEM   `uname -s`
  if ( ${SYSTEM} == "SunOS" && `uname -r | cut -c1` >= 5 )  setenv SYSTEM "Solaris"
  umask 077
  #
  # Systemabhaengige Einstellungen
  #
  
  switch ($SYSTEM)
  
   case Solaris:
  
     # Fuer Leute, die GNU mehr vertrauen:
     # Achtung Probleme bei man unter Solaris
     # setenv PATH "/usr/local/bin:/bin:/usr/bin"
  
     setenv MANPATH "/usr/local/man:/usr/man:/usr/local/X11/man:/usr/openwin/man:/usr/dt/man"
     setenv PATH "${PATH}:/usr/local/TeX/bin:/usr/local/X11/bin"
     setenv PATH "${PATH}:/usr/ucb:${HOME}/bin:/usr/sbin:/sbin:/usr/dt/bin:."
     # Fuer Java den Pfad erweitern
     setenv PATH "/usr/local/Java/bin:${PATH}"
  
     foreach pathdir ($path)
          if ( -x ${pathdir}/csh ) then
                 setenv SHELL  "${pathdir}/csh"
                 break
          endif
     end
     set MYSHELL=${SHELL}
nextback          SS 2010 - 22





     if ( $?DT ) then
         foreach pathdir ($path)
           if ( -x $pathdir/$NEWSHELL ) then
                 setenv SHELL  "$pathdir/$NEWSHELL"
                 break
           endif
         end
         setenv SHELLSWITCHED 1
     else
       if (  $?prompt ) then		# Shell ist interaktiv.
         if (  "csh" != "$NEWSHELL" ) then	# NEWSHELL laeuft noch nicht.
           #  pruefen ob "csh" als loginshell 
           if ( !  $?SHELLSWITCHED ) then   # $AKTSHELL noch nicht geswitchet
             setenv SHELLSWITCHED 1
             foreach pathdir ($path)
               if ( -x $pathdir/$NEWSHELL ) then
                 setenv SHELL "$pathdir/$NEWSHELL"
                 if ( $NEWSHELL == "tcsh" ) exec $pathdir/$NEWSHELL -l
                 if ( $NEWSHELL == "bash" ) exec $pathdir/$NEWSHELL  -i
                 if ( $NEWSHELL == "sh" ) then
                    setenv PS1 `hostname`' $ '
                    exec $pathdir/$NEWSHELL 
                 endif
                 if ( $NEWSHELL == "ksh" ) exec $pathdir/$NEWSHELL -i
               endif
             end
             echo "cshrc Es existiert keine $NEWSHELL."
           endif
         endif
       endif
nextback          SS 2010 - 23





  
       setenv SHELLSWITCHED 1
       # Setze einige Shell - Variablen :
       set history=40
       set savehist=20
       set cdpath=(. $HOME)
       set ignoreeof
    
       alias	a	alias
    
       # Eigene Aliases koennen in der Datei ~/.alias_csh definiert werden.
       if ( -e ~/.alias_csh ) then
         source ~/.alias_csh
       endif
       # Systemahaengige Aliases 
       if ( -e ~/.alias_csh.Solaris ) then
         source ~/.alias_csh.Solaris
       endif
  
       # Aliases und Variablen koennen auch abhaengig von installierten
       # Programmen gesetzt werden, z.B vim fuer vi, less fuer more:
       # $EDITOR wird von einigen Programme (elm, knews) als Defaulteditor
       # verwendet, analog kann man so seinen Lieblingseditor waehlen.
       if ( -x /usr/bin/vim ) then
         setenv EDITOR vim
         alias vi	/usr/bin/vim
       else if ( -x /usr/local/bin/vim ) then
         setenv EDITOR vim
         alias vi	/usr/local/bin/vim
       else
nextback          SS 2010 - 24





         setenv EDITOR vi
       endif
       # less als Pager fuer man, elm u.a.
       # if ( -x /usr/bin/less ) then
       #     setenv PAGER less
       # else if ( -x /usr/local/bin/less ) then
       #     setenv PAGER less
       # endif
     
    
       # Definiere Prompt fuer C- und Turbo - C-Shell:
        a	cd		"cd \!* ; set_prompt"
        a	set_prompt	'set prompt="${HOST} ${LOGNAME} \! ( `dirs | sed -e '\''s/.*[^\/]\(\/[^\/]*\/[^\/]*\)/...\1/'\''`) > "'
      
        set_prompt
       
       #  Aliases z.B. 'psa' und 'psu' hinzugefuegt.
            a       psa     "ps -ef"
            a       psu     "psa |grep $USER |grep -v 'ps -ux' |grep -v grep |more"
            a       sh      "setenv SHELL /bin/sh ; setenv SHELLSWITCHED 1; /bin/sh; setenv SHELL $MYSHELL"
            a       ksh     "setenv SHELL /bin/ksh ; setenv SHELLSWITCHED 1; /bin/ksh; setenv SHELL $MYSHELL"
     endif
     setenv SHELLSWITCHED 1
     breaksw






nextback          SS 2010 - 25





   case Linux:
  
     # dieser Teil wird von LINUX nicht benutzt, da csh ein Link auf tcsh ist
  
     # Fuer Leute, die GNU mehr vertrauen:
     # setenv PATH "/usr/local/bin:/usr/bin:/bin"
  
     setenv MANPATH "/usr/local/man:/usr/share/man:/usr/man:/usr/local/X11/man:/usr/X11/man"
     # Fuer Gome und KDE den Pfad erweitern
     setenv PATH "${PATH}:/opt/kde2/bin:/opt/kde3/bin:/opt/gnome/bin:/opt/gnome2/bin"
     setenv PATH "${PATH}:/usr/local/X11/bin:/usr/X11/bin:${HOME}/bin:."
     # Fuer Java den Pfad erweitern und ein paar Einstellungen
     setenv PATH "${PATH}:/usr/lib/java/bin"
     # Fuer Gome und KDE den Pfad erweitern
  
     breaksw
  
   case *:
        echo SYSTEM $SYSTEM unbekannt.
  endsw










nextback          SS 2010 - 26





  
  .login    -  Startfile für csh (login)
  
    Abarbeitung:   beim Starten eine C-Shell als login-Shell nach .cshrc
  
  
  .logout    -  Endefile für csh (logout)
  
    Abarbeitung:   Beenden einer Login-C-Shell





















back               SS 2010 - 27

Zurück zur Gliederung
Di 6. Apr 16:02:00 CEST 2010 J-P Bell