Notes et transcriptions du cours “Administrez un système Linux” disponible sur la plateforme Openclassrooms.
Passons à la pratique : nous allons explorer les différentes fonctionnalités de Bash, directement depuis un terminal de commandes.
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 :
Cette interface, le prompt, affiche déjà quelques informations intéressantes (avant le curseur). Sur l'illustration ci-dessus par exemple, on voit que :
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 (~/.bashrc) 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é.
Sans vous en rendre compte, vous venez de lancer 2 commandes différentes :echo
et/bin/bash
.
La commande echo vous permet d'afficher le contenu de deux variables de bash :$PS1
et $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 :
Mais ce document précise aussi le comportement général des commandes d’un shell.
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.
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.
# type indique le type de la commande en argument type echo # file retourne des informations concernant un ou des fichiers file /usr/bin/bash # Cumuler des commandes cd ~ && file * # Relever des informations concernant le compte utilisateur id
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. Pour afficher son contenu
echo $PATH
La variable PATH contient une liste de répertoires séparés par :
.
Si la commande tapée par l'utilisateur n'existe pas dans le répertoire courant, le shell va séquentiellement vérifier si un fichier exécutable existe dans l'ensemble des répertoires du PATH.
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'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.
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.
Pour consulter la documentation native des deux types de commandes :
# commandes internes help echo # commandes externes id --help man id
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…
Avec 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.
history
qui permet de rechercher, d'afficher et de rejouer les commandes exécutées par le passé ;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 (~/.bashrc).
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 ?