Certification LPI : 4 fonctionnalités à connaître pour démystifier le bash sous Linux

Dans ce nouvel article, nous verrons ensemble 4 fonctionnalités de bases à connaître pour bien comprendre le fonctionnement du shell bash.

Si tu es débutant sous Linux et la ligne de commande te fait peur, sache que c’est un bon début de maitriser ses 4 fonctions du bash dont je vais te parler dans cet article.

Cet article contient également une mine de réponses à certaines questions auxquelles tu seras confronté le jour de l’examen, si tu t’intéresses à la certification Linux LPI.

 

C’est quoi un Bash ?

Bash, ou Bourne Again Shell, est un shell de ligne de commande très populaire disponible sur les systèmes Linux. De nombreuses distributions utilisent Bash comme interpréteur de ligne de commande par défaut.

En fait, les Mac utilisent aussi Bash comme shell par défaut, de même que Windows utilisant le sous-système Windows pour Linux. Donc, c’est une bonne idée d’en apprendre un peu plus sur Bash même si tu préfères utiliser plus tard un shell différent.

 

Qu’est qu’un shell ?

Un shell est un environnement dans lequel un utilisateur peut interagir avec un système en émettant des commandes, en lisant des sorties, etc.

La plupart des shell offrent des commandes et des fonctionnalités au-delà de la possibilité d’exécuter des programmes.

Lorsque nous exécutons un programme comme « ls » ou « ping », nous utilisons des commandes qui existent sur le système et nous utilisons le shell pour indiquer au système de les exécuter.

Dans de nombreux cas, notre interaction avec la ligne de commande ne va pas bien au-delà de l’envoi de commandes et d’arguments d’une manière qui fonctionnerait dans n’importe quel shell.

 

Quelle est la différence entre bash et les autres types de shell ?

Ce que bash apporte à la table est une série de raccourcis pratiques et d’autres fonctionnalités qui peuvent rendre le travail avec ces commandes plus facile et moins répétitif.

Tu peux utiliser des raccourcis clavier pour compléter automatiquement les commandes ou pour faire une recherche dans l’historique des commandes.

Tu as la possibilité d’utiliser l’expansion pour représenter plusieurs valeurs dans une seule commande et afficher également la sortie de plusieurs fichiers en ligne de commande pour des fins de journalisation.

En plus de cela, tu peux aussi utiliser des scripts bash pour combiner des commandes dans des programmes plus complexes.

 

1. Autocomplétion

Commençons par l’une des premières fonctionnalités du Bash à savoir la complétion automatique ou l’autocomplétion des commandes.

Lorsque tu tapes une commande dans le terminal, tu peux appuyer sur la touche de tabulation pour que le bash essaie de compléter automatiquement le nom de la commande ou te fournisse des options à utiliser avec les commandes

L’autocomplétion est un peu intelligente, mais elle ne peut pas lire dans ton esprit, elle réduit les possibilités.

Par exemple, en tapant le caractère « l » ici, puis en appuyant sur la tabulation, cela va essayer de compléter automatiquement une commande qui commence par « l ».

Quand tu appuies sur la touche de tabulation une première fois, tu entends un petit bruit de ping, mais rien ne se passe, cela signifie que le bash n’a pas vraiment une idée de ce que tu essaies d’écrire.

Quand, tu presse à nouveau sur la tabulation, on te demande maintenant si tu souhaites voir toutes les 118 possibilités.

 

certification linux fonction autocompletion linux

 

Ce n’est pas étonnant que bash ne sache pas ce que tu veux. Appuie sur « y » pour voir les noms de toutes les commandes de mon système disponibles dans le chemin qui commence par la lettre « ». Tu peux utiliser la barre d’espace pour faire défiler ces pages ici et à la fin, appuie sur la touche « » pour sortir.

 

certification linux liste commande l

 

Donc ce n’est pas très utile avec autant de commandes, mais il peut être intéressant de naviguer et de voir des commandes que tu ne connais pas.

Complète maintenant ta commande en écrivant « ls » et puis appuie à nouveau sur tabulation, et là tu peux remarquer qu’il existe quelques d’autres commandes qui commencent par « ls ».

 

certification linux liste commande ls

 

Ces commandes sont utiles et très intéressantes à explorer mais pour l’instant en appuyant sur « Espace » puis tapant de nouveau sur tabulation pour que le bash te montre maintenant une liste de fichiers du répertoire courant. Il sait que la commande « ls » à besoin comme argument d’un fichier ou dossier dont il t’aide via l’autocomplétion.

 

certification linux liste dossiers fichiers repertoire courant

 

Si tu souhaites par exemple regarder le contenu du ton dossier « /Modèles », tu pourrais entrer « M » puis tabulation et l’autocomplétion t’affiche deux choix, ajoute « o » puis tabulation encore et maintenant il complétera automatiquement le chemin vers tes « /Modèles ».

 

contenu repertoire modeles ls

 

C’est vraiment utile pour les longs chemins ou les noms de fichiers très longs que tu ne souhaites pas taper mot à mot au clavier au risque de faire des erreurs.

 

2. L’expansion

La deuxième fonctionnalité utile de bash dont je souhaite te parler est l’expansion. L’expansion est une façon de représenter les valeurs qui seront remplacées dans une commande.

Il en existe quelques types d’expansions différents mais observons le cas de l’expansion des accolades. Tu peux utiliser des accolades pour encapsuler différentes valeurs que tu souhaites utiliser après les autres.

Par exemple, utilise la commande « echo » qui te permet d’afficher du texte à la sortie standard, puis entre « p », suivi d’une accolade ouvrante « { », puis de quelques lettres comme « a, e, i » séparés par une virgule, puis termine avec une accolade fermante « } » suivi du mot « pa », puis appuie sur « Entrée ».

Et comme résultat, le bash a terminé chaque chaîne en utilisant l’une des valeurs dans les accolades.

 

certification_linux_expansion_bash_linux_1

 

Les virgules ici sont utiles pour les valeurs individuelles mais tu peux également utiliser deux points pour indiquer une plage à la place des valeurs individuelles. Par exemple en entrant « echo p{a..z}pa » pour indiquer la plage de toutes les lettres minuscules de « a » à « z ».

 

certification linux expansion bash linux 2

 

Cela fonctionne également dans le sens inversé en tapant « echo p{z..a}pa », et voilà le résultat.

 

certification linux expansion bash linux 3

 

De même que les lettres, les nombres fonctionnent aussi, par exemple, en tapant « echo p{0..10}pa ».

 

certification linux expansion bash linux 4

 

Tu peux même utiliser un deuxième jeu de points pour spécifier un intervalle. Par exemple, si tu entres « echo {0..100..2} », ce qui t’affiche une série de nombre de 0 à 100 par intervalle de 2.

 

certification linux expansion bash linux 5

 

3. La substitution

La troisième fonctionnalité très utile du bash qu’on rencontre souvent lors de la certification LPI dans les scripts est la substitution de commande qui prend la sortie d’une commande et la renvoie sous forme de texte.

Imagine tu souhaites tu écris la phrase suivante « ‘’Il rentre du voyage ce’’ date ‘’très tôt le matin » puis « Entrée ». Mais tu souhaites avoir la date du jour comme retour de la commande « date » et non le mot « date ».

 

certification linux substitution bash linux 1

 

Pour y parvenir, tu devras mettra ta commande « date » entre parenthèses le tout précédé du signe dollar, ce qui donnera « ‘’Il rentre du voyage ce’’ $(date) ‘’très tôt le matin » puis « Entrée ».

 

certification linux substitution bash linux 2

 

Et là tu as la bonne valeur de retour de la commande « date » via la substitution.

 

4. L’historique

La quatrième fonctionnalité très utile du bash que je souhaite partager avec toi dans cet article est la possibilité d’afficher les commandes que tu as déjà utilisées. Ceci est extrêmement utile si tu dois exécuter les mêmes commandes encore et encore avec peut-être quelques modifications

Pour ce faire, tu peux appuyer sur la flèche vers le haut ou vers le bas dans le terminal et tu pourras naviguer entre les commandes déjà tapées.

Rappelle par exemple cette commande précédente « echo {0..100..2} »,  et change l’intervalle de « » à « 5 », dont tu n’as plus besoin de retaper toute la commande mais juste de la rappeler puis d’effectuer une petite modification.

En appuyant sur la combinaison « Ctrl+R », entre une chaîne de caractère, et le bash va t’indiquer des commandes qui correspondent à cette chaîne entrée appuie encore sur « Ctrl+R » pour faire défiler les autres commandes qui correspondent.

Tu peux sortir en tapant sur « Ctrl+C ».

Jettes un œil sur l’historique de tes commandes tapées dans le terminal via la commande « history » et tu peux rappeler une commande particulière de cette liste avec le point d’exclamation suivi du numéro de la commande.

Par exemple, tu peux rappeler la commande X dont le numéro est Y est tapant « !Y ».

 

commande history bash linux

 

L’une de mes syntaxes préférées est le double point d’exclamation qui rappelle la commande précédente. Entre « !! » puis entrée ceci t’exécute ta dernière commande.

Ceci est extrêmement utile car je l’utilise au quotidien lorsque j’oublie par exemple d’écrire « sudo » devant une commande qui a besoin des droits d’administrateur pour s’exécuter.

Imaginons que tu souhaites connaitre le statut de ton pare-feu, entre la commande « ufw status ».

Et là tu reçois une notification t’indiquant que tu as besoin d’être root pour exécuter cela, au lieu de réécrire toute la commande en utilisant sudo, tu peux juste écrire « sudo » suivi « !! » (des deux points d’exclamations) et ça aura le même effet, puis entre ton mot de passe.

 

commande history bash linux 2

 

Il y a des choses plus avancées que tu peux faire avec votre l’historique bash mais cela devrait t’aider à démarrer.

 

Partage cette compétence et laisse des commentaires au besoin :

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *