3. Configuration des logiciels

Contenu de cette section

3.1 bash(1)

Pour affiner le comportement de bash, voici les fichiers à éditer :

Voici des exemples de ces fichiers. D'abord le plus important : /etc/profile qui configure beaucoup de propriétés de votre système, comme illustré ci-dessous :


 
# /etc/profile

# Environnement global au système et programmes de démarrage
# Les fonctions et alias vont dans /etc/bashrc

# Ce fichier configure globalement
#
#   o le chemin d'exécution (path)
#   o les invites (prompts)
#   o quelques variables d'environnement
#   o ls en couleurs
#   o comportement de less
#   o le clavier
#
# Les utilisateurs peuvent écraser ces configurations et en ajouter 
# d'autres dans leur $HOME/.bash_profile

# mettre un chemin d'exécution décent

echo $PATH | grep X11R6 > /dev/null
if [ $? = 1 ] ; then   # ajouter des entrées au chemin
  PATH="$PATH:/usr/X11R6/bin:$HOME/bin:."
fi

# indiquer à l'utilisateur les shells de login. En login, l'invite
# (prompt) est en bleu, autrement en magenta. L'invite de root est rouge

USER=`whoami`
if [ $LOGNAME = $USER ] ; then
  COLOUR=44
else
  COLOUR=45
fi

if [ $USER = 'root' ] ; then
  COLOUR=41
fi

# mettez un vrai caractère échappement (Escape) au lieu de ^[
PS1='^[[$COLOUR;37;1m$HOSTNAME:^[[37;40;1m\w\$ '
PS2="Continue> "

# pas de core dump svp
ulimit -c 0

# positionner le umask (permission par défaut des nouveaux fichiers)

if [ `id -gn` = `id -un` -a `id -u` -gt 14 ]; then
        umask 002
else
        umask 022
fi

# quelques variables

USER=`id -un`
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
EDITOR=jed
HOSTNAME=`/bin/hostname`
HISTSIZE=1000
HISTFILESIZE=1000
export PATH PS1 PS2 USER LOGNAME MAIL EDITOR HOSTNAME HISTSIZE HISTFILESIZE

# ls en couleurs

eval `dircolors /etc/DIR_COLORS -b`
export LS_OPTIONS='-F -s -T 0 --color=tty'

# configuration de less

LESS='-M-Q'
LESSEDIT="%E ?lt+%lt. %f"
LESSOPEN="| lesspipe.sh %s"
VISUAL=jed
LESSCHARSET=latin1
export LESS LESSEDIT LESSOPEN VISUAL LESSCHARSET

# configuration du clavier

/sbin/kbdrate -s -r 16 -d 500

# configurer globalement d autres programmes
for i in /etc/profile.d/*.sh ; do
        if [ -x $i ]; then
                . $i
        fi
done

Voici le fichier /etc/bashrc :


   
# /etc/bashrc
# Fonctions et alias globaux au système
# les variables d'environnement vont en /etc/profile
alias which="type -path"
alias d="ls"
alias dir="d"

Et voici un fichier possible ~/.bashrc :


    
# Sourcer les definitions globales

if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# Ceci est nécessaire pour notifier les utilisateurs qu'ils se trouvent dans un shell sans login

COLOUR=45
# mettre un vrai caractère échappement (Escape) au lieu de ^[
PS1='^[[$COLOUR;37m$USER:^[[37;40m\w\$ '

# alias

alias cp='cp -i'
alias l=less
alias lyx='lyx -width 900 -height 700'
alias mv='mv -i'
alias rm='rm -i'
alias x=startx

# Quelques fonctions utiles

inst() # Installer une archive .tar.gz dans le repertoire courant
{ gzip -dc $1 | tar xvf - }

cz() # Lister le contenu d'une archive .zip
{ unzip -l $* }

ctgz() # Lister le contenu d'une archive .tar.gz
{
  for file in $* ; do
    gzip -dc ${file} | tar tf -
  done
}

tgz() # Créer une archive .tgz à la zip.
{
  name=$1 ; tar -cvf $1 ; shift
  tar -rf ${name} $*
  gzip -S .tgz ${name}
}

Voici un fichier possible ~/.bash_profile :


 
# fichier $HOME/.bash_profile

# Environment et programmes de démarrage propres à l'utilisateur
# Ce fichier contient des configurations définies par l'utilisateur
# écrasant celles dans /etc/profile

# configurer les alias et fonctions propres à l'utilisateur
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# repositionner l'invite PS1

if [ $USER = 'root' ] ; then
  COLOUR=41
else
  COLOUR=44
fi

# mettez un vrai caractère d'échappement au lieu de ^[
PS1='^[[$COLOUR;37;1m$HOSTNAME:^[[37;40;1m\w\$ '

export PS1

Voici un très simple fichier possible ~/.bash_logout :


 
# fichier $HOME/.bash_logout
clear

Voici un fichier ~/.inputrc :


 
# fichier $HOME/.inputrc

# liaison des touches du clavier

"\e[1~": beginning-of-line
"\e[3~": delete-char
"\e[4~": end-of-line
# (F1 .. F5) are "\e[[A" ... "\e[[E"
"\e[[A": "info \C-m"

set bell-style visible         # sans bip sonore
set meta-flag On               # permettre les caractères à 8 bits (accentués)
set convert-meta Off           # .. ne pas les convertir
set output-meta On             # .. les afficher correctement
set horizontal-scroll-mode On
set show-all-if-ambiguous On

Pour que les touches arrière (backspace) et suppr (delete) fonctionnent correctement dans xterm et d'autres applications X11, il vous faut également :

Pour corriger xterm :

Voir les pages du manuel (commande man) de bash(1) et readline(3) pour plus de détails.

N'espérez pas voir toutes les applications fonctionner correctement. Si vous lancez joe sous xterm par exemple, certaines touches ne fonctionnent pas; c'est vrai aussi pour rxvt. Il parait que c'est un problème lié à termcap!

3.2 ls(1)

La commande ls peut lister les répertoires avec des couleurs pour différencier les types de fichiers. Pour configurer cette option, ajoutez les lignes suivantes en /etc/profile:


# à ajouter dans /etc/profile
eval `dircolors /etc/DIR_COLORS -b`
export LS_OPTIONS='-F -T 0 --color=tty'

Ceci positionne la variable d'environnement LS_COLORS selon les listes de couleurs définies dans /etc/DIR_COLORS. Note: ne me demandez pas pourquoi, mais ça ne marche pas dans certaines versions de rxvt; utilisez alors xterm ou un programme similaire. Il semble que rxvt ait un bogue l'empêchant dans certains cas d'hériter correctement des variables d'environnement.

3.3 less(1)

Avec cet excellent paginateur, vous pouvez visualiser non seulement des fichiers de textes ordinaires, mais aussi des fichiers comprimés par gzip, des archives tar ou zip, des pages de manuel (commande man), etc. Sa configuration prend quelques étapes :

3.4 emacs(1)

Certaines distributions d'emacs ne sont pas préconfigurées pour les couleurs et la décoration syntaxique. Ajoutez ce qui suit dans votre ~/.emacs


;; dans fichier $HOME/.emacs
(global-font-lock-mode t)
(setq font-lock-maximum-decoration t)

Ceci ne marche qu'avec X11. Je vous laisse lire attentivement toute la documentation d'emacs pour découvrir comment l'adapter à vos besoins. Cela pourrait prendre des mois de bidouillage!

3.5 joe(1)

Verifiez dans /usr/bin que jmacs, jstar et jpico sont des liens symboliques vers joe. Autrement, tapez les commandes suivantes pour gagner un peu d'espace disque:


~#  cd /usr/bin
/usr/bin#  ln -sf joe jmacs ; ln -sf joe jstar ; ln -sf joe jpico

Il ne vous reste qu'à copier /usr/lib/joe/joerc dans votre répertoire domestique comme ~/.joerc puis à l'affiner à vos besoins.

3.6 jed(1)

C'est mon éditeur favori; il fait ce dont j'ai besoin, mais est plus léger et plus facile à configurer qu' emacs, et à mon humble avis émule mieux les autres éditeurs. Beaucoup d'utilisateurs de mon université veulent jed pour émuler EDT, l'éditeur de VMS.

Les fichiers de configuration sont ~/.jedrc et /usr/lib/jed/lib/*. Le premier est adapté par le fichier jed.rc de ce répertoire-là.

3.7 TeX et programmes associés

Je suppose que vous avez la distribution TeTeX. Quelques trucs ici :

3.8 PPP

Je suppose que votre noyau est compilé avec le support de PPP et TCP/IP, avec support du loopback et que votre logiciel pppd est correctement installé (tout ceci existe par défaut). Il y a dorénavant deux façons de faire fonctionner PPP : a) une configuration manuelle, et b) utiliser un programme de configuration "auto-magique". Considèrons d'abord la configuration manuelle.

Supposons que les spécifications de votre Prestataire de Services Internet (Internet Service Provider) soient les suivantes :

Pour configurer manuellement vos connections PPP, procédez comme suit :

C'est tout pour la configuration manuelle. Il existe un programme qui rend cette corvée dépassée. C'est ezppp que vous trouverez en http://www.serv.net/~cameron/ezppp/index.html ; téléchargez-le immédiatement!

3.9 Client POP

Pour aller chercher votre courrier électronique sur un serveur POP, utilisez un client POP tel que fetchpop ou fetchmail. Ce dernier est probablement la seule alternative si le serveur PPP de votre fournisseur a des problèmes avec la commande LAST.

Pour configurer ces clients :

Cette dernière ligne est peut être superflue. Vous devez mettre les permissions de ce fichier avec chmod 600 .fetchmailrc autrement fetchmail refusera avec raison de démarrer.

3.10 Système de Fenêtrage X

Une fois que vous avez réussi à faire marcher X11 (bonne carte graphique, etc.), il existe d'inombrables possibilités de configuration; cela dépend de votre gestionnaire de fenêtres (window manager). Dans tous les cas, il s'agit d'éditer un ou des fichiers textuels de votre répertoire domestique. Selon le gestionnaire de fenêtres:

De plus, soyez certain d'avoir un .xinitrc correct. Par exemple:


#! /bin/sh
# fichier $HOME/.xinitrc

# configurer le clavier correctement
usermodmap=$HOME/.Xmodmap
xset s noblank  # turn off the screen saver
xset s 300 2    # screen saver start after 5 min
xsetroot -solid "medium blue" &

# rxvt est économe en mémoire, mais bogué:
#   - Touche 'Début' et 'Fin' non reconnues
#   - 'Arrière' et 'Suppr' ne fonctionnant pas bien
#   - les couleurs ne sont pas proprement héritées de l'environnement;
#   - problèmes avec l'environnement en général.

# xterm est donc mieux le plus souvent. Mais rxvt convient
# aux applications en couleurs telles que mc.

xterm -ls -bg black -fg white -sb -sl 500 -j -ls -fn 10x20 -fb 10x20bold \
-title "xterm en Couleurs" -geometry 80x25+150+0 &

fvwm95-2

3.11 Fortran

D'après moi, une bonne alternative à g77 est le traducteur Fortran vers C f2c et son interface yaf77. Obtenez ce dernier depuis ftp://sunsite.unc.edu/pub/Linux/devel/languages/fortran/yaf77-1.4.tgz et ses mirroirs (NdT: notamment ftp://ftp.lip6.fr/pub/linux/sunsite/devel/languages/fortran/yaf77-1.4.tgz en France).

3.12 Configuration des utilisateurs

C'est une bonne idée de fournir aux nouveaux utilisateurs quelques fichiers de configurations déjà prêts à leur première connection. Pour cela, mettez en /etc/skel/ : .bashrc, .bash_profile, .bash_logout, .inputrc, .less, .xinitrc, .fvwmrc, .fvwm2rc95, .Xmodmap, .Xdefaults, .jedrc, .joerc, et .emacs. Les noms de ces fichiers commencent par un point initial.

Remarquez que .pinerc n'est pas complètement adaptable. Vérifiez toutefois que les champs user-domain, smtp-server et nntp-server y sont corrects.


Chapitre suivant, Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale

Début du document, Début de ce chapitre