maj cours BASH

This commit is contained in:
2022-04-26 00:03:35 +02:00
parent 752bab1f07
commit 804fe32870

View File

@@ -10,11 +10,17 @@ Sous windows, macOS ou GNU/Linux, chaque système propose son propre interpreteu
- BASH (Bourne Again Shell)
- principalement sous linux et macOS , mais disponible sous windows.
- SHELL
- Le premier interpreteur, qui date de [1971](https://fr.wikipedia.org/wiki/Shell_Unix)
- il a évidemment été amélioré au fur et à mesure des versions.
- Chaque version utilise son propre langage pour utiliser les commandes systèmes, mais en général, vous pouvez vous y retrouver d'un OS à un autre, avec les bonnes bases.
------------
### Commandes de bases
| Commande | Description |
@@ -27,4 +33,109 @@ Sous windows, macOS ou GNU/Linux, chaque système propose son propre interpreteu
| cat | Affiche le contenu d'un fichier. |
| touch | Crée un fichier vide. |
| mkdir | Crée un dossier vide |
| rmdir | Supprime un dossier. |
| rmdir | Supprime un dossier. |
---------------
### Introduction au script.
### Pourquoi le bash ?
Il existe autant de langage de programmation quil existe de besoins. Aucun dentre eux nest meilleur quun autre, il n'y a que des langages plus efficaces que dautres selon les situations.
Dans notre cas, afin dêtre capable dopérer une administration des systèmes efficace, le langage **Shell** est un must have.
La syntaxe de **Shell**, à la fois simple et efficace, permet à nimporte qui de pouvoir « *programmer* » de cette manière. La plupart des fonctions et opérations propres au **Shell** sont faciles à retenir, de plus, les scripts fonctionneront souvent du premier coup si vous maitrisez un tant soit peu le langage.
### Définition
> Le **Shell** est un interpréteur de commandes, ainsi quun langage de programmation puissant.
Un programme **Shell**, que lon peut appeler également un **script**, est un outil facile à prendre en main afin de construire des applications en « regroupant » des appels système, outils, utilitaires et binaires compilés.
Un **script Shell** permet, en théorie, daccéder à lentièreté des commandes **UNIX**, des utilitaires et des outils systèmes.
Le Shell est particulièrement efficace lorsque lon effectue de ladministration système mais aussi pour dautres routines répétitives ne nécessitant pas des utilisations aussi poussées quavec un langage de programmation plus complet.
-------------------
### Comment ?
Dans le cas le plus simple, un **script** n'est rien de plus qu'une liste de commandes système enregistrées dans un fichier, ligne par ligne. Cela évite l'effort de retaper cette séquence particulière de commandes à chaque fois qu'elle doit être appelée.
Par exemple, pour se déplacer dans un répertoire puis créer un dossier, on utilise le **bash** (ou un autre interpréteur de commande **UNIX**) :
```
cd Documents/
mkdir test
```
Eh bien si lon souhaite faire la même chose avec un **script**, il suffira décrire ces deux lignes à la suite dans un fichier, cest tout simple.
Evidemment, placer ces commandes dans un fichier **script** na pas uniquement comme intérêt de ne pas avoir à les recopier chaque fois que lon en a besoin. Le **script** est un outil de travail et peut facilement être modifié ou personnalisé pour une application particulière.
En réalité, il manque juste une chose afin de pouvoir utiliser ces lignes dans un **script**.
Votre fichier script doit comporter **un sha-bang (#!).**
**Le *sha-bang* (#!)** doit se placer en tête du script afin dindiquer à votre système que ce fichier est un ensemble de commandes à interpréter.
Les caractères **#!** correspondent en fait à un ***nombre magique***, un marqueur spécial qui désigne un type de fichier, ou dans ce cas, **un script Shell** exécutable.
Ensuite, après le **sha-bang,** se trouve un *chemin*, qui mène au programme sensé interpréter les commandes de votre fichier script, selon le langage que vous utilisez.
Enfin, cet interpréteur de commande exécute les commandes de votre **script**, en commençant après le sha-bang, et en ignorant les commentaires.
Vu quici, nous utilisons linterpréteur bash, voici la ligne correspondante :
```
#!/bin/bash
```
-------------
### Appeler son script
###
Après la création de votre premier script, vous souhaiterez lexécuter (on parle ici dun appel ) afin de vous assurer de son bon fonctionnement.
> Un code de retour zéro du script indique un succès au **Shell**.
Dans cette optique, plusieurs solutions soffrent à vous :
- Dans un terminal, la commande **sh** <nom du script>
- Dans un terminal, la commande **bash** <nom du script>
- Rendre dabord exécutable ce fichier
- **chmod 555** <nom du script>(donne les droits de lecture/exécution à tout le monde)
- **chmod +rx** <nom du script> (donne les droits de lecture et d'exécution à tout le monde)
- **chmod u+rx** <nom du script>(donne les droits de lecture et d'exécution seulement à son propriétaire)
B) Puis lexécuter :
```
./nomdufichier
```
*Note : si vous placez votre script fonctionnel dans le répertoire /usr/local/bin alors vous serez en mesure de lappeler simplement en tapant son nom puis entrée dans un terminal.*