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 fonctionnalités et options disponibles. C'est donc parfois pratique de pouvoir conserver ces manuels. Voilà donc une petite astuce qui explique comment on peut les conserver au format PDF.

Exemples

Pour lire le manuel d'un logiciel – si, il en a un – on utilise la commade “man” avant son exécutable. Il sera affiché dans le terminal.

man printf

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 bash – 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 “caché” 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, en théorie, ne servir qu'à renseigner ses alias. Dans mon cas le fichier est ~/.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 recharge ensuite son fichier dans un terminal 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, mais si vous ajoutez l'option “-o” (sans guillemets), le fichier sera ouvert à la suite de sa création. Si, il n'y a pas de manuel disponible, grâce au code de retour 16 de la commande, le script s'arrête. Enfin, si le manuel a déjà été créé, il sera automatiquement ouvert avec le logiciel préféré dans le système, sans le recréer.

# Un peu de couleur rouge
RED='\033[0;31m'
NC='\033[0m'

function manpdf {
	foldermanpdf="$HOME/Documents/man2pdf"
	filetest="$foldermanpdf/manpage-$1.pdf"
		if [ -f  "$filetest" ];then
			echo -e 'Le manuel de '${RED}"$1"${NC}' existe déjà, et va être ouvert'
			openpdf="-o"
			sleep 3
		else
			man "$1" > /dev/null
			if [[ ! "$?" == 16 ]] ; then
				echo -e ':: Création du manuel au format PDF de '${RED}"$1"${NC}
				[ -d "$foldermanpdf" ] || mkdir -p "$foldermanpdf"
				man -t "$1" | ps2pdf - "$foldermanpdf"/manpage-"$1".pdf
				echo -e ':: "manpage-'$1'.pdf" se trouve dans '${RED} $foldermanpdf ${NC}
			fi
		fi
		if [ "$2"  == "-o" ] || [ "$openpdf" == "-o" ];then
			xdg-open "$foldermanpdf"/manpage-"$1".pdf>/dev/null 2>&1
		else
			echo -e "Options Disponibles : ${RED}-o${NC}. Ex: manpdf awk -o (Ouvre le document automatiquement)"
		fi
}

Utilisation

Dans un terminal, lancez la commande suivante. Remplacez “awk” 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 awk sans l'ouvrir
    manpdf awk

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

En parler avec moi

Vous pouvez en parler avec moi sur Mastodon ici

Tags