UNIX: man page mania

22/04/2010

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 Comments

AppleScript Dialog im Finder aus Shell-Script heraus anzeigen

6/01/2008
Ab und an ist es hilfreich, wenn ein Shell-Script auch mal Laut gibt. das geht auf dem Mac recht leicht, über einen Apple-Script-Auftruf.Das Beispiel hier soll so etwas vereinfacht darstellen,Eine Bash-Variable wird gesetzt und anschließend im Finder in einer Dialog-Box angezeigt.
hubis-computer:~ hubi$ hubi="Hallo, jetzt koennen ich Bash-Scripte mit Finder-Dialgen nerven =)"
hubis-computer:~ hubi$ osascript -e "tell application \"Finder\" to activate" -e "tell application \"Finder\" to display dialog \"$hubi\""
button returned:OK
Und ja, man kann so sogar über einen AppleScript-Dialog Parameter über ein DIalog-Feld an das Bash-Script zurück geben (in diesem Fall button returned:OK) .Alles aus einem Bash-Script heraus =)
No Comments