Fiche de révision : Introduction aux langages Bash

Plan du Cours

  1. Langages de commandes et shells
  2. Bash comme environnement et langage
  3. Usages avantages et limites
  4. Syntaxe et types de commandes
  5. Exécution séquentielle et arrière-plan
  6. Scripts Bash et permissions
  7. Variables et contextes
  8. Paramètres et débogage

1. Langages de commandes et shells

Notions clés & Définitions

  • Langage de commandes : Composant important d’un système d’exploitation qui permet d’interagir efficacement avec ses services, ses ressources et ses fonctionnalités.
  • Shell : Interpréteur de commandes utilisé dans une console ou un terminal pour vérifier syntaxiquement les commandes puis les exécuter.

★ À maîtriser

📌 Un langage de commandes textuel est puissant mais plus difficile à apprendre et à utiliser, tandis qu’une interface graphique est plus facile à utiliser mais plus limitée et difficile à automatiser pour les procédures complexes.

  • Sous GNU/Linux ou Linux, le shell par défaut est Bash, conçu en 1988 par Brian Fox.

Compléments

  • Les exemples cités sont:

    • PowerShell de Windows
    • Bash sous Unix ou Linux
    • Windows
    • macOS
    • X-Windows
    • Gnome
    • KDE
  • Les deux grandes familles de shells sont la famille C Shell, avec csh et tcsh, et la famille Bourne Shell, avec sh, bash, ksh et dash.

Astuce mémo

Texte puissant mais exigeant, interface graphique simple mais moins automatisable.

2. Bash comme environnement et langage

★ À maîtriser

📌 Bash est à la fois un environnement de travail interactif et un langage de programmation.

  • Bash fournit notamment: le rappel des commandes précédentes, l’édition en ligne des commandes, la gestion des travaux lancés en arrière-plan, l’initialisation des variables d’environnement

  • Bash permet d’utiliser:

    • des variables
    • des opérations arithmétiques
    • des structures de contrôle
    • des fonctions
    • des opérateurs spécifiques

Compléments

  • Bash peut fonctionner en mode interactif ou exécuter des fichiers de commandes.

Astuce mémo

Bash est à la fois un espace de travail et un langage de programmation.

3. Usages avantages et limites

★ À maîtriser

  • Pour l’administration système, Bash permet:

    • d’automatiser des tâches répétitives
    • de traiter de grandes quantités de données
    • d’effectuer des appels au système
  • Dans le développement, Bash permet: le déploiement automatique d’une application, l’exécution des tests sur un logiciel, la préparation automatique des données ou de la configuration des projets

  • Bash facilite le prototypage rapide grâce aux tubes et à la substitution de commandes, qui permettent de construire un programme à partir de commandes Linux existantes.

📌 Bash ne possède pas de structures de données complexes, de pointeurs ni d’autres mécanismes d’indirection.

Compléments

  • Bash peut créer les comptes de nouveaux étudiants ainsi que créer ou supprimer certains fichiers.

📌 Bash est un langage de collage parce qu’il permet de connecter des composants écrits dans des langages différents.

  • La syntaxe Bash peut être obscure, l’absence d’un espace peut provoquer une erreur et une même fonctionnalité peut avoir plusieurs syntaxes pour préserver la compatibilité ascendante avec Bourne Shell.

Astuce mémo

Interprétation et commandes existantes → prototypage rapide et intégration de composants.

4. Syntaxe et types de commandes

★ À maîtriser

  • La syntaxe générale d’une commande Bash est [Chemin/]nom_de_la_commande [option][argument][Chemin/]nom\_de\_la\_commande\ [option][argument].

  • Les mots d’une commande Bash sont séparés par des espaces ou des tabulations horizontales, et Bash distingue les majuscules des minuscules.

  • Les méta-caractères sont des caractères ayant une signification spéciale pour l’interpréteur, comme le pipe | ou le caractère >.

📌 Les options sont précédées d’un tiret, comme -a, tandis que la syntaxe GNU utilise deux tirets, comme --version.

📌 Une commande interne est implantée dans l’interpréteur et ne crée généralement pas de processus séparé, tandis qu’une commande externe est stockée dans un fichier et entraîne généralement la création d’un nouveau processus.

  • La commande ps affiche l’interpréteur en cours d’exécution, tandis que bash --version affiche la version de l’interpréteur.

Compléments

  • Les commandes internes Bash peuvent être simples, lorsqu’elles comportent un seul mot et ses arguments, ou composées, lorsqu’elles utilisent plusieurs mots réservés.

  • Les mots réservés de Bash comprennent case, coproc, do, done, elif, else, esac, fi, for, function, if, in, select, then, time, until, while, {, }, [[, ]], et !.

Astuce mémo

Commande interne intégrée au shell, commande externe portée par un fichier et un processus.

5. Exécution séquentielle et arrière-plan

★ À maîtriser

📌 L’exécution séquentielle est synchrone : chaque commande commence après la fin de la précédente, tandis que l’exécution en arrière-plan rend immédiatement le contrôle du terminal.

📌 Le caractère & placé à la fin d’une commande demande son exécution en arrière-plan.

  • Pour envoyer une commande en arrière-plan, l’utilisateur peut l’arrêter avec CTRL-Z, puis exécuter bg suivi de son numéro de job.

  • La commande jobs liste les tâches lancées en arrière-plan, fg suivie d’un numéro de job récupère une tâche au premier plan et set -b informe de la finalisation des tâches en arrière-plan.

Compléments

  • La combinaison CTRL-C permet de terminer l’exécution d’une commande synchrone.

Astuce mémo

Lancer → suspendre → reprendre au premier plan ou en arrière-plan.

6. Scripts Bash et permissions

Notions clés & Définitions

  • Script shell : Fichier Bash qui stocke plusieurs commandes destinées à s’exécuter ensemble dans un ordre spécifique pour accomplir une tâche.

★ À maîtriser

📌 Pour exécuter un script avec bash, il suffit d’utiliser la commande bash suivie du nom du script, comme dans bash afficherDate.

📌 Pour exécuter directement un script, l’utilisateur doit avoir les droits de lecture r et d’exécution x, et le répertoire du script doit être dans PATH ou être indiqué par un chemin relatif ou absolu.

Compléments

📌 La première ligne d’un script Bash peut indiquer l’interpréteur à utiliser avec le shebang # !/bin/bash, et le caractère # introduit un commentaire.

  • La commande chmod u+x afficherDate ajoute le droit d’exécution à l’utilisateur, mais ne rend pas le script accessible depuis tous les répertoires.

📌 La commande PATH=$PATH :. ajoute le répertoire courant à PATH, ce qui permet ensuite d’exécuter un script qui s’y trouve par son seul nom.

📌 Si un script porte le même nom qu’une commande interne Bash comme test, Bash exécute la commande interne.

Astuce mémo

Permission x et chemin accessible → script exécutable.

7. Variables et contextes

★ À maîtriser

  • Les paramètres Bash sont soit des variables identifiées par un nom, soit des paramètres de position identifiés par des chiffres, soit des paramètres spéciaux identifiés par un caractère spécial.

  • Le caractère $ placé devant un nom ou un symbole permet de récupérer la valeur d’un paramètre Bash.

  • Un nom de variable Bash contient des lettres, des chiffres ou des tirets bas, mais ne peut pas commencer par un chiffre et reste sensible à la casse.

  • L’affectation d’une variable s’écrit nom=valeur sans espace autour du signe égal, tandis que sa lecture s’écrit $nom.

  • La commande read affecte par lecture les valeurs saisies aux variables indiquées, stocke toute la saisie dans REPLY si aucune variable n’est fournie et accepte -p pour afficher un prompt.

📌 Une variable locale disparaît à la fin du processus du shell, tandis qu’une variable d’environnement exportée est transmise automatiquement aux processus ou shells fils.

📌 La transmission d’une variable d’environnement est unidirectionnelle vers le shell fils : une modification effectuée par le fils n’est pas visible dans le shell père.

Compléments

  • Les catégories de variables sont:
    • variables d’utilisateur
    • variables prédéfinies du Shell : PATH, HOME et PS1
    • variables prédéfinies de commandes Unix : TERM

📌 Une constante déclarée avec declare -r, comme declare -r salutation=bonjour, ne peut plus être modifiée.

Astuce mémo

Locale limitée au shell, environnement transmise aux shells fils.

8. Paramètres et débogage

★ À maîtriser

📌 Les paramètres de position sont utilisés pour transmettre des arguments à un script ou une fonction, et la commande set permet de leur affecter des valeurs tandis que set -- les efface.

  • Dans un script Bash, $0 contient le nom du programme et $1, $2 et $3 contiennent respectivement les premier, deuxième et troisième arguments.

  • Le paramètre spécial $# indique le nombre de paramètres de position qui contiennent une valeur.

📌 L’option set -e arrête un script lorsqu’une erreur se produit, tandis que set -x affiche avant leur exécution une trace des commandes, de leurs arguments ou des variables utilisées.

Compléments

  • La variable IFS contient les caractères séparateurs de mots et vaut par défaut l’espace.

Astuce mémo

$0 programme, $1… arguments, $# nombre d’arguments.

Tableaux de synthèse

Commandes internes et externes

CritèreCommande interneCommande externe
Emplacement du codeDans l’interpréteurDans un fichier ordinaire
ProcessusGénéralement aucun processus séparéGénéralement un nouveau processus
Exemplesecho, export, readls, mkdir, sleep

Variables locales et d’environnement

CritèreVariable localeVariable d’environnement
Durée de vieJusqu’à la fin du shellTransmise aux shells fils
TransmissionNon transmise automatiquementTransmise automatiquement
Commande associéeAffectation simpleexport

Teste tes connaissances

Teste tes connaissances sur Introduction aux langages Bash avec 11 questions à choix multiples et corrections détaillées.

1. Quel rôle un langage de commandes joue-t-il dans un système d’exploitation ?

2. Qu'est-ce qu'un langage de commandes dans un système d'exploitation ?

Faire le QCM →

Révisez avec les flashcards

Mémorisez les concepts clés de Introduction aux langages Bash avec 11 flashcards interactives.

Qu'est-ce qu'un langage de commandes dans un système d'exploitation ?

Un composant important permettant d'interagir avec ses services et ressources.

Langage de commandes: rôle

Interagir avec le système d'exploitation.

Quelles sont les deux grandes familles de shells principales ?

La famille C Shell et la famille Bourne Shell.

Voir les flashcards →

Cours similaires

Crée tes propres fiches de révision

Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.

Générateur de fiches