Chapitre 16. Utilisation des fichiers et des répertoires

Si vous êtes un néophyte dans l'utilisation de Linux (ce qui ne fait certainement pas de vous un cas particulier), vous vous sentirez peut-être quelque peu désorienté au moment d'accomplir vos premières tâches.

Détendez-vous. Si vous avez déjà utilisé d'autres systèmes d'exploitation, l'apprentissage de Linux ne vous semblera pas plus difficile que l'apprentissage de la conduite dans un nouveau pays : la plupart des concepts sont identiques ; seuls certains détails diffèrent.

Ce chapitre passe en revue plusieurs règles de ce nouveau "code de la route".

Votre nouveau système d'exploitation contient toutefois un composant que vous ne pouvez absolument pas ignorer : il s'agit du shell. Nous faisons très souvent référence au shell (comme dans "invite du shell" ou "shell bash").

Il est temps désormais d'en apprendre un peu plus sur cet outil indispensable. Mais voici d'abord quelques informations générales…

Présentation des shells

Dans les années 60, lorsque Dennis Ritchie et Ken Thompson, travaillant alors pour AT&T, ont développé UNIXTM, leur intention était de créer un système avec lequel les utilisateurs puissent interagir.

Les systèmes d'exploitation étaient à l'époque associés à des interpréteurs de commandes capables de recevoir les commandes de l'utilisateur et de les interpréter pour que la machine puisse les utiliser.

Ritchie et Thompson voulaient cependant aller plus loin et mettre au point un système offrant des fonctions plus performantes que celles des interpréteurs de commandes de l'époque.

C'est alors qu'apparaît le shell Bourne (simplement appelé sh), créé par S.R. Bourne, qui répondait aux objectifs des créateurs d'UNIX.

Depuis la création du shell Bourne, d'autres shells ont vu le jour, comme le shell C (csh) et le shell Korn (ksh).

Lorsque la Free Software Foundation s'est mise en quête d'un shell gratuit, des développeurs ont entrepris de travailler sur le langage du shell Bourne ainsi que sur certaines fonctions très utilisées offertes par d'autres shells disponibles à l'époque.

Le résultat a été le Bourne Again Shell, également appelé shell bash.

D'ailleurs, vous avez probablement déjà vu le mot bash apparaître en cas de faute de frappe à l'invite du shell (comme dans bash: nom-de-commande: command not found>).

Dans le Chapitre 15, à propos du réacheminement et du traitement pipeline, nous avons également montré la puissance du shell bash.

TuyauInformations complémentaires sur bash
 

Pour plus d'informations sur le shell bash, consultez la page de manuel bash. A l'invite du shell, entrez man bash (ou enregistrez le fichier comme fichier texte en entrant man bash | col -b > bash.txt ; vous pourrez ensuite l'ouvrir dans un éditeur de texte tel que pico ou un pager tel que less. Vous pouvez également imprimer le fichier en entrant man bash | col -b | lpr. Attention : ce fichier est volumineux. Si vous souhaitez obtenir plus de détails, O'Reilly & Associates ont édité un ouvrage intitulé Learning the bash Shell, par Cameron Newham et Bill Rosenblatt.

Bien que votre système comporte plusieurs shells différents, bash est le shell par défaut pour Red Hat Linux.

Il faut imaginer le shell bash comme un assistant discret, prenant note de la manière d'exécuter rapidement les commandes. Il conserve également des "pointeurs" sur vos méthodes de travail.

Ces pointeurs conservés par le shell bash sont des variables d'environnement.

Le shell utilise un "environnement" comme nous le faisons. Par exemple, nous travaillons dans notre cuisine en organisant les récipients, les ustensiles et les épices. Nous savons où se trouvent les plats et comment les choses fonctionnent.

On peut en dire autant du shell bash et de son environnement. Il existe une organisation de base pour le shell bash, comme il y en a une pour pratiquement n'importe quelle cuisine. Par exemple, chacun s'attend à trouver des récipients dans une cuisine, tout comme il peut s'attendre à trouver certaines commandes dans un shell bash.

Tel est le concept des variables d'environnement.

Si votre assistant dispose des pointeurs appropriés, il exécute vos commandes rapidement.

Examinons de plus près les variables d'environnement. A l'invite du shell, entrez :

env
	  

Comme vous le constatez, le shell bash utilise un certain nombre de "raccourcis".

Chacun d'eux aide le shell bash à personnaliser votre environnement.

Parmi les principales variables d'environnement, la variable PATH définit le chemin d'accès par défaut.

La variable d'environnement PATH pour notre compte newuser pourrait ressembler à ceci :

PATH=/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/newuser/bin
	  

Cela peut sembler un peu "chargé" mais l'instruction PATH est un précieux indicateur de l'emplacement de certains programmes.

TuyauStandard pour le chemin d'accès
 

Vous rappelez-vous la référence à la hiérarchie standard du système de fichiers (FHS, voir la la section intitulée Présentation étendue du système de fichiers dans Chapitre 15) ? L'instruction PATH est définie conformément à cette norme, de même que les répertoires dans lesquels les programmes sont installés. Le résultat est que l'instruction PATH permet au shell bash de rechercher automatiquement presque n'importe quel programme pour autant qu'il ait été installé conformément à la hiérarchie FHS.