Spaß in ASCII-Art: cowsay und FIGlet
Hast du dir schon einmal gewünscht, die Standardausgabe lustiger zu gestalten? Dieser Artikel beschreibt zwei Programme zum generieren einer nicht ganz so standardisierten Ausgabe in der Shell: cowsay und figlet.
Was ist ASCII Art?
ASCII Art ist Kunst, die größtenteils auf Computern präsentiert wird und aus den 95 (von den 128) druckbaren Zeichen des ASCII-Standards besteht, die geschickt zu Piktogrammen zusammengesetzt werden. Weitere Informationen dazu gibt es hier.
Installation
Wenn du Glück hast, sind Cowsay und Figlet bereits in den Paketquellen deiner Distribution enthalten. In Debian, Ubuntu und deren Derivaten ist dies der Fall. Um unter Debian/Ubuntu die benötigte Software zu installieren gib folgendes in die Shell ein:
sudo apt-get install cowsay figlet
Nach ein Paar Sekunden kannst du die Programme bereits nutzen. Natürlich kannst du auch Synaptic oder andere Alternativen für die Installation nutzen.
Cowsay und Cowthink
Cowsay/Cowthink ist ein Programm, das eine ASCII-Kuh (oder auch andere Tiere, darauf gehe ich später noch näher ein) generiert, welche Text in einem Comic-artigem Stil präsentiert. Damit kannst du also ASCII-Tiere ihren (deinen) Senf zu allem abgeben lassen.
Du hast es bestimmt schon erraten: Der Unterschied zwischen cowsay und cowthink ist die Art der Blasen, die generiert werden. Cowsay für Sprechblasen und cowthink für Denkblasen. :-)
Ok, los gehts:

Das war die Ausgabe von:
cowsay "Pimpmyshell rockt"
Neben diesem Befehl gibt es noch einige Optionen (Parameter), welche deinen Text noch ein wenig cooler aussehen lassen.
Probieren wir folgenden Befehl aus:
cowsay -f name "beispiel_text"
Das würde beispiel-text mit dem Tier name erzeugen.
Die verfügbaren Tiere können in /usr/share/cowsay/cows (Pfad kann variieren) gefunden werden.
In meinem Fall gibt
ls /usr/share/cowsay/cows
Folgende Liste von Dateien aus:
apt.cow eyes.cow moofasa.cow surgery.cow
beavis.zen.cow flaming-sheep.cow moose.cow telebears.cow
bong.cow ghostbusters.cow mutilated.cow three-eyes.cow
bud-frogs.cow head-in.cow ren.cow turkey.cow
bunny.cow hellokitty.cow satanic.cow turtle.cow
cheese.cow kiss.cow sheep.cow tux.cow
cower.cow kitty.cow skeleton.cow udder.cow
daemon.cow koala.cow small.cow vader.cow
default.cow kosh.cow sodomized.cow vader-koala.cow
dragon-and-cow.cow luke-koala.cow sodomized-sheep.cow www.cow
dragon.cow mech-and-cow.cow stegosaurus.cow
elephant.cow meow.cow stimpy.cow
elephant-in-snake.cow milk.cow supermilker.cow
Statt name lässt sich also einer dieser Dateinamen (ohne die Endung (.cow) ) eintragen. Einer meiner lieblinge ist:
cowsay -f vader "I'm your father"

Ein anderer interressanter Weg zum personalisieren unserer Kuh, ist die Form der Augen zu verändern. Dafür gibt es folgende Optionen:
-b -d -t -y -g -p -s -w
Anstatt dass ich jetzt alle Optionen ausführe, schlage ich vor das Programm mit einem der Optionen selbst auszuprobieren, um mit eigenen Augen zu sehen was passiert (oder wie sich die Kuh verändert).
Ein weiterer Weg, die Form der Augen zu verändern ist:
-e "form_der_augen"
Der Befehl:
cowsay -e "TT" "Pimpmyshell"
zum Beispiel gibt folgendes aus:

Die Augen müssen nicht unbedingt symetrisch sein. Ausserdem sind die Augen auf zwei Zeichen begrenzt. Jeder Versuch also, die Augen irgendwie komplizierter zu gestalten wird leider fehlschlagen.
Unglücklicherweise funktioniert die Option -e auch nur mit der Standard ASCII-Kuh.
Zum Schluss sei die Option
-W anzahl_der_spalten
erwähnt, wobei anzahl_der_spalten definiert, wie lang (in Spalten) eine Textzeile sein darf.
Wenn anzahl_der_spalten auf “10″ gesetzt wird, werden neun Zeichen in der ersten Zeile ausgegeben und der zehnte in die nächste Zeile verschoben.
Die Ausgabe von:
cowsay -W 4 "Pimpmyshell rockt"
würde also wie folgt aussehen:

Am Ende muss ich noch erwähnen, dass Cowsay in PERL geschrieben wurde. Prüfe also vor der Installation PERL auf deinem System vorhanden ist. Wenn Cowsay nicht in deinen Paketquellen enthalten ist, kannst du es hier herunterladen.
Ein letzter Tipp noch:
Du willst deine generierte ASCII-Kuh in einer Datei speichern? Kein Problem. Du musst lediglich die Ausgabe von Cowsay in eine Datei umleiten. Und zwar so:
cowsay "Pimpmyshell" >> datei.txt
Dieser Befehl speichert die Ausgabe von Cowsay in die Datei “datei.txt”.
Figlet
Schluss mit dem vielem Gerede über Kühe, weiter gehts zum nächsten Programm – Figlet.
Figlet (oder korrekter FIGlet) ist ein Programm zum generieren ornament-ähnlicher Schriftzüge. Anders als bei Cowsay bilden hier die Schriftzüge die ASCII Art, nicht der Rahmen drumherum.
Um mit Figlet einen Schriftzug zu generieren, gib folgenden Befehl ein:
figlet Pimpmyshell rockt
oder auch
figlet "Pimpmyshell rockt"
, was folgende Ausgabe erzeugen wird:

Im normalfall betrachtet figlet alle Argumente als zu erzeugenden Text. Wenn du Optionen benutzt, muss der Text in Anführungszeichen gesetzt werden. Eine der am meisten genutzten Optionen ist kerning, was nichts anderes bedeutet, als dass ein Leerzeichen zwischen die Buchstaben gesetzt wird. Um kerning zu nutzen, muss die Option -k angegeben werden. Der oben generierte Schriftzug zum Beispiel wird wie folgt aussehen:
figlet -k "Pimpmyshell rockt"

Man sieht den Unterschied, oder? Eine weitere Option ist die Textausrichtung. Es gibt 3 Standardpositionen:
- Nach Links ausgerichtet (Option
-l), - Nach Rechts ausgerichtet (Option
-r), - Zentriert (Option
-c).
Figlet erlaubt die generierung von Schriftzügen, die diverse Schriftarten nachahmen. Abgesehen von der vorgegebenen Schriftart lassen sich noch ein Paar andere auswählen. Eine Liste der verfügbaren Schriftarten ist im Verzeichnis /usr/share/figlet (die dateien mit der Endung “.flf.”) zu finden.
Um eine bestimmte Schriftart zu nutzen, kann die Option -f schriftart verwendet werden, wobei schriftart den Dateinamen der Schriftart (ohne die Endung) darstellt.
So lässt sich etwa der Schriftzug “Pimpmyshell rockt” in Schreibschrift darstellen:
Der Befehl:
figlet -f script "Pimpmyshell rockt"
Und seine Ausgabe:

Da wäre ausserdem noch die Option -d verzeichnis was figlet Schriftarten aus verzeichnis nutzen lässt.
Und noch viele weitere Optionen, welche ich hier jetzt aber nicht weiter ausführen werde (dafür sind die Manpages da).
Die Website von Figlet ist übrigens nicht die einzige ihrer Art. Wegen seiner Popularität existieren noch eine Menge anderer im Internet. Figlet-Schriftzüge lassen sich hier sogar im Webbrowser erzeugen.
Dieser Artikel wurde von mir mit freundlicher Genehmigung von Borys Musielak ins Deutsche übersetzt und leicht verändert. Original article: ASCII-Art fun: cowsay and FIGlet at PolishLinux.org.
-
15.7.2007 / 2:10
cowsay -f sodomized :D
-
15.7.2007 / 9:04
Dem wäre noch ‘figlet Text | cowsay -n’ hinzuzufügen…
-
15.7.2007 / 17:39
Netter Artikel :-)
-
15.7.2007 / 17:51
Danke. ;-)
-
16.7.2007 / 10:14
Versucht doch das mal:
g@home> for p in `cowsay -l | grep -v ‘Cow files’ | sed ‘s/ /\n/g’` ; do figlet $p | cowsay -n -f $p ; done
-
16.7.2007 / 12:17
Lol, das mach richtig spaß.
@Dietmar netter Trick -
20.7.2007 / 2:56
figlet `echo “welcome 2 \`uname -n\`”` | cowsay -n -f tux
gibt einen schönen login :-)
-
16.8.2007 / 20:16
In deiner Applicationlist fehlt:
http://bashburn.sourceforge.net/ -
16.8.2007 / 20:32
Ähm, ja. Und was hat das bitte mit diesem Artikel zu tun?
-
18.8.2007 / 10:26
Nichts!
-
11.10.2007 / 20:43
Hehe, jap, nette Sache, besonders lustig ist allerdings:
ls -all / | figlet
:D
-
16.1.2010 / 14:25
ls | figlet -f script | cowsay -n
Hinterlasse einen Kommentar
XHTML: Folgende Tags sind erlaubt: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
navigation
- [1] was ist [ pimp my shell ] ?
- [2] programme
- [3] skripte / dotfiles
- [4] shellshots
- [5] mitmachen
- [6] autoren
- [7] einloggen
- [8] impressum
aussehen
ältere beiträge
- 06.18 wirklich? so einfach?
- 06.17 fbcmd – update
- 06.04 worklog – die zeit im griff
- 05.30 google-reader >> snownews
- 05.28 fbcmd – facebook in der shell
- 05.28 bitlbee – alles in einem!
- 05.16 NoPaste/pastebin-Service über die Shell mit curl und sprunge.us
- 04.15 Die Heirloom-Tools – Unix unter Linux
- 02.13 dvtm – dwm für die Konsole
- 02.12 Wohin ist mein Speicherplatz: ncdu
beitrags-archiv
- Juni 2010 (3)
- Mai 2010 (3)
- Mai 2008 (1)
- April 2008 (1)
- Februar 2008 (4)
- Januar 2008 (1)
- Dezember 2007 (2)
- September 2007 (1)
- August 2007 (1)
- Juli 2007 (6)
- Juni 2007 (1)
- Mai 2007 (3)
kategorien
- allgemein (17)
- berichte (7)
- fun (2)
- gnu_screen (2)
- hintergrundwissen (3)
- how-tos (11)
- internes (6)
- programme (31)
- shells (6)
- tutorials (5)
- user-skripte (1)
- vim (5)
- webseiten (5)
12 Kommentare
Zum Kommentarformular | Kommentar rss [?] | trackback uri [?]