<?xml version="1.0" encoding="iso-8859-1"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<?xml-stylesheet type="text/css" href="http://das.ist.mein.blog.und.der.spamt.net/styles/feed.css"?>
<title type="html">Shell stuff</title>
<link rel="alternate" type="text/html" href="http://das.ist.mein.blog.und.der.spamt.net" />
<link rel="self" type="application/atom+xml" href="http://das.ist.mein.blog.und.der.spamt.net/archives/shell_stuff/index-atom.xml" />
<updated>2008-06-19T22:11:44+02:00</updated>
<author>
<name>Ulrich Dangel</name>
<uri>http://das.ist.mein.blog.und.der.spamt.net</uri>
</author>
<id>http://das.ist.mein.blog.und.der.spamt.net/</id>
<generator uri="http://nanoblogger.sourceforge.net" version="3.3">NanoBlogger</generator>
<entry>
<title type="html">Dateien umbenennen mit dem Editor</title>
<author>
<name>Ulrich Dangel</name>
</author>
<link rel="alternate" type="text/html" href="http://das.ist.mein.blog.und.der.spamt.net/archives/2008/06/08/dateien_umbenennen_mit_dem_editor/index.html" />
<id>http://das.ist.mein.blog.und.der.spamt.net/archives/2008/06/08/dateien_umbenennen_mit_dem_editor/index.html</id>
<published>2008-06-08T16:13:16+02:00</published>
<updated>2008-06-08T16:13:16+02:00</updated>
<category term="Shell stuff" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[Wenn man mehrere Dateien schnell umbenennen will gibt es zig verschiedene Tools, z.Bsp. mmv, zmv etc. 
Das Problem das ich mit diesen Tools habe, ist das ich immer vergesse wie die genau Syntax ist, was der Platzhalter ist, etc.<br>
Genau dieses Problem l&ouml;sen die <a href="http://www.nongnu.org/renameutils/">renameutils</a> die das ganze Interatkiv l&ouml;sen. So reicht es einfach 
<pre>
qmv files
</pre>
aufzurufen, und schon geht der editor auf und man kann den Ziel Dateinamen einfach im Editor einstellen, speichern, fertig. Das ganze hat den Vorteil das man sich keine Passende regex ausdenken muss,
sondern einfach die entsprechende Spalte l&ouml;scht, die Datei Namen gross schreibt, o.&auml;.]]>
</div>
</content>
</entry>
<entry>
<title type="html">A new star is born</title>
<author>
<name>Ulrich Dangel</name>
</author>
<link rel="alternate" type="text/html" href="http://das.ist.mein.blog.und.der.spamt.net/archives/2006/12/21/a_new_star_is_born/index.html" />
<id>http://das.ist.mein.blog.und.der.spamt.net/archives/2006/12/21/a_new_star_is_born/index.html</id>
<published>2006-12-21T18:30:57+02:00</published>
<updated>2006-12-21T18:30:57+02:00</updated>
<category term="Shell stuff" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[<p>... call it <a href="http://www.bewatermyfriend.de/zblog/">zblog</a></p>
Yeah, nach zirc gibt es nun auch den zblog, nanoblogger muss sich warm anziehn :)<br>]]>
</div>
</content>
</entry>
<entry>
<title type="html">Persistent Dirstack für die ZSH</title>
<author>
<name>Ulrich Dangel</name>
</author>
<link rel="alternate" type="text/html" href="http://das.ist.mein.blog.und.der.spamt.net/archives/2006/12/09/persistent_dirstack_f&amp;uumlr_die_zsh/index.html" />
<id>http://das.ist.mein.blog.und.der.spamt.net/archives/2006/12/09/persistent_dirstack_f&amp;uumlr_die_zsh/index.html</id>
<published>2006-12-09T20:43:56+02:00</published>
<updated>2006-12-09T20:43:56+02:00</updated>
<category term="Shell stuff" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[<p>Wer sich schon immer mal einen persistenten Dirstack f&uuml;r die ZSH gew&uuml;nscht hat, hier
gibts die Losung. Einfach folgendes in die zshrc eintragen:
</p>
<pre>
if [[ -f ~/.zdirs ] && [[ ${#dirstack[*]} -eq 0 ]; then
    dirstack=( ${(uf)"$(&lt; ~/.zdirs)"} )
    # "cd -" won't work after login by just setting $OLDPWD, so                         
    cd $dirstack[0] && cd - &gt /dev/null
fi
chpwd() { dirs -pl &gt;! ~/.zdirs }
</pre>
<p> So, das wars, jetzt hat man einen persistenten Dirstack, d.h. nach dem man eine neue Shell startet, kann man auf den gleichen Dirstack zugreifen wie in den anderen schon gestarteten Shells. Weiterhin kann man nach dem starten der shell einfach cd - (geht in das Verzeichniss das in $OLDPWD definiert war) eingeben und landet in dem letzten Verzeichniss in das man gewechselt hat.
</p>
<p><b>So, jetzt sollte das obige halbwegs passen, scheiss html..</b></p>]]>
</div>
</content>
</entry>
<entry>
<title type="html">zsh cd completion</title>
<author>
<name>Ulrich Dangel</name>
</author>
<link rel="alternate" type="text/html" href="http://das.ist.mein.blog.und.der.spamt.net/archives/2006/09/20/zsh_cd_completion/index.html" />
<id>http://das.ist.mein.blog.und.der.spamt.net/archives/2006/09/20/zsh_cd_completion/index.html</id>
<published>2006-09-20T20:14:22+02:00</published>
<updated>2006-09-20T20:14:22+02:00</updated>
<category term="Shell stuff" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[Ich habe schon l&auml;nger mal von dem auto {push,pop}d feature von der zsh geschw&auml;rmt und habe heute (dank <a href="http://michael-prokop.at">mikap</a>) was neues tolles gefunden:<br>
Wenn man cd -<tab> eingibt bekommt man eine &Uuml;bersicht &uuml;ber die vorherigen Verzeichnisse. Da ich aber faul bin und keine Nr. dr&uuml;cken mag, bietet sich hier nat&uuml;rlich ein
Men&uuml; an. Das kriegt man ganz einfach mit
<pre>
zstyle ':completion:*:*:cd:*:directory-stack' menu yes select
</pre>
So, und nun w&uuml;nsche ich euch allen ein frohliches Men&uuml; benutzen in der Shell ;)]]>
</div>
</content>
</entry>
<entry>
<title type="html">Excludes mit der Bash</title>
<author>
<name>Ulrich Dangel</name>
</author>
<link rel="alternate" type="text/html" href="http://das.ist.mein.blog.und.der.spamt.net/archives/2006/09/09/excludes_mit_der_bash/index.html" />
<id>http://das.ist.mein.blog.und.der.spamt.net/archives/2006/09/09/excludes_mit_der_bash/index.html</id>
<published>2006-09-09T14:27:27+02:00</published>
<updated>2006-09-09T14:27:27+02:00</updated>
<category term="Shell stuff" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[Es kommt ofters vor, das man in einem Verzeichniss alle Dateien ausser datei1 und datei2 loschen will.<br>
Eine Losung ist, man kopiert die Dateien in ein tmp Verzeichiss, loscht alles, und kopiert sie zur&uuml;ck. Diese Losung ist umst&auml;ndlich, und man muss viel tippen ;)<br>
F&uuml;r die Bash und die zsh gibt es eine sehr einfache Losung f&uuml;r das ganze
<pre>
$ rm !(datei1|datei2) # bash - extglob muss daf&uuml;r an sein
% rm *~datei1~datei2  # zsh 
</pre>
So, und das war f&uuml;r heute mein Ausflug in die bash welt ;)]]>
</div>
</content>
</entry>
<entry>
<title type="html">Gründe für die zsh</title>
<author>
<name>Ulrich Dangel</name>
</author>
<link rel="alternate" type="text/html" href="http://das.ist.mein.blog.und.der.spamt.net/archives/2006/08/10/gr&amp;uumlnde_f&amp;uumlr_die_zsh/index.html" />
<id>http://das.ist.mein.blog.und.der.spamt.net/archives/2006/08/10/gr&amp;uumlnde_f&amp;uumlr_die_zsh/index.html</id>
<published>2006-08-10T23:08:06+02:00</published>
<updated>2006-08-10T23:08:06+02:00</updated>
<category term="Shell stuff" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[<ul>
<li> Coolere Completion
    <ul>
    <li> Unterst&uuml;tzt die Bash Completion. <a
    href="http://das.ist.mein.blog.und.der.spamt.net/archives/2006/07/18/T15_40_54/">Postgres
    Bash Completion mit der ZSH zu nutzen</a>
    <li> Einfache Moglichkeit um f&uuml;r GNU Programme eine Basis Completion zu erstellen. <a
    href="http://downgra.de/archives/2006/05/#e2006-05-07T20_02_24.txt">Siehe Fires
    blog</a>
    <li> Menues bei der Completion. Z.bsp. bei <a
    href="http://das.ist.mein.blog.und.der.spamt.net/archives/2006/05/19/T11_45_59/">man
    Completion</a> oder kill menus...
    <li> Autocorrection, d.h. cd /Etc<tab> wird zu /etc/
    <li> Problemlos erweiterbar, so dass z.bsp. Hostnamen aus ~/.ssh/config und
    ~/.ssh/known_hosts ausgelesen werden
    <li> ignore-parent-cwd: cd ../<tab> listet nicht das aktuelle Verzeichniss
    </ul>
<li> Modifier, z.bsp. print *(/) gibt nur Verzeichnisse zur&uuml;ck.
<li> Es gibt einen Right Prompt. Z.Bsp. <a
href="http://spamt.net/~uli/screenshots/man_menu1.png">hier</a>
<li> Es besteht die Moglichkeit seine Kommandozeile im Editor zu bearbeiten <a
href="http://das.ist.mein.blog.und.der.spamt.net/archives/2006/05/04/T11_35_43/">n&auml;heres
hier </a>
<li> Globale Aliase. z.Bsp.:
<pre>
alias -g G="|grep"
alias -g GG="2>&1|grep"
ps axuf G init # wird jetzt zu ps axuf | grep init
</pre>
<li> autocd, d.h. wenn man ein Verzeichniss angibt wird reingewechselt
<li> hashed Directorys. Beispiel:
<pre>
$ hash -d doc=/usr/share/doc
$ cd ~doc
$ pwd
/usr/share/doc
</pre>
<li> Die Bash baut vieles nach was die zsh hat aber eben nicht komplett. Bsp.:
<pre>
$ echo {01..05} # bash3
$ 1 2 3 4 5
$ echo {01..05} # zsh
$ 01 02 03 04 05
</pre>
<li> < $datei &uuml;bergibt $datei an den Pager zum anschauen.
<li> =($cmd) erzeugt ein Tempfile aus der Ausgabe von $cmd
<pre>
mutt -f =(zcat mailbox.gz)
</pre>
<li> Tetris. Das wichtigste &uuml;berhaupt: autoload tetris 
</ul>
Falls ich weitere Gr&uuml;nde vergessen haben sollte, einfach per jabber
(schula@jabber.ulm.ccc.de) melden <br>
<hr>
<b>Update:</b>
<ul>
<li>Shared History, d.h. mehrere Shells teilen sich die History
<li>Incremental  write, d.h. die History wird sofort geschrieben.
</ul>
Die beiden Punkte sind sehr interessant f&uuml;r Leute die sehr viele Shells offen haben.]]>
</div>
</content>
</entry>
<entry>
<title type="html">Bash Completion mit der ZSH nutzen</title>
<author>
<name>Ulrich Dangel</name>
</author>
<link rel="alternate" type="text/html" href="http://das.ist.mein.blog.und.der.spamt.net/archives/2006/07/18/bash_completion_mit_der_zsh_nutzen/index.html" />
<id>http://das.ist.mein.blog.und.der.spamt.net/archives/2006/07/18/bash_completion_mit_der_zsh_nutzen/index.html</id>
<published>2006-07-18T15:40:54+02:00</published>
<updated>2006-07-18T15:40:54+02:00</updated>
<category term="Shell stuff" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[Manchmal braucht man einfach eine bash completion in der zsh, z.Bsp. gibt ist in der zsh
keine wirklich brauchbare pgqsl completion. Also einfach folgendes machen um eine Bash
Completion zu benutzen:
<pre>
autoload bashcompinit
bashcompinit
</pre>
Um jetzt die postgres completion von der bash zu nutzen, _pg runterladen, einfach
<pre>
wget http://spamt.net/_pg
source _pg
</pre>
ausfuehren und viel Spass damit.<br>
Ich hoffe das hilft irgendjemand...]]>
</div>
</content>
</entry>
<entry>
<title type="html">Bug in url-quote-magic</title>
<author>
<name>Ulrich Dangel</name>
</author>
<link rel="alternate" type="text/html" href="http://das.ist.mein.blog.und.der.spamt.net/archives/2006/06/12/bug_in_url-quote-magic/index.html" />
<id>http://das.ist.mein.blog.und.der.spamt.net/archives/2006/06/12/bug_in_url-quote-magic/index.html</id>
<published>2006-06-12T17:19:48+02:00</published>
<updated>2006-06-12T17:19:48+02:00</updated>
<category term="Shell stuff" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[Nach dem ich vor einiger Zeit mal so &uuml;ber  <a
href="http://das.ist.mein.blog.und.der.spamt.net/archives/2006/05/04/T15_19_13/">url-quote-magic
geschw&auml;rmt</a> habe, hat sich bei mir in der Zwischenzeit Ern&uuml;chterung eingeschlichen, da
das ganze einen kleinen bug hatte ;)<br>
Wenn man eine URL eingibt und danach ein Leerzeichen und ein Semikolon sieht es mit
url-quote-magic wie folgt aus:
<pre>
$ http://www.spamt.net \;
</pre>
So kann man nat&uuml;rlich nicht wirklich damit arbeiten :-) Der Patch ist ja relativ einfach,
in Zeile 111 einfach die bestehende Zeile durch folgende ersetzen und freuen:
<pre>
if [[ "$KEYS" != "$qkey" && "$LBUFFER[-1]" != " " ]
</pre>
Achja, <a href="http://spamt.net/url-quote-magic">hier</a> konnt ihr euch noch gleich die richtige Datei komplett runterladen.]]>
</div>
</content>
</entry>
<entry>
<title type="html">Zsh und richtige man menus :)</title>
<author>
<name>Ulrich Dangel</name>
</author>
<link rel="alternate" type="text/html" href="http://das.ist.mein.blog.und.der.spamt.net/archives/2006/05/19/zsh_und_richtige_man_menus/index.html" />
<id>http://das.ist.mein.blog.und.der.spamt.net/archives/2006/05/19/zsh_und_richtige_man_menus/index.html</id>
<published>2006-05-19T11:45:59+02:00</published>
<updated>2006-05-19T11:45:59+02:00</updated>
<category term="Shell stuff" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[Heute kam auf der zsh-users eine gepatchte Version f&uuml;r die man Completion, die es einem erlaubt das die Sektion bei der Tab Completion mit &uuml;bernommen wird. Hier mal kurz eine Anleitung<br>
Wer schon immer mal ein funktionierendes man Menu bei der Zsh haben wollte, hier die
<u>ultimative</u> Anleitung (aber zuerst ein paar Bilder ;)<br>
<a href="http://spamt.net/~uli/screenshots/man_menu1.png"><img border=0
src="http://spamt.net/~uli/screenshots/man_menu1.png" width=511 height=310 alt="Kill menu #1"></a>
<a href="http://spamt.net/~uli/screenshots/man_menu2.png"><img border=0
src="http://spamt.net/~uli/screenshots/man_menu2.png" width=511 height=310 alt="Kill menu #2"></a>
<br>So, jetzt aber genug bunt und wild usw. ;). Jetzt hier die versprochene Anleitung:
<ul>
<li> Erzeugt ein Verzeichniss wo ihr die neue Completion Funktion abspeichern konnt, z.Bsp. ~/.zsh/fpath
<li> Schreibt in eure .zshenv (wenn sie nicht existiert anlegen)
<pre>
export FPATH=~/.zsh/fpath/:$FPATH
</pre>
<li>Holt euch von http://spamt.net/_man die Erweiterung und legt sie in dem Verzeichniss von vorher ab
<li>Schreibt folgendes in euer Startup file, bzw. gebt es einfach mal ein und schaut an, wie es sich verh&auml;lt:
<pre>
zstyle ':completion:*:manuals' separate-sections true
zstyle ':completion:*:man:*' menu yes select
zstyle ':completion:*:manuals*' insert-sections true
zstyle ':completion:*' group-name ''
zstyle ':completion:*' verbose yes
zstyle ':completion:*:descriptions' format $'%{\e[0;31m%}completing %B%d%b%{\e[0m%}'
</pre>
</ul>
So, das wars. Jetzt solltet ihr ein wunderschones, funktionierendes man Menu haben. Ihr konnt mir gerne einen daf&uuml;r ausgeben ;)]]>
</div>
</content>
</entry>
<entry>
<title type="html">Umgebungsvariablen bearbeiten</title>
<author>
<name>Ulrich Dangel</name>
</author>
<link rel="alternate" type="text/html" href="http://das.ist.mein.blog.und.der.spamt.net/archives/2006/05/11/umgebungsvariablen_bearbeiten/index.html" />
<id>http://das.ist.mein.blog.und.der.spamt.net/archives/2006/05/11/umgebungsvariablen_bearbeiten/index.html</id>
<published>2006-05-11T20:13:02+02:00</published>
<updated>2006-05-11T20:13:02+02:00</updated>
<category term="Shell stuff" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[Wer kurz irgendeine Umgebungsvariable seiner Wahl bearbeiten mochte, sollte sich mal vared
anschauen. Damit kann man ganz einfach und kurz irgendeine Umgebungsvariable bearbeiten.<br>
Bsp.:
<pre>
$ vared PATH
/root/bin:/usr/local/bin:/opt/eclipse:/opt/java/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/bin/X11
</pre>
Ist imo relativ n&uuml;tzlich, auch wenn man es nicht unbedingt vermisst h&auml;tte :)

HTH]]>
</div>
</content>
</entry>
</feed>
