Voici la liste des fichiers de configuration que nous allons modifier:
/etc/profile /etc/bashrc .bashrc
.bash_profile .inputrc .less .lessrc .xinitrc .fvwmrc .fvwm2rc95
.Xmodmap .Xdefaults .jedrc. .abbrevs.sl .joerc .emacs
. N'ajoutez pas d'utilisateurs avant d'avoir terminé la
configuration. Les fichiers dont le nom commence par un point iront
dans /etc/skel.
Pour affiner le comportement de bash
, voici les fichiers à
éditer :
/etc/bashrc
contient les alias et fonctions
globales au système;
/etc/profile
positionne globalement les variables
d'environnement et lance les programmes de démarrage communs;
$HOME/.bashrc
contient les alias et fonctions
propres à l'utilisateur;
$HOME/.bash_profile
positionne les variables
d'environnement de l'utilisateur et lance ses programmes de démarrage
propres;
$HOME/.inputrc
contient les liaisons du clavier et
autres bricoles.
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
#
# 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 ^[
# Pour cela: sous emacs: ^Q ESC sous vi: ^V ESC sous joe: ` 0 2 7
# sous jed: `ESC
# Enlevez ";1" si vous n'aimez pas l'attribut "gras".
ESC=^[
PS1='$ESC[$COLOUR;37;1m$USER:$ESC[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
# 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 exemple de .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
if [ "$GET_PS1" = "" ] ; then
COLOUR=45
# mettre un vrai caractère échappement (Escape) au lieu de ^[
ESC=^[
PS1='$ESC[$COLOUR;37m`whoami`:$ESC[37;40m\w\$ '
export PS1
fi
# 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 exemple de .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
GET_PS1="NO" # Ne pas changer la couleur de l'invite
. ~/.bashrc
fi
# quelques répertoires "par défaut"
export CDPATH="$CDPATH:$HOME:$HOME/text:$HOME/text/geology"
# pour réparer l'espace arrière sous rxvt 2.45
if [ "$COLORTERM" != "" ] ; then
stty erase ^?
ESC=^[ # put a real escape character instead of ^[
echo -n "$ESC[36l"
fi
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
# les touches (F1 .. F5) sont "\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 # parcourir les longues lignes de commandes
set show-all-if-ambiguous On # après avoir pressé TAB
Pour que les touches arrière (backspace) et suppr (delete)
fonctionnent correctement dans xterm
et d'autres applications
X11, il vous faut également :
.xinitrc
:
# dans $HOME/.xinitrc définir le clavier X11
usermodmap=$HOME/.Xmodmap
xmodmap $usermodmap
.Xmodmap
:
! dans $HOME/.Xmodmap
keycode 22 = BackSpace
keycode 107 = Delete
ce qui répare votre console.Pour corriger xterm
:
~/.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~")
Pour rxvt
, c'est un peu plus compliqué, vu que certaines
options de compilation influent sur son comportement. Voyez le fichier
.bash_profile
ci-dessus.
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
les versions de rxvt
antérieures à la 2.21.
La commande ls
peut afficher les répertoires avec des
couleurs pour différencier les types de fichiers. Pour
configurer cette option, ajoutez les lignes suivantes dans
/etc/profile:
eval `dircolors /etc/DIR_COLORS -b`
export LS_OPTIONS='-F -T 0 --color=tty'
(Si vous n'avez pas de fichier /etc/DIR_COLORS, enlevez
la référence à ce fichier de la première
ligne). 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 anciennes versions de
rxvt
(antérieures à 2.21); 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.
Le ls
de Caldera n'a pas de couleurs, mail il existe un
équivalent: color-ls
. Ajoutez ceci à
/etc/bashrc:
alias ls="color-ls $LS_OPTIONS"
Avec cet excellent pagineur, vous pouvez visualiser non seulement
des fichiers de texte 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 :
~/.lesskey
en ASCII dans votre répertoire domestique:
^[[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
puis lancez la commande lesskey
. Celle-ci crée un fichier binaire
.less
contenant les liaisons des touches.
#!/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
et n'oubliez pas de le rendre exécutable par
chmod 755 lesspipe.sh
.
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
La variable LESSCHARSET
dé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.
Je n'utilise pas emacs
, donc je n'ai qu'un seul conseil à
vous donner. 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 peut prendre des mois de bidouillage!
Certaines personnes rapportent que joe
fonctionne en couleurs
sous X11, mais pas sur la console. De plus, certaines touches
spéciales ne fonctionnent pas. À ma connaissance,
personne n'a réussi à résoudre le premier
problème; certains ont suggéré de bidouiller
/etc/termcap.
Si vous rencontrez ce problème, voici une solution rapide (et peu élégante):
~$ export TERM=vt100
~$ joe monfichier
(éditez votre fichier)
~$ export TERM=linux
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é du
fichier jed.rc
de ce répertoire-là.
jed
utilise correctement certaines touches,
créez un fichier /usr/lib/jed/lib/defaults.sl dont
la seule ligne est :
() = evalfile("linux");
Info_Directory =
"/usr/info"
et ajoutez /bin/mail
après
UCB_Mailer =
jed
pour qu'il
émule EDT
(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
:
unsetkey("\eOl");
unsetkey("\eOP\eOl");
setkey("edt_wdel", "\eOl");
setkey("edt_uwdel", "\eOP\eOl");
après la ligne contenant () = evalfile("edt");
.
xjed
utilise le pavé numérique
en émulation EDT
il vous faut ajouter ce qui suit dans
votre .Xmodmap
:
keycode 77 = KP_F1
keycode 112 = KP_F2
keycode 63 = KP_F3
keycode 82 = KP_F4
keycode 86 = KP_Separator
De plus, assurez-vous que votre /etc/X11/XF86Config
contient les lignes suivantes :
# ServerNumLock # doit être commenté
XkbDisable
Ceci s'applique à XFree 3.2
. À moins que vous
n'utilisiez un clavier standard américain (Qwerty), notez que
XkbDisable
pose quelques petits problèmes. Vous les
découvrirez par vous-même.
xjed
se fait en
ajoutant des lignes comme suit dans .Xdefaults
xjed*Geometry: 80x32+150+50
xjed*font: 10x20
xjed*background: midnight blue
$HOME/.abbrevs.sl
:
create_abbrev_table ("Global", "");
define_abbrev ("Global", "GG", "Guido Gonzato");
create_abbrev_table ("TeX", "\\A-Za-z0-9");
define_abbrev ("TeX", "\\beq", "\\begin{equation}");
define_abbrev ("TeX", "\\eeq", "\\end{equation}");
% et ainsi de suite...
puis tapez ESC x abbrev_mode
pour que jed
en tienne
compte. Pour que les abréviations fonctionnent par
défaut, ajoutez ceci dans votre .jedrc
:
define text_mode_hook ()
{
set_abbrev_mode (1);
}
%
define fortran_hook ()
{
set_abbrev_mode (1);
use_abbrev_table ("Fortran");
}
% et ainsi de suite...
efax
(1)Ce paquetage est probablement le plus pratique pour envoyer et recevoir simplement des fax. Vous allez devoir adapter le script /usr/bin/fax; c'est facile, mais quelques particularités m'ont causé un gros mal de crâne:
efax
. Si vous voulez ajouter une
commande AT, ajoutez la à la bonne chaîne en
enlevant "AT" et en faisant précéder le reste de "-i" ou
"-k". Par exemple, pour ajouter la commande "ATX3" à INIT,
rajoutez "-iX3".
Je suppose que vous avez la distribution TeTeX
. Quelques
trucs ici :
~# texconfig init ; texconfig hyphen
LaTeX
, après avoir
ajouté les fichiers sous
/usr/lib/texmf/texmf/tex/latex/
lancez la commande
texhash
pour que TeTeX
reconnaisse le nouveau
paquetage.
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 de xdvi
. Si vous
remarquez des créations intempestives de polices (fonts)
à chaque exécution, ajoutez dans votre
.Xdefaults
une ligne
XDvi*mfmode:
Cela peut aider.
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é
et setuid root. Bien sûr, votre FAI doit utiliser PPP.
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". Que vous choisissiez l'un
ou l'autre moyen, vous aurez besoin des informations suivantes:
La configuration manuelle est un casse-tête. Il s'agit d'éditer des fichiers et d'écrire des scripts; pas trop de travail, mais les erreurs sont faciles à faire, et les nouveaux utilisateurs sont souvent intimidés. Si vous voulez vous y lancer, le PPP HOWTO est là pour vous. Sinon, il existe des logiciels qui vous demandent les informations ci-dessus et qui font tout le travail eux-mêmes.
Le mieux est certainement de trouver un ami déjà connecté et de télécharger les outils suivants:
wvdial
. Vous lui donnez le
numéro de téléphone de votre FAI, votre nom
d'utilisateur et votre mot de passe, et c'est parti. Extrait du
fichier README: "There is a (currently cheesy) web page for wvdial at:
http://www.worldvisions.ca/wvdial
" ("Il y a une
page web (plutôt naze pour l'instant) à l'adresse:
http://www.worldvisions.ca/wvdial). Très
sympathique.
Pour aller chercher votre courrier électronique sur un serveur
POP
, utilisez un client POP
tel que
fetchpop
ou fetchmail
. Ce dernier est plus
avancé, et c'est probablement la seule alternative si le
serveur PPP
de votre fournisseur a des problèmes avec
la commande LAST
.
Pour configurer ces clients :
fetchpop
: la première fois que vous le lancez,
il vous demandera quelques informations. Répondez à ses
questions et c'est tout.
fetchmail
: adaptez cet exemple de
.fetchmailrc
:
# fichier $HOME/.fetchmailrc
poll mbox.monfai.com with protocol pop3;
user jean there with password _Biz%_ar is jean here
Vous devez mettre les permissions de ce fichier avec chmod 600
.fetchmailrc
autrement fetchmail
refusera avec raison de
démarrer. Cet exemple est très rudimentaire, et suppose
que sendmail
tourne chez vous; les possibilités de
configuration sont infinies. Reportez-vous à
http://www.ccil.org/~esr/fetchmail.
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 utilisateur. Selon le gestionnaire de fenêtres:
fvwm
: copiez /etc/X11/fvwm/system.fvwmrc
dans votre répertoire comme .fvwmrc
; visualisez-le et
commencez à expérimenter. Le fichier system.fvwmrc
fourni est à mon avis un peu trop simple et ne rend pas justice
à fvwm
.
fvwm95-2
: copiez
/etc/X11/fvwm95-2/fvwm2rc95 dans votre répertoire
comme .fvwm2rc95
puis éditez-le. L'exemple fourni est
fort bon.
TheNextLevel
: c'est un peu plus dur à
configurer. Copiez les fichiers /etc/X11/TheNextLevel/.*
dans votre répertoire. Parcourez-les attentivement, puis
essayez de les adapter. Le premier à regarder est
.fvwm2rc.defines
.
De plus, soyez certain d'avoir un .xinitrc
correct. Par
exemple:
#! /bin/sh
# fichier $HOME/.xinitrc
# configurer le clavier correctement
usermodmap=$HOME/.Xmodmap
xmodmap $usermodmap
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 les versions
# antérieures à la 2.21 souffrent de bogues affectant
# les couleurs et la récupération de l'environnement.
# Prenez une version plus récente ou utilisez xterm
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
D'après moi, une bonne alternative à g77
est le
traducteur Fortran vers C f2c
et son interface
yaf77
.
Vous pouvez obtenir yaf77-X.Y.tgz
depuis
ftp://sunsite.unc.edu/pub/Linux/devel/languages/fortran et ses
miroirs (NdT: notamment
ftp://ftp.lip6.fr/pub/linux/sunsite/devel/languages/fortran
en France).
C'est une bonne idée de fournir aux nouveaux utilisateurs
quelques fichiers de configurations déjà prêts
à leur première connexion. Pour cela, mettez dans
/etc/skel/
: .bashrc
, .bash_profile
,
.bash_logout
, .inputrc
, .less
,
.xinitrc
, .fvwmrc
, .fvwm2rc95
,
.Xmodmap
, .Xdefaults
, .jedrc
,
.abbrevs.sl
, .joerc
, et .emacs
.
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.
Si vous faites une mise à jour complète de votre machine, pensez à sauvegarder quelques autres fichiers auparavant, par exemple /etc/X11/XF86Config et /usr/bin/fax.