SHELL

Ce chapitre se rapporte principalement à Linux et particulièrement au SHELL utilisé en ligne de commande: l'analogie dans le monde Windows est le MS-DOS. Différents SHELL sont utilisables. Cette page s'applique au SHELL BASH (Bourne Again Shell) qui est disponible sur toutes les distributions Linux et qui est également le SHELL de référence sur les ordinateurs MAC OS.
Cette page n'a pas la prétention de remplacer un cours sur le SHELL: il existe plusieurs centaines de commandes, et les cours détaillés penvent être volumineux. L'objectif est de donner un aperçu minimal avant d'aborder des publications détaillées qui sont nombreuses et disponibles sur le web.
Même si vous n'utilisez pas Linux, vous verrez dans la rubrique "Outils" que le SHELL est un outil puissant permettant de faire des analyses, diagnostics et même réparer un système tiers tel que Windows.

Introduction

Dans le monde Linux (qui est un clone d'UNIX système V) SHELL est un interpréteur en ligne de commandes. Il permet de naviguer dans le système, exécuter des commandes, de gérer des processus et un ensemble de variables paramètrisant votre environnement et de programmer des tâches relativement complexes (fichier ou script contenant un ensemble de commandes Unix). Aujourd'hui, les interfaces graphiques facilitent grandement l'utilisation, la configuration et l'administration des ordinateurs basés sur Linux et la plupart des utilisateurs ne se servent pas de la ligne de commande.
Cependant la connaissance du langage SHELL peut être d'un grand secours en cas de problème, par ailleurs l'interface graphique a ses limites et certaines actions doivent être réalisées en ligne de commande. Souvent le recours à la ligne de commande est beaucoup plus rapide que l'interface graphique.
SHELL signifie coquille, c'est donc ce qui entoure le noyau Linux. SHELL est donc une interface fonctionnant en mode texte entre noyau Linux, l'utilisateur et les applications. Le SHELL fonctionne au moyen d'un terminal composé du clavier pour saisir les instructions et de l'écran pour afficher les résultats. Les distributions Linux proposent en plus des consoles ou terminaux graphiques. L'utilisation de SHELL implique des connaissances concernant:

Arborescence

On entend souvent dire à juste raison, "avec Linux, tout est fichier". Effectivement, Linux peut se résumer à une organisation ou arborescence de répertoires et fichiers.
La base du système de fichiers est la racine / (slash). La structure n'est pas rigoureusement identique pour toutes les distributions GNU-Linux, cependant depuis 2004 l'harmonisation est en cours.
Le tableau suivant présente la structure du système:
/bin contient les fichiers binaires exécutables employés par tous les utilisateurs: on y trouve en particulier les commandes Shell.
/boot contient les fichiers nécessaires au démarrage de Linux.
/dev contient les fichiers spéciaux descripteurs de périphériques: ce sont les points d'entrée des périphériques. Il est souvent nécessaire d'utiliser des programmes pour interpréter ces contenus qui sont sous forme de "données brutes".
/etc contient les fichiers de configuration utilisés par les programmes.
  • etc/X11 contient les fichiers de configuration de X (serveur graphique)
/home contient le répertoire personnel et les données des utilisateurs
/lib contient les biliothèques partagées essentielles au système lors du démarrage
/lost+found contient les fichiers orphelins ou endommagés après une vérification
/media répertoire de montage des périphériques temporaires (amovibles): cd-rom, clé USB etc...)
/mnt sert d'espace de montage de test pour l'administrateur
/opt contient les paquetages logiciels particuliers nécessitant un espace d'installation différent
/proc répertoire virtuel pour les informations concernant le noyau et les processus
/root répertoire spécifique et séparé de l'administrateur
/sbin contient les fichiers binaires exécutables de l'administrateur
/srv contient les données de services offertes par le système
/sys contient les informations concernant les périphériques
/tmp stockage des fichiers temporaires
/usr contient les données statiques exploitées par les utilisateurs: sources, exécutables, documentation, bibliothèques etc...). Ce répertoire contient les applications usuelles des utilisateurs et leurs fichiers
/var contient les données variables: journaux, bases de données etc...

Console

Plusieurs consoles sont disponibles pour accéder au Shell. Elles sont accessibles en mode texte. Ce sont des consoles virtuelles que l'on ouvre par les combinaisons CTRL+ALT+F1 pour la première console jusqu'à CTRL+ALT+F6 pour la 6ème console. Pour passer d'une console à l'autre => ALT+F1 à ALT+F6. Pour chaque console, on peut se connecter avec une identité différente ou plusieurs fois la même identité avec des applications différentes.
Retour au mode graphique: CTRL+ALT+F7 ou ALT+F7
Les interfaces graphiques proposent également l'émulation de consoles virtuelles.
A l'ouverture d'une console, il faut entrer son identifiant puis mot de passe pour avoir accès au "pompt". Le promt est représenté par le nom de la machine suivi généralement du caractère "$" ce qui signifie que le système est dans l'attente d'une commande de l'utilisateur. Nota: lorsqu'une console est ouverte via l'interface graphique, il est généralement inutile d'entrer son identifiant et mot de passe.
Le Shell via la console attent une commande sur l'entrée standard (stdin) qui est en général le clavier. Le shell interprète et exécute la commande et envoie le résultat sur la sortie standard (stdout) qui est en principe l'écran. Des commandes spéciales permettent de rediriger la sortie vers un fichier ou l'entrée d'une autre commande. En cas d'erreur, le résultat est redirigé vers la sortie stderr (affichage sur l'écran).

Principales commandes Shell

Cette page sera complétée prochainement.
URL de la page d'accueil du site: http://perso.numericable.fr/alain.walliser