• 10 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 22/11/2023

Lancez des commandes sous Bash

Passons à la pratique : nous allons explorer les différentes fonctionnalités de Bash, directement depuis un terminal de commandes.

Utilisez le prompt et consultez ses variables 

Une fois passées les étapes de connexion/authentification via une console ou un terminal, vous vous retrouvez devant cette interface assez austère qui vous présente un prompt :

Capture d'écran qui montre le prompt, on voit sur cet écran noir une première ligne où figure le nom de l'utilisateur qui taper une commande.

Cette interface, le prompt, affiche déjà quelques informations intéressantes. Sur l'illustration ci-dessus par exemple, on voit que :

  • je suis connecté avec l'utilisateur seb sur un équipement dont le "hostname" est thor,

  • je me situe actuellement dans le répertoire personnel de l'utilisateur, symbolisé par le caractère~.

Le dernier caractère$est le "delimiter". Il n'est pas innocent non plus : il m'indique ici que je suis un utilisateur non privilégié.

Avec le compte root, le caractère serait un#.

Enfin, en fonction des distributions, un curseur, éventuellement de couleur et/ou clignotant, vous indique la position actuelle de la saisie.

Toute cette configuration n'est pas magique. Elle est stockée dans un fichier et dans une variable gérée par le shell Bash. En l'occurrence, cette variable est nommée$PS1.

Je vous propose de consulter et de modifier cette variable pour adapter votre prompt. Et puis on en profite au passage pour s’intéresser à une seconde variable$SHELL,  qui vous dit sur quel shell vous êtes connecté. C’est parti ! 

Listez le contenu d’un répertoire

Sans vous en rendre compte, vous venez de lancer 2 commandes différentes :echoet/bin/bash

La commande echo vous permet d'afficher le contenu de deux variables de bash :$PS1et$SHELL.

Le nom des variables à afficher fut écrit directement à la suite de la commande sous la forme d'arguments.

Dans le cas de la seconde/bin/bash, vous avez lancé l'interpréteur de commandes Bash en lui passant une option-–version permettant simplement d'afficher les informations concernant ce programme.

On peut notamment remarquer que les commandes doivent être définies telles que :

  • le nom de la commande doit comporter entre 2 et 9 caractères 

  • le nom de la commande doit comporter uniquement des caractères minuscules et des chiffres 

  • les options de la commande doivent être définies avec un seul caractère alphanumérique 

  • les options doivent être précédées du caractère - 

  • etc.

Mais ce document précise aussi le comportement général des commandes d’un shell.

Je vous propose de le mettre en évidence dans le screencast ci-dessous, avec notamment l’utilisation de la commande ls qui permet de lister le contenu d’un répertoire : 

Comprenez les différents types de commandes Linux

Maintenant que vous connaissez la structure générale des commandes Bash, je vous propose de détailler les deux types de commandes disponibles sur le système.

  • Les commandes internes : ces commandes sont livrées avec l'interpréteur de commandes directement, comme une primitive du shell. Elles sont disponibles à tout moment par l'administrateur du système. Cependant, il est probable que toutes ne soient pas forcément intégrées à l’interpréteur de commandes que vous allez utiliser. Il est également possible que leurs options ne soient pas toutes identiques non plus.

  • Les commandes externes : ces commandes sont externes à l'interpréteur de commandes, c'est-à-dire qu'elles ne sont pas fournies par le shell. Elles sont généralement présentes sur le système sous la forme d'un fichier compilé binaire ou d'un fichier disposant des droits d'exécution (comme un script Perl par exemple).

Je vous propose d’étudier ces deux types de commandes. Vous découvrirez les nouvelles commandes type ,  cd ,  id  et file, et au passage on en profite pour apprendre à chaîner les commandes. Sympa non ? 

Configurez l’accès aux commandes

En reprenant l'un des derniers exemples :

seb@thor:~$ type id
id is /usr/bin/id

…vous pourriez vous poser une question :

Si la commande id est externe au shell, comment Bash fait-il pour savoir que id est le fichier/usr/bin/id? Autrement dit, comment le shell Bash fait-il pour accéder aux commandes externes ?

La réponse se situe dans une nouvelle variable d'environnement :PATH.

Je vous propose d’étudier la variable PATH. Nous verrons comment afficher et interpréter son contenu, ce qui nous permettra de découvrir trois répertoires importants sous Linux : 

  1. /usr/local/bin

  2. /usr/bin

  3. /bin

Allez, go !

Consultez la documentation des commandes sous Linux 

L'administrateur Linux dispose d'une panoplie assez conséquente de commandes en tout genre pouvant l'aider dans ses actions. Et même après plus de 25 ans de Linux derrière moi, je ne connais pas le fonctionnement de toutes ces commandes par cœur.

Heureusement, la qualité de la documentation Linux est l'une de ses grandes forces. Et les sources d’information sont multiples également.

Bien entendu, le Web et les moteurs de recherche restent vos amis lorsque vous bloquez sur une commande.

Dans la majorité des cas, il vous suffit de saisir le nom de la commande et votre objectif pour obtenir une liste de résultats probants.

L'illustration ci-dessous montre les 3 premiers résultats du moteur DuckDuckGo concernant l'affichage du groupe d'un compte avec la commande id.
Résultats sur l'affichage du groupe d'un compte avec la commande id

L'avantage principal de cette documentation réside dans le fait qu'elle soit accessible directement depuis le terminal, sans accès web.

Bon, il est vrai que le terminal n'est pas l'interface idéale pour consulter de la documentation, mais avec un peu de pratique, vous découvrirez les bonnes méthodes pour l'exploiter correctement.

Dans le screencast ci-dessous, je vous propose de consulter la documentation native des deux types de commandes :

  1. internes

  2. externes

En effet, en fonction de leur type, la documentation des commandes n’est pas accessible de la même manière. Et on en profite aussi pour découvrir ensemble le manuel officiel des systèmes Unix/Linux et la très célèbre commande qui l’accompagne : man.

On y va ?

Profitez des fonctionnalités avancées de Bash 

Vous voilà déjà super calé sur le terminal et les commandes du shell ! Dans cette dernière section, je vous propose de pousser le bouchon un peu plus loin…

Je vous présente, dans ce screencast, deux fonctionnalités avancées de Bash qui participent aussi à faire de lui le shell de référence sous Linux. Et croyez-moi, vous allez très rapidement adopter ces fonctionnalités car elles sont très pratiques pour optimiser votre utilisation des commandes !

Ces deux fonctionnalités sont très intéressantes, mais leur fonctionnement est lié au terminal ou à la session courante.

Pour conserver les données historiques ou un alias entre différents terminaux ou différentes sessions, il est nécessaire d'intervenir sur quelques fichiers de configuration, et pour cela je vous donne rendez-vous dans le prochain chapitre !

En résumé

  • La composition d’un prompt Linux et la variable$PS1(qui en définit chaque élément) n’ont plus de secret pour vous

  • Vous avez compris la structure des commandes sous Linux, avec leurs options et leurs arguments

  • Vous savez identifier les commandes internes et les commandes externes

  • Vous savez adresser une commande avec la variable$PATH

  • Vous savez lire plusieurs formes de documentation sous Linux 

Vous êtes désormais prêt à exécuter des instructions d'administration ! Je vous propose maintenant de tester vos connaissances. Dans la partie suivante, nous allons nous intéresser aux fichiers et notamment à la description de l'arborescence du système. Vous me suivez ?

Exemple de certificat de réussite
Exemple de certificat de réussite