Ich hätte nicht gedacht, dass sich so viele auf meinen Aufruf melden würden, anscheinend ist wirklich ein Bedürfnis und Interesse da, was mich natürlich freut. Ich hoffe, ich habe nicht allzu grosse Erwartungen geweckt. Es werden bestimmt auch ein paar Leute mitlesen, die viel mehr Wissen als ich, wenn etwas also mal noch einfacher geht oder nicht ganz korrekt ist, bitte ich darum korrigiert zu werden.

Vielleicht zuerst noch was zum Thema Shell: Ich selbst benutze Zsh, da sie sehr viele praktische Features bietet, die ich z.B. von der Bash nicht kenne. Ich möchte aber keine Flamewars zu dem Thema lostreten, eine schöne Liste von Vorteilen findet man hier. Wer nur deshalb die Bash benutzt, weil die einfach schon als Standardshell eingerichtet ist, dem empfehle ich einfach mal auf die Zsh zu wechseln:

$ sudo aptitude install zsh
oder
$ sudo emerge zsh
als default setzen:
$ chsh -s /bin/zsh #oder wo auch immer zsh liegt

Achtung, falls Einstellungen (z.B. Aliasse) in .bashrc gemacht wurden, müssen diese nach .zshrc migriert werden, die Syntax ist meistens ziemlich gleich. Ausserdem wird beim ersten Start ein Wizard der Zsh starten, wer Lust und Zeit sollte ruhig mal ein bisschen damit rumspielen.

Ok, nun aber zurück zum Hauptthema: Navigation. Dass man mit Cursor-Up die vorherigen Befehle “holen” kann ist (hoffentlich) allen klar. Vielleicht hat man einen Tippfehler gemacht oder ein sudo vergessen und muss noch was ändern. Natürlich kann man dazu die Cursortasten nehmen, an den Anfang der Zeile kommt man aber am einfachsten mit Ctrl^A (Achtung, das ist eigenltich ein kleines a, also ohne Shift). Ans Ende wiederum mit Ctrl^E (man muss sich aber nicht am Ende der Zeile befinden, um einen Befehl abzusetzen). Natürlich kann man das gleiche auch mit den Home und End-Tasten erreichen.

Nützlicher ist die Navigation mit Alt^B sowieo Alt^F, damit springt der Cursor vor (bzw. nach) das letzte (bzw. das nächste) Leerzeichen. Mit Ctrl^B und F bewegt man den Cursor bloss um ein Zeichen, was ich nicht besonders nützlich finde, deshalb habe ich diese Tasten mit der gleichen Funktion wie Alt^B / F belegt:

#In .zshrc
bindkey ^F forward-word
bindkey ^B backward-word

Nun können wir uns also schon ganz gut bewegen, allerdings wollen wir häufig auch noch was ändern. Mit Ctrl^W löscht man von der Cursorposition bis zum vorherigen Leerzeichen, das Umgekehrte, also “nach vorne” löschen geschieht mit Alt^D. Mit Ctrl^U löscht man gleich bis zum Anfang und mit Ctrl^K bis ans Ende der Zeile.

Machen wir doch ein Beispiel. Wir haben zuvor folgenden Befehl ausgeführt:
$ less /etc/apache2/httpd.conf
Nun wollen wir die Datei bearbeiten, dazu drücken wir einfach Cursor-Up (oder Ctrl^P), Ctrl^BW (oder Ctrl^AFW, Ctrl^A Alt^D): “less” ist weg und kann mit einem anderen Befehl ersetzt werden.

Ziemlich simpel, aber einiges schneller als Zeichen-für-Zeichen zu navigieren. Einfach immer, wenn man sich dabei ertappt wie man ein dutzend Mal auf die Cursortasten haut, kurz an die paar Shortcuts erinnern und anwenden. Auch wenn man so zu Beginn vielleicht nicht schneller ist, wird man das mit der Zeit wieder rausholen. Ist im Prinzip dasselbe wie mit Vi :) .

[ratings]