<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>[pimp my shell] &#187; programme</title>
	<atom:link href="http://blog.pimpmyshell.de/category/programme/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.pimpmyshell.de</link>
	<description>leben im text-modus</description>
	<lastBuildDate>Sun, 10 Jul 2011 09:39:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.3</generator>
		<item>
		<title>wirklich? so einfach?</title>
		<link>http://blog.pimpmyshell.de/2010/06/18/wirklich-so-einfach/</link>
		<comments>http://blog.pimpmyshell.de/2010/06/18/wirklich-so-einfach/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 03:28:09 +0000</pubDate>
		<dc:creator>Gregor</dc:creator>
				<category><![CDATA[programme]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[einzeiler]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[skript]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blog.pimpmyshell.de/2010/06/18/wirklich-so-einfach/</guid>
		<description><![CDATA[Twittern von der Shell aus &#8211; ganz schmerzlos und simpel..Wenn ich das frueher gewusst haette.. Einfach Curl installieren und einen Einzeiler anlegen(z.B. twitter.sh): curl &#8211;basic &#8211;user username:password &#8211;data status=&#8221;$1&#8243; http://twitter.com/statuses/update.xml Nun kann man nach Veraenderung der Login-Daten das &#8220;Skript&#8221; aufrufen und direkt los-twittern: ./twitter.sh &#8220;Guck mal wie ich twittere..&#8221; Wichtig: Mit diesem Befehl kann man [...]]]></description>
			<content:encoded><![CDATA[<p>Twittern von der Shell aus &#8211; ganz schmerzlos und simpel..Wenn ich das frueher gewusst haette.. </p>
<p>Einfach Curl installieren und einen Einzeiler anlegen(z.B. twitter.sh):</p>
<blockquote><p>
curl &#8211;basic &#8211;user username:password &#8211;data status=&#8221;$1&#8243; http://twitter.com/statuses/update.xml
</p></blockquote>
<p>Nun kann man nach Veraenderung der Login-Daten das &#8220;Skript&#8221; aufrufen und direkt los-twittern:</p>
<blockquote><p>
./twitter.sh &#8220;Guck mal wie ich twittere..&#8221;
</p></blockquote>
<p><span id="more-139"></span><br />
Wichtig: Mit diesem Befehl kann man nur seinen Status veraendern. Moechte man Direktnachrichten ueber twitter versenden ist <a href="http://www.sakana.fr/blog/2007/03/18/scripting-twitter-with-curl/">etwas mehr als nur dieser Einzeiler noetig.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pimpmyshell.de/2010/06/18/wirklich-so-einfach/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>worklog &#8211; die zeit im griff</title>
		<link>http://blog.pimpmyshell.de/2010/06/04/worklog-die-zeit-im-griff/</link>
		<comments>http://blog.pimpmyshell.de/2010/06/04/worklog-die-zeit-im-griff/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 22:52:50 +0000</pubDate>
		<dc:creator>Gregor</dc:creator>
				<category><![CDATA[programme]]></category>
		<category><![CDATA[Projektmanagement]]></category>
		<category><![CDATA[worklog]]></category>
		<category><![CDATA[Zeiterfassung]]></category>

		<guid isPermaLink="false">http://blog.pimpmyshell.de/2010/06/04/worklog-die-zeit-im-griff/</guid>
		<description><![CDATA[Bin vor einiger Zeit ueber ein kleines Programm namens worklog gestolpert. Ueber eine Konfigurationsdatei definiert man div. Arbeitsprozesse oder Projekte an denen man arbeitet. In Kombination mit einem frei zu definierenden Buchstaben, laesst sich dann die Zeit, die man fuer eine gewisse Taetigkeit benoetigt, sekundengenau efassen. Es ist ein simples Zeiterfassungssystem, welches jedoch fuer meine [...]]]></description>
			<content:encoded><![CDATA[<p>Bin vor einiger Zeit ueber ein kleines Programm namens <b>worklog</b> gestolpert. Ueber eine Konfigurationsdatei definiert man div. Arbeitsprozesse oder Projekte an denen man arbeitet. In Kombination mit einem frei zu definierenden Buchstaben, laesst sich dann die Zeit, die man fuer eine gewisse Taetigkeit benoetigt, sekundengenau efassen. Es ist ein simples Zeiterfassungssystem, welches jedoch fuer meine Zwecke vollkommen ausreichend und durch das einfache Interface und die transparente Bedienung sehr zu empfehlen ist.<br />
<span id="more-130"></span></p>
<p>&#8230; und der Shellshot:<br />
<a href="http://blog.pimpmyshell.de/uploads/2010/06/worklog-screenshot.jpg"><img src="http://blog.pimpmyshell.de/uploads/2010/06/worklog-screenshot-300x156.jpg" alt="worklog-screenshot" title="worklog-screenshot" width="600" class="alignnone size-medium wp-image-134" /></a></p>
<p>Die dazu passende Konfigurationsdatei:</p>
<blockquote><p>
# Worklog project file<br />
# note that projects appear in Worklog in REVERSE order</p>
<p>G:GSG-Recherche/Home-Office<br />
P:Private-Recherchen<br />
L:Linux-Gefrickel<br />
V:Videos und Serien<br />
K:Kommunikation<br />
E:Email<br />
R:RSS-Feedreader lesen
</p></blockquote>
<p>Worklog ist in den meisten Repos der Hauptdistributionen mit dem Paketmanager seiner Wahl verfuegbar. Natuerlich kann man sich alternativ, die aktuellste Version aus dem Source bauen, welcher ueber die <a href="http://sourceforge.net/projects/worklog/">Projektwebseite</a> verfuegbar ist.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pimpmyshell.de/2010/06/04/worklog-die-zeit-im-griff/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>fbcmd &#8211; facebook in der shell</title>
		<link>http://blog.pimpmyshell.de/2010/05/28/fbcmd-facebook-in-der-shell/</link>
		<comments>http://blog.pimpmyshell.de/2010/05/28/fbcmd-facebook-in-der-shell/#comments</comments>
		<pubDate>Fri, 28 May 2010 10:06:02 +0000</pubDate>
		<dc:creator>Gregor</dc:creator>
				<category><![CDATA[how-tos]]></category>
		<category><![CDATA[programme]]></category>
		<category><![CDATA[tutorials]]></category>
<category>cmd</category><category>facebook</category><category>fbcmd</category><category>shell</category>
		<guid isPermaLink="false">http://blog.pimpmyshell.de/2010/05/28/fbcmd-facebook-in-der-shell/</guid>
		<description><![CDATA[Nachdem der Facebook-Chat nun mit bitlbee abgedeckt ist, waere es ebenso interessant, die Nachrichten und News-Streams von Facebook in der Konsole angezeigt zu bekommen. Ich habe versucht, das ganze mit w3m oder lynx zu stemmen, jedoch ist Facebook in einem Konsolenbrowser nicht wirklich benutzbar (jedenfalls für mich) also suchte ich nach einem einfachen textbasierten Interface [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem der Facebook-Chat nun mit bitlbee abgedeckt ist, waere es ebenso interessant, die Nachrichten und News-Streams von Facebook in der Konsole angezeigt zu bekommen. Ich habe versucht, das ganze mit w3m oder lynx zu stemmen, jedoch ist Facebook in einem Konsolenbrowser nicht wirklich benutzbar (jedenfalls für mich) also suchte ich nach einem einfachen textbasierten Interface welches die Facebook-API nutzt um die wichtigsten Aufgaben direkt mit einem Befehl von der Shell aus in Facebook zu erledigen. </p>
<p>Das Programm traegt den Namen <strong>fbcmd</strong> &#8211; der Name sagt eigentlich alles.<br />
Das Programm, die Funktionen und die Installation sind<a href="http://fbcmd.dtompkins.com/"> sehr gut dokumentiert</a>.</p>
<p>Ich musste unter Debian über die Repos noch <strong>php5-cli</strong> nachinstallieren um das Installationscript nutzen zu koennen. Ansonsten war es sehr angenehm zu installieren: </p>
<blockquote><p>
curl -O http://github.com/dtompkins/fbcmd/raw/master/fbcmd_update.php<br />
sudo php fbcmd_update.php<br />
sudo php fbcmd_update.php install
</p></blockquote>
<p>Nach der Installation kann man das Programm auch als User mit fbcmd starten und wird aufgefordert, den Authorisationscode von Facebook einzugeben &#8211; sehr einfach: Den generierten Link in den Browser einfügen, Bestätigen, Auth-Code Kopieren und mit folgendem Befehl dem Programm mitteilen. Danach kann es auch schon losgehen:</p>
<blockquote><p>fbcmd auth XXXXXX</p></blockquote>
<p>Nun reicht ein <strong>fbcmd inbox</strong> aus, um direkt auf der Konsole die letzten Nachrichten zu sehen, die man sich dann mit <strong>fbcmd msg nr. </strong>anschauen kann. Es gibt natuerlich noch viele weitere Befehle und Features in diesem Programm, die man sich im <a href="http://fbcmd.dtompkins.com/commands">Wiki des Projektes</a> auch genauer anschauen kann.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pimpmyshell.de/2010/05/28/fbcmd-facebook-in-der-shell/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Die Heirloom-Tools &#8211; Unix unter Linux</title>
		<link>http://blog.pimpmyshell.de/2008/04/15/die-heirloom-tools-unix-unter-linux/</link>
		<comments>http://blog.pimpmyshell.de/2008/04/15/die-heirloom-tools-unix-unter-linux/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 03:54:30 +0000</pubDate>
		<dc:creator>CuleX</dc:creator>
				<category><![CDATA[berichte]]></category>
		<category><![CDATA[programme]]></category>
		<category><![CDATA[shells]]></category>

		<guid isPermaLink="false">http://blog.pimpmyshell.de/2008/04/15/die-heirloom-tools-unix-unter-linux/</guid>
		<description><![CDATA[&#8220;Häh? UNIX unter Linux?! Ich dachte, Linux sei ein Unix?&#8221; Linux ist doch kein UNIX. Nur ein UNIX-Klon. Die eigentliche Toolchain (Wenn es EMACS-Benutzer sind, auch EMACS) kommt von GNU. Das ist für den kleinsten Teil der Leser neu, doch die Frage ist, was ist nun mit &#8220;Unix unter Linux&#8221; gemeint ist. Ein gutes Beispiel, [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;Häh? UNIX unter Linux?! Ich dachte, Linux <em>sei</em> ein Unix?&#8221;</p>
<ol>
<li>Linux ist doch kein UNIX. Nur ein UNIX-Klon.</li>
<li>Die eigentliche Toolchain (Wenn es EMACS-Benutzer sind, auch EMACS) kommt von <a href="http://www.gnu.org">GNU</a>.</li>
</ol>
<p>Das ist für den kleinsten Teil der Leser neu, doch die Frage ist, was ist nun mit &#8220;Unix unter Linux&#8221; gemeint ist. Ein gutes Beispiel, dies zu demonstrieren, ist ps. Für die gleiche/sehr ähnliche Ausgabe, muss ich völlig andere Parameter benutzen.<br />
<code>ps -A</code> unter BSD/OS X entspricht (Evtl. nicht ganz die selbe Ausgabe) <code>ps -ef</code> unter Linux.</p>
<p>Die <a href="http://heirloom.sourceforge.net">Heirloom-Tools</a> umgehen dieses Problem auf eine (Für den Benutzer) einfache Weise, sie stellen einfach alte Software kompilierfähig zur verfügung.</p>
<p>Beinhaltet sind Programme, die sich wie unter:</p>
<ul>
<li>SVID3/SVR4-Unix verhalten</li>
<li>SVID4/SVR4.2-Unix verhalten</li>
<li>POSIX.2 verhalten</li>
<li>POSIX.1-2001 verhalten</li>
</ul>
<p>Ausserdem werden auch Binaries im UCB-Stil installiert.<br />
Klingt ja alles schön und toll (Ganz im Gegensatz zu gewissen Ideen Schäubles&#8230;), aber, <em>was soll ich denn damit?</em></p>
<p>Nun, du hast eventuell steinalte Shellskripte auf der Arbeit gefunden, kannst sie aber nicht laufen lassen, da die Optionen inkompatibel sind.<br />
Oder, du hattest nie Kontakt zu einem echten Unix, lediglich zu Minix/GNU/Linux und willst die feinen Unterschiede sehen.<br />
Was auch sein kann ist, dass du Skripte für UnixWare oder BSD schreiben musst und diese sollte man ohne ein solches System testen können, besonders bei UnixWare.<br />
Die Neugier kann auch einfach zuschlagen.<br />
Auf der Webseite sind mehrere Dinge zu finden, nicht nur die Heirloom Toolchest, sondern auch die alte Bourne Shell, sowie die Packaging Tools.</p>
<p>Anmerkung am Rande: Alles auf der Webseite wurde aufpoliert, um heutigen Standards zu genügen. *roff kann nun auch OpenType und alle Tools (Toolchain, Packaging Tools, Doctools, Bourne Shell, Devtools, mailx) beherrschen UTF-8, also keine Sorge, dass deine Textdateien auf einmal aussehen, als würden sie durch den Fleischwolf gejagt wurden.</p>
<p>Die Bourne Shell hat wirklich eigentlich nichts, nur grundlegenden Skriptsupport, keine History, keine Tabcompletion. Dafür eine solide Shell, die nicht wegen falscher Konfiguration völlig falsch funktioniert (Und Jobs, YAY!).<br />
Mir persönlich hilft die Shell, vernünftig zu arbeiten und mich nicht ablenken zu lassen. Ich hab dafür sogar mein ganzes Home-Directory (5GB Daten!) aufgeräumt!</p>
<p>Die Packaging Tools sind sehr eigentümlich. Eigentlich erwartet man nicht, dass sie vorhanden sind, sind sie aber. Da pkgadd fragt, ob etwas überschrieben werden soll, kann es problemlos zu einem anderen Paketsystem verwendet werden.</p>
<p>Äusserst langweilig ist, dass die meisten Dinge auf einem anderen Teil der Heirloom-Tools aufbauen. Will man beispielsweise nur die Packaging Tools benutzen, muss die ganze Toolchest installiert werden, da die Tools sich nach einem Teil dieser verhalten.</p>
<p>Nichtsdestotrotz ist es äussert intressant, mit älterer Software zu arbeiten. (Ausserdem generiert troff viel schöneren Postscript output als groff :P)</p>
<p><a href="http://sam.zoy.org/wtfpl/">Dieser Artikel ist unter der WTFPL lizensiert.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pimpmyshell.de/2008/04/15/die-heirloom-tools-unix-unter-linux/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>dvtm &#8211; dwm für die Konsole</title>
		<link>http://blog.pimpmyshell.de/2008/02/13/dvtm-dwm-fur-die-konsole/</link>
		<comments>http://blog.pimpmyshell.de/2008/02/13/dvtm-dwm-fur-die-konsole/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 10:43:04 +0000</pubDate>
		<dc:creator>CuleX</dc:creator>
				<category><![CDATA[programme]]></category>

		<guid isPermaLink="false">http://blog.pimpmyshell.de/2008/02/13/dvtm-dwm-fur-die-konsole/</guid>
		<description><![CDATA[Zunächst einige Zeilen, um das nachfolgende zu verstehen. dwm ist ein minimalistischer Windowmanager, der das Ziel hat, nie mehr als 2000 Codezeilen zu überschreiten. dvtm bezeichnet sich selbst als Windowmanager für die Konsole, der sich als Vorbild dwm genommen hat. Dvtm existiert noch nicht lange. Von ihm Wind bekommen habe ich durch die dwm Mailingliste. [...]]]></description>
			<content:encoded><![CDATA[<p>Zunächst einige Zeilen, um das nachfolgende zu verstehen.<br />
<a href="http://dwm.suckless.org">dwm</a> ist ein minimalistischer Windowmanager, der das Ziel hat, nie mehr als 2000 Codezeilen zu überschreiten.<br />
<a href="http://www.brain-dump.org/projects/dvtm">dvtm</a> bezeichnet sich selbst als Windowmanager für die Konsole, der sich als Vorbild dwm genommen hat. Dvtm existiert noch nicht lange. Von ihm Wind bekommen habe ich durch die dwm Mailingliste.</p>
<p>GNU Screen und dvtm existieren parallel. Doch dvtm hat ein anderes Ziel: dwm auf der Konsole. Screen dagegen ist ein Terminalmultiplexer.</p>
<p>Nun, zu dvtm selber. Dvtm kann sich wirklich der dwm der Konsole nennen, denn es gibt schlichtweg keine Konfigurationsdateien. Jegliche Modifikation oder Konfiguration geschieht in der config.h/im Code. Ausserdem besteht er aus &#8220;nur&#8221; 2369 Codezeilen. Zieht man nun aber die Library madtty hab, so sind es nur noch 1175. Dies befindet sich ungefähr im bereich des X11 dwm. Dafür gibt es kein oberes Zeilenlimit, d.h. er könnte auch mal aufgebläht werden, wie die GNU readline Library (Über 20000 Zeilen Sourcecode!).<br />
Unterstützt werden vier &#8220;Arten&#8221; von Terminalmanaging: Vertikales Teilen, Teilen im unteren Bereich (Siehe Screenshot), Grid (Alle Fenster bekommen gleich viel Platz) und Fullscreen</p>
<p>So könnte dvtm aussehen, nach erfolgter Installation und Konfiguration: <a href="http://blog.pimpmyshell.de/uploads/2008/02/2008-02-13-104240_1280x1024_scrot.png"><img src="http://blog.pimpmyshell.de/uploads/2008/02/2008-02-13-104240_1280x1024_scrot.thumbnail.png" alt="dvtm" /></a></p>
<p>Nun, dvtm aufzusetzen ist kein Mysterium. Zumindest ist es einfacher als Kopfstehend auf den Füssen zu laufen.<br />
Zunächst holt man sich den Code von <a href="http://www.brain-dump.org/projects/dvtm/">http://www.brain-dump.org/projects/dvtm</a> und entpackt ihn. Man sollte nun ein Verzeichnis dvtm-VERSIONSNUMMER vorfinden. In diesem führt man &#8220;make unicode&#8221; aus. Als root noch fix &#8220;make install&#8221; ausgeführt, sind im Path zwei neue Kommandos: Dvtm (Dank der deutschen Rechtschreibung muss ich hier &#8220;Dvtm&#8221; schreiben, es lautet jedoch &#8220;dvtm&#8221;) und dvtm-status. Dvtm ist das eigentliche Kommando, dvtm-status ist ein Beispielscript für eine Statusbar.</p>
<p><strong>Warnung:</strong> Dvtm ist im Alphastadium und hat einiges an Bugs! Für die meisten gibt es allerdings einen Workaround.</p>
<p>Nun. Startet man dvtm sieht man gleich, dass es eine Titelleiste für das Kommando hat. Toll. Für das hätte man sich dvtm auch sparen können. Der Standardprefix ist Ctrl-g. Mit &#8220;C-g c&#8221; (Ich benutze hier die Emacsnotation. C = Control, SPC = Space, Leertaste. Ein Leerzeichen steht für alles loslassen) öffnet man ein neues Terminal, welches direkt neben dem ersten, schon geöffneten erschent. Öffnen Sie ruhig noch zwei, um die Wirkung zu sehen.<br />
Drücken Sie nun &#8220;C-g SPC&#8221;. Sie befinden sich nun im Grid-Modus. Ein weiteres mal diese Prozedur ausgeführt und Sie sind im Modus, in dem alle Fenster sich den unteren Platz teilen müssen. Wiederholen Sie dies noch einmal, sind Sie im Fullscreenmodus. Danach beginnt es wieder von Vorne.<br />
Um ein anderes Terminal zu aktivieren, wird &#8220;C-g NUMMER&#8221; verwendet. Die Nummer erhalten Sie aus der Titelleiste. Zum beenden &#8220;C-g q&#8221; benutzen.<br />
So viel zum Crashkurs. C-g als Prefix können Sie, wie viele andere Dinge, in der config.h-Datei verändern.</p>
<p>Und das Beste kommt zum (fast) Schluss: Solange Screen und dvtm nicht den selben Prefix haben, können mehrere dvtm-Instanzen in screen laufen. Beispielsweise hat Screen fünf Terminals geöffnet und in diesen wird dann jeweils dvtm mit vier Unterterminals gestartet. Das macht unter dem Strich 20 Terminals.</p>
<p><strong>Bugs:</strong></p>
<ul>
<li>In vim funktionieren die Pfeiltasten nicht. Lösung: TERM=linux vim (Der Autor versucht dies zu lösen)</li>
<li>In emacs funktionieren die Home, End und Delete Tasten nicht. Lösung: TERM=linux emacs (Siehe vim)</li>
</ul>
<p>Aber warum sollte man dvtm einsetzen, GNU Screen kann das doch weitaus Bugfreier! Nun, generell gilt, dass die meisten dwm-Benutzer die Meinung, die auf <a href="http://www.suckless.org">suckless.org</a> repräsentiert wird, teilen. Das heisst: Wenig Codezeilen und nur das nötigste.<br />
Somit ist das auch Meinungssache. Ausserdem ist dvtm geeignet für Leute mit Spieltrieb, die etwas neues ausprobieren wollen.<br />
Ausserdem: Der Code von dvtm ist einfacher zu verstehen, als der von GNU Screen.</p>
<p><a href="http://sam.zoy.org/wtfpl/">Dieser Artikel ist unter der WTFPL lizensiert.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pimpmyshell.de/2008/02/13/dvtm-dwm-fur-die-konsole/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Wohin ist mein Speicherplatz: ncdu</title>
		<link>http://blog.pimpmyshell.de/2008/02/12/wohin-ist-mein-speicherplatz-ncdu/</link>
		<comments>http://blog.pimpmyshell.de/2008/02/12/wohin-ist-mein-speicherplatz-ncdu/#comments</comments>
		<pubDate>Tue, 12 Feb 2008 12:13:28 +0000</pubDate>
		<dc:creator>Gregor</dc:creator>
				<category><![CDATA[programme]]></category>

		<guid isPermaLink="false">http://blog.pimpmyshell.de/2008/02/12/wohin-ist-mein-speicherplatz-ncdu/</guid>
		<description><![CDATA[ncdu &#8211; das ist keine neue Abspaltung der Christlich Demokratischen Union, sondern ein Programm welches in einem netten ncurses Interface anzeigt, wie groß welche Dateien auf der Festplatte oder sonstigen Speichermedien sind. ncdu bedeutet: NCurses Disk Usage Ein solches Tool habe ich schon sehr lange gesucht, da es schnell vorkommen kann, dass man mehr Speicherplatz [...]]]></description>
			<content:encoded><![CDATA[<p>ncdu &#8211; das ist keine neue Abspaltung der Christlich Demokratischen Union, sondern ein Programm welches in einem netten ncurses Interface anzeigt, wie groß welche Dateien auf der Festplatte oder sonstigen Speichermedien sind. </p>
<p><a href="http://dev.yorhel.nl/ncdu/">ncdu bedeutet: <strong>NCurses Disk Usage</strong></a></p>
<p>Ein solches Tool habe ich schon sehr lange gesucht, da es schnell vorkommen kann, dass man mehr Speicherplatz benötigt &#8211; mit ncdu weiß man dann auch welche Verzeichnise oder Dateien es wert sind gelöscht zu werden.</p>
<p>Ich habe das Programm über das Paketmanagement meiner Distrubution ohne Probleme installieren können:</p>
<p>Nach dem Start fragt das Programm welches Verzeichnis er analysieren soll. Hat man dieses eingegeben berechnet es den Speicherplatz und stellst diese in einer übersichtlichen Liste dar. Ausprobieren lohnt sich &#8211; <a href="http://dev.yorhel.nl/ncdu/userguide/">eine detaillierte Beschreibung befindet sich auf der Projektwebseite.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pimpmyshell.de/2008/02/12/wohin-ist-mein-speicherplatz-ncdu/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>gcalcli &#8211; google calendar auf der shell</title>
		<link>http://blog.pimpmyshell.de/2008/02/12/gcalcli-google-calendar-auf-der-shell/</link>
		<comments>http://blog.pimpmyshell.de/2008/02/12/gcalcli-google-calendar-auf-der-shell/#comments</comments>
		<pubDate>Tue, 12 Feb 2008 11:53:08 +0000</pubDate>
		<dc:creator>Gregor</dc:creator>
				<category><![CDATA[how-tos]]></category>
		<category><![CDATA[programme]]></category>

		<guid isPermaLink="false">http://blog.pimpmyshell.de/2008/02/12/gcalcli-google-calendar-auf-der-shell/</guid>
		<description><![CDATA[Wenn man auf mehr als nur einem PC arbeitet und damit vielleicht sogar verschiedene Plattformen vor sich hat, gibt es oft das Problem, dass Daten nicht synchron sind. Nehmen wir als Beispiel Terminverwaltung: Wie kann man ein Microsoft Outlook, einen Windows Mobile Gerät, den Mozilla Sunbird synchronisieren, dass jeder dieser Instanzen die gleichen Termine empfängt [...]]]></description>
			<content:encoded><![CDATA[<p>Wenn man auf mehr als nur einem PC arbeitet und damit vielleicht sogar verschiedene Plattformen vor sich hat, gibt es oft das Problem, dass Daten nicht synchron sind. Nehmen wir als Beispiel Terminverwaltung: Wie kann man ein Microsoft Outlook, einen Windows Mobile Gerät, den Mozilla Sunbird synchronisieren, dass jeder dieser Instanzen die gleichen Termine empfängt und eintragen kann? Die Antwort ist der Google-Calendar, man kann die Kalender über das Internet abbonieren auch mit Terminen füttern.</p>
<p>Nun, da ich mich wieder auf die Shell konzentriere, hatte ich das Problem, das ich unter der Shell die Termine nicht abrufen und eintragen konnte. Doch mit einem kleinen Python-Skript kann ich nun auch diese Hürde überwinden: <a href="http://code.google.com/p/gcalcli/">gcalcli</a></p>
<p>Leider war die installation von gcalcli nicht so trivial.</p>
<p><strong>How-To:</strong></p>
<ul>
<li>gcalcli von der <a href="http://code.google.com/p/gcalcli/">Projektwebseite herunterladen</a></li>
<li>tarball entpacken</li>
<li>nach /usr/local/bin kopieren</li>
<li>.gcalclirc im Home-Verzeichnis anlegen</li>
</ul>
<p><strong>Die .gcalclirc sollte folgendermaßen aussehen:</strong></p>
<blockquote><p>[gcalcli]<br />
user: benutzer@googlemail.com<br />
pw: passwort<br />
cals: owner</p></blockquote>
<ul>
<li>Abhängigkeiten erfüllen:</li>
<p><a href="http://code.google.com/p/gdata-python-client/">Gdata-Python</a>, <a href="http://effbot.org/zone/element-index.htm">Elementree</a>, <a href="http://www.labix.org/python-dateutil">Dateutil-Python<br />
</a></p>
<li>jeweils aktuellste Versionen der Abhängigkeiten herunterladen und entpacken. In die jeweiligen Verzeichnise wechseln und mit &#8220;python setup.py install&#8221; als Superuser die Module installieren.</li>
<li>Sind die Module installiert kann man testen ob die Abfrage funktioniert: als user &#8220;gcalcli agenda&#8221; eingeben</li>
<ul>
<p>Bekommt man als Belohnung keine aktuellen Termine auf der Shell sondern mehrere Zeilen Fehlermeldungen, liegt es &#8211; wie in meinem Fall Wahrscheinlich an der Codierung:</p>
<p>Dies lässt sich mit folgendem Bugfix des Scripts beheben:</p>
<p><strong>Die Zeilen 66+67 sollte man folgendermaßen anpassen:</strong></p>
<blockquote><p>sys.stdout =  codecs.getwriter(&#8216;utf-8&#8242;)(sys.stdout)<br />
sys.stdin = sys.stdin = codecs.getreader(&#8216;utf-8&#8242;)(sys.stdin)</p></blockquote>
<p><strong>Im oberen Teil des Skripts sollten sie noch Atom-Support aktivieren durch einfügen von:</strong></p>
<blockquote><p>import atom<br />
atom.XML_STRING_ENCODING = None</p></blockquote>
<p>Nach dem Speichern sollte das Skript einwandfrei funktionieren. Folgende Abfragemöglichkeiten gibt es:</p>
<p><code><strong>gcalcli agenda</strong></code><br />
Zeigt die aktuellen Termine an, die anstehen.</p>
<p><code><strong>gcalcli calw</strong></code><br />
Zeigt einen ASCII Kalender, mit den Terminen der aktuellen Woche an</p>
<p><code><strong>gcalcli calm</strong></code><br />
Zeigt den aktuellen Monatskalender mit allen Einträgen an</p>
<p><strong>Termine werden über den quick-command eingetragen:</strong></p>
<blockquote><p>gcalcli quick &#8220;Termintext Uhrzeit TT.MM.YYYY&#8221;</p></blockquote>
<p>Ein kleines Schmankerl am Rand: Man kann in den Einstellungen des Google-Calendars eine SMS-Benachrichtigungsfunktion aktivieren, mit der man dann kostenlos per SMS an die eingetragenen Termine erinnert wird. Viel Spaß beim konfigurieren und Termine verwalten auf der Shell. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pimpmyshell.de/2008/02/12/gcalcli-google-calendar-auf-der-shell/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Eine Kurztippkollektion mit Fokus auf VI(M)</title>
		<link>http://blog.pimpmyshell.de/2008/02/10/eine-kurztippkollektion-mit-fokus-auf-vim/</link>
		<comments>http://blog.pimpmyshell.de/2008/02/10/eine-kurztippkollektion-mit-fokus-auf-vim/#comments</comments>
		<pubDate>Sun, 10 Feb 2008 14:23:04 +0000</pubDate>
		<dc:creator>CuleX</dc:creator>
				<category><![CDATA[programme]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://blog.pimpmyshell.de/2008/02/10/eine-kurztippkollektion-mit-fokus-auf-vim/</guid>
		<description><![CDATA[Es sind die kleinen Dinge im Leben, die es erst so schön machen, zumindest ist dies meine Meinung. Eine Mehrheit wird die hier vorgestellten Tipps bereits kennen, doch wer sie nicht kennt - so ist es zumindest mir ergangen - wird sich fürchterlich darüber freuen.]]></description>
			<content:encoded><![CDATA[<p>Es sind die kleinen Dinge im Leben, die es erst so schön machen, zumindest ist dies meine Meinung. Eine Mehrheit wird die hier vorgestellten Tipps bereits kennen, doch wer sie nicht kennt &#8211; so ist es zumindest mir ergangen &#8211; wird sich fürchterlich darüber freuen.</p>
<p><strong>VIM: Abkürzungen</strong><br />
Ich habe gerade erst kürzlich davon erfahren, dass man Abkürzungen in VIM benutzen kann. Diese Dinger sind extrem nützlich, da sie haufenweise Tipparbeit ersparen können. Dabei lautet die Syntax des Kommandos so:<br />
<code>ab Abürzungsname Einzufügender Text</code></p>
<p>Dabei gilt, dass der Abkürzungsname keine Leerzeichen enthalten darf, der Einzufügende Text kann, aber wie sieht es mit Zeilenumbrüchen aus?<br />
Dies ist etwas trickreicher, aber dennoch zu bewerkstelligen. Hierzu benutzt man im Einfügemodus Ctrl-V und danach die Taste Enter. Als Platzhalter wird ^M erscheinen, welches zudem farblich gekennzeichnet ist.</p>
<p><em>Ab</em> (Aus Gründen der deutschen Rechtschreibung musste das A gross geschrieben werden, das kommando heisst aber dennoch <em>ab</em>, kleingeschrieben) kann entweder während dem Editieren verwendet werden, oder in der .vimrc benutzt werden, wie jedes andere Feld-und-Wiesen-Kommando auch.</p>
<p>Ich benutze VIM um meine E-Mails zu schreiben. Mir persönlich ist es ja zu lange, immer &#8220;Mit freundlichen Grüssen, <em>Enter</em> Name Hier&#8221; auszuschreiben. Ein gefundenes Fressen für eine Abkürzung, nicht? Umzusetzen ist dies so:</p>
<p><code>ab mfg Mit freundlichen Grüssen, <strong>Ctrl-V Enter</strong> Name Hier</code></p>
<p><strong>VI(M) Modus für Readline/Die Shell</strong><br />
Nichts schlimmer für einen VI(M)-Freund, als GNU Readline mit der EMACS-Einstellung zu benutzen. Aber selbst dafür gibt es Abhilfe. In der Shell kurz eingetippt:<br />
<code>set -o vi</code><br />
Uuund&#8230; TADA, es hat sich nichts verändert. Von wegen! Man ist nur Standardmässig im Einfügemodus. Drückt ihr nun aber Escape, könnt ihr den Befehl wie unter VI(M) bearbeiten. Natürlich ist dies kein Vollständiger Klon, aber immerhin etwas.</p>
<p>Um diese Änderung rückgängig zu machen, wird das folgende Kommando benutzt:<br />
<code>set -o emacs</code></p>
<p>Wenn&#8217;s gefällt, einfach in die .zshrc/.bashrc/.whateverrc aufnehmen und sich freuen.</p>
<p><strong>Alpine (Eventuell auch Pine) &#8211; anderer Editor</strong><br />
Pico hat mir als Editor für meine E-Mails nicht gefallen, ich wollte meinen VIM und damit Punkt. Ich habe mich mal durch die Zahlreichen Optionen gewälzt und auch was gefunden.</p>
<p>Um VIM oder auch einen anderen Editor einzubinden, durchsuche man mit <em>w</em> die Optionen nach &#8220;editor&#8221;, setze ein Häkchen bei &#8220;Enable Alternate Editor Command&#8221;, &#8220;Enable Alternate Editor Implicitly&#8221; und setze die Variable &#8220;Editor&#8221; auf &#8220;vim&#8221; (Oder einen anderen Editor).</p>
<p><a href="http://sam.zoy.org/wtfpl/">Dieser Artikel ist unter der WTFPL lizensiert.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pimpmyshell.de/2008/02/10/eine-kurztippkollektion-mit-fokus-auf-vim/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Mehr Vim Tipps</title>
		<link>http://blog.pimpmyshell.de/2007/09/16/mehr-vim-tipps/</link>
		<comments>http://blog.pimpmyshell.de/2007/09/16/mehr-vim-tipps/#comments</comments>
		<pubDate>Sun, 16 Sep 2007 18:04:12 +0000</pubDate>
		<dc:creator>Andreas</dc:creator>
				<category><![CDATA[allgemein]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://blog.pimpmyshell.de/2007/09/16/mehr-vim-tipps/</guid>
		<description><![CDATA[Ich bin ein neuer Autor und werde gelegentlich Beiträge zu Vim und evtl. anderen Themen schreiben. Hier ein paar kleine Tipps, die mir immer wieder den Alltag erleichtern. ]]></description>
			<content:encoded><![CDATA[<p>Hallo zusammen</p>
<p>Ich bin ein neuer Autor und werde gelegentlich Beiträge zu Vim und evtl. anderen Themen schreiben. Hier ein paar kleine Tipps, die mir immer wieder den Alltag erleichtern.</p>
<p>Ich gehe davon aus, dass die Grundkenntnisse bereits vorhanden sind; ansonsten ist das bei Vim mitgelieferte Tutorial empfehlenswert, welches aus der Shell mit </p>
<p><code>
<pre>
$ vimtutor
</pre>
<p></code></p>
<p>gestartet werden kann.</p>
<h5>Rechtschreibung</h5>
<p>Seit Version 7 bietet Vim eine eigene Rechtschreibehilfe an. Nach der Eingabe</p>
<p><code>
<pre>
:set spell spelllang=de,en
</pre>
<p></code></p>
<p>werden alle Wörter, die von Vim nicht als korrekte Deutsche oder Englische Wörter erkannt werden, rot markiert.</p>
<h5>Umlaute</h5>
<p>Manchmal hat es auf einer Tastatur keine Umlaute. Kein Problem mit Vim &#8211; die Umlaute können im Insert-Mode mit CTRL-K als Digraph eingegeben werden. Beispiel:</p>
<p><code>
<pre>
CTRL-K U:
</pre>
<p></code></p>
<p>gibt ein Ü ein. Die weiteren Digraphe lassen sich mit</p>
<p><code>
<pre>
:digraph
</pre>
<p></code></p>
<p>anzeigen.</p>
<h5>Automatische Komprimierung</h5>
<p>Hat eine Datei eine Endung .gz oder .bz2, so wird sie von Vim automatisch (de-)komprimiert. Dies funktioniert auch beim Erstellen einer neuen Datei, z.B.:</p>
<p><code>
<pre>
$ vim notizen.txt.bz2
</pre>
<p></code></p>
<h5>Makros</h5>
<p>Ein Makro kann dazu verwendet werden, eine oft wiederholte Editiersequenz abzukürzen. Die Aufnahme eines Makros hat immer die Form qX[Editiersequenz]q. Abgespielt wird es mit @X. Dabei ist X der Bezeichner der Sequenz &#8211; dies kann ein Buchstabe oder eine Ziffer sein. Die Editiersequenz darf auch Wechsel in andere Modi beinhalten, muss aber im Normal-Mode starten und enden. Ein Beispiel:</p>
<p><code>
<pre>
qayypVr-q
</pre>
<p></code></p>
<p>Nun wird durch Eingabe von</p>
<p><code>
<pre>
@a
</pre>
<p></code></p>
<p>der Text einer ganzen Zeile unterstrichen.</p>
<h5>Verschlüsselung</h5>
<p>Will man in Vim einen Text verschlüsseln, so genügt es, Vim mit -x aufzurufen oder bei laufendem Vim</p>
<p><code>
<pre>
:X
</pre>
<p></code></p>
<p>einzugeben. Vim fragt dann nach einem Schlüssel und speichert die Datei ab sofort nur noch verschlüsselt. Der verwendete Algorithmus ist allerdings nicht besonders sicher. Besser &#8211; und auch eher der Unix-Philosophie entsprechend &#8211; wäre es, ein externes Tool für die Verschlüsselung zu verwenden. Vim bietet die Möglichkeit, einen Teil (Selektion) oder den ganzen Inhalt (% Operator) einer Datei durch ein externes Programm zu filtern. Möchte ich z.B. eine Textdatei vor dem Speichern mit GPG verschlüsseln (wozu GPG natürlich vorher eingerichtet werden muss), so gebe ich einfach</p>
<p><code>
<pre>
:%!gpg -e -a -r andreas
</pre>
<p></code></p>
<p>ein. Damit wird der Text von GPG mit meinem eigenen öffentlichen Key verschlüsselt. Da RSA asymmetrisch ist, wird die Passphrase nur zum entschlüsseln benötigt, was mit</p>
<p><code>
<pre>
:%!gpg -d -q
</pre>
<p></code></p>
<p>bewerkstelligt wird.</p>
<p>In beiden Fällen sind Swap- und Viminfo-Dateien aber immer noch unverschlüsselt. Sie können entweder mit den Kommandozeilen-Parametern -n -i /dev/null oder mit dem Kommando</p>
<p><code>
<pre>
:set noswapfile viminfo=
</pre>
<p></code></p>
<p>deaktiviert werden.</p>
<p>Die Möglichkeit, so einfach externe Programme einsetzen zu können ist auch sonst immer wieder äusserst nützlich. Möchte ich beispielsweise einige Zeilen alphabetisch sortieren, so markiere ich sie einfach (Visual-Mode) und gebe</p>
<p><code>
<pre>
:!sort
</pre>
<p></code></p>
<p>ein.</p>
<h5>Mappings</h5>
<p>Für oft verwendete Kommandos lohnt es sich, eigene Mappings zu erstellen (diese können in der Datei .vimrc gesammelt werden). Ein Beispiel:</p>
<p><code>
<pre>
:map &lt;F2&gt; :execute '!links http://dict.leo.org/?search='.expand("&lt;cword&gt;")&lt;CR&gt;
</pre>
<p></code></p>
<p>Nun kann mit F2 auf einen Tastendruck die Übersetzung für das Wort, das sich aktuell unter dem Cursor befindet, bei Leo nachgeschlagen werden.</p>
<p>So, das ist im Moment alles was mir so einfällt. Ich hoffe es hat ein paar nützliche Tipps dabei und freue mich natürlich über Feedback.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pimpmyshell.de/2007/09/16/mehr-vim-tipps/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Spaß in ASCII-Art: cowsay und FIGlet</title>
		<link>http://blog.pimpmyshell.de/2007/07/14/spass-in-ascii-art-cowsay-und-figlet/</link>
		<comments>http://blog.pimpmyshell.de/2007/07/14/spass-in-ascii-art-cowsay-und-figlet/#comments</comments>
		<pubDate>Sat, 14 Jul 2007 18:23:34 +0000</pubDate>
		<dc:creator>Jeremy</dc:creator>
				<category><![CDATA[fun]]></category>
		<category><![CDATA[programme]]></category>
<category>ASCII</category><category>ASCII-Art</category><category>cowsay</category><category>cowthink</category><category>figlet</category>
		<guid isPermaLink="false">http://blog.pimpmyshell.de/2007/07/14/spas-in-ascii-art-cowsay-and-figlet/</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>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: <strong>cowsay</strong> und <strong>figlet</strong>.<br />
<span id="more-100"></span></p>
<h3>Was ist ASCII Art?</h3>
<p><em>ASCII Art</em> ist Kunst, die größtenteils auf Computern präsentiert wird und aus den 95 (von den 128) druckbaren Zeichen des <a href="http://de.wikipedia.org/wiki/ASCII">ASCII</a>-Standards besteht, die geschickt zu Piktogrammen zusammengesetzt werden. Weitere Informationen dazu gibt es <a href="http://en.wikipedia.org/wiki/ASCII_art">hier</a>.</p>
<h3>Installation</h3>
<p>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:</p>
<p><code>sudo apt-get install cowsay figlet</code></p>
<p>Nach ein Paar Sekunden kannst du die Programme bereits nutzen. Natürlich kannst du auch Synaptic oder andere Alternativen für die Installation nutzen.</p>
<h3>Cowsay und Cowthink</h3>
<p>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.<br />
Du hast es bestimmt schon erraten: Der Unterschied zwischen <em>cowsay</em> und <em>cowthink</em> ist die Art der Blasen, die generiert werden. <em>Cowsay</em> für Sprechblasen und <em>cowthink</em> für Denkblasen. :-)</p>
<p>Ok, los gehts:<br />
<img id="image101" src="http://blog.pimpmyshell.de/uploads/2007/07/cowsay1.png" alt="Cowsay" /><br />
Das war die Ausgabe von:</p>
<p><code>cowsay "Pimpmyshell rockt"</code></p>
<p>Neben diesem Befehl gibt es noch einige Optionen (Parameter), welche deinen Text noch ein wenig cooler aussehen lassen.</p>
<p>Probieren wir folgenden Befehl aus:</p>
<p><code>cowsay -f name "beispiel_text"</code></p>
<p>Das würde <strong>beispiel-text</strong> mit dem Tier <strong>name</strong> erzeugen.</p>
<p>Die verfügbaren Tiere können in /usr/share/cowsay/cows (Pfad kann variieren) gefunden werden.</p>
<p>In meinem Fall gibt</p>
<p><code> ls /usr/share/cowsay/cows</code></p>
<p>Folgende Liste von Dateien aus:</p>
<p><code>apt.cow eyes.cow moofasa.cow surgery.cow<br />
beavis.zen.cow flaming-sheep.cow moose.cow telebears.cow<br />
bong.cow ghostbusters.cow mutilated.cow three-eyes.cow<br />
bud-frogs.cow head-in.cow ren.cow turkey.cow<br />
bunny.cow hellokitty.cow satanic.cow turtle.cow<br />
cheese.cow kiss.cow sheep.cow tux.cow<br />
cower.cow kitty.cow skeleton.cow udder.cow<br />
daemon.cow koala.cow small.cow vader.cow<br />
default.cow kosh.cow sodomized.cow vader-koala.cow<br />
dragon-and-cow.cow luke-koala.cow sodomized-sheep.cow www.cow<br />
dragon.cow mech-and-cow.cow stegosaurus.cow<br />
elephant.cow meow.cow stimpy.cow<br />
elephant-in-snake.cow milk.cow supermilker.cow</code></p>
<p>Statt <strong>name</strong> lässt sich also einer dieser Dateinamen (ohne die Endung (.cow) ) eintragen. Einer meiner lieblinge ist:</p>
<p><code>cowsay -f vader "I'm your father"</code></p>
<p><img id="image102" src="http://blog.pimpmyshell.de/uploads/2007/07/cowsay2.png" alt="Cowsay Cowth Vader" /></p>
<p>Ein anderer interressanter Weg zum personalisieren unserer Kuh, ist die Form der Augen zu verändern. Dafür gibt es folgende Optionen:</p>
<p><code>-b -d -t -y -g -p -s -w</code></p>
<p>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).</p>
<p>Ein weiterer Weg, die Form der Augen zu verändern ist:</p>
<p><code>-e "form_der_augen"</code></p>
<p>Der Befehl:</p>
<p><code>cowsay -e "TT" "Pimpmyshell"</code></p>
<p>zum Beispiel gibt folgendes aus:<br />
<img id="image103" src="http://blog.pimpmyshell.de/uploads/2007/07/cowsay3.png" alt="Cowsay" /></p>
<p>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.</p>
<p>Unglücklicherweise funktioniert die Option -e auch nur mit der Standard ASCII-Kuh.</p>
<p>Zum Schluss sei die Option</p>
<p><code>-W anzahl_der_spalten</code></p>
<p>erwähnt, wobei <strong>anzahl_der_spalten</strong> definiert, wie lang (in Spalten) eine Textzeile sein darf.</p>
<p>Wenn <strong>anzahl_der_spalten</strong> auf &#8220;10&#8243; gesetzt wird, werden neun Zeichen in der ersten Zeile ausgegeben und der zehnte in die nächste Zeile verschoben.</p>
<p>Die Ausgabe von:</p>
<p><code>cowsay -W 4 "Pimpmyshell rockt"</code></p>
<p>würde also wie folgt aussehen:<br />
<img id="image104" src="http://blog.pimpmyshell.de/uploads/2007/07/cowsay4.png" alt="Cowsay Pimpmyshell rockt" /></p>
<p>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 <a href="http://www.nog.net/~tony/warez/cowsay.shtml">hier</a> herunterladen. </p>
<p>Ein letzter Tipp noch:<br />
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:</p>
<p><code>cowsay "Pimpmyshell" &gt;&gt; datei.txt</code></p>
<p>Dieser Befehl speichert die Ausgabe von Cowsay in die Datei &#8220;datei.txt&#8221;.</p>
<h3>Figlet</h3>
<p>Schluss mit dem vielem Gerede über Kühe, weiter gehts zum nächsten Programm &#8211; <strong>Figlet</strong>.<br />
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.</p>
<p>Um mit Figlet einen Schriftzug zu generieren, gib folgenden Befehl ein:</p>
<p><code>figlet Pimpmyshell rockt</code></p>
<p>oder auch</p>
<p><code>figlet "Pimpmyshell rockt"</code></p>
<p>, was folgende Ausgabe erzeugen wird:<br />
<img id="image105" src="http://blog.pimpmyshell.de/uploads/2007/07/figlet1.png" alt="Figlet" /></p>
<p>Im normalfall betrachtet <strong>figlet</strong> 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 <em>kerning</em>, was nichts anderes bedeutet, als dass ein Leerzeichen zwischen die Buchstaben gesetzt wird. Um <em>kerning</em> zu nutzen, muss die Option -k angegeben werden. Der oben generierte Schriftzug zum Beispiel wird wie folgt aussehen:</p>
<p><code>figlet -k "Pimpmyshell rockt"</code></p>
<p><img id="image107" src="http://blog.pimpmyshell.de/uploads/2007/07/figlet2.png" alt="Figlet mit kerning" /><br />
Man sieht den Unterschied, oder? Eine weitere Option ist die Textausrichtung. Es gibt 3 Standardpositionen:</p>
<ul>
<li>Nach Links ausgerichtet (Option <code>-l</code>),</li>
<li>Nach Rechts ausgerichtet (Option <code>-r</code>),</li>
<li>Zentriert (Option <code>-c</code>).</li>
</ul>
<p>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 &#8220;.flf.&#8221;) zu finden.</p>
<p>Um eine bestimmte Schriftart zu nutzen, kann die Option <code>-f schriftart</code> verwendet werden, wobei <strong>schriftart</strong> den Dateinamen der Schriftart (ohne die Endung) darstellt.</p>
<p>So lässt sich etwa der Schriftzug &#8220;Pimpmyshell rockt&#8221; in Schreibschrift darstellen:<br />
Der Befehl:</p>
<p><code>figlet -f script "Pimpmyshell rockt"</code></p>
<p>Und seine Ausgabe:<br />
<img id="image108" src="http://blog.pimpmyshell.de/uploads/2007/07/figlet3.png" alt="Figlet" /></p>
<p>Da wäre ausserdem noch die Option <code>-d verzeichnis</code> was figlet Schriftarten aus <strong>verzeichnis</strong> nutzen lässt.</p>
<p>Und noch viele weitere Optionen, welche ich hier jetzt aber nicht weiter ausführen werde (dafür sind die Manpages da).</p>
<p>Die <a href="http://www.figlet.org/">Website von Figlet</a> ist übrigens nicht die einzige ihrer Art. Wegen seiner Popularität existieren noch eine Menge anderer im Internet. Figlet-Schriftzüge lassen sich <a href="http://www.schnoggo.com/figlet.html">hier</a> sogar im Webbrowser erzeugen.</p>
<p><em>Dieser Artikel wurde von mir mit freundlicher Genehmigung von Borys Musielak ins Deutsche übersetzt und leicht verändert. Original article: <a href="http://polishlinux.org/apps/cli/ascii-art-fun-cowsay-and-figlet/">ASCII-Art fun: cowsay and FIGlet</a> at <a href="http://polishlinux.org/">PolishLinux.org</a>.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pimpmyshell.de/2007/07/14/spass-in-ascii-art-cowsay-und-figlet/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>

