<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/css" href="http://das.ist.mein.blog.und.der.spamt.net/styles/feed.css"?>
<rss version="2.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:admin="http://webns.net/mvcb/">
<channel>
<title>Stolzer DNS Spammer</title>
<link>http://das.ist.mein.blog.und.der.spamt.net/archives/shell_stuff/index.html</link>
<description>dns spam, zsh, stuff</description>
<dc:language>de</dc:language>
<dc:creator>Ulrich Dangel</dc:creator>
<dc:date>2008-11-20T14:16:16+01:00</dc:date>
<admin:generatorAgent rdf:resource="http://nanoblogger.sourceforge.net" />
<item>
<link>http://das.ist.mein.blog.und.der.spamt.net/archives/2008/11/20/netwerktraffic_per_verbindung_messen/index.html</link>
<title>Netwerktraffic per Verbindung messen</title>
<dc:date>2008-11-20T13:52:22+01:00</dc:date>
<dc:creator>Ulrich Dangel</dc:creator>
<dc:subject>Shell stuff</dc:subject>
<description>
<![CDATA[Ab und zu steht man vor dem Problem festzustellen welche Netzwerk Verbindung gerade am meisten Traffic macht. Hier kommt <a href="http://jnettop.kubs.info/wiki/">jnettop</a> ins
Spiel das das ganze sehr komfortabel visualisiert.<br />
Jetzt noch mittels netstat -anp nachschauen welcher Benutzer den Traffic generiert und ihn schimpfen :)<br/>]]>
</description>
</item>
<item>
<link>http://das.ist.mein.blog.und.der.spamt.net/archives/2008/06/08/dateien_umbenennen_mit_dem_editor/index.html</link>
<title>Dateien umbenennen mit dem Editor</title>
<dc:date>2008-06-08T16:13:16+01:00</dc:date>
<dc:creator>Ulrich Dangel</dc:creator>
<dc:subject>Shell stuff</dc:subject>
<description>
<![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;.]]>
</description>
</item>
<item>
<link>http://das.ist.mein.blog.und.der.spamt.net/archives/2006/12/21/a_new_star_is_born/index.html</link>
<title>A new star is born</title>
<dc:date>2006-12-21T18:30:57+01:00</dc:date>
<dc:creator>Ulrich Dangel</dc:creator>
<dc:subject>Shell stuff</dc:subject>
<description>
<![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>]]>
</description>
</item>
<item>
<link>http://das.ist.mein.blog.und.der.spamt.net/archives/2006/12/09/persistent_dirstack_f&amp;uumlr_die_zsh/index.html</link>
<title>Persistent Dirstack für die ZSH</title>
<dc:date>2006-12-09T20:43:56+01:00</dc:date>
<dc:creator>Ulrich Dangel</dc:creator>
<dc:subject>Shell stuff</dc:subject>
<description>
<![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>]]>
</description>
</item>
<item>
<link>http://das.ist.mein.blog.und.der.spamt.net/archives/2006/09/20/zsh_cd_completion/index.html</link>
<title>zsh cd completion</title>
<dc:date>2006-09-20T20:14:22+01:00</dc:date>
<dc:creator>Ulrich Dangel</dc:creator>
<dc:subject>Shell stuff</dc:subject>
<description>
<![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 ;)]]>
</description>
</item>
<item>
<link>http://das.ist.mein.blog.und.der.spamt.net/archives/2006/09/09/excludes_mit_der_bash/index.html</link>
<title>Excludes mit der Bash</title>
<dc:date>2006-09-09T14:27:27+01:00</dc:date>
<dc:creator>Ulrich Dangel</dc:creator>
<dc:subject>Shell stuff</dc:subject>
<description>
<![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 ;)]]>
</description>
</item>
<item>
<link>http://das.ist.mein.blog.und.der.spamt.net/archives/2006/08/10/gr&amp;uumlnde_f&amp;uumlr_die_zsh/index.html</link>
<title>Gründe für die zsh</title>
<dc:date>2006-08-10T23:08:06+01:00</dc:date>
<dc:creator>Ulrich Dangel</dc:creator>
<dc:subject>Shell stuff</dc:subject>
<description>
<![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.]]>
</description>
</item>
<item>
<link>http://das.ist.mein.blog.und.der.spamt.net/archives/2006/07/18/bash_completion_mit_der_zsh_nutzen/index.html</link>
<title>Bash Completion mit der ZSH nutzen</title>
<dc:date>2006-07-18T15:40:54+01:00</dc:date>
<dc:creator>Ulrich Dangel</dc:creator>
<dc:subject>Shell stuff</dc:subject>
<description>
<![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...]]>
</description>
</item>
<item>
<link>http://das.ist.mein.blog.und.der.spamt.net/archives/2006/06/12/bug_in_url-quote-magic/index.html</link>
<title>Bug in url-quote-magic</title>
<dc:date>2006-06-12T17:19:48+01:00</dc:date>
<dc:creator>Ulrich Dangel</dc:creator>
<dc:subject>Shell stuff</dc:subject>
<description>
<![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.]]>
</description>
</item>
<item>
<link>http://das.ist.mein.blog.und.der.spamt.net/archives/2006/05/19/zsh_und_richtige_man_menus/index.html</link>
<title>Zsh und richtige man menus :)</title>
<dc:date>2006-05-19T11:45:59+01:00</dc:date>
<dc:creator>Ulrich Dangel</dc:creator>
<dc:subject>Shell stuff</dc:subject>
<description>
<![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 ;)]]>
</description>
</item>
</channel>
</rss>
