UNIX: man page mania

Gerade heute ist mir mal wieder ein Terminal-Kommando gezeigt worden welches ich noch nicht kannte und da fragte ich wie ich denn wohl selber auf so etwas kommen könnte. Nun, die Infos darüber findet man in den man-pages.

Jetzt könnte man also beigehen und mit man -k --suchstring-- danach suchen lassen, auch apropos --suchstring-- hilft da weiter.
In meinem speziellen Fall ging es aber um afplay (eine Möglichkeit um via Terminal Musik/Töne abzuspielen), wo apropos bzw. whatis versagten. Da erinnerte ich mich an Kommando-Zeile, die ich vor Eweigkeiten mal gefunden hatte, die einem eine Liste aller Terminal-Befehle mit Erläuterung ausgibt:
echo $PATH | sed -e 's/:/ /g' | xargs -J % find % -maxdepth 1 \( -type f -or -type l \) | xargs basename | sort | uniq | xargs whatis 2> /dev/null | grep -E '\((1|1m|6|8)\)' | perl -ne '($name, $descrip) = m/^(.*?)\s+- (.*)$/; $name =~ s/\((1|1m|6|8)\)//g; printf("%-20s - %s\n", $name, $descrip)' >apropos_all.txt
Nur zapft die eben die whatis-Datenbank an, die bei afplay nicht fand, obwohl es eine man-page dazu gibt. Ich bin jetzt nicht der absolute Terminal-Crack, der sed und awk im Schlaf beherrscht, aber das diese abgeänderte Version schafft es wohl ALLE man-pages-Einträge zu listen.
for i in `echo $PATH | sed -e 's/:/ /g' | xargs -J % find % -maxdepth 1 \( -type f -or -type l \) | xargs basename | sort | uniq`;do man $i 2> /dev/null| col -b | head -n 10 | tail -8 |grep "$i" | head -n 1;done >all_bin_info.txt
(lässt man übrigens den restlichen Code nach dem uniq weg, bekommt man ein Liste aller verfügbaren Terminal-Befehle)


Übrigens ein netter Trick sich eine Man-Page als PDF ausgeben zu lassen:
man -t pstopdf col man | col -b | pstopdf -i -o man.pdf
oder als fertiges Bash-Script, dem man einfach als Parameter den Namen des Befehls mitgibt:
#/bin/bash
man -t $1 groff | col -b | pstopdf -i -o ~/Desktop/$1.pdf;open -a /Applications/Preview.app ~/Desktop/$1.pdf;

2 thoughts on “UNIX: man page mania

  1. karl says:

    Man kann auch die generierten PDFs in einem Ordner abspeichern – zwecks Wiederverwendung.

    pman — create, print, save, view PDF man pages

    http://snippets.dzone.com/posts/show/4274

Leave a Reply