Cette commande répertorie les noms triés de toutes les entrées dans la section donnée:
man -aWS 1 \* | xargs basename | sed 's/\.[^.]*$//'| sort -u
Si vous voulez voir les noms de chemin, utilisez:
man -aWS 1 \* | sed 's/\.[^.]*$//'| sort
Cela indique mande rechercher dans une section toutes les commandes à l'aide du modèle générique *(entre guillemets antislash afin que le shell ne l'interprète pas). -arecherche toutes les correspondances, -Wimprime les chemins d'accès au lieu d'afficher les pages et -S 1spécifie la première section. Modifiez la 1section dans la section que vous souhaitez rechercher.
La sedcommande supprime les extensions de nom de fichier; supprimez-le si vous voulez voir les noms de fichiers complets. sorttrie les résultats ( -usupprime les doublons).
Pour une réutilisation pratique, cela définit une fonction de shell Bash:
function mansect { man -aWS ${1?man section not provided} \* | xargs basename | sed 's/\.[^.]*$//'| sort -u;}
Par exemple, vous pouvez l'invoquer mansect 3pour voir les entrées de la section trois.
Bien - Merci. J'obtiens des doublons (par exemple des chemins dans /Applications/Xcode.app et "Accelerate" dans la section 7), mais rien de mettre un uniqdans le pipeline ne résout pas.
xyz
@xyz: J'ai mis à jour la commande sort sort -upour supprimer les doublons.
Chris Page
24
Pour répertorier toutes les pages de manuel installées d'une section spécifique, vous pouvez utiliser apropos :
apropos -s 2.# use an regex for apropos . means anything
apropos -s 2-w '*'# use unix globbing for apropos
Merci. L'option -s n'est pas présente dans Mac OS X apropos, qui est vraisemblablement de BSD.
xyz
@ f100 Ah ok, essayez peut-êtreman -a -s 2 '*'
Ulrich Dangel
Cela ressemble plus à cela, mais au lieu de les répertorier, cela appelle en fait le spectateur pour chacun à son tour. J'ai piraté une fonction pour faire la liste que j'ai publiée dans un autre commentaire. Il a probablement des problèmes, mais cela me suffit :)
xyz
20
Les pages de manuel sont généralement placées dans /usr/share/man, mais vérifiez $MANPATH, et sont organisées en sections comme ceci:
Donc pour lister toutes les pages de manuel de la section 2 installées, faites:
ls /usr/share/man/man2/
Ou le plus complet:
find $(echo $MANPATH | tr ':'' ')-path '*/man2/*'
Ce dernier aura des problèmes si vous avez des répertoires $MANPATHavec de l'espace dans leurs noms.
Sur la plupart des distributions, vous pouvez également vérifier les pages de manuel disponibles avec un outil de package, par exemple sur les distributions dérivées de Debian que vous pouvez utiliser apt-filecomme ceci:
Merci - C'était le début dont j'avais besoin. J'ai fait une fonction shell qui est exécutée par exemple lman 2et répertorie le nom sans fioritures de chaque page sur une nouvelle ligne et les pages. Le corps de la fonction est:find $(man --path | tr ':' ' ') -path "*/man$1/*"| xargs basename | sort | sed -E "s/\.$1(.gz)?\$//" | less
xyz
1
Sur Mac OS X, la seule chose que je peux obtenir au travail est man -k . | grep -F '(3)', qui répertorie tout dans la section 3.
Je sais que c'est une très vieille question, mais les réponses données ici n'ont pas fonctionné pour moi. Par conséquent, j'ai trouvé le one-liner suivant qui fonctionne sur Ubuntu 18.04 et macOS Mojave, 10.14.6:
find $(man --path | tr ':'' ')-type f -path '*man2*' \
-exec basename {} \; | sed 's/\..*//'| sort
Descente rapide:
forme Thors réponse: $(man --path | tr ':' ' ')obtenir les chemins actuels des pages de manuel
find <man paths> -type f -path '*man2*' -exec basename {} \; obtient les noms de fichiers de tous les fichiers normaux dans les chemins d'accès man
Réponses:
Cette commande répertorie les noms triés de toutes les entrées dans la section donnée:
Si vous voulez voir les noms de chemin, utilisez:
Cela indique
man
de rechercher dans une section toutes les commandes à l'aide du modèle générique*
(entre guillemets antislash afin que le shell ne l'interprète pas).-a
recherche toutes les correspondances,-W
imprime les chemins d'accès au lieu d'afficher les pages et-S 1
spécifie la première section. Modifiez la1
section dans la section que vous souhaitez rechercher.La
sed
commande supprime les extensions de nom de fichier; supprimez-le si vous voulez voir les noms de fichiers complets.sort
trie les résultats (-u
supprime les doublons).Pour une réutilisation pratique, cela définit une fonction de shell Bash:
Par exemple, vous pouvez l'invoquer
mansect 3
pour voir les entrées de la section trois.[Testé sur macOS.]
la source
uniq
dans le pipeline ne résout pas.sort -u
pour supprimer les doublons.Pour répertorier toutes les pages de manuel installées d'une section spécifique, vous pouvez utiliser apropos :
la source
man -a -s 2 '*'
Les pages de manuel sont généralement placées dans
/usr/share/man
, mais vérifiez$MANPATH
, et sont organisées en sections comme ceci:Donc pour lister toutes les pages de manuel de la section 2 installées, faites:
Ou le plus complet:
Ce dernier aura des problèmes si vous avez des répertoires
$MANPATH
avec de l'espace dans leurs noms.Sur la plupart des distributions, vous pouvez également vérifier les pages de manuel disponibles avec un outil de package, par exemple sur les distributions dérivées de Debian que vous pouvez utiliser
apt-file
comme ceci:la source
lman 2
et répertorie le nom sans fioritures de chaque page sur une nouvelle ligne et les pages. Le corps de la fonction est:find $(man --path | tr ':' ' ') -path "*/man$1/*"| xargs basename | sort | sed -E "s/\.$1(.gz)?\$//" | less
Sur Mac OS X, la seule chose que je peux obtenir au travail est
man -k . | grep -F '(3)'
, qui répertorie tout dans la section 3.la source
Je sais que c'est une très vieille question, mais les réponses données ici n'ont pas fonctionné pour moi. Par conséquent, j'ai trouvé le one-liner suivant qui fonctionne sur Ubuntu 18.04 et macOS Mojave, 10.14.6:
Descente rapide:
$(man --path | tr ':' ' ')
obtenir les chemins actuels des pages de manuelfind <man paths> -type f -path '*man2*' -exec basename {} \;
obtient les noms de fichiers de tous les fichiers normaux dans les chemins d'accès mansed
se débarrasse de l'extension de fichiersort
alphabétiquement.la source