Manuel PDF d'une commande (bash linux)


manuel des geeks


Si comme moi, vous avez tendance à utiliser le terminal et ses logiciels en lignes de commandes, alors vous devriez avoir parfois recours à leur manuel. Ces manuels fournissent des explications sur leurs options disponibles. C'est parfois pratique de conserver ces manuels. Voilà comment on peut les conserver au format PDF.

Exemples

Pour lancer le gestionnaire de profils de firefox, dans un terminal, on rajoute “-ProfileManager” (sans guillemets)

firefox -ProfileManager

Pour lire le manuel d'un logiciel, on utilise “man”.

man firefox

On voit donc que dans son manuel, il est recommandé d'ajouter l'option “-no-remote” si, une instance est en cours d'utilisation.

Besoin de plus de praticité

Plutôt que de devoir consulter ces manuels directement dans un terminal à chaque fois que l'on s'interroge, et afin de les avoir toujours sous les yeux, j'ai eu envie de créer un script – sous la forme d'une simple fonction – pour les convertir en PDF. Format pratique aussi, si on a besoin de les imprimer.

Pré-requis

Ce script se place dans le fichier de son profil bash (ou bashrc). Il est préférable de créer un fichier à la racine de son dossier personnel, plutôt que de le mettre dans ~/.bash_aliases qui devrait ne servir qu'à renseigner ses alias. Dans mon cas ~/.bash.functions. Dans le fichier .bash ou .bashrc, on ajoute ces lignes qui vont permettre de vérifier la présence du fichier .bash.functions afin qu'il puisse être pris en compte

if [ -e ~/.bashrc.functions ] ; then
   source ~/.bashrc.functions
fi

On relance ensuite par :

. ~/.bash_aliases
# ou sur Arch Linux, par exemple :
. ~/.bashrc.functions

Fonctionnalités

Ce script crée le dossier “man2pdf” dans le dossier “Documents” personnel si, il n'existe pas déjà. Vous pouvez le changer en modifiant la variable “foldermanpdf”. Il est aussi possible de juste créer le manuel sans l”ouvrir. Enfin, si, il n'y a pas de manuel disponible, grâce au code de retour 16 de la commande, le script s'arrête.

function manpdf {
        man "$1" > /dev/null
        if [[ ! "$?" == 16 ]] ; then
            echo '-> Création du manuel en PDF de "'"$1"'"';
            foldermanpdf="$HOME/Documents/man2pdf";
            [ -d "$foldermanpdf" ] || mkdir -p "$foldermanpdf";
            man -t "$1" | ps2pdf - "$foldermanpdf"/manpage-"$1".pdf;
            echo '-> "manpage-'$1'.pdf" se trouve dans '$foldermanpdf;
            [ "$2" == "o" ] && xdg-open "$foldermanpdf"/manpage-"$1".pdf>/dev/null 2>&1;
        fi
}

Utilisation

Dans un terminal, lancez la commande suivante. Remplacez firefox par cat, find, nemo, vlc ou ce que vous voulez. Si le manuel n'est pas disponible, on sera juste averti.

    # Création du manuel PDF de firefox sans l'ouvrir
    manpdf firefox

    # Création du manuel PDF et l'ouvrir
    manpdf firefox o