Alias et Fonctions Bash : La cuisine du terminal
S01:E15

Alias et Fonctions Bash : La cuisine du terminal

Episode description

Dans cet épisode, nous plongeons dans l’univers des alias et des fonctions Bash, ces outils puissants qui vous permettent d’optimiser votre usage du terminal Linux. Comment créer des raccourcis utiles ? Quand utiliser une fonction plutôt qu’un alias ? Quelles sont les bonnes pratiques à adopter ?

Alias simples temporaire

alias ll='ls -la' alias grep='grep --color=auto'

alias rm='rm -i' Demande une confirmation avant suppression alias df='df -h' Affichage des tailles en format lisible une fois l’alias tester nous pouvons l’ajouter à notre .bashrc avec la commande suivante :

  • echo "alias ll='ls -la'" >> .bashrc puis il faut le “charger” avec la commande : source ~/.bashrc

Définir une fonction Bash

ma_fonction() {
  echo "Bonjour, $1 !"
}

divers arguments utilisable

$1,$2,$3 etc : Arguments positionnels passés à la fonction

$# : Nombre total d’arguments

$@ : Liste des arguments sous forme de mots distincts|

$* : Liste sous forme d’une seule chaîne

$? : Code de retour de la dernière commande exécutée

$$ : PID du script en cours

$! : PID du dernier processus en arrière-plan

$0 : Nom du script ou de la fonction appelée

fonction mini-jeu deviner le chiffre

  local nombre=$(( RANDOM % 10 + 1 ))
  local tentative
  echo "Devinez un nombre entre 1 et 10 :"
  while true; do
    read -r tentative
    if [[ "$tentative" -eq "$nombre" ]]; then
      echo "Bravo ! Vous avez trouvé le nombre $nombre."
      break
    else
      echo "Essayez encore !"
    fi
  done
}
Download transcript (.srt)
0:00

Salut, c'est John pour ParlonsLinux. Aujourd'hui, comme vous avez pu le lire dans les titres

0:05

de l'épisode, je vais vous parler d'alias et de fonctions dans Bash, la cuisine du terminal.

0:12

Pourquoi la cuisine ? Parce que c'est quelque chose qui est universel. Tout le monde a besoin

0:20

de se nourrir et donc tout le monde a sa définition de la cuisine. Je vais donc tenter l'explication

0:28

des alias et des fonctions en imageant avec la cuisine. Ah, le terminal, un monde mystérieux

0:36

où les commandes s'enchaînent plus vite qu'un chef étoilé en plein coup de feu.

0:41

Mais avant eux, tapez toujours les mêmes commandes, c'est aussi amusant que déplucher

0:46

10 kilos de pommes de terre à la main. Heureusement, dans notre cuisine numérique, nous avons des

0:51

couteaux suisses, des alias et les fonctions. Aujourd'hui, on va voir comment ils peuvent

0:57

simplifier la vie comme un bon robot multifonction en cuisine. Sortez vos tablis, c'est parti !

1:02

Un alias, c'est un peu comme une recette rapide. Plutôt que de répéter les mêmes gestes,

1:08

on prépare tout en avance et on ne fait qu'exécuter. Du coup, ça fonctionne comment un alias ? Eh

1:15

bien, un alias, c'est une petite commande qui remplace une plus grande, comme une sauce

1:19

toute prête qui évite de tout refaire à la main. Je vais prendre par exemple l'alias

1:24

LL qui existe dans de nombreuses distributions par défaut. Cette alias est en fait la commande

1:32

ls-la. Et voilà, à chaque fois, au lieu de taper ls-la, vous tapez juste ll. Ceci caractérise

1:42

les alias. C'est un gain de temps, plus besoin de tour taper. Il y a une standardisation,

1:48

on utilise toujours les mêmes commandes sans risque d'erreur. Une facilité, comme une

1:53

bonne recette. Il faut enregistrer, on l'a toujours en mémoire. Du coup, comment et où

1:59

on définit les alias ? Là, sur cette partie-là, il y a des similitudes avec l'épisode précédent

2:09

qui étaient sur les variables d'environnement. Certaines commandes utilisées sont les mêmes

2:14

et donc si ce n'est pas encore fait, je vous invite à écouter l'épisode sur les variables

2:19

d'environnement. Mais alors, après cet avertissement, cette information donnée,

2:24

comment on définit les variables et où ? Déjà, il y a plusieurs façons de créer un alias,

2:29

comme il y a plusieurs façons de cuisiner, rapides ou bien préparées. Vous avez d'abord

2:33

les alias temporaires. Oui, le nom vous rappelle l'épisode précédent, mais restons concentrés,

2:41

comme la tomate. Voilà, la blague est faite. Et donc l'alias temporaire, c'est l'équivalent

2:47

de rajouter un peu d'épices dans votre plat. Ça change le goût, mais ça ne dure que pour

2:52

le repas. Votre recette reste à changer. Je prenais l'exemple de l'alias LL. Si on veut

2:59

définir cet alias dans le cas que vous ne l'avez pas dans votre distribution, et bien,

3:05

la commande est simple. Pour créer cet alias de manière temporaire, il suffit d'écrire

3:11

l'alias, un espace, LL, qui est donc la commande de substitution, les simples guillemets LS-LA,

3:20

on ferme le guillet. L'alias disparaît dès que vous fermez le terminal. L'alias temporaire

3:27

est toujours à utiliser afin de tester. Et également lorsque vous voulez ajouter de

3:33

nouveaux alias, ce qui revient à tester en effet. Il y a ensuite l'alias permanent. Là,

3:41

on parle de conservation. Pour garder un alias, on ajoute à notre fichier .bashrc ou bashalias.

3:47

C'est comme une bonne sauce qu'on prépare à l'avance ou qu'on achète en avance. Pour

3:52

ce faire là, la commande est assez simple. Nous allons récupérer la commande précédemment citée

4:00

qui permet de créer un alias temporaire, auquel on va ajouter en début un écho qui permet

4:08

d'écrire, suivi de double guillemets. Là, on va insérer la commande précédente, puis on va

4:15

fermer les guillemets, ajouter deux signes plus grands que et rediriger soit vers le fichier

4:22

.bashrc soit vers le fichier bashalias. Dans l'exemple de la défunt de commodité,

4:30

je vais sélectionner le .bashrc. Une fois cela fait, c'est bon. Mais si vous voulez utiliser

4:36

tout de suite cet alias sans ouvrir un nouveau terminal, il vous faut le sourcer, ce qui veut

4:42

dire utiliser la commande source, suivi de l'emplacement de votre fichier .bashrc ou bashalias.

4:50

Il y a des bonnes pratiques pour les alias. Ne pas les faire trop court notamment, parce que

4:55

c'est un peu comme appeler tous vos plats de la soupe, on ne sait plus comment. Éviter des

5:01

alias dangereux, ça c'est plus du savoir-vive je dirais. Typiquement, faire un alias RM qui

5:11

renvoirait à la commande exacte RM-RF, c'est l'équivalent de remplacer votre couteau de cuisine

5:18

par une tronçonneuse. Et bien sûr tester avant d'enregistrer ce que je vous disais au début,

5:23

utiliser des variables temporaires, vérifier que ça correspond à votre utilisation, donc si

5:30

on reprend le thème de la cuisine, si ça correspond à votre goût, et comme une nouvelle recette,

5:36

on s'assure que ça fonctionne avant de pouvoir l'aider. Très bien, nous avons vu ce qu'était

5:41

un alias, comment l'utiliser et le définir. Maintenant, on va passer à la cuisine gastronomique

5:48

du terminal, la fonction bash. Car oui, si les alias sont comme des recettes rapides,

5:54

les fonctions sont carrément des plats élaborés, avec des étapes et des ajustements possibles. Elles

6:01

permettent de créer de vrais automatismes, comme un assistant en cuisine. Comment ça fonctionne

6:06

les fonctions dans bash ? Une fonction, c'est une suite de commandes regroupées sous un seul

6:12

nom. Contrairement aux alias, elles peuvent accepter des arguments et exécuter plusieurs

6:17

commandes. Et là, on pourrait me dire, mais pourquoi utiliser des fonctions plutôt que des alias ?

6:23

Toujours, je vais reprendre des images de cuisine, les alias sont comme des plats déjà préparés,

6:30

rapides mais limités. Les fonctions, c'est comme cuisiner vous-même avec vos propres ajustements.

6:36

Également, elles permettent d'exécuter plusieurs commandes et d'utiliser des structures de contrôle,

6:42

typiquement IF, FOR ou WHILE, ce que nous verrons dans un prochain épisode.

6:48

Du coup, comment on fait pour définir une fonction et surtout où ? Les fonctions peuvent être

6:55

définies directement dans le terminal, en guise de fonctions temporaires ou dans votre bash RC,

7:02

pour des fonctions définitives. La définition d'une fonction en bash, par où commencer ?

7:11

On va garder la recette, comme une recette, elle attend un ingrédient, dans ce cas un argument,

7:18

et ensuite affiche un message ou exécute une action. Je vais vous donner l'exemple d'une

7:25

fonction, je vais vous la décrire, elle sera également en note d'épisode, afin que vous puissiez

7:32

la tester. Cette fonction, on va l'appeler mafonction, n'est-ce pas ? Et comme vous avez suivi

7:39

l'épisode sur les variables d'environnement, vous savez qu'entre ma et fonctions, il n'y a pas

7:44

d'espace mais un underscore. Donc voilà, ça c'est le nom de la fonction, la fonction s'appelle mafonction.

7:51

Ensuite on va ouvrir des parenthèses, les fermer, mettre un espace et ensuite ouvrir une accolade.

7:57

Et pour un exemple assez simple, nous allons simplement utiliser la commande d'écho, suivi

8:04

une chaîne de caractère et enfin l'argument. Donc écho, on ouvre les guillemets, bonjour,

8:12

virgule, dollar, un point d'exclamation parce que soyons fous, et on ferme les guillemets.

8:20

Ensuite, une fois cela fait, on peut fermer la collade. Qu'est-ce qui se passe dans cette

8:26

fonction ? Lorsque vous la rentrez, rien du tout. Maintenant, si vous rappelez cette commande,

8:33

cette fonction, du moins pardon, en écrivant mafonction, en mettant un espace, puis en mettant

8:41

votre prénom et en appuyant sur entrer, vous verrez que le terminal vous répond à un joyeux

8:48

bonjour, virgule, votre prénom, suivi d'un point d'exclamation. C'est un exemple assez simpliste

8:55

et qui permet juste de vous faire pratiquer. En soit, une telle fonction n'a que très peu

9:02

d'intérêt, mais on peut complexifier la chose ou voir la rendre plus utile. Il y a une liste

9:12

d'arguments disponibles dans les fonctions bash et plusieurs variables spéciales permettent

9:21

de gérer les arguments et les informations du script. $1, $2, $3, etc. correspondent aux

9:29

arguments positionnels, ce qui veut dire ce qui suit après l'appel de la fonction, premier,

9:36

deuxième, etc. Vous avez le $10 qui, lui, est le nombre total d'arguments passés à la fonction.

9:44

Vous avez le $' qui liste tous les arguments sous forme de mots distincts. Vous avez le

9:50

$' qui liste tous les arguments sous forme d'une seule chaîne de textes. Vous avez le $' qui est le

10:00

cas de retour de la dernière commande exécutée. Vous avez le $' qui donne le process ID du

10:07

script en cours d'exécution. Vous avez le $' qui est le PID du dernier processus exécuté en arrière

10:16

plan. Vous avez le $0 qui est le nom du script ou de la fonction appelée. Un exemple, toujours dans

10:24

les notes, qui est ma fonction, ne changeons pas le nom, écho, nom du script, $0, on ferme les guillemets,

10:33

on passe à la ligne, écho, premier argument, $1, on ferme les guillemets, on passe à la ligne,

10:41

écho, nombre total d'arguments, $, on ferme les guillemets, on revient à la ligne, on ferme avec

10:51

une accolade. Il y a des bonnes pratiques pour les fonctions également. Il faut ajouter des

10:56

commentaires pour comprendre ce qu'elles font. En soi, quand c'est des fonctions simples, on n'en a

11:02

pas forcément besoin, surtout si la fonction a un nom qui correspond à ce qu'elle fait, et ne pas

11:09

tout mélanger. Une fonction doit faire une seule page. Et bien sûr, testez sur votre terminal avant

11:17

d'enregistrer votre fonction en dur dans le bas chassé. En exemple d'utilisation des alias pratiques

11:23

pour gagner du temps, donc il y a le alias ll qui voit tous les fichiers comme une vue panoramique en

11:31

cuisine. Vous pouvez également faire un greppe, un alias greppe qui lui aussi selon les distributions

11:39

est déjà effectif, qui ajoute des couleurs pour mieux voir les résultats avec la commande greppe.

11:46

Vous avez un alias cls par exemple qui remplacerait la commande clear, qui permet de nettoyer le

11:54

terminal. Comme vous avez écouté l'épisode sur les raccourcis et les contrôles du terminal,

12:01

vous savez qu'au lieu de taper clear, vous pouvez très bien faire un contrôle l avec votre clavé.

12:08

Et également, afin que ce soit un petit peu plus compréhensif, dans un premier temps je vous fournirai

12:18

dans les notes une fonction qui devine un nombre, généralement appelé l'âge du capitaine,

12:23

on utilise des variables que vous avez déjà entendu si vous avez écouté l'épisode sur

12:33

les variables d'environnement. Cette fonction sera un petit peu comme un jeu où l'ordinateur

12:40

choisit un ingrédient secret et vous devez deviner lequel. Les alias et les fonctions bash sont

12:46

comme des astuces de cuisine, qui rendent le travail plus rapide et plus efficace en automatisant

12:53

certaines tâches. Vous gagnez du temps à éviter les erreurs, expérimenter, tester et

12:59

troubler vos propres commandes. A bientôt pour Parlons Linux à faire.