Astuces

 

 

TROP DE CORE ?

Pour peu que vous utilisiez des versions de développement de certaines applications, il peut vous arriver de rencontrer des fautes de segmentation (segfaults) et d'obtenir, par là même, des fichiers core. Ces fichiers sont destinés à débugger l'application et si vous n'êtes pas programmeur, ils ne présentent pas beaucoup d'intérêt.

Pour éviter la création d'un tel fichier, il suffit de renseigner le système sur la taille maximale que le fichier core peut prendre, par exemple, zéro, grâce à la commande :

ulimit -c 0

Puis, vérifiez que l'information a été bien prise en compte avec :

ulimit -a

Si oui, vous pouvez constater que :

core file size (blocks) 0

 
CHEMIN DE RECHERCHE

La variable d'environnement $PATH, permettant de spécifier un chemin de recherche pour les binaires (exécutables), possède son alter ego pour les répertoires.

En effet, en déclarant une variable $CDPATH (valable pour bash) contenant un ou plusieurs répertoire(s), il est possible de spécifier un chemin.

Exemple :

En déclarant une variable par

export CDPATH='/opt/moi'

nous informons le shell de vérifier l'existence d'un sous-répertoire lorsqu'une commande cd est lancée.

Imaginons que vous avez un sous-répertoire toto dans /opt/moi. Quelque soit l'endroit où vous vous trouvez dans l'arborescence, le simple fait de tapez cd toto vous placera immédiatement dans /opt/moi/toto.

Attention tout de même ! Il est possible que vous rencontriez des problèmes en utilisant cette variable. En effet, les scripts d'auto-configuration (./configure) fonctionnent en mode relatif. De ce fait, si vous compilez The Gimp (par exemple) depuis le répertoire /opt/moi/gimp-1.1.4 et qu'un répertoire /opt/moi/nova existe, vous obtiendrez une erreur lors de la compilation. Un répertoire nova est présent dans les sources. Or, lorsque le Makefile tente d'entrer dans son répertoire nova, il entre en fait dans /opt/moi/nova et là, Make ne trouve rien à faire. Donc, prudence...

 
LES VARIABLES D'ENVIRONNEMENT UTILES

Avec le shell bash (et les autres comme csh et tcsh), un certain nombre de variables d'environnement facilitent beaucoup la vie de l'utilisateur et du programmeur shell script. Dans le cas du bash, une variable d'environnement se définit par :

$ export VARIABLE=VALEUR

et se consulte par exemple par :

$ echo $VARIABLE

Voici quelques exemples de variables bien utiles :

PWD : nom du répertoire courant.

OLDPWD : nom du répertoire antérieur à la dernière commande cd.

OSTYPE : contient une chaîne de caractères décrivant le type du système sur lequel le shell a été lancé.

UID : contient l'U-ID de l'utilisateur courant (au démarrage du shell).

SECONDS : contient le nombre de secondes écoulées depuis le lancement du shell.

PATH : variable fort connue s'il en est car elle contient le chemin de recherche des commandes. Le séparateur est le symbole :

TMOUT : utile dans certaines circonstances, cette variable permet (si sa valeur est supérieure à zéro) de définir le temps en secondes avant un time-out. Cette variable est lue au démarrage du shell et si, dans la durée spécifiée, aucune commande n'est tapée, le shell se termine.

HOSTFILE : cette variable contient les noms d'hôtes dans le même format que /etc/hosts. Ceci permet au shell de compléter automatiquement les noms d'hôtes entrés sur la ligne de commande.

MAIL : contient le nom d'un fichier dans lequel vous pouvez vérifier la présence de nouveaux emails.`

MAIL CHECK : intervalle de temps entre deux vérifications du fichier renseigné par la variable MAIL.

EDITOR : contient le chemin complet vers l'éditeur par défaut. Dans bien des cas, il s'agit de vi.

SHLVL : variable très utile. Elle contient le niveau auquel est exécuté le shell. Celle-ci est incrémentée de 1 à chaque appel du shell depuis la ligne de commande.

HOME : contient le chemin vers le chemin personnel de l'utilisateur.

Toutes ces variables données à titre d'exemples sont référencées dans les man pages.


© Copyright 2000 Diamond Editions/Linux magazine France. - Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1or any later version published by the Free Software Foundation; A copy of the license is included in the section entitled "GNU Free Documentation License".