Files
1ereNSI/architecture/os/BASH.md
2022-04-26 23:51:41 +02:00

6.9 KiB
Raw Blame History

Les systèmes d'exploitations Linux étant notamment dans le domaine des serveurs informatique - en opposition aux machines dites "clients" - il est courant de n'utiliser qu'un seul outil pour les contrôler : Bash, l'interprète de commande.

Contrairement aux systèmes "user-friendly", comprendre, simple d'utilisation, les machines sous Linux ont la réputation d'être réservées aux utilisateurs et utilisatrices qui maîtrisent leur sujet.

Heureusement pour nous, ça n'est pas aussi compliqué que cela en a l'air. Dans l'activité Terminus que nous avions faite, nous avons appris certaines commandes linux, dans le but de progresser dans le jeu. Ici, cela sera pareil, l'interface de jeu en moins évidemment ;)

Un peu de culture

Sous windows, macOS ou GNU/Linux, chaque système propose son propre interpreteur de commande :

  • BASH (Bourne Again Shell)

    • principalement sous linux et macOS , mais disponible sous windows.
  • SHELL

    • Le premier interpreteur, qui date de 1971
    • 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
ls Liste le contenu du répertoire courant dans lequel vous vous situez.
cp Copie des fichiers ou des dossiers.
mv Déplace ou renomme des fichiers ou des dossiers.
rm Supprime un ou plusieurs fichiers.
cd Se déplace dans l'arborescence (Change de dossier courant)
cat Affiche le contenu d'un fichier.
touch Crée un fichier vide.
mkdir Crée un dossier vide
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

  • Dans un terminal, la commande bash

  • Rendre dabord exécutable ce fichier

  • chmod 555 (donne les droits de lecture/exécution à tout le monde)

  • chmod +rx (donne les droits de lecture et d'exécution à tout le monde)

  • chmod u+rx (donne les droits de lecture et d'exécution seulement à son propriétaire)

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.

Auteur : Florian Mathieu

Licence CC BY NC

Licence Creative Commons
Ce cours est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas dUtilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.