ADMIN-Tipp: Schneller in der Shell

Jede Woche erscheint in unserem Newsletter ein neuer ADMIN-Tipp. Eine Sammlung aller Tipps finden Sie im Archiv der ADMIN-Tipps.

Auf der Kommandozeile arbeitet es sich schneller, wenn man ein paar gute Abkürzungen kennt, die das Editieren vereinfachen.

Auch im Zeitalter der grafischen Oberflächen arbeiten die meisten Linux- und Unix-Administratoren noch am häufigsten in einem Textterminal, nicht zuletzt, weil die grafischen Verwaltungs-Tools nie den kompletten Funktionsumfang einer Server-Software abdecken - wenn es überhaupt welche gibt.

Editiert man einen komplexen Befehl in einer Shell-Eingabezeile kann man sich recht intuitiv mit den Cursor-Tasten nach links und rechts bewegen, um Fehler zu bereinigen oder irgendwo in der Mitte neuen Text einzugeben. Wenn man dann erfährt, dass es möglich ist, mit [Strg]+[e] ans Ende und mit [Strg]+[a] an den Anfang einer Zeile zu springen, ist schon viel gewonnen.

Solche Abkürzungen gibt es aber viele. Unter Linux basieren sie üblicherweise auf der Readline-Bibliothek, die von den verschiedenen Shells zur Texteingabe verwendet wird. Als Standard verwendet sie die Emacs-Tastenbelegung, die zum Beispiel die beiden obigen Beispiele enthält. Entsprechend bietet die Bash typischerweise auch Abkürzungen wie [Strg]+[k] ("kill"), um eine Zeile bis zum Ende zu löschen, und [Strg]+[y] ("yank"), um das zuletzt gelöschte wieder einzufügen.

Mit den Emacs-Abkürzungen wird es dann auch einfacher, sich wortweise durch eine Kommandozeile zu navigieren: [Alt]+[f] bewegt den Cursor wortweise vor, [Alt]+[b] ihn wortweise zurück. Dies gilt jedenfalls, wenn die für Emacs nötige "Meta"-Taste der Alt-Taste zugewiesen ist. Funktinioniert das nicht, kann man als Workaround für die Meta-Taste einmal [Esc] drücken und danach dann zum Beispiel die F-Taste.

Alternativ besitzt die Readline-Bibliothek auch einen Vi-Mode, der eine Meta-Taste überflüssig macht. Der Befehl "set -o vi" schaltet ihn ein. Zuerst wird man als Anwender davon gar nichts merken, denn per Default befindet sich die Shell nun im so genannten Eingabemodus von Vi. Erst ein Druck auf die Escape-Taste schaltet sie in den Kommandomodus. Nun stehen dem Anwender die Vi-Befehle zur Verfügung, um sich durch die Kommandozeile zu bewegen, etwa w, W, b, B, und so weiter (Einen Überblick gibt der ADMIN-Tipp "Im Vim-Editor navigieren"). Eingabebefehle wie i oder a führen wieder in den Eingabemodus. Zurück in dem Emacs-Modus geht es mit "set -o emacs".

Permanent lässt sich der Vi-Mode einschalten, indem man das obige Set-Kommando in eine der Shell-Init-Dateien einfügt, zum Beispiel ".bashrc". Alternativ lässt sich der Modus wie auch viele andere Einstellungen, etwa Tastenzuweisungen, über die Einstellungsdatei der Readline-Bibliothek ".inputrc" festlegen.

Wer wirklich komplizierte Kommandozeilen eintippen will, die sich über mehrere Zeilen erstrecken, kann die aktuelle Eingabe mit [Strg]+[x] [Strg]+[e] - im Emacs-Mode - im Editor bearbeiten (der über die Umgebungsvariable "EDITOR" ausgewählt wird). Beim Verlassen des Editors führt die Shell die Kommandozeile sofort aus. Im Vi-Mode genügt zum Öffnen des Editors ein Druck auf [v].

17.10.2012

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019