Page suivante Page précédente Table des matières
3. Configuration des logiciels
3.1 bash(1)
Pour affiner le comportement de
bash, voici les fichiers à éditer :
/etc/bashrccontient les alias et fonctions globales au système;/etc/profilepositionne globalement les variables d'environnement et lance les programmes de démarrage communs;$HOME/.bashrccontient les alias et fonctions propres à l'utilisateur;$HOME/.bash_profilepositionne les variables d'environnement de l'utilisateur et lance ses programmes de démarrage propres;$HOME/.bash_logoutcontient les actions à effectuer à la fermeture de compte (fin du travail);$HOME/.inputrccontient les liaisons du clavier et autres bricoles.
Voici des exemples de ces fichiers. D'abord le plus important :
/etc/profilequi 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
xtermet d'autres applications X11, il vous faut également :
- insérer ce qui suit dans votre
~/.xinitrc:
# dans $HOME/.xinitrc définir le clavier X11 usermodmap=$HOME/.Xmodmap xmodmap $usermodmap
- mettre ce qui suit dans votre
~/.Xmodmap:ce qui répare votre console.
! dans $HOME/.Xmodmap keycode 22 = BackSpace keycode 107 = Delete
Pour corriger
xterm:
- insérer ce qui suit dans votre
~/.Xdefaults:
xterm*VT100.Translations: #override <Key>BackSpace: string(0x7F)\n\ <Key>Delete: string(0x1b) string("[3~")\n\ <Key>Home: string(0x1b) string("[1~")\n\ <Key>End: string(0x1b) string("[4~")\n\ Ctrl<Key>Prior: string(0x1b) string("[40~")\n\ Ctrl<Key>Next: string(0x1b) string("[41~") nxterm*VT100.Translations: #override <Key>BackSpace: string(0x7F)\n\ <Key>Delete: string(0x1b) string("[3~")\n\ <Key>Home: string(0x1b) string("[1~")\n\ <Key>End: string(0x1b) string("[4~")\n\ Ctrl<Key>Prior: string(0x1b) string("[40~")\n\ Ctrl<Key>Next: string(0x1b) string("[41~")
Voir les pages du manuel (commande
man) debash(1)etreadline(3)pour plus de détails.
N'espérez pas voir toutes les applications fonctionner correctement. Si vous lancez
joesousxtermpar exemple, certaines touches ne fonctionnent pas; c'est vrai aussi pourrxvt. Il parait que c'est un problème lié àtermcap!
3.2 ls(1)
La commande
lspeut 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_COLORSselon les listes de couleurs définies dans/etc/DIR_COLORS. Note: ne me demandez pas pourquoi, mais ça ne marche pas dans certaines versions derxvt; utilisez alorsxtermou un programme similaire. Il semble querxvtait 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 archivestarouzip, des pages de manuel (commandeman), etc. Sa configuration prend quelques étapes :
- pour l'utiliser avec les touches de mouvement, ayez ce fichier
~/.lesskeyen ASCII dans votre répertoire domestique:puis lancez la commande
^[[A back-line ^[[B forw-line ^[[C right-scroll ^[[D left-scroll ^[OA back-line ^[OB forw-line ^[OC right-scroll ^[OD left-scroll ^[[6~ forw-scroll ^[[5~ back-scroll ^[[1~ goto-line ^[[4~ goto-end ^[[7~ goto-line ^[[8~ goto-end
lesskey. Celle-ci crée un fichier binaire.lesscontenant les liaisons des touches.- Ecrivez le fichier suivant dans
/usr/bin/lesspipe.sh:et n'oubliez pas de le rendre exécutable par
#!/bin/sh # fichier /usr/bin/lesspipe.sh # Préprocesseur pour 'less' utilisé quand la variable d'environnement suivante est définie # LESSOPEN="|lesspipe.sh %s" lesspipe() { case "$1" in *.tar) tar tf $1 2>/dev/null ;; # Pour voir le contenu d'archives .tar ou .tgz *.tgz|*.tar.gz|*.tar.Z|*.tar.z) tar ztf $1 2>/dev/null ;; *.Z|*.z|*.gz) gzip -dc $1 2>/dev/null ;; # Pour voir les fichiers comprimés correctement (.gz) *.zip) unzip -l $1 2>/dev/null ;; # Pour voir les archives (.zip) *.arj) unarj -l $1 2>/dev/null ;; *.rpm) rpm -q -p -i -l $1 2>/dev/null ;; *.1|*.2|*.3|*.4|*.5|*.6|*.7|*.8|*.9|*.n|*.man) FILE=`file -L $1` FILE=`echo $FILE | cut -d ' ' -f 2` if [ "$FILE" = "troff" ]; then groff -s -p -t -e -Tascii -mandoc $1 fi ;; *) FILE=`file -L $1` ; # Vérification pour le cas d'un fichier binaire FILE1=`echo $FILE | cut -d ' ' -f 2` FILE2=`echo $FILE | cut -d ' ' -f 3` if [ "$FILE1" = "Linux/i386" -o "$FILE2" = "Linux/i386" \ -o "$FILE1" = "ELF" -o "$FILE2" = "ELF" ]; then strings $1 fi ;; esac } lesspipe $1
chmod 755 lesspipe.sh.- ajoutez ces lignes dans
/etc/profile:La variable
LESS="-M-Q" # invite longue, silencieuse LESSEDIT="%E ?lt+%lt. %f" # éditer ligne du haut LESSOPEN="| lesspipe.sh %s" # filtre VISUAL=jed # éditeur par défaut- mettez votre préféré LESSCHARSET=latin1 # afficher les caractères accentués export LESS LESSEDIT LESSOPEN VISUAL LESSCHARSET
LESSCHARSETdépend du fait qu'on habite en Europe Occidentale, où est utilisé le jeu de caractères ISO 8859-1. Les collègues Américains, Japonais, Russes, etc.. devraient la configurer autrement.
3.4 emacs(1)
Certaines distributions d'
emacsne 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'
emacspour découvrir comment l'adapter à vos besoins. Cela pourrait prendre des mois de bidouillage!
3.5 joe(1)
Verifiez dans
/usr/binquejmacs,jstaretjpicosont des liens symboliques versjoe. 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/joercdans votre répertoire domestique comme~/.joercpuis à 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é veulentjedpour émulerEDT, l'éditeur deVMS.
Les fichiers de configuration sont
~/.jedrcet/usr/lib/jed/lib/*. Le premier est adapté par le fichierjed.rcde ce répertoire-là.
- pour que
jedutilise correctement certaines touches, créez un fichier/usr/lib/jed/lib/defaults.sldont la seule ligne est :
() = evalfile("linux");
- éditez
/usr/lib/jed/lib/linux.sl: décommentez la ligne contenantInfo_Directory = "/usr/info"et ajoutez y/bin/mailaprèsUCB_Mailer =- il est très simple de configurer
jedpour qu'il émuleEDT(ou d'autres éditeurs). Vous devez juste éditer quelques lignes dans.jedrc. Si vous souhaitez utiliser la touche+du pavé numérique pour supprimer des mots entiers au lieu d'un seul caractère, ajouter ceci dans.jedrc:après la ligne contenant
unsetkey("\eOl"); unsetkey("\eOP\eOl"); setkey("edt_wdel", "\eOl"); setkey("edt_uwdel", "\eOP\eOl");
() = evalfile("edt");.- Pour que
xjedutilise le pavé numérique en émulationEDTil vous faut ajouter ce qui suit dans votre.Xmodmap:De plus, assurez-vous que votre
keycode 77 = KP_F1 keycode 112 = KP_F2 keycode 63 = KP_F3 keycode 82 = KP_F4 keycode 86 = KP_Separator
/etc/X11/XF86Configcontient les lignes suivantes :Ceci s' applique à
# ServerNumLock # doit être commenté XkbDisable
XFree 3.2. Sauf si vous utilisez un clavier standard américain (Qwerty), notez queXkbDisablepose quelques petits problèmes. Vous les découvrirez par vous-même.- La personnalisation des couleurs pour
xjedse fait en ajoutant des lignes comme suit dans.XdefaultsInfos complémentaires en
xjed*Geometry: 80x32+150+50 xjed*font: 10x20 xjed*background: midnight blue
xjed.doccontenues dans le logiciel.
3.7 TeX et programmes associés
Je suppose que vous avez la distribution
TeTeX. Quelques trucs ici :
- pour configurer les motifs de césure pour votre langue, éditez le fichier
/usr/lib/texmf/texmf/tex/generic/config/language.datpuis lancez :
~# texconfig init ; texconfig hyphen
- pour mettre un paquet dans
LaTeX, après avoir ajouté les fichiers sous/usr/lib/texmf/texmf/tex/latex/lancez la commandetexhashpour queTeTeXreconnaisse le nouveau paquet.- pour configurer
dvips, le fichier à éditer est/usr/lib/texmf/texmf/dvips/config/config.ps. Soyez conscient que les champs concernant la résolution par défaut déterminent aussi le comportement dexdvi. Si vous remarquez des créations intempestives de polices (fonts) à chaque exécution, ajoutez dans votre.Xdefaultsune ligne
XDvi*mfmode:
Cela peut aider.
3.8 PPP
Je suppose que votre noyau est compilé avec le support de
PPPetTCP/IP, avec support duloopbacket que votre logicielpppdest correctement installé (tout ceci existe par défaut). Il y a dorénavant deux façons de faire fonctionnerPPP: 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 :
- Numéro de téléphone : 1234567
- serveur de nom : 123.231.112.111
- serveur de mél (mail) :
mbox.supernet.edu- domaine :
supernet.edu- nom de machine distante :
www.supernet.edu- votre nom d'utilisateur : Jean
- votre mot de passe : _Biz%_ar
Pour configurer manuellement vos connections
PPP, procédez comme suit :
- écrivez ce fichier
/usr/local/bin/ppp-onqui sera utilisé pour vous connecter à votre PSI:puis rendez-le exécutable par
#!/bin/sh # fichier ppp-on: script de connection à un PSI INIT=ATX3 # ou ce que votre modem exige PHONE=1234567 /usr/sbin/pppd connect "/usr/sbin/chat '' $INIT OK ATDP$PHONE \ CONNECT '' " user Jean
chmod 755 /usr/local/bin/ppp-on. Si votre PSI n'utilise pas le protocole PAP, le script suivant s'applique :
#!/bin/sh # fichier ppp-on: script de connection à un PSI INIT=ATX3 # ou ce que votre modem exige PHONE=1234567 /usr/sbin/pppd connect "/usr/sbin/chat '' $INIT OK ATDT$PHONE \ CONNECT '' 'ogin' John 'word' _Biz%_ar ''" /dev/modem 38400 \ modem defaultroute
- Créez le fichier
/usr/local/bin/ppp-offutilisé pour terminer une session PPP:puis rendez-le exécutable par
#!/bin/sh # fichier ppp-off DEVICE=ppp0 if [ -r /var/run/$DEVICE.pid ]; then kill -INT `cat /var/run/$DEVICE.pid` if [ ! "$?" = "0" ]; then echo "removing stale $DEVICE pid file." rm -f /var/run/$DEVICE.pid ; exit 1 fi echo "$DEVICE link terminated" ; exit 0 fi # lien inactif echo "$DEVICE link is not active" ; exit 1
chmod 755 /usr/local/bin/ppp-off.- Écrivez ce fichier
/etc/ppp/options:
# /etc/ppp/options /dev/modem 38400 lock crtscts modem asyncmap 0 remotename www.supernet.edu defaultroute
- si votre PSI utilise le protocole PAP (la plupart des PSI le font), écrivez ce fichier
/etc/ppp/pap-secrets:
# fichier /etc/ppp/pap-secrets # username remotehost secret Jean www.supernet.edu _Biz%_ar
- Éditez
/etc/resolv.conf:
# fichier /etc/resolv.conf search supernet.edu nameserver 123.231.112.111
- Éditez
/etc/sendmail.cf. Cherchez la ligne commençant parDSet remplacez-la par :
DSmbox.supernet.edu
Ouf! Si vous avez de la chance, ça devrait marcher. Sinon, préparez-vous à plonger dans l'étude duPPP-HOWTO.
C'est tout pour la configuration manuelle. Il existe un programme qui rend cette corvée dépassée. C'est
ezpppque 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 clientPOPtel quefetchpopoufetchmail. Ce dernier est probablement la seule alternative si le serveurPPPde votre fournisseur a des problèmes avec la commandeLAST.
Pour configurer ces clients :
fetchpop: la première fois que vous le lancer, il vous demandera quelques informations. Répondez à ses questions et c'est tout.fetchmail: adaptez cet exemple de.fetchmailrc:
# fichier $HOME/.fetchmailrc poll mbox.supernet.edu with protocol pop3; user jean there with password _Biz%_ar is jean here mda "/usr/bin/procmail -f fetchmail"
Cette dernière ligne est peut être superflue. Vous devez mettre les permissions de ce fichier avec
chmod 600 .fetchmailrcautrementfetchmailrefusera 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 fichier[s] textuel[s] de votre répertoire domestique. Selon le gestionnaire de fenêtres:
fvwm: copier/etc/X11/fvwm/system.fvwmrcdans votre répertoire comme.fvwmrc; visualisez-le et commencez à experimenter. Le fichier contribuésystem.fvwmrcest à mon avis un peu trop simple et ne rend pas justice àfvwm.fvwm95-2: copiez/etc/X11/fvwm95-2/fvwm2rc95dans votre répertoire comme.fvwm2rc95puis éditez-le. L'exemple fourni est fort bon.TheNextLevel: c'est un peu plus dur à configurer. Copiez/etc/X11/TheNextLevel/.*dans votre répertoire. Parcourez-les attentivement, essayez puis adaptez-les. Le premier à regarder est.fvwm2rc.defines.
De plus, soyez certain d'avoir un
.xinitrccorrect. 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 à
g77est le traducteur Fortran vers Cf2cet son interfaceyaf77. 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
.pinercn'est pas complètement adaptable. Vérifiez toutefois que les champsuser-domain,smtp-serveretnntp-servery sont corrects.
Page suivante Page précédente Table des matières