2.2 Leçon 1
Certification : |
Linux Essentials |
---|---|
Version : |
1.6 |
Thème : |
2 Trouver son Chemin sur un Système Linux |
Objectif : |
2.2 Utilisation de la Ligne de Commande pour Obtenir de l’Aide |
Leçon : |
1 sur 1 |
Introduction
La ligne de commande est un outil très complexe. Chaque commande a ses propres options uniques, c’est pourquoi la documentation est essentielle lorsque l’on travaille avec un système Linux. Outre le répertoire /usr/share/doc/
, qui contient la majeure partie de la documentation, divers autres outils fournissent des informations sur l’utilisation des commandes Linux. Ce chapitre se concentre sur les méthodes pour accéder à cette documentation, dans le but d’obtenir de l’aide.
Il existe une multitude de méthodes pour obtenir de l’aide dans la ligne de commande de Linux. man
, help
et info
ne sont que quelques-unes d’entre elles. Pour Linux Essentials, nous nous concentrerons sur man
et info
car ce sont les outils les plus utilisés pour obtenir de l’aide.
Un autre sujet de ce chapitre sera la localisation des fichiers. Vous travaillerez principalement avec la commande locate
.
Obtenir de l’Aide sur la Ligne de Commande
Aide Intégrée
Lorsqu’elles sont lancées avec le paramètre --help
, la plupart des commandes affichent quelques brèves instructions sur leur utilisation. Bien que toutes les commandes ne fournissent pas ce commutateur, c’est tout de même une bonne première tentative pour en savoir plus sur les paramètres d’une commande. Sachez que les instructions de --help
sont souvent assez brèves par rapport aux autres sources de documentation dont nous parlerons dans la suite de cette leçon.
Les Pages Man
La plupart des commandes fournissent une page de manuel ou une page "man". Cette documentation est généralement installée avec le logiciel et peut être consultée avec la commande man
. La commande dont la page de manuel doit être affichée est ajoutée à man
en tant qu’argument :
$ man mkdir
Cette commande ouvre la page de manuel de mkdir
. Vous pouvez utiliser les touches flèches haut et bas ou la barre d’espace pour naviguer dans la page de manuel. Pour quitter la page de manuel, appuyez sur Q.
Chaque page de manuel est divisée en un maximum de 11 sections, bien que beaucoup de ces sections soient facultatives :
Section | Description |
---|---|
NAME |
Nom de la commande et brève description |
SYNOPSIS |
Description de la syntaxe de la commande |
DESCRIPTION |
Description des effets de la commande |
OPTIONS |
Options disponibles |
ARGUMENTS |
Arguments disponibles |
FILES |
Fichiers auxiliaires |
EXAMPLES |
Exemples d’utilisation de la ligne de commande |
SEE ALSO |
Références croisées aux sujets connexes |
DIAGNOSTICS |
Messages d’Avertissement (Warning) et d’Erreur (Error) |
COPYRIGHT |
Auteur(s) de la commande |
BUGS |
Toutes les limitations connues de la commande |
En pratique, la plupart des pages de manuel ne contiennent pas toutes ces parties.
Les pages de manuel sont organisées en huit catégories, numérotées de 1 à 8 :
Catégorie | Description |
---|---|
1 |
Commande utilisateur |
2 |
Appels système |
3 |
Fonctions de la bibliothèque C |
4 |
Pilotes et fichiers de périphériques |
5 |
Fichiers de configuration et formats de fichiers |
6 |
Jeux |
7 |
Divers |
8 |
Commandes de l’administrateur système |
9 |
Fonctions du noyau (non standard) |
Chaque page de manuel appartient à une section précise. Cependant, plusieurs sections peuvent contenir des pages de manuel portant le même nom. Prenons l’exemple de la commande passwd
. Cette commande peut être utilisée pour modifier le mot de passe d’un utilisateur. Puisque passwd
est une commande utilisateur, sa page de manuel se trouve dans la section 1. En plus de la commande passwd
, le fichier de base de données des mots de passe /etc/passwd
possède également une page de manuel qui s’appelle passwd
. Comme ce fichier est un fichier de configuration, il appartient à la section 5. Lorsqu’on se réfère à une page de manuel, la catégorie est souvent ajoutée au nom de la page de manuel, comme dans passwd(1)
ou passwd(5)
pour identifier la page de manuel respective.
Par défaut, man passwd
affiche la première page de manuel disponible, dans ce cas passwd(1)
. La catégorie de la page de manuel souhaitée peut être spécifiée dans une commande telle que man 1 passwd
ou man 5 passwd
.
Nous avons déjà discuté de la manière de naviguer dans une page de manuel et de revenir à la ligne de commande. En interne, man
utilise la commande less
pour afficher le contenu de la page de manuel. less
vous permet de rechercher du texte à l’intérieur d’une page de manuel. Pour rechercher le mot linux
, vous pouvez simplement utiliser /linux
pour une recherche en avant à partir du point où vous êtes sur la page, ou ?linux
pour lancer une recherche en arrière. Cette action met en évidence tous les résultats correspondants et déplace la page vers la première correspondance mise en évidence. Dans les deux cas, vous pouvez taper N pour passer au résultat suivant. Pour obtenir plus d’informations sur ces fonctions supplémentaires, appuyez sur H et un menu contenant toutes les informations s’affichera.
Les Pages Info
Les pages d’information sont un autre outil qui vous aidera à travailler avec le système Linux. Les pages d’information sont généralement plus détaillées que les pages de manuel et sont formatées en hypertexte, comme les pages web sur Internet.
Les pages d’information peuvent être affichées de cette manière :
$ info mkdir
Pour chaque page d’information, info
lit un fichier d’information qui est structuré en nœuds individuels au sein d’une arborescence. Chaque nœud contient un sujet simple et la commande info
contient des hyperliens qui peuvent vous aider à passer de l’un à l’autre. Vous pouvez accéder au lien en appuyant sur la touche Entrée tout en plaçant le curseur sur l’un des astérisques en tête.
Tout comme man
, l’outil info
comporte également des commandes de navigation dans les pages. Vous pouvez en savoir plus sur ces commandes en appuyant sur ? quand vous êtes sur une page info. Ces outils vous aideront à naviguer plus facilement sur la page et à comprendre comment accéder aux nœuds et vous déplacer dans l’arborescence des nœuds.
Le Répertoire /usr/share/doc/
Comme mentionné précédemment, le répertoire /usr/share/doc/
stocke la plupart des documents relatifs aux commandes utilisées par le système. Ce répertoire contient un dossier pour la plupart des paquets installés sur le système. Le nom de ce dossier est généralement le nom du paquet et parfois sa version. Ces dossiers comprennent un fichier README
ou readme.txt
qui contient la documentation de base du paquet. Outre le fichier README
, le dossier peut également contenir d’autres fichiers de documentation, tels que le changelog qui comprend l’historique du programme en détail, ou des exemples de fichiers de configuration pour le paquet spécifique.
Les informations contenues dans le fichier README
varient d’un paquet à l’autre. Tous les fichiers sont écrits en texte simple, ils peuvent donc être lus avec votre éditeur de texte préféré. Le nombre exact et les types de fichiers dépendent du paquet. Consultez certains des dossiers pour avoir un aperçu de leur contenu.
Localisation des fichiers
La Commande locate
Un système Linux est construit à partir de nombreux répertoires et fichiers. Linux dispose de nombreux outils pour localiser un fichier particulier au sein d’un système. Le plus rapide est la commande locate
.
locate
recherche dans une base de données et affiche ensuite chaque nom qui contient la chaîne de caractères donnée en argument:
$ locate note /lib/udev/keymaps/zepto-znote /usr/bin/zipnote /usr/share/doc/initramfs-tools/maintainer-notes.html /usr/share/man/man1/zipnote.1.gz
La commande locate
permet d’utiliser des jokers et des expressions régulières, de sorte que la chaîne de caractères recherchée ne doit pas nécessairement être équivalente au nom complet du fichier souhaité. Vous en apprendrez plus sur les expressions régulières dans un chapitre ultérieur.
Par défaut, locate
se comporte comme si le motif était entouré d’astérisques, donc locate PATTERN
est la même chose que locate *PATTERN*
. Cela vous permet de ne fournir que des sous-chaînes au lieu du nom de fichier exact. Vous pouvez modifier ce comportement avec les différentes options que vous trouverez expliquées dans la page de manuel de locate
.
Parce que locate
fait une lecture dans d’une base de données, il se peut que vous ne trouviez pas un fichier que vous avez récemment créé. La base de données est gérée par un programme appelé updatedb
. Il est généralement exécuté périodiquement, mais si vous avez des privilèges de root et que vous avez besoin que la base de données soit mise à jour immédiatement, vous pouvez exécuter vous-même la commande updatedb
à tout moment.
La Commande find
find
est un autre outil très populaire qui est utilisé pour la recherche de fichiers. Cette commande a une approche différente de celle de la commande locate
. La commande find
recherche récursivement dans une arborescence de répertoires, y compris ses sous-répertoires. find
effectue une telle recherche à chaque appel, elle ne maintient pas de base de données comme locate
. Tout comme locate
, find
supporte également les jokers et les expressions régulières.
find
nécessite au moins le chemin où il doit chercher comme argument. En outre, des expressions peuvent être ajoutées pour fournir des critères de filtrage des fichiers à afficher. Un exemple est l’expression -name
, qui recherche des fichiers avec un nom spécifique :
~$ cd Downloads ~/Downloads $ find . -name thesis.pdf ./thesis.pdf ~/Downloads $ find ~ -name thesis.pdf /home/carol/Downloads/thesis.pdf
La première commande find
recherche le fichier dans le répertoire courant Downloads
, tandis que la seconde recherche le fichier dans le répertoire personnel de l’utilisateur.
La commande find
est très complexe, c’est pourquoi elle ne sera pas couverte par l’examen Linux Essentials. Cependant, c’est un outil puissant qui est particulièrement pratique.
Exercices Guidés
-
Utilisez la commande
man
pour savoir ce que fait chaque commande :Commande Description ls
Afficher le contenu d’un répertoire.
cat
cut
cd
cp
mv
mkdir
touch
wc
passwd
rm
rmdir
more
less
whereis
head
tail
sort
tr
chmod
grep
-
Ouvrez la page info de
ls
et identifiez le MENU.-
Quelles options y avez-vous ?
-
Trouvez l’option qui vous permet de trier la sortie par heure de modification.
-
-
Affichez le chemin d’accès aux 3 premiers fichiers
README
. Utilisez la commandeman
pour identifier la bonne option delocate
. -
Créez un fichier appelé
test
dans votre répertoire personnel. Trouvez son chemin absolu avec la commandelocate
. -
L’avez-vous trouvé immédiatement ? Qu’avez-vous dû faire pour que
locate
puisse le trouver ? -
Recherchez le fichier test que vous avez précédemment créé, à l’aide de la commande
find
. Quelle syntaxe avez-vous utilisée et quel est son chemin absolu ?
Exercices d’Exploration
-
Il y a une commande dans le tableau ci-dessus qui n’a pas de page
man
. Laquelle est-ce et pourquoi pensez-vous que la commande n’a pas de page de manuel ? -
En utilisant les commandes du tableau ci-dessus, créez l’arborescence de fichiers suivante. Les noms qui commencent par une majuscule sont des répertoires et ceux qui sont en minuscules sont des fichiers.
User ├── Documents | ├──Hello | | ├──hey2 | | ├──helloa | | └──ola5 | └──World | └──earth9 ├── Downloads | ├──Music | └──Songs | ├──collection1 | └──collection2 ├── Test | └── passa └── test
-
Affichez à l’écran le répertoire de travail courant, y compris les sous-répertoires.
-
Recherchez dans l’arborescence tous les fichiers qui se terminent par un numéro.
-
Supprimez toute l’arborescence des répertoires avec une seule commande.
Résumé
Dans cette leçon vous avez appris :
-
Comment obtenir de l’aide
-
Comment utiliser la commande
man
-
Comment naviguer dans une page
man
-
Les différentes sections d’une page
man
-
Comment utiliser la commande
info
-
Comment naviguer entre les différents nœuds
-
Comment rechercher des fichiers dans le système
Commandes utilisées dans les exercices :
man
-
Affiche une page de manuel.
info
-
Affiche une page d’information.
locate
-
Recherche dans la base de données de
locate
les fichiers portant un nom spécifique. find
-
Recherche dans le système de fichiers dont les noms correspondent à un ensemble de critères de sélection.
updatedb
-
Met à jour la base de données de
locate
.
Réponses aux Exercices Guidés
-
Utilisez la commande
man
pour savoir ce que fait chaque commande :Commande Description ls
Affiche le contenu d’un répertoire.
cat
Concatène ou visualise des fichiers texte
cut
Supprime des sections d’un fichier texte
cd
Déplace dans un autre répertoire
cp
Copie d’un fichier
mv
Déplace un fichier ou un répertoire (il peut également être utilisé pour le renommer)
mkdir
Crée un nouveau répertoire
touch
Crée un fichier ou modifie la date et l’heure de la dernière modification d’un fichier existant
wc
Compte le nombre de mots, de lignes ou d’octets d’un fichier
passwd
Modifie le mot de passe d’un utilisateur
rm
Supprime un fichier
rmdir
Supprime un répertoire
more
Visualisation des fichiers texte un écran à la fois
less
Visualise de fichiers texte, permet de faire défiler une ligne ou une page à la fois
whereis
Affiche le chemin d’accès d’un programme spécifique et des fichiers manuels associés
head
Affiche les premières lignes d’un fichier
tail
Affiche les dernières lignes d’un fichier
sort
Ordonne un fichier par ordre numérique ou alphabétique
tr
Traduit ou supprime des caractères d’un fichier
chmod
Modifie les autorisations d’un fichier
grep
Recherche dans un fichier
-
Ouvrez la page info de ls et identifiez le MENU.
-
Quelles options y avez-vous ?
-
Quels sont les fichiers listés
-
Quelles sont les informations listées
-
Trier la sortie
-
Détails sur la version du tri
-
Formatage général de la sortie
-
Formatage de l’horodatage des fichiers
-
Formatage des noms de fichiers
-
-
Trouvez l’option qui vous permet de trier la sortie par heure de modification.
-t
ou--sort=time
-
-
Affichez le chemin d’accès aux 3 premiers fichiers
README
. Utilisez la commandeman
pour identifier la bonne option delocate
.$ locate -l 3 README /etc/alternatives/README /etc/init.d/README /etc/rc0.d/README
-
Créez un fichier appelé
test
dans votre répertoire personnel. Trouvez son chemin absolu avec la commandelocate
.$ touch test $ locate test /home/user/test
-
L’avez-vous trouvé immédiatement ? Qu’avez-vous dû faire pour que
locate
puisse le trouver ?$ sudo updatedb
Le fichier est nouvellement créé, il n’y a donc aucune trace de celui-ci dans la base de données.
-
Recherchez le fichier test que vous avez précédemment créé, à l’aide de la commande
find
. Quelle syntaxe avez-vous utilisée et quel est son chemin absolu ?$ find ~ -name test
ou
$ find . -name test /home/user/test
Réponses aux Exercices d’Exploration
-
Il y a une commande dans le tableau ci-dessus qui n’a pas de page
man
. Laquelle est-ce et pourquoi pensez-vous que la commande n’a pas de page de manuel ?La commande
cd
. Elle n’a pas de page de manuel car c’est une commande intégrée au shell. -
En utilisant les commandes du tableau ci-dessus, créez l’arborescence de fichiers suivante. Les noms qui commencent par une majuscule sont des répertoires et ceux qui sont en minuscules sont des fichiers.
User ├── Documents | ├──Hello | | ├──hey2 | | ├──helloa | | └──ola5 | └──World | └──earth9 ├── Downloads | ├──Music | └──Songs | ├──collection1 | └──collection2 ├── Test | └── passa └── test
La solution est une combinaison des commandes
mkdir
ettouch
. -
Afficher à l’écran le répertoire de travail courant, y compris les sous-dossiers.
$ ls -R
-
Recherchez dans l’arborescence tous les fichiers qui se terminent par un numéro.
$ find ~ -name "*[0-9]" $ locate "*[0-9]"
-
Supprimez toute l’arborescence des répertoires avec une seule commande.
$ rm -r Documents Downloads Test test