L’interpréteur de commandes Bash

L’interpréteur de commandes Bash.

Après une entrée en session (login) sur un système Linux vous êtes pris en charge par un interpréteur de commandes (shell) : le Bash ( bash). L’ interpréteur de commandes est l’interface entre l’utilisateur et le système d’exploitation. Il a pour rôle de traduire les commandes saisies par l’utilisateur afin que le système puisse les exécuter.( sh) est l’ancêtre commun de tous les shells. Il est obsolète en interactif mais encore utilisé en programmation. Le C-shell ( csh) d’origine BSD, et sa version plus récente le tc- shell ( tcshell), est utilisable en interactif mais non compatible avec le Bourne- shell en programmation. Le Korn-shell ( ksh) est l’interpréteur de commandes le plus répandu dans le monde Unix. Il est très agréable en interactif et compatible ascendant en programmation avec le Bourne-shell. Le Bash est l’interpréteur de commandes le plus répandu dans le monde Linux. Le Bash est compatible avec le Bourne-shell. Il inclut des caractéristiques du Korn-shell et du C-shell. Il offre des améliorations aussi bien en interactif qu’en programmation.Il est également possible de créer des fichiers (avec vi ou emacs par exemple) contenant une suite de commandes. Ces fichiers sont appelés des scripts et peuvent être exécutés, ce qui évite la réécriture de ces commandes. De surcroît les interpré- teurs de commandes possèdent un véritable langage de programmation interprété permettant la réalisation de programmes de commandes complexes.Un processus est reconnu par un numéro appelé le PID (Process Identifier). Il est possible, à partir du processus interpréteur de commandes, de lancer une nouvelle commande. Dans ce cas le processus correspondant à la commande est appelé le processus fils, l’interpréteur de commandes étant le processus.

Remarques.

À la connexion, avant l’interprétation des commandes, c’est-à-dire apparition à l’écran du prompt, le Bash interprète les fichiers d’initialisation : /etc/profile et .bash profile. Le fichier /etc/profile est géré généralement par l’administrateur alors que le fichier .bash profile, qui est dans le répertoire d’accueil (HOME), est à la disposition de l’utilisateur. Ces fichiers permettent de modifier ou de créer des variables internes au shell, ou des variables d’environne- ment, de créer des fonctions, etc. Si le fichier .bash profile n’existe pas ou n’est pas en lecture, alors le Bash recherche dans votre répertoire d’accueil (HOME) et dans cet ordre, le fichier .bash logiLorsque le Bash est utilisé en mode interactif et n’est pas un shell obtenu après une connexion, il exécute le fichier .bashrc, s’il existe. Souvent l’utilisateur intègre dans le fichier .bash profile, l’exécution du fichier .bashrc (voir exemple ci-dessous) afin d’obtenir une initialisation commune au shell de login.La commande exit et éventuellement <ctrl d> permet de quitter la session. En cas de fin de connexion, le fichier de commandes .bash logout est exécuté s’il existe. Il contient d’habitude des commandes de suppression de fichiers tempo- raires ( core, tmp, etc.), d’effacement d’écran, de message de fin de session, etc.Un certain nombre de variables ont pour le Bash une signification prédéfinie. Nous ne présenterons que les plus importantes. Il est possible de classer les variables du Bash en deux catégories : les variables booléennes et les variables ordinaires.Les commandes env et printenv permettent de visualiser la liste et le contenu des variables d’environnement ( set nous donne la liste de toutes les variables et leur valeur).

 Liste des chemins d’accès utilisés par la commande cd lors d’un changement de répertoire en relatif. Il est ainsi possible, en mode relatif, d’accéder à un répertoire dont la racine est dans la variable CDPAT H. Un chemin d’accès défini par la chaîne de caractères vide ou par le caractère$ ). L’ affichage du prompt est dynamique, contrairement à d’autres shell, c’est-à- dire qu’il est possible d’y intégrer des variables. Il est aussi possible de le personnaliser en y insérant des caractères spéciaux qui sont interprété comme suit :’ permet de donner une équi- valence entre une ligne de commandes Linux et une chaîne de caractères. Les alias servent surtout à définir des abréviations ou de nouveaux noms pour des commandes.Il n’est pas possible de créer des alias avec passage de paramètres. De plus, si le Bash trouve un alias dans l’interprétation du nom de la commande, il remplace cet alias par sa définition et recommence le processus de recherche d’un alias. Il est ainsi possible d’inclure un alias dans la définition d’un autre alias. Nous recomman- dons, afin d’éviter des problèmes d’interprétations, de définir un alias sur une seule ligne de commandes, et de ne pas utiliser les alias dans une fonction shell.Il est possible de définir des fonctions shell interactivement ou dans un script. Une fonction shell évite la duplication de lignes de programmes identiques dans un script ou l’abréviation d’une commande avec passage de paramètres. Le passage de para- mètres sera présenté au chapitre 8. La syntaxe de création d’une fonctionf ont été créées. On constate que f file sera désormais la commande qui permettra de rechercher le fichier file à partir du répertoire courant. L’ exemple suivant montre l’intérêt d’une fonction : elle est interprétée par le shell en cours.La commande cdd rep, en utilisant la fonction cdd, cherche dans l’arbores- cence, à partir du répertoire courant, le répertoire rep et positionne l’utilisateur dans ce répertoire. Cette fonctionnalité n’est possible que si cdd est une fonction et non un script (voir le chapitre 8).

Cours gratuitTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *