Introduction et révision

Introduction à la programmation Bash

Alex Scriven

Data Scientist

Introduction au cours

Ce cours couvre :

  • Passer de la ligne de commande à un script Bash
  • Variables et types de données en scripts Bash
  • Instructions de contrôle
  • Fonctions et automatisation de scripts
Introduction à la programmation Bash

Pourquoi le script Bash ? (Bash)

D'abord, pourquoi Bash ?

  • Bash signifie « Bourne Again Shell » (un jeu de mots)

  • Développé dans les années 80, mais encore très populaire. Shell par défaut sur plusieurs systèmes Unix et sur Mac

  • Unix fait tourner Internet ! (exécution de modèles de ML, pipelines de données)

    • AWS, Google et Microsoft offrent tous des CLI pour leurs produits
Introduction à la programmation Bash

Pourquoi le script Bash ? (le scripting)

Alors, pourquoi le script Bash ?

  • Exécuter facilement des commandes du shell (sans copier-coller chaque fois)
  • Des constructions de programmation puissantes
Introduction à la programmation Bash

Connaissances attendues

 

On s'attend à ce que vous ayez quelques bases pour ce cours.

  • Comprendre ce qu'est la ligne de commande (terminal, shell)
  • Avoir utilisé des commandes de base comme cat, grep, sed, etc.

Si vous êtes rouillé, pas d'inquiétude : on révise tout de suite !

Introduction à la programmation Bash

Rappel : commandes du shell

Quelques commandes importantes du shell :

  • (e)grep filtre l'entrée à l'aide de motifs regex
  • cat concatène le contenu des fichiers, ligne par ligne
  • tail \ head affichent seulement les -n dernières (un indicateur) lignes
  • wc compte les mots ou les lignes (avec -w ou -l)
  • sed fait des remplacements de chaînes selon un motif
Introduction à la programmation Bash

Rappel sur les REGEX

Les « regex », ou expressions régulières, sont essentielles pour le scripting Bash.

Vous devrez souvent filtrer des fichiers, des données dans des fichiers, faire correspondre des arguments, etc. Cela vaut la peine de réviser.

Pour tester vos regex, vous pouvez utiliser des sites pratiques comme regex101.com

Introduction à la programmation Bash

Un peu de pratique shell

Révisons quelques commandes du shell avec un exemple.

Considérez un fichier texte fruits.txt avec 3 lignes :

banana
apple
carrot

Si on exécute grep 'a' fruits.txt, on obtient :

banana
apple
carrot
Introduction à la programmation Bash

Un peu de pratique shell

Mais si on exécute grep 'p' fruits.txt, on obtient :

apple

Rappelez-vous que les crochets définissent un ensemble, p. ex. [eyfv]. Avec ^, c'est l'inverse (exclut ces lettres/chiffres).

Ainsi, grep '[pc]' fruits.txt renverrait :

apple
carrot
Introduction à la programmation Bash

Un peu de pratique shell

Vous avez sans doute déjà utilisé les « pipes » dans le terminal. Si le fichier contenait beaucoup de fruits, on pourrait faire sort | uniq -c

  • Le premier trie alphabétiquement, le second compte les occurrences
  • Pour les n premiers fruits, on peut enchaîner avec wc -l et head
cat new_fruits.txt | sort | uniq -c | head -n 3
  14 apple
  13 bannana
  12 carrot
Introduction à la programmation Bash

Passons à la pratique !

Introduction à la programmation Bash

Preparing Video For Download...