(modifié le 14 avril 2023 à 12:29)

Comme tout le monde j'utilise man pour savoir comment utiliser une commande. Parfois j'ai besoin de savoir ce que fais une option / argument particulière sans avoir besoin d'ouvrir le manuel complet :

Comme le montre la capture il est possible de savoir rapidement ce que fait une option / argument.

Il existe plusieurs façons de répondre à ce besoin, en voici 3.

Solution 1 : mans

La solution que je conseille est d'ajouter dans votre machine un script bash qui répondra à la commande "mans".

De mon côté j'ai ajouté ceci dans un fichier /usr/local/bin/mans (à adapter en fonction de votre $PATH) :

#!/usr/bin/env bash

usage() {
cat <<EOF
Name: mans
Description: This script outputs a command description or an option 
description from the man page.
Usage: 
mans wget -b : Show wget -b option description
mans ls: Show the ls command description
EOF
exit 2
}

if [ $# -eq 0 ]; then
usage
fi

if [ $# -eq 2 ]; then
man "$1" | col -bx | sed -n "/^ *$2/,/^$/p"
else
man "$1" | col -bx | sed -n "/^DESCRIPTION/,/^$/p"
fi

exit 0

▶️ EDIT : Matthieu a proposé en commentaire une version colorée (merci Matthieu!):

function mans() {
for OPT in ${@:2}
do
man $1 | grep --color=always -A50 -e "^ *$OPT" -e "^ *$OPT,.*" -e "^ *-.*, $OPT" | sed -En '/^$/q;p'
echo
done
}

Pensez bien à rendre le script exécutable :

chmod +x /usr/local/bin/mans

Essayez :

mans curl -k

Et voilà !

Solution 2 : he

Sur la même page superuser une autre personne a proposé "he" qui remplit le même rôle.

Téléchargez le script, déposez-le dans /usr/local/bin/he et rendez-le exécutable (chmod +x)

Je n'ai pas vu de différence majeure mais vu la taille du code j'imagine qu'il se comporte différemment en fonction de retour des pages de manuels

Solution 3 : un man en surbrillance

Enfin il existe une autre solution encore plus simple, découverte sur stackexchange, qui permet d'ouvrir man et de mettre en surbrillance l'option/argument recherchée.

Pour cela il faut ajouter dans votre ~/.bashrc :

function mans {
man $1 | less -p "^ +$2"
}

Relancer une session terminal / SSH ou bien faites :

source .bashrc

Essayez :

mans curl -k

Et voilà !

Conclusion

J'espère que l'une de ces 3 solutions vous fera gagner du temps, je suis preneur en commentaire si vous constatez des avantages à l'une plutôt qu'à une autre.

J'ai essayé d'ajouter de la couleur avec un grep mais malheureusement des caractères d'échappement sont interprétés et ça casse tout. Même chatGPT n'a pas trouvé la solution à ce problème 🙂

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter