Outils pour utilisateurs

Outils du site


article:bash:accueil

Généralités sur le "bash"

Introduction

Le bash est un programme qui permet d'interpréter des commandes exécutables sur une machine Linux.

Le bash peut être considéré comme un langage possédant un vocabulaire, une syntaxe et une grammaire permettant d'énoncer des listes d'instructions qui seront exécutées de façon séquentielles voire événementielles.

  • Le vocabulaire est composé de mots réservés tels que ls, rm, mkdir, etc. Ces mots réservés permettent d'effectuées des tâches précises dans le système. Un utilisateur peut également créer des données ou des fonctions en les nommant à l'aide de mots composés de lettres de l'alphabet. bash est inspiré de la langue anglaise et ne reconnaît pas les lettres accentuées, cependant il accepte également les chiffres (mais pas en première position) et le caractère souligné bas “_” ainsi que le point “.”.Pour bash, une “function” est un ensemble de commandes (ou instructions) regroupées sous un nom et qui seront exécutées chaque fois que l'on y fera appel. En bash, par convention, tout identifiant d'une donnée ou de function commençant par un point sera comme un élément permettant de gérer le système et sera caché à l'utilisateur sauf s'il en fait la demande expresse. Cette convention permet ainsi à un utilisateur de ne pas être surcharger d'informations inutiles pour l'usage quotidien de ces données.
  • La syntaxe est l'ensemble des symboles tels que $ ; [ ] { } ! * + - / etc, qui permettent d'enchaîner des instructions, d'indiquer comment utiliser des données, appeler une function etc.
  • La grammaire est l'ensemble des règles que le “bash” impose pour le bon usage des mots ( réservés ou non ) et symboles afin d'assurer une cohérence et un bon déroulé des instructions souhaitées par un utilisateur.

Le Terminal

Appelé également Console, le Terminal est une application qui permet de passer des commandes bash. Généralement dans un environnement graphique Linux, la combinaison des touches [ ctrl ]+[ alt ]+[ T ] permet d'ouvrir un tel terminal et il es possible d'en ouvrir plusieurs en même temps, pour commencer un seul devrait suffire =). Il est bon de savoir avant de commencer à utiliser une console, que l'on peut la quitter en tapant la commande exit touche [ ← Entrèe ], ou en utilisant la combinaison des touches [ ctrl ]+[ D ].

Le système de fichier

Une utilisation d'un ordinateur peut produire des documents que sont des images, des textes, des feuilles de calculs et cætera. Tout document peut être sauvegardé dans un fichier afin de le retrouver à chaque fois qu'on le souhaite. Tout fichier porte un nom qui lui est propre et peut être rangé dans un dossier qui peut contenir d'autres fichiers voire d'autre dossiers (sous-dossiers). Un dossier comme un fichier porte un nom lui est propre.
Bien évidemment tous les éléments (fichiers,sous-dossiers) contenus dans un dossier portent des noms distincts afin de les différencier. Il faut imaginer qu'un système de fichiers est comme une armoire à étagères contenant des dossiers qui eux même contiennent des fichiers. En fait il faut considérer qu'armoire et étagères sont des dossiers et ainsi simplifier l'organisation de ces fichiers.
Le dossier général, ultime (“l'armoire”) est appelé oralement dossier racine mais ne porte pas de nom écrit on le représente pas une barre oblique / . En Linux ce dossier racine / contient des dossiers contenant des fichiers programmes ou de configurations afin d'assurer le bon fonctionnement de la machine. Il existe nécessairement un dossier réservé aux utilisateurs de la machine qui se nomme /home où chaque utilisateur détiendra un dossier qui lui est réservé et personnel.
A chaque utilisateur d'un machine est associé un pseudonyme unique qui l'identifie au sein du système de fichiers et plus généralement des services délivrés par la machines. Si Jean Dupont a pour pseudonyme jean22 son dossier personnel sera /home/jean22 de même pour Lucie Durant de pseudonyme lucie29 son dossier personnel sera /home/lucie29. Ainsi chaque utilisateur à son dossier personnel qui n'est accessible que par lui même et l'administrateur de la machine.
Remarque :
Dans l'exemple ci dessus le dossier jean22 se “situe” dans le dossier home qui lui même se site dans le dossier / . L'écriture /home/jean22 est le nom précis, étendu, absolu du dossier alors que jean22 dans notre exemple est un nom relatif à /home.
Imaginons que Lucie à une correspondance avec Jean et que cette correspondance est sous le forme de fichiers situés dans son dossier personnel et se nomme lui aussi jean22, le nom étendu permettant de connaître sa position absolue est donc /home/lucie29/jean22. Cette façon “étendue” de nommer des dossiers ou fichiers permet de lever toute ambiguïté sur le nom d'éléments qui porteraient apparemment le même nom. Il arrive dans la vie courante que des rues portent le même nom mais se situent dans des villes différentes aussi un adressage complet (nom prénom,rue,ville,code postal, etc) permet à un postier de distribuer correctement le courrier…
Cette façon de nommer de manière étendue les dossiers et fichiers peut s'avérer fastidieuse, lourde. Pour faciliter les usages il est heureusement possible de raisonner de façon relative encore faut-il avoir une référence ! Le principe retenu est qu'à tout moment un utilisateur “se trouve” toujours quelque part dans le système de fichier et sans précision de sa part, par défaut, il se situe dans son dossier personnel. Il est donc positionné en /home/pseudonyme.
Si Jean Dupont à un document sauvegardé dans un fichier nommé journal.txt le nom précis de ce document est /home/jean22/journal.txt
Lorsque Jean ouvre un terminal, comme tout utilisateur dans ce cas, il “se situe” dans le dossier /home/jean22 et si il souhaite afficher le contenu de ce fichier il peut utiliser la commande cat. Deux possibilités d'adressage s'offre à lui :

  • relatif : cat journal.txt
  • absolu : cat /home/jean22/journal.txt

Comme Jean est positionné en /home/jean22/ par défaut lors de l'ouverture de la console, ces deux écritures sont équivalentes.

Si Lucie Durant veut afficher le contenu du fichier contact.txt concernant Jean et situé dans le dossier jean22, elle ouvrira un console et elle aussi aura deux possibilités pour afficher ce contenu :

  • relatif : cat jean22/contact.txt
  • absolu : cat /home/luce29/jean22/contact.txt

Bien-sur l'adressage relatif est le plus souvent utilisé mais il faut toujours avoir en tête que Linux “raisonne” toujours en absolu et chaque fois que l'on lui donne un chemin relatif il en déduit l'adressage absolu à partir de la “position courante” de l'utilisateur dans le système de ficher.

Dans une console, pour se “balader” dans le système de fichier on utilise la commande cd (change directory ⇔ changer de dossier) suivi d'un chemin relatif ou absolu. Si aucun chemin n'est précisé le changement s'effectue vers le dossier personnel. La position courante peut être affichée en utilisant la commande pwd (print working directory)

Précédemment Lucie aurait pu utiliser 2 instructions pour afficher le contenu du fichier contact.txt concernant Jean. Dans un premier temps changer de dossier pour se rendre dans le dossier jean22 puis d'afficher le contenu de contact.txt

  • cd jean22
  • cat contact.txt
article/bash/accueil.txt · Dernière modification : 2024/04/25 10:53 de estro