<?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; shells</title>
	<atom:link href="http://blog.pimpmyshell.de/category/shells/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.pimpmyshell.de</link>
	<description>leben im text-modus</description>
	<lastBuildDate>Thu, 26 Aug 2010 18:04:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<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>Meillos Umzug in die Shell</title>
		<link>http://blog.pimpmyshell.de/2008/01/04/meillos-umzug-in-die-shell/</link>
		<comments>http://blog.pimpmyshell.de/2008/01/04/meillos-umzug-in-die-shell/#comments</comments>
		<pubDate>Fri, 04 Jan 2008 09:52:52 +0000</pubDate>
		<dc:creator>meillo</dc:creator>
				<category><![CDATA[berichte]]></category>
		<category><![CDATA[shells]]></category>
<category>shell berichte</category>
		<guid isPermaLink="false">http://blog.pimpmyshell.de/2008/01/04/meillos-umzug-in-die-shell/</guid>
		<description><![CDATA[Ich bin nicht nur in dieser Community, weil ich ein gewisses Interesse für die Shell habe, sondern auch weil Gregor eben der Auslöser für meinen Umzug in die Shell war! Die meisten von euch dürften wohl wissen, dass Gregor (auch bekannt als Anaxagoras) im Jahr 2005 auf linuxlog.de (das es inzwischen leider nicht mehr gibt), [...]]]></description>
			<content:encoded><![CDATA[<p>Ich bin nicht nur in dieser Community, weil ich ein gewisses Interesse für die Shell habe, sondern auch weil Gregor eben der Auslöser für meinen Umzug in die Shell war!<br />
Die meisten von euch dürften wohl wissen, dass Gregor (auch bekannt als Anaxagoras) im Jahr 2005 auf linuxlog.de (das es inzwischen leider nicht mehr gibt), einen tollen Artikel über seinen Umzug in die Shell geschrieben hat.</p>
<p>Wer den Artikel noch nicht kennt, kann ihn <a href="http://blog.pimpmyshell.de/2006/11/19/gnuscreen/">hier</a> noch lesen.</p>
<p>Jedenfalls habe ich, nachdem ich den Artikel gelesen hatte, selbst mit meinem Umzug begonnen.<br />
Und das war eine der besten Entscheidungen meines Lebens! :-)</p>
<p>Früher oder später wäre ich sooderso umgezogen &#8230; Gregors Artikel hat es aber angestoßen und mich sehr motiviert.</p>
<p>Inzwischen fühle ich mich sehr heimisch und wohl in meinem (nun ja nicht mehr ganz so) neuen Zuhause (,denn schon seit über einem Jahr lebe ich inmitten von Text).</p>
<p>Weshalb ich euch das alles erzähle:<br />
Das ist der Hintergrund und die Einführung zu einem Vortrag, den ich im Dezember bei der LUG Ulm gehalten habe.<br />
Darin erzähle ich von der Unix-Philosophie, von eben meinem Umzug in die Shell und vom dynamic window manager &#8220;dwm&#8221;.</p>
<p>Keinesfalls möchte ich vergessen, euch auch an dieser Präsentation teilhaben zu lassen. Deshalb hier also der Link auf die Folien:</p>
<p><a href="http://marmaro.de/docs">Gimme Shellter</a></p>
<p>(Und dieser Artikel auch, um die Aktivität auf pms.de wieder etwas anzuregen: Leute postet mehr Artikel! Diese Website lebt von euren Beiträgen! Auf geht&#8217;s, haut in die Tasten! :-) )</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pimpmyshell.de/2008/01/04/meillos-umzug-in-die-shell/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Pimp your (Bash) Prompt</title>
		<link>http://blog.pimpmyshell.de/2007/12/10/pimp-your-prompt/</link>
		<comments>http://blog.pimpmyshell.de/2007/12/10/pimp-your-prompt/#comments</comments>
		<pubDate>Mon, 10 Dec 2007 22:17:00 +0000</pubDate>
		<dc:creator>Jeremy</dc:creator>
				<category><![CDATA[how-tos]]></category>
		<category><![CDATA[shells]]></category>

		<guid isPermaLink="false">http://blog.pimpmyshell.de/2007/12/10/pimp-your-prompt/</guid>
		<description><![CDATA[Du bist gelangweilt von dem hans@wurst:~$ &#8211; Prompt deiner Bash? Möchtest gerne mehr Informationen gezeigt bekommen? Du hättest gerne Augenschmerzen vor lauter Farben? In folgendem Artikel werde ich erklären, wie du Deinen Prompt personalisieren, einfärben, und visuell vollkommen verunstalten kannst. (Kleiner Hinweis vorweg: Der eine oder andere mag es bereits bemerkt haben, ich beziehe mich [...]]]></description>
			<content:encoded><![CDATA[<p>Du bist gelangweilt von dem <em>hans@wurst:~$</em> &#8211; Prompt deiner Bash? Möchtest gerne mehr Informationen gezeigt bekommen? Du hättest gerne Augenschmerzen vor lauter Farben?</p>
<p>In folgendem Artikel werde ich erklären, wie du</p>
<ul>
<li>Deinen Prompt personalisieren,</li>
<li>einfärben,</li>
<li>und visuell vollkommen verunstalten kannst.</li>
</ul>
<p><span id="more-96"></span><br />
<small>(Kleiner Hinweis vorweg: Der eine oder andere mag es bereits bemerkt haben, ich beziehe mich im ganzen Artikel ausschliesslich auf die <acronym title="Bourne again Shell">Bash</acronym>.  Selbstverständlich lassen sich die meisten anderen Shells ebenfalls über ihre Variablen individualisieren. Das soll keinerlei Wertung sein, ich habe einfach keine Zeit, mich mit anderen Shells wie der <em>zsh</em> zu beschäftigen. Sollte also jemand von euch Zeit und Lust haben einen Artikel dazu loszuwerden, lade ich ihn hiermit herzlich ein. :) )</small></p>
<h3>Grundlagen</h3>
<p>In der <acronym title="Bourne again Shell">Bash</acronym> wird der primäre Prompt über die Variable <strong>PS1</strong> gesteuert. Neben PS1 existieren noch PS2, PS3 und PS4, wobei für uns nur die ersten Beiden interessant sind.</p>
<ul>
<li><strong>PS1</strong> &#8211; In dieser Variable wird der primäre Prompt der <acronym title="Bourne again Shell">Bash</acronym> gespeichert. Der Standardwert ist in dem meisten Linuxdistributionen <em>\u@\h:\w\$</em>.</li>
<li><strong>PS2</strong> &#8211; Der sekundäre Prompt. Dieser Prompt wird ausgegeben, wenn auf eine Eingabe des Users gewartet wird. Der Standardwert ist <em>&gt;</em>. Der sekundäre Prompt lässt sich beispielsweise mit einem unvollendeten Befehl wie &#8220;ls |&#8221; ausgeben.</li>
<li><strong>PS3</strong> &#8211;  wird vom internen select Befehl verwendet.</li>
<li><strong>PS4</strong> &#8211; Die Variable &#8220;PS4&#8243; wird vor den Debug-Meldungen ausgegeben, die durch die Shell-Option &#8220;-x&#8221; [execute trace] ausgegeben werden. Der Standardwert ist hier meist <em>+</em>.</li>
</ul>
<p><strong>Die Veränderungen treten sofort ein, bleiben jedoch erst dann erhalten, wenn der &#8220;export&#8221;-Befehl in die Datei <em>~/.bashrc</em> eingetragen wird.</strong></p>
<p>Zunächst löschen wir einfach mal den Inhalt von PS1:</p>
<pre><code>unset $PS1</code></pre>
<p>Nun fehlt jegliche Eingabeaufforderung. Das bedeutet natürlich nicht, dass keine Befehle mehr eingegeben werden können. Es gibt einfach keinen Prompt mehr, der ausgegeben werden könnte.</p>
<p>Mit <kbd>export</kbd> können Umgebungsvariablen gesetzt werden. Ein schnelles:</p>
<pre><code>export $PS1="pimp my shell &gt;"</code></pre>
<p>zum Beispiel erzeugt folgenden sinnlosen aber witzigen Prompt:</p>
<pre><code>pimp my shell &gt;</code></pre>
<p>Aber wie lasse ich mir Informationen statt nur einfachen Text <del>prompten</del> <ins>ausgeben</ins>? Über so genannte Escape-Sequenzen. Nun wird es interessant. Es gibt einen ganzen Haufen Escape-Sequenzen, welche etwa Arbeitsverzeichnis, Benutzername oder Uhrzeit ausgeben:</p>
<table width="100%">
<tr>
<td><strong>\a</strong></td>
<td>Das ASCII-Zeichen für eine Glocke (&#8220;\007&#8243; sollte auch funktionieren). Dies erzeugt einen Ton, welcher (falls vorhanden) aus dem PC-Speaker tönt. Das ist aber nicht zu empfehlen, da dieser dann bei jedem ausgegebenen Prompt mit dieser Escape-Sequenz der Speaker einen nervigen Ton von sich gibt.</td>
</tr>
<tr>
<td><strong>\d</strong></td>
<td>Zeigt das Datum im &#8220;Wochentag Monat Datum&#8221;-Format (<abbr title="Beispielsweise">Bspw.</abbr> &#8220;Tue May 26&#8243;)</td>
</tr>
<tr>
<td><strong>\D{format}</strong></td>
<td>Der Inhalt der beiden geschweiften Klammern wird an <a href="http://opengroup.org/onlinepubs/007908799/xsh/strftime.html">strftime</a> gesendet und das Ergebnis zurück in den Prompt-String. Leer gelassen erzeugt das meist ein locale-Spezifisches Datum. Die geschweiften Klammern sind pflicht.</td>
</tr>
<tr>
<td><strong>\e</strong></td>
<td>Ein ASCII Escape-Zeichen (&#8220;\033&#8243; sollte auch funktionieren.)</td>
</tr>
<tr>
<td><strong>\h</strong></td>
<td>Der Hostname bis zum ersten &#8220;.&#8221;</td>
</tr>
<tr>
<td><strong>\H</strong></td>
<td>Der komplette Hostname</td>
</tr>
<tr>
<td><strong>\j</strong></td>
<td>Gibt die Anzahl der Hintergrundprozesse aus.</td>
</tr>
<tr>
<td><strong>\l</strong></td>
<td>Name der Shell</td>
</tr>
<tr>
<td><strong>\n</strong></td>
<td>Erzeugt eine neue Zeile (Ja, Prompts können mehrzeilig sein).</td>
</tr>
<tr>
<td><strong>\r</strong></td>
<td><a href="http://en.wikipedia.org/wiki/Carriage_return" title="Link zum englischen Wikipedia-Artikel">Carriage-Return</a></td>
</tr>
<tr>
<td><strong>\s</strong></td>
<td>Der Name der Shell. Logischerweise <em><acronym title="Bourne again Shell">Bash</acronym></em></td>
</tr>
<tr>
<td><strong>\t</strong></td>
<td>Die Zeit im 24-Stunden <em>HH:MM:SS</em> Format</td>
</tr>
<tr>
<td><strong>\T</strong></td>
<td>Die Zeit im 12-Stunden <em>HH:MM:SS</em> Format</td>
</tr>
<tr>
<td><strong>\@</strong></td>
<td>Die Zeit im 12-Stunden <em>AM/PM</em> Format</td>
</tr>
<tr>
<td><strong>\A</strong></td>
<td>Die Zeit im 24-Stunden <em>HH:MM</em> Format</td>
</tr>
<tr>
<td><strong>\u</strong></td>
<td>Name des Benutzers</td>
</tr>
<tr>
<td><strong>\v</strong></td>
<td>Versionsnummer der <acronym title="Bourne again Shell">Bash</acronym> (<abbr title="Beispielsweise">Bspw.</abbr> 3.2)</td>
</tr>
<tr>
<td><strong>\V</strong></td>
<td>Wie /v, jedoch mit Patch-Level (<abbr title="Beispielsweise">Bspw.</abbr> 3.2.25)</td>
</tr>
<tr>
<td><strong>\w</strong></td>
<td>Das aktuelle Arbeitsverzeichnis, wobei $HOME mit einer Tilde (~) abgekürzt wird.</td>
</tr>
<tr>
<td><strong>\W</strong></td>
<td>Das aktuelle Arbeitsverzeichnis (, jedoch ohne höhere Ebenen), wobei $HOME mit einer Tilde (~) abgekürzt wird.</td>
</tr>
<tr>
<td><strong>\!</strong></td>
<td>Die History-Nummer des Befehls. Dies kann natürlich je nach <em>.bash_history</em> variieren.</td>
</tr>
<tr>
<td><strong>\#</strong></td>
<td>Anzahl der bereits aufgerufenen Kommandos während der Shell-Session</td>
</tr>
<tr>
<td><strong>\$</strong></td>
<td>Wenn <acronym title="User IDentification Number">UID</acronym> = 0, ein #, andernfalls ein $. Zu deutsch: Normale User sehen ein &#8220;$&#8221;, Root ein &#8220;#&#8221;.</td>
</tr>
<tr>
<td><strong>\nnn</strong></td>
<td>Zeichen entsprechend der oktalen Zahl <em>nnn</em></td>
</tr>
<tr>
<td><strong>\\</strong></td>
<td>Ein Backslash</td>
</tr>
<tr>
<td><strong>\[</strong></td>
<td>Beginn einer Sequenz von nicht-darstellbaren Zeichen.</td>
</tr>
<tr>
<td><strong>\]</strong></td>
<td>Ende einer Sequenz von nicht-darstellbaren Zeichen</td>
</tr>
</table>
<p>Damit lässt sich schon viel anstellen. Sinnvoll sind und bleiben natürlich Benutzername, Verzeichnis und Hostname. Nach ein wenig herumspielen könnte der Inhalt von <strong>PS1</strong> zum Beispiel so aussehen:</p>
<pre><code>[&#92;d &#92;A, Bash Version &#92;V, &#92;# Commands, &#92;j Jobs, tty #&#92;l]&#92;n[&#92;u@&#92;H:&#92;w] &#92;$</code></pre>
<p>, was bei mir in etwa folgenden Prompt erzeugt:</p>
<pre><code>[Mo Dez 10 23:05, Bash Version 3.2.25, 116 Commands, 0 Jobs, tty #2]
[jxn@david:~] $</code></pre>
<p>Die eckigen Klammern sind übrigens reine Kosmetik ;)</p>
<h3>Farben</h3>
<div style="float:right;">
<table>
<tr>
<td><strong>Farbe</strong></td>
<td><strong><acronym title="Vordergrund">VG</acronym> / <acronym title="Hintergrund">HG</acronym></strong></td>
</tr>
<tr>
<td>Schwarz</td>
<td>30 / 40</td>
</tr>
<tr>
<td>Rot</td>
<td>31 / 41</td>
</tr>
<tr>
<td>Grün</td>
<td>32 / 42</td>
</tr>
<tr>
<td>Braun</td>
<td>33 / 43</td>
</tr>
<tr>
<td>Blau</td>
<td>34 / 44</td>
</tr>
<tr>
<td>Violett</td>
<td>35 / 45</td>
</tr>
<tr>
<td>Cyan</td>
<td>36 / 46</td>
</tr>
<tr>
<td>Weiss</td>
<td>37 / 47</td>
</table>
</div>
<p>Zufrieden mit der Ausgabe? Weiter gehts mit optischer hervorhebung durch Farben.</p>
<p>Farbangaben müssen über die Escape-Sequenz <strong>\e</strong> (/033 sollte auch funktionieren) eingeleitet werden. Diese Escape-Sequenz wird jedoch vom genutzten Terminal verarbeitet, nicht von der <acronym title="Bourne again Shell">Bash</acronym>. Deswegen funktioniert die Einfärbung von Prompts auch nicht überall, selbst wenn die <acronym title="Bourne again Shell">Bash</acronym> genutzt wird.</p>
<p>Eine Farbangabe besteht aus dem Escape-Zeichen &#8220;\e&#8221;, den Farbcodes &#8220;x;yy;zz&#8221; (Eigenschaft;Vordergrund;Hintergrund) und einem abschliessendem &#8220;m&#8221;. Beispiele für Farbcodes können der nebenstehenden Tabelle entnommen werden, wobei die 30er für die Vordergrund- und die 40er für die Hintergrundfarben stehen. Sinnvolle Werte für die Schrifteigenschaft (x) sind: 0 (Standard), 1 (heller), 22 (nicht heller), 4 (unterstrichen), 24 (nicht unterstrichen), 5 (blinkend), 25 (nicht blinkend), 7 (invers), 27 (nicht invers).</p>
<p>Die Codes in der Farbangabe können übrigens in beliebiger Reihenfolge gesetzt werden. Ein &#8220;5;41;32&#8243; ergibt <abbr title="Beispielsweise">Bspw.</abbr> das Gleiche wie ein &#8220;41;5;32&#8243;, das Entscheidende ist der Code, nicht die Reihenfolge.</p>
<p>Färben wir einfach mal den oben erwähnten Standardprompt &#8220;\u@\h:\w\$&#8221; hellgrün mit einem rotem Hintergrund:</p>
<pre><code>export PS1="&#92;e[1;32;41m&#92;u@&#92;h:&#92;w&#92;$ "</code></pre>
<p>Das Problem: Nun ist nicht nur der Prompt hellgrün, sondern der gesamte Text in unserer Shell. Das lässt sich mit einem schliessenden "\e[0m" verhindern. Auf diese Weise wird die Farbangabe auf Null zürückgesetzt. Ein</p>
<pre><code>export PS1="&#92;e[1;32;41m&#92;u@&#92;h:&#92;w&#92;$&#92;e[0m "</code></pre>
<p>sieht schon gleich viel besser aus. Aber das reicht leider immer noch nicht. Die sowieso nicht darstellbaren Zeichen unserer Farbangaben müssen mit den Sequenzen "\[" und "\]" auch als solche gekennzeichnet werden. Sonst gibt es hässliche Darstellungsfehler, sollte ein Kommando einmal das rechte Ende des sichtbaren Bereichs erreichen. Das Ergebnis sollte also wie folgt aussehen:</p>
<pre><code>export PS1="&#92;[&#92;e[1;32;41m&#92;u@&#92;h:&#92;w&#92;$&#92;e[0m&#92;] "</code></pre>
<p>Natürlich können in einem Prompt auch mehrere Farbangaben verwendet werden. Aber jeder sollte für sich entscheiden, wieviel <em>Bunt</em> seine Augen ertragen können. ;)</p>
<h3>Noch nicht genug? Bashish rocks your socks!</h3>
<p><a href="http://bashish.sourceforge.net/">Bashish</a> ist eine Theme-Engine für allerlei Terminals und Shells. Mit Bashish lassen sich Farbe, Schriftart, Transparenz und Hintergrundbild für einzelne Programme unabhängig voneinander personalisieren. Ausserdem kann man mit Bashish die Prompts verbreiteter Shells wie die Bash, zsh und tcsh konfigurieren. Was mit Bashish möglich ist, wird bei <a href="http://bashish.sourceforge.net/screenshot.html">den Screenshots</a> sehr gut veranschaulicht.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pimpmyshell.de/2007/12/10/pimp-your-prompt/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Die Quelle..</title>
		<link>http://blog.pimpmyshell.de/2007/04/13/die-quelle/</link>
		<comments>http://blog.pimpmyshell.de/2007/04/13/die-quelle/#comments</comments>
		<pubDate>Fri, 13 Apr 2007 09:05:01 +0000</pubDate>
		<dc:creator>Gregor</dc:creator>
				<category><![CDATA[shells]]></category>

		<guid isPermaLink="false">http://blog.pimpmyshell.de/2007/04/13/die-quelle/</guid>
		<description><![CDATA[Aufgrund eines Kommentars von &#8220;kb&#8221; in den Shellshotss, habe ich nun den Ursprung meiner zshrc. gefunden. Eigentlich stammt die zshrc von Phil Gregory der auch eine sehr gute Anleitung zur veränderung (s)einer zshrc auf folgender Internetseite publiziert hat.]]></description>
			<content:encoded><![CDATA[<p>Aufgrund eines Kommentars von &#8220;kb&#8221; in den Shellshotss, habe ich nun den Ursprung meiner zshrc. gefunden. Eigentlich stammt die zshrc von Phil Gregory der auch eine sehr gute Anleitung zur veränderung (s)einer zshrc <a href="http://www.aperiodic.net/phil/prompt/">auf folgender Internetseite</a> publiziert hat.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pimpmyshell.de/2007/04/13/die-quelle/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ssh-completion mit zsh</title>
		<link>http://blog.pimpmyshell.de/2007/01/21/ssh-completion-mit-zsh/</link>
		<comments>http://blog.pimpmyshell.de/2007/01/21/ssh-completion-mit-zsh/#comments</comments>
		<pubDate>Sun, 21 Jan 2007 17:46:27 +0000</pubDate>
		<dc:creator>hogdarog</dc:creator>
				<category><![CDATA[allgemein]]></category>
		<category><![CDATA[shells]]></category>
<category>zsh completion ssh compinit</category>
		<guid isPermaLink="false">http://blog.pimpmyshell.de/2007/01/21/ssh-completion-mit-zsh/</guid>
		<description><![CDATA[Etwas was mich schon immer gestoert hat, wenn ich Dateien per scp kopierte, war die Tatsache, dass ich die Ordnerstruktur des Ziel-Rechners immer auswendig wissen muss, damit der scp-Befehl nicht fehlschlaegt. Dass ist noch ertraeglich, wenn ich mit der dortigen Ordnerstruktur vertraut bin, oder diese sich an die File-Hirarchy-Standards haelt. Aber sobald keines dieser Kriterien [...]]]></description>
			<content:encoded><![CDATA[<p>Etwas was mich schon immer gestoert hat, wenn ich Dateien per <em>scp</em> kopierte, war die Tatsache, dass ich die Ordnerstruktur des Ziel-Rechners immer auswendig wissen muss, damit der <em>scp</em>-Befehl nicht fehlschlaegt. Dass ist noch ertraeglich, wenn ich mit der dortigen Ordnerstruktur vertraut bin, oder diese sich an die File-Hirarchy-Standards haelt. Aber sobald keines dieser Kriterien zutraf, musste ich mich stets zuerst per <em>ssh</em> auf dem Host einloggen, um mir den Zielordner rauszusuchen, um dann erst im zweiten Schritt die Datei(en) kopieren zu koennen. (Oft habe ich den<em> midnight commander</em> benutzt um mich per ssh durch die Ordner zu hangeln, aber das ist auch alles andere als &#8220;mal-eben-schnell&#8221; zu machen)<br />
Das sahen wohl auch die <em>zsh</em>-Entwickler aehnlich und haben ihrer Shell einen Completion-Mechanismus dafuer spendiert:                                                                                               Dadurch kann ich beim Tippen des <em>scp</em>-Befehls mir das Zielverzeichniss genauso vervollstaendigen lassen, wie ein lokales Verzeichniss!                                                                              Und dazu gehoert noch nicht mal viel; der Mechanismus ist aktiviert, sobald man die Completion-Maschinerie von zsh aktiviert hat:</p>
<blockquote><p>#autoload -U compinit; compinit</p></blockquote>
<p>Beispiel:</p>
<blockquote><p>#scp ~/.zshrc Rechner1:/ho<em>[TAB]</em><br />
#scp ~/.zshrc Rechner1:/home/ho<em>[TAB]</em><br />
#scp ~/.zshrc Rechner1:/home/hogdarog/<em>[ENTER]</em></p></blockquote>
<p>Voraussetzung ist natuerlich, dass ein ssh-agent laeuft, sonst kann man nach jedem <em>[TAB]</em>-Druck sein Passwort eingeben ;-}</p>
<p>Noch komfortabler wird es, wenn man unter verschiedenen Benutzernamen auf unterschiedlichen Hosts arbeitet:<br />
Dann kann man sich naemlich beide Teile komplettieren lassen:</p>
<blockquote><p>#ssh r<em>[TAB]</em><br />
#ssh root@Re<em>[TAB]</em><br />
#ssh root@Rechner1<em>[ENTER]</em></p></blockquote>
<p>Der erste [TAB]-Druck komplettiert natuerlich Benutzer- UND Rechnernamen, da die zsh ja noch nicht wissen kann, ob ein Aufruf nur mit Rechnername (#<em>ssh Rechner1</em>) kommt, oder ob ein Benutzer vorangestellt werden soll. In der zweiten Zeile kann nur noch ein Rechnername komplettiert werden&#8230;</p>
<p>Feine Sache das!<br />
Caveat: Sind die Benutzer auf dem lokalen Rechner nicht bekannt, so funktioniert das Verfolstaendigen nicht &#8211; da hilft es nur, eine bestimmte Benutzer-/Rechnernamen-Kombination in der ~/.ssh/config abzulegen:</p>
<blockquote><p>Host Rechner1<br />
User Benutzer1</p></blockquote>
<p>So kann man den Benutzernamen weglassen; ssh sucht sich den schon aus der config raus. Sprich, sobald ich mich per &#8220;ssh Rechner1&#8243; auf Host &#8220;Rechner1&#8243; verbinde, benutzt ssh den Username &#8220;Benutzer1&#8243;</p>
<p>PS: Ich weiss leider nicht, seit welcher Version dieser Mechanismus eingebaut ist &#8211; ich benutze derzeit zsh 4.2.5<br />
Falls die User-/Hostname-completion noch nicht installiert ist, kann man sie selbst initialisieren; Siehe dazu das zsh-wiki: <a href="http://zshwiki.org/home/examples/compsys/hostnames" title="http://zshwiki.org/home/examples/compsys/hostnames">http://zshwiki.org/home/examples/compsys/hostnames</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pimpmyshell.de/2007/01/21/ssh-completion-mit-zsh/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>neue Shell</title>
		<link>http://blog.pimpmyshell.de/2006/11/23/neue-shell/</link>
		<comments>http://blog.pimpmyshell.de/2006/11/23/neue-shell/#comments</comments>
		<pubDate>Thu, 23 Nov 2006 09:59:24 +0000</pubDate>
		<dc:creator>Gregor</dc:creator>
				<category><![CDATA[shells]]></category>

		<guid isPermaLink="false">http://blog.pimpmyshell.de/?p=16</guid>
		<description><![CDATA[Ich habe mir bei <a href="http://www.neessen.net/">neessen.net</a> Webhosting einen Shellzugang legen lassen. Dadurch kann ich dann alle Artikel (wie z.B diesen hier) unanbängig vom Standort, per <strong>ssh</strong> und <strong>screen </strong>in Kombination mit <strong>w3m </strong>und <strong>vim </strong>schreiben. w3m macht zwar noch einige Probleme, aber trotzdem ist es einfacher als ich zu erst dachte (...)]]></description>
			<content:encoded><![CDATA[<p>Ich habe mir bei <a href="http://www.neessen.net/">neessen.net</a> Webhosting einen Shellzugang legen lassen. Dadurch kann ich dann alle Artikel (wie z.B diesen hier) unanbängig vom Standort, per <strong>ssh</strong> und <strong>screen </strong>in Kombination mit <strong>w3m </strong>und <strong>vim </strong>schreiben. w3m macht zwar noch einige Probleme, aber trotzdem ist es einfacher als ich zu erst dachte <a href="http://blog.pimpmyshell.de/?p=16">(&#8230;)</a></p>
<p>In Windeseile waren <strong>screen</strong>, <strong>vim </strong>und die <strong>zsh</strong>, an meine Bedürfnisse angepasst, mittels meiner gespeicherten Dotfiles, die ich nur noch grob abändern musste. Screen und zsh erscheinen nun im modischen grün, wiederum vim hat hauptsächlich blaues syntax-highlighting.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-8740438797048829";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text";
google_ad_channel = "";
google_color_border = "000000";
google_color_bg = "FFFFFF";
google_color_link = "0066CC";
google_color_text = "000000";
google_color_url = "0066CC";
//--></script>
<script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>Der Hauptgrund aber, warum ich diesen Shellaccount gewählt habe, ist ein zentraler Ort um meine Bookmarks und Emails zu verwalten. Jetzt kann ich mit mutt meine Emails lesen und mittels vorkonfigurierten python-scripts in Verbindung mit send- und folder-hooks bei mutt emails versenden. Dazu werde ich aber noch mal einen gesonderten Artikel verfassen.</p>
<p>Ich kann so einen shell-zugang nur empfehlen, er bietet ungeahnte möglichkeiten auch im Bezug auf Fehlersuche von ausserhalb und testen einiger Dienste am heimischen Rechner.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pimpmyshell.de/2006/11/23/neue-shell/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
