From 43f3c99469fd8b4d9edfe794120a2ec35381a2e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9drix?= Date: Sun, 17 May 2026 09:47:35 +0200 Subject: [PATCH] publish: apropos --- .../draft_overlay.json | 11 -- .../draft_overlay.md | 111 --------------- 4d07d121-71ed-4296-908b-d2dc6b04df00/index.md | 132 +++++++++++++----- .../meta.json | 17 ++- .../revisions/0001.md | 49 +++++++ 5 files changed, 159 insertions(+), 161 deletions(-) delete mode 100644 4d07d121-71ed-4296-908b-d2dc6b04df00/draft_overlay.json delete mode 100644 4d07d121-71ed-4296-908b-d2dc6b04df00/draft_overlay.md create mode 100644 4d07d121-71ed-4296-908b-d2dc6b04df00/revisions/0001.md diff --git a/4d07d121-71ed-4296-908b-d2dc6b04df00/draft_overlay.json b/4d07d121-71ed-4296-908b-d2dc6b04df00/draft_overlay.json deleted file mode 100644 index d742317..0000000 --- a/4d07d121-71ed-4296-908b-d2dc6b04df00/draft_overlay.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "title": "apropos", - "_updated_at": "2026-05-17 07:47:30", - "slug": "apropos", - "published": true, - "published_at": "2023-01-11 17:55", - "category": "Informatique", - "tags": [], - "seo_title": "", - "seo_description": "" -} diff --git a/4d07d121-71ed-4296-908b-d2dc6b04df00/draft_overlay.md b/4d07d121-71ed-4296-908b-d2dc6b04df00/draft_overlay.md deleted file mode 100644 index c7131a4..0000000 --- a/4d07d121-71ed-4296-908b-d2dc6b04df00/draft_overlay.md +++ /dev/null @@ -1,111 +0,0 @@ -# apropos - -## À quoi ça sert ? - -Vous cherchez une commande mais vous ne vous souvenez plus de son nom ? Vous savez ce que vous voulez faire, mais pas comment l'appeler ? C'est exactement le rôle d'`apropos`. - -La commande `apropos` recherche dans les **noms** et les **descriptions courtes** des pages du manuel système (les pages `man`) tous les mots-clés passés en arguments. C'est l'équivalent de `man -k`. - -> **Bon à savoir** : `apropos` ne fouille pas le contenu complet des pages de manuel, seulement la ligne `NAME` (nom + description courte). Pour une recherche dans le corps des pages, il faut se tourner vers d'autres outils comme `man -K` (avec un K majuscule). - -## Un premier exemple - -Cherchons toutes les commandes liées à la copie : - -```bash -$ apropos copy -debconf-copydb (1) - copier une base de données debconf -bcopy (3) - copy byte sequence -copy_file_range (2) - Copy a range of data from one file to another -copysign (3) - copy sign of a number -cp (1) - copy files and directories -cpio (1) - copy files to and from archives -dd (1) - convert and copy a file -rsync (1) - a fast, versatile, remote (and local) file-copying tool -scp (1) - secure copy (remote file copy program) -... -``` - -### Comprendre la sortie - -Chaque ligne suit le format : `commande (section) - description`. - -Le **numéro entre parenthèses** correspond à la section du manuel : - -| Section | Contenu | -|---------|---------| -| 1 | Commandes utilisateur (shell) | -| 2 | Appels système (kernel) | -| 3 | Fonctions de bibliothèque (C, etc.) | -| 4 | Fichiers spéciaux (`/dev/...`) | -| 5 | Formats de fichiers et conventions | -| 6 | Jeux | -| 7 | Divers (protocoles, conventions) | -| 8 | Commandes d'administration | - -Cette numérotation explique pourquoi on voit dans l'exemple à la fois `cp (1)` (la commande shell) et `copy_file_range (2)` (l'appel système). Pas pratique quand on cherche juste une commande à taper dans son terminal… - -## Les astuces utiles - -### Limiter la recherche à une section - -Pour n'afficher que les commandes du shell (section 1), utilisez l'option `-s` : - -```bash -$ apropos -s 1 copy -cp (1) - copy files and directories -cpio (1) - copy files to and from archives -dd (1) - convert and copy a file -rsync (1) - a fast, versatile, remote (and local) file-copying tool -scp (1) - secure copy (remote file copy program) -... -``` - -Beaucoup plus lisible ! Vous pouvez aussi cibler la section 8 pour les commandes d'admin, ou la section 2 si vous codez en C et cherchez un appel système. - -### Rechercher avec plusieurs mots-clés (ET logique) - -Par défaut, la recherche de plusieurs mots-clés est conditionnée par un **OU** logique. La commande `apropos copy file` retourne donc les pages contenant `copy` **ou** `file` — autant dire la moitié du manuel. - -Pour exiger que **tous** les mots-clés soient présents, utilisez `-a` (comme *and*) : - -```bash -$ apropos -s 1 -a copy file -cp (1) - copy files and directories -cpio (1) - copy files to and from archives -dd (1) - convert and copy a file -install (1) - copy files and set attributes -mcopy (1) - copy MSDOS files to/from Unix -rcp (1) - secure copy (remote file copy program) -rsync (1) - a fast, versatile, remote (and local) file-copying tool -scp (1) - secure copy (remote file copy program) -``` - -### Rechercher avec une expression régulière - -Pour des recherches plus fines, l'option `-r` (activée par défaut sur la plupart des distributions) permet d'utiliser une regex : - -```bash -$ apropos '^cp' # commandes commençant par "cp" -$ apropos 'copy|move' # contenant "copy" ou "move" -``` - -L'option `-w` permet à l'inverse d'utiliser des jokers shell (`*`, `?`). - -## « apropos: nothing appropriate » ? - -Si `apropos` ne trouve rien alors que vous êtes sûr·e que la commande existe, c'est probablement que la **base de données des pages de manuel** n'est pas à jour. `apropos` ne lit pas les pages à la volée : il interroge un index pré-construit. - -Pour le régénérer : - -```bash -$ sudo mandb -``` - -C'est typiquement le cas après l'installation d'un nouveau paquet sur certains systèmes minimaux (conteneurs Docker, par exemple). - -## Pour aller plus loin - -- `whatis commande` : affiche uniquement la description courte d'une commande précise (recherche exacte sur le nom) -- `man -k` : strictement équivalent à `apropos` -- `man -K` : recherche dans le **contenu** complet des pages (beaucoup plus lent) diff --git a/4d07d121-71ed-4296-908b-d2dc6b04df00/index.md b/4d07d121-71ed-4296-908b-d2dc6b04df00/index.md index d0c6d3b..c7131a4 100644 --- a/4d07d121-71ed-4296-908b-d2dc6b04df00/index.md +++ b/4d07d121-71ed-4296-908b-d2dc6b04df00/index.md @@ -1,49 +1,111 @@ # apropos -La commande `apropos` permet de lister les manuels dont la **description** ou le **nom** comprend les mots passés en arguments. +## À quoi ça sert ? -Par exemple `apropos copy` listera les commandes permettant d'effectuer des copies. +Vous cherchez une commande mais vous ne vous souvenez plus de son nom ? Vous savez ce que vous voulez faire, mais pas comment l'appeler ? C'est exactement le rôle d'`apropos`. -```BASH +La commande `apropos` recherche dans les **noms** et les **descriptions courtes** des pages du manuel système (les pages `man`) tous les mots-clés passés en arguments. C'est l'équivalent de `man -k`. + +> **Bon à savoir** : `apropos` ne fouille pas le contenu complet des pages de manuel, seulement la ligne `NAME` (nom + description courte). Pour une recherche dans le corps des pages, il faut se tourner vers d'autres outils comme `man -K` (avec un K majuscule). + +## Un premier exemple + +Cherchons toutes les commandes liées à la copie : + +```bash $ apropos copy -debconf-copydb (1) - copier une base de données debconf -arm-linux-gnueabihf-objcopy (1) - copy and translate object files -bcopy (3) - copy byte sequence -copy_file_range (2) - Copy a range of data from one file to another -copysign (3) - copy sign of a number -copysignf (3) - copy sign of a number -copysignl (3) - copy sign of a number -cp (1) - copy files and directories -cpgr (8) - copy with locking the given file to the password or group file -cpio (1) - copy files to and from archives -cppw (8) - copy with locking the given file to the password or group file -dd (1) - convert and copy a file +debconf-copydb (1) - copier une base de données debconf +bcopy (3) - copy byte sequence +copy_file_range (2) - Copy a range of data from one file to another +copysign (3) - copy sign of a number +cp (1) - copy files and directories +cpio (1) - copy files to and from archives +dd (1) - convert and copy a file +rsync (1) - a fast, versatile, remote (and local) file-copying tool +scp (1) - secure copy (remote file copy program) +... ``` -# Des astuces -> Limiter la recherche à une section de la documentation +### Comprendre la sortie -Pour afficher les commandes de l'interpréteur de commandes, j'utilise le paramètre `-m` : -``` -apropos copy -s 1 +Chaque ligne suit le format : `commande (section) - description`. + +Le **numéro entre parenthèses** correspond à la section du manuel : + +| Section | Contenu | +|---------|---------| +| 1 | Commandes utilisateur (shell) | +| 2 | Appels système (kernel) | +| 3 | Fonctions de bibliothèque (C, etc.) | +| 4 | Fichiers spéciaux (`/dev/...`) | +| 5 | Formats de fichiers et conventions | +| 6 | Jeux | +| 7 | Divers (protocoles, conventions) | +| 8 | Commandes d'administration | + +Cette numérotation explique pourquoi on voit dans l'exemple à la fois `cp (1)` (la commande shell) et `copy_file_range (2)` (l'appel système). Pas pratique quand on cherche juste une commande à taper dans son terminal… + +## Les astuces utiles + +### Limiter la recherche à une section + +Pour n'afficher que les commandes du shell (section 1), utilisez l'option `-s` : + +```bash +$ apropos -s 1 copy +cp (1) - copy files and directories +cpio (1) - copy files to and from archives +dd (1) - convert and copy a file +rsync (1) - a fast, versatile, remote (and local) file-copying tool +scp (1) - secure copy (remote file copy program) +... ``` -> Rechercher avec plusieurs mots clés +Beaucoup plus lisible ! Vous pouvez aussi cibler la section 8 pour les commandes d'admin, ou la section 2 si vous codez en C et cherchez un appel système. -Par défaut, le recherche de plusieurs mots clés et conditionnée par un **OU**. Par exemple, la ligne de commande `apropos copy file` effectuera la recherche sur le mot `copy` ou `file`. +### Rechercher avec plusieurs mots-clés (ET logique) -Pour effectuer une recherche avec tous les mots clé inclus dans la recherche, il faut utiliser le paramètre `-a`. Par exemple : +Par défaut, la recherche de plusieurs mots-clés est conditionnée par un **OU** logique. La commande `apropos copy file` retourne donc les pages contenant `copy` **ou** `file` — autant dire la moitié du manuel. -``` +Pour exiger que **tous** les mots-clés soient présents, utilisez `-a` (comme *and*) : + +```bash $ apropos -s 1 -a copy file -cp (1) - copy files and directories -cpio (1) - copy files to and from archives -dd (1) - convert and copy a file -i686-linux-gnu-objcopy (1) - copy and translate object files -install (1) - copy files and set attributes -mcopy (1) - copy MSDOS files to/from Unix -objcopy (1) - copy and translate object files -rcp (1) - secure copy (remote file copy program) -rsync (1) - a fast, versatile, remote (and local) file-copying tool -scp (1) - secure copy (remote file copy program) -``` \ No newline at end of file +cp (1) - copy files and directories +cpio (1) - copy files to and from archives +dd (1) - convert and copy a file +install (1) - copy files and set attributes +mcopy (1) - copy MSDOS files to/from Unix +rcp (1) - secure copy (remote file copy program) +rsync (1) - a fast, versatile, remote (and local) file-copying tool +scp (1) - secure copy (remote file copy program) +``` + +### Rechercher avec une expression régulière + +Pour des recherches plus fines, l'option `-r` (activée par défaut sur la plupart des distributions) permet d'utiliser une regex : + +```bash +$ apropos '^cp' # commandes commençant par "cp" +$ apropos 'copy|move' # contenant "copy" ou "move" +``` + +L'option `-w` permet à l'inverse d'utiliser des jokers shell (`*`, `?`). + +## « apropos: nothing appropriate » ? + +Si `apropos` ne trouve rien alors que vous êtes sûr·e que la commande existe, c'est probablement que la **base de données des pages de manuel** n'est pas à jour. `apropos` ne lit pas les pages à la volée : il interroge un index pré-construit. + +Pour le régénérer : + +```bash +$ sudo mandb +``` + +C'est typiquement le cas après l'installation d'un nouveau paquet sur certains systèmes minimaux (conteneurs Docker, par exemple). + +## Pour aller plus loin + +- `whatis commande` : affiche uniquement la description courte d'une commande précise (recherche exacte sur le nom) +- `man -k` : strictement équivalent à `apropos` +- `man -K` : recherche dans le **contenu** complet des pages (beaucoup plus lent) diff --git a/4d07d121-71ed-4296-908b-d2dc6b04df00/meta.json b/4d07d121-71ed-4296-908b-d2dc6b04df00/meta.json index f84df1c..340cba5 100644 --- a/4d07d121-71ed-4296-908b-d2dc6b04df00/meta.json +++ b/4d07d121-71ed-4296-908b-d2dc6b04df00/meta.json @@ -4,15 +4,24 @@ "title": "apropos", "author": "cedric@abonnel.fr", "published": true, - "published_at": "2023-01-11 17:55:48", + "featured": false, + "published_at": "2023-01-11 17:55", "created_at": "2023-01-11 17:55:48", - "updated_at": "2023-01-11 17:55:48", - "revisions": [], + "updated_at": "2026-05-17 07:47:34", + "revisions": [ + { + "n": 1, + "date": "2026-05-17 07:47:34", + "comment": "Contenu modifié", + "title": "apropos" + } + ], "cover": "", "files_meta": [], "external_links": [], "seo_title": "", "seo_description": "", "og_image": "", - "category": "Informatique" + "category": "Informatique", + "tags": [] } diff --git a/4d07d121-71ed-4296-908b-d2dc6b04df00/revisions/0001.md b/4d07d121-71ed-4296-908b-d2dc6b04df00/revisions/0001.md new file mode 100644 index 0000000..d0c6d3b --- /dev/null +++ b/4d07d121-71ed-4296-908b-d2dc6b04df00/revisions/0001.md @@ -0,0 +1,49 @@ +# apropos + +La commande `apropos` permet de lister les manuels dont la **description** ou le **nom** comprend les mots passés en arguments. + +Par exemple `apropos copy` listera les commandes permettant d'effectuer des copies. + +```BASH +$ apropos copy +debconf-copydb (1) - copier une base de données debconf +arm-linux-gnueabihf-objcopy (1) - copy and translate object files +bcopy (3) - copy byte sequence +copy_file_range (2) - Copy a range of data from one file to another +copysign (3) - copy sign of a number +copysignf (3) - copy sign of a number +copysignl (3) - copy sign of a number +cp (1) - copy files and directories +cpgr (8) - copy with locking the given file to the password or group file +cpio (1) - copy files to and from archives +cppw (8) - copy with locking the given file to the password or group file +dd (1) - convert and copy a file +``` + +# Des astuces +> Limiter la recherche à une section de la documentation + +Pour afficher les commandes de l'interpréteur de commandes, j'utilise le paramètre `-m` : +``` +apropos copy -s 1 +``` + +> Rechercher avec plusieurs mots clés + +Par défaut, le recherche de plusieurs mots clés et conditionnée par un **OU**. Par exemple, la ligne de commande `apropos copy file` effectuera la recherche sur le mot `copy` ou `file`. + +Pour effectuer une recherche avec tous les mots clé inclus dans la recherche, il faut utiliser le paramètre `-a`. Par exemple : + +``` +$ apropos -s 1 -a copy file +cp (1) - copy files and directories +cpio (1) - copy files to and from archives +dd (1) - convert and copy a file +i686-linux-gnu-objcopy (1) - copy and translate object files +install (1) - copy files and set attributes +mcopy (1) - copy MSDOS files to/from Unix +objcopy (1) - copy and translate object files +rcp (1) - secure copy (remote file copy program) +rsync (1) - a fast, versatile, remote (and local) file-copying tool +scp (1) - secure copy (remote file copy program) +``` \ No newline at end of file