maj cours BASH
This commit is contained in:
@@ -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 qu’il existe de besoins. Aucun d’entre eux n’est meilleur qu’un autre, il n'y a que des langages plus efficaces que d’autres selon les situations.
|
||||
|
||||
Dans notre cas, afin d’être capable d’opérer une administration des systèmes efficace, le langage **Shell** est un must have.
|
||||
|
||||
La syntaxe de **Shell**, à la fois simple et efficace, permet à n’importe 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 qu’un langage de programmation puissant.
|
||||
|
||||
Un programme **Shell**, que l’on 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, d’accéder à l’entièreté des commandes **UNIX**, des utilitaires et des outils systèmes.
|
||||
|
||||
Le Shell est particulièrement efficace lorsque l’on effectue de l’administration système mais aussi pour d’autres routines répétitives ne nécessitant pas des utilisations aussi poussées qu’avec 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 l’on souhaite faire la même chose avec un **script**, il suffira d’écrire ces deux lignes à la suite dans un fichier, c’est tout simple.
|
||||
|
||||
Evidemment, placer ces commandes dans un fichier **script** n’a pas uniquement comme intérêt de ne pas avoir à les recopier chaque fois que l’on 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 d’indiquer à 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 qu’ici, nous utilisons l’interpréteur bash, voici la ligne correspondante :
|
||||
|
||||
```
|
||||
#!/bin/bash
|
||||
```
|
||||
|
||||
-------------
|
||||
|
||||
|
||||
|
||||
### Appeler son script
|
||||
|
||||
###
|
||||
|
||||
Après la création de votre premier script, vous souhaiterez l’exécuter (on parle ici d’un 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 s’offrent à vous :
|
||||
|
||||
- Dans un terminal, la commande **sh** <nom du script>
|
||||
|
||||
- Dans un terminal, la commande **bash** <nom du script>
|
||||
|
||||
- Rendre d’abord 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 l’exécuter :
|
||||
|
||||
|
||||
|
||||
```
|
||||
./nomdufichier
|
||||
```
|
||||
|
||||
*Note : si vous placez votre script fonctionnel dans le répertoire /usr/local/bin alors vous serez en mesure de l’appeler simplement en tapant son nom puis entrée dans un terminal.*
|
||||
Reference in New Issue
Block a user