Retrouvez-nous le 14 mai au Google Cloud Summit à l'Accor Arena - Paris !

logo saagie red

Une introduction à Bash pour vos développer vos scripts

Bash est un interprète de commandes aussi connu en anglais comme shell, développé en 1989 en langage C par Brian Fox. Il s’agissait à l’époque d’une alternative avec quelques améliorations de SH (Bourne Shell). De nos jours, Bash peut tourner sur plusieurs plateformes : Windows, MacOS et bien sûr Linux.

Il existe bien d’autres interprètes de commandes ; les plus connus sont :

  • csh : C Shell créée par Bill Joy, 1978
  • tcsh : TENEX C Shell développé par Ken Greer, 1981
  • fish : Shell interactive publié le 13 février 2005 par Axel Liljencrantz
  • zsh : Z Shell développé par Paul Falstad en 1990
  • ksh: KornShell crée par David Korn en 1983

Chaque shell a ses particularités, notamment différentes instructions et commandes pour développer des scripts.

Les éléments de base de Bash

Entrée / sortie

Une entrée se produit quand on introduit une commande et on appuie sur « entrée » ou quand un programme exécute un ordre. Une sortie est le résultat produit à l’exécution de cette commande.

Option

Il y a des options pour changer le comportement des commandes. Vous pouvez les identifier, car elles ont un tiret « – » devant une lettre. Par exemple « ls -l » montre une liste de tous les dossiers et des archives avec un ensemble d’informations complémentaires comme les permissions, l’utilisateur propriétaire, la date de modification, etc.

Fichiers caches

Les fichiers cachés portent un point « . » comme préfixe au nom du fichier et ils n’apparaîtront pas dans les listes de fichiers par défaut.

Alias du dossier

Les alias sont comme des raccourcis que la shell nous fournit pour accéder à certaines commandes ou dossiers. Il y en a deux très importants :

  • . : Il s’agit du répertoire actuel. Par exemple, « ls . » nous donne tous les fichiers et dossiers du répertoire actuel.
  • .. : Il s’agit du niveau au-dessus dans la hiérarchie
  • / : Racine du système

Chemin absolu et relatif

Un chemin absolu est l’adresse complète d’un fichier à l’intérieur d’une hiérarchie du système de fichiers. Par exemple, pour le fichier « image.jpg » un chemin absolu peut être : « /home/user/Peter/images/image.jpg ».

Les chemins relatifs contiennent uniquement une partie du chemin et font référence à l’emplacement actuel. Par exemple si on est actuellement placé dans le dossier « Peter », alors le chemin vers le fichier « image.jpg » sera « ./images/image.jpg »

Travailler avec Bash

Obtenir le chemin du répertoire actuel

Pour savoir où nous sommes situés actuellement, il suffit d’exécuter la commande « pwd », qui vient de l’anglais « print name of current working directory ».

Créer un dossier

Avec la commande « mkdir » en donnant le nom du dossier, par exemple « mkdir nouveau_dossier ». Vous devrez donner un nom qui ne commence pas par des caractères spéciaux.

Se déplacer entre dossiers

Pour vous se déplacer entre dossiers, vous disposez de la commande « cd » (change directory). Ici, vous pourrez utiliser les alias décrits ci-dessus : « .. » et « / » :

  • pour aller à la racine du système de fichiers : cd /
  • pour monter d’un niveau dans la hiérarchie : cd..

Renommer

Pour changer le nom d’un fichier ou d’un dossier, il suffit d’utiliser la commande « mv » suivie du fichier ou du dossier que l’on veut renommer et du nouveau nom. Vous pourrez utiliser aussi les alias.

Déplacer

La commande « mv » peut être utilisée également pour déplacer un fichier ou un dossier. Si vous indiquez uniquement l’objet à déplacer et la destination, sans ajouter un nouveau nom, l’objet sera simplement déplacé à la destination.

Copier

En ce qui concerne la copie de fichiers, vous disposez de la commande « cp ». Vous indiquez le fichier et le chemin de la copie. Vous pouvez ajouter l’option -r pour copier un dossier qui est vide.

Créer un fichier vide

La commande « touch » crée un fichier vide à l’emplacement actuel.

Montrer l'information d'un fichier

Si vous voulez lire un fichier, vous pouvez utiliser la commande « cat », par exemple :

cat /etc/profile

Le traitement de texte avec Bash

Afficher le texte

Bash vous permet de montrer une phrase ou un texte grâce à la commande « echo ». Par exemple :

echo « Hello World »

affichera :

« Hello World »

Créer un fichier avec du texte

En utilisant la commande « echo », vous pourrez envoyer du texte sur un fichier. Si ce fichier n’existe pas, il sera créé :

echo « Hello World » > nouveau_fichier

Si vous souhaitez plutôt ajouter du texte à la fin d’un fichier existant qui contient déjà du texte, vous ferez :

echo « Hello World » >> fichier

Créer un fichier et ajouter du texte directement

Vous pouvez créer un nouveau fichier avec la commande « cat » et ensuite taper du texte qui sera automatiquement ajouté à l’intérieur du fichier. Pour sortir du mode saisie, vous pouvez appuyer sur les touches CTRL+D.

Les variables dans Bash

Déclarer des variables

Rien de plus simple, vous choisissez le nom de la variable et l’affectez à la valeur. Quelques exemples :

entier=2

f=1.2

phrase=« ceci est une phrase »

b=True

Utiliser les variables

Pour se servir des variables, vous pouvez mettre le symbole « $ » devant le nom de la variable et il sera remplacé par la valeur de la variable. Exemple :

echo « Voilà ma phrase : $phrase »

« Voilà ma phrase : ceci est une phrase »

Faire des opérations arithmétiques

Pour indiquer au shell que vous souhaitez faire une opération arithmétique, vous devez écrire l’opération entre deux parenthèses précédée du symbole « $ », c’est-à-dire :

$((VOTRE OPÉRATION))