EEIJ

Païou : Mandriva Linux depuis 2002. Aujourd'hui, c'est Mageia Linux


Sommaire


Conforme à XHTML 1.0 Strict Conforme à CSS!

On se lasse de tout, sauf de comprendre.
Attribué à Virgile.

Commandes et scripts bash

Historique

4 mai 2011 : Cette page est une refonte de celle de l'ancien site de Païou.
5 mars 2012 : Nouvelle présentation et restructuration.
23 mai 2014 : fin de la restructuration.

Difficulté

Pour : un esprit logique et curieux.

 Introduction

Le bash permet de donner des instructions au système d'exploitation Linux, en ligne de commande.
On peut dire que c'est l'équivalent de MSDOS, mais en beaucoup plus complet.

Vous ne trouverez pas, ici, un cours bash complet, mais quelques instructions que j'utilise fréquemment et dont les explications sont disséminées sur tout l'internet.

 Vocabulaire : terminal, terminal virtuel, émulateur de terminal, mode console

Autrefois, il n'y avait pas d'ordinateurs personnels. L'ordinateur était une grosse machine à laquelle les opérateurs accédaient à l'aide d'un pupitre appelé terminal. Le terminal comprenait un clavier, un écran (à tube cathodique) et l'électronique nécessaire au dialogue avec l'ordinateur. Il n'y avait pas de souris.
L'opérateur travaillait en mode console, c'est-à-dire en mode texte ou encore en ligne de commande.

Actuellement, il est encore parfois très utile de travailler en mode console. Pour ceci, on utilise un terminal virtuel ou un émulateur de terminal.

terminal virtuel
Invite bash

Vous êtes dans un terminal virtuel lorsque l'interface graphique refuse de se lancer (survolez l'image de droite).
Vous pouvez également, depuis l'environnement graphique, accéder à un terminal virtuel avec la combinaison de touches Ctrl+Alt+F2 à Ctrl+Alt+F6. C'est un terminal virtuel, puisqu'il ne s'agit pas d'un terminal comme autrefois.
Faites Ctrl+Alt+F1 (ou F7 ou F8 selon la version) pour revenir au mode graphique.

émulateur de terminal

Tout en restant dans l'environnement graphique, vous disposez d'un émulateur de terminal. Dans la plupart des distributions vous avez une icône sur le tableau de bord et vous avez une commande "Terminal" dans les menus.

Haut

 L'invite

La première chose que vous voyez, après vous être identifié dans une console texte ou après avoir ouvert, dans une fenêtre, une console graphique, est l'invite.
L'invite standard, sur Mageia, comprend votre nom d'utilisateur, le nom de la machine sur laquelle vous vous êtes identifié, le répertoire où vous vous trouvez (le « répertoire de travail ») et le symbole de l'invite :
[paiiou@tux1]$
Cette invite peut cependant être personnalisée.

Lorsque c'est root (l'administrateur) qui est identifié, le symbole $ est remplacé par #.

Haut

 Exécuter une commande

Une commande bash s'utilise dans un terminal virtuel (ou émulateur de terminal) qui affiche l'invite.
Vous tapez le nom de la commande, après l'invite, puis vous actionnez la touche "ENTREE".

Le shell cherche la commande dans son chemin de recherche (nous reparlerons plus loin de cette notion), exécute la commande, affiche la sortie de la commande (s'il y en a une) sur le terminal et affiche une nouvelle invite lorsque l'exécution de la commande est terminée.

Dans l'exemple qui suit, l'utilisateur a tapé la commande whoami (littéralement : quisuisje), pressé la touche "ENTREE" et la machine a répondu en donnant le nom de l'utilisateur paiiou :
[paiiou@tux1]$ whoami
paiiou
[paiiou@tux1]$

Options et arguments

La plupart des commandes peuvent prendre des options ou peuvent avoir besoin d'un argument.

La commande ls permet d'afficher le contenu d'un répertoire, mais il faut préciser quel répertoire :
[paiiou@tux1]$ ls -l /home/paiiou
-l est une option qui dit d'afficher les détails et
/home/paiiou est un argument qui indique quel répertoire.

Les options peuvent être avec une syntaxe courte, telle que -l ou avec une syntaxe longue --help

Les pages d'aide

Pour connaître la syntaxe de ces commandes leurs options, vous pouvez consulter leurs pages de man respectives, avec la commande man
[paiiou@tux1]$ man mv
[paiiou@tux1]$ man ls etc ...

Complétion des commandes

Une aide appréciable de ces commandes est la complétion :
Vous tapez les premiers caractères de la commande, puis la touche "Tab".
La commande est automatiquement complétée.

Lorsqu'il y a plusieurs commandes qui commencent pareil, elles sont listées et une nouvelle action de la touche "Tab" permet de continuer l'écriture de la commande.

Haut

 Quelques commandes de base

pwd, ls, cd, mkdir, rmdir, touch, cat, less, rm, man, mv, cp, chemin relatif, chemin absolu, jockers, flux, redirections, tube ...

Vous les trouverez ici Cliquez

Haut

 Script bash

Les exemples ci-dessus vous donnaient des commandes exécutées isolément.

Mais il est possible d'exécuter toute une série de commandes, les unes après les autres, en les plaçant dans un fichier texte, appelé script.

Les scripts bash seront traités en plusieurs pages distinctes :

Script bash : les bases

Cette page décrit les premiers éléments des scripts : en-tête, instructions, commentaires, variables

Premiers éléments sur les scripts bash Cliquez

Les expansions, substitutions et calculs

On appelle couramment "expansion" le fait que bash remplace un élément par un autre élément (une substitution). Exemple, les variables :
nombre=3 la variable nombre prend la valeur 3
dans $nombre bash substitue la valeur de la variable au nom de la variable

Expansions, substitutions et calculs Cliquez

Les expressions régulières, grep et sed

Deux commandes très utiles pour examiner le contenu d'un fichier et de modifier son contenu : grep et sed.
Ces deux commandes autorisent l'utilisation des expressions régulières ou Regex.

Les expressions régulières, grep et sed Cliquez

Les tests

Il est souvent nécessaire de n'exécuter certaines instruction que si des conditions données sont remplies.
Il faut tester la valeur d'une variable, la présence d'un fichier ...

Les tests dans les scripts bash Cliquez

Les boucles

Nousallons découvrir dans ce chapitre un autre élément de base de tous les langages : les boucles.
Ces structures permettent de répéter autant de fois que nécessaire une partie du code. En bash, on également les faire

Les boucles dans les scripts bash Cliquez

Les fonctions

Comme les « vrais » langages de programmation, Bash supporte les fonctions bien qu'il s'agisse d'une implémentation quelque peu limitée.
Une fonction est une sous-routine qui permet d'utiliser plusieurs fois une portion de code.

Les fonctions dans les scripts bash Cliquez