Les fichiers d'environnement


Fichiers utiles : fichier .rhosts, fichier .forward.

Exemples de fichiers d'initialisation de session


Fichier .forward

Il peut être pratique d'obtenir, sur sa machine_locale (connue de la machine Ulam), une copie de tous les messages envoyés par les machines IDRIS à rlabxxx. Le fichier $HOME/.forward doit alors contenir la ligne suivante :

Sur la machine Ulam

Ulam-rlabxxx : cat $HOME/.forward
rlabxxx@machine.connue.de.Ulam, rlabxxx

Fichier .profile

La procédure de login exécute d'abord le fichier /etc/profile qui définit, entre autres, les variables d'environnement propres à l'IDRIS. Elle exécute ensuite, les fichiers d'initialisation présents dans le répertoire HOME et propres à chaque utilisateur, .profile et .kshrc si ce dernier est indiqué dans la variable d'environnement ENV.

Exemple :

#exemple de fichier .profile
if  tty -s                                      (1)
then
    MAILCHECK=10                                (2)
    export MAILCHECK
     if ["$TERM"="" -o"$TERM"=su -o"$TERM"=dum b -o"$TERM"=network]  (3)
     then
         TERM=vt100                             (4)
         echo 'term (vt100)? \c'                (5)
         read REPONSE
            if [ "$REPONSE" != '' ]
            then
               TERM=$REPONSE
            fi
         export TERM                            (8)
               if [ "$TERM" = xterm ]
               then
                  eval `resize`                 (9)
               fi
     fi
     set -o vi	# une meilleure idée de mettre dans le fichier nommé par $ENV :
     VISUAL=vi
     stty erase '^H'                            (6)
     stty kill '^?'                             (7)
     export TERM
fi
export ENV=$HOME/.kshrc                         (10) 
umask 027                                       (11)
pwd                                             (12)

Remarque : le Korn shell reprend le Bourne shell en offrant plus de possiblités, entre autre celle de définir des alias. Pour définir un alias, on utilise la syntaxe suivante :

alias user_define_command='commande_unix'

Exemple :

alias ls='ls -aF'

Si cette ligne est présente dans le fichier .profile, toute frappe de la commande ls effectuera la commande ls -aF, c'est à dire qu'au lieu d'avoir la liste classique des répertoires on a, à la suite de chaque fichier, une indication du type de fichier ( * pour exécutable, / pour répertoire, ... avec l'option -F de ls), et les fichiers commençant par . (point) seront montrés (option -a de ls).

Une autre facilité du Korn shell qui présente un sérieux plus par rapport au Bourne shell est la possibilité de faire de l'édition de commandes, et le rappel des commandes précédemment passées en interactif (history). Pour utiliser cette facilité, on doit préciser quel éditeur on veut utiliser pour manipuler sa ligne de commande. On ajoute dans son fichier .profile la ligne : set -o vi. Dans l'exemple de fichier .profile ci-dessus, cette ligne est mise en commentaire pour que le fichier soit compatible avec le shell sh.

Ensuite, durant une session interactive, on pourra par exemple : visualiser les commandes précédemment tapées, choisir celle qui nous intéresse, la modifier, puis taper un retour charriot pour la faire exécuter :


Ulam-rlabxxx: history
65 ls -l
66 pwd
67 cd $HOME
68 cd $WORKDIR
69 cd
70 history
Ulam-rlabxxx: 

On tape alors (ESCAPE) pour rentrer dans le mode control de vi :

Puis on tape un return quand on a fini d'éditer sa commande et elle s'exécute.

Remarque : on peut utiliser le mode emacs

Fichier .kshrc

Le fichier .kshrc est propre à chaque utilisateur. Exemple :


VISUAL=vi
alias ls = 'ls -aF' (1)
alias rm='rm -i'    (2)


Fichier .login

En C-shell la procédure de login exécute d'abord le fichier :

Ce fichier définit, entre autres, les variables d'environnement propres à l'IDRIS. Elle exécute ensuite les fichiers propres à chaque utilisateur .cshrc et .login s'ils sont présents dans le répertoire HOME.

#exemple de fichier .login                             (1)
if ( { tty -s } ) then                                 (2)
    set mail=10                                        (3)

    if ($term == 0) then                               (4)
      set term=vt100                                   (5)
      echo 'term (vt100) ?'                            (6)
      set reponse=$<                                   (7)

      if ( "$reponse" != "" ) set term=$reponse        (8)
      unset reponse                                    (9) 
      if ( "$term" == xterm ) eval `resize -c`         (13)
    else if ($term == su || $term == network) then     (10)
      set term=hds                                     (5)
      echo 'term (hds) ?'                              (6)
      set reponse=$<                                   (7)
      if ( "$reponse" != "" ) set term=$reponse        (8)
      unset reponse                                    (9)
    endif
    stty erase `^h'                                    (11)
    stty kill `^?'                                     (12)
    set filec                                          (14)
endif           
umask 027                                              (15)

Fichier .cshrc

En C-shell, le fichier .cshrc est propre à chaque utilisateur. Voici un exemple :

#exemple de fichier .cshrc
alias ls 'ls -aF' (1)
alias gw 'cd $WORKDIR' (2)
set history=32 (3)
set savehist=32 (4)
© CNRS-IDRIS 2010