Geschichtsstunde
Ein weiteres wichtiges Feature der Shell ist die Historie. Statt Befehle nochmals zu tippen, sucht der Anwender den Befehl einfach in der Liste der bereits eingegebenen Befehlszeilen. Das funktioniert sowohl mit den Pfeil- und Bildtasten als auch mit Suchfunktionen. Am bekanntesten ist wohl [Ctrl]+[R] für die inkrementelle Rückwärtssuche. Weniger bekannt und in der Notation obskur erscheinen aber die Möglichkeiten der so genannten History-Expansion. Mit »!n« referenziert der Kommandozeilen-User einen Befehl der Historie. Wer dessen Nummer nicht mehr weiß, schaut mit »history« die Liste der gespeicherten Befehle an. Das gelingt auch mit relativer Referenzierung: Der Aufruf »!-3« etwa bezieht sich auf den drittletzten Befehl. Der Spezialfall »!!« ist identisch zu »!-1«.
Interessant sind die Substitutionsmechanismen: »!!:s/foo/bar/« ersetzt den String »foo« durch »bar« im letzten Befehl. Das geht sogar noch einfacher: »^foo^bar^«. Neben der Substitution unterstützt die Shell-Historie noch weitere Flags, um die ausgewählte Zeile zu ändern. Die Befehle lehnen sich an Sed an, aber insgesamt ist das alles zu kryptisch, um es sich zu merken, und Nachschlagen dauert länger als Tippen. Die von Perl inspirierte Kombination mit fünf Sonderzeichen »!#$ESC^« legt das Beispiel auf die Funktionstaste [F3], damit erspart man sich sogar das oben erwähnte Keyboard-Makro.
[Tab] ist des Kommandozeilen-Users bester Freund, sie komplettiert Befehle und Dateinamen. Findet die Bash jedoch das Paket »bash-completion« vor, kennt die Taste plötzlich zusätzlich Optionen und Subkommandos vieler Programme.Wer nicht alle Optionen von »grep« auswendig kennt, tippt nach »grep foo --« zweimal die Tabulatortaste (siehe Abbildung 2). Das Paket ist übrigens in der Bash implementiert und leicht erweiterbar. Die zugehörige Datei »README« liest sich in Teilen wie eine Zusammenfassung der Bash-Bashing-Serie, denn der Completion-Code soll natürlich möglichst effizient sein.
Abbildung 2: Findet die Shell das Paket Bash-Completion vor, kennt sie plötzlich eine große Anzahl von Optionen vieler wichtiger Shellkommandos.
Bash ist nicht nur eine mächtige Skriptsprache, sondern auch als Shell leicht und effizient zu bedienen. Wichtige Tastenkombinationen gehören an die Pinnwand über dem Schreibtisch, immer wieder genutzte Verzeichnisse in Aliase oder Umgebungsvariablen.
Gewonnene Lebenszeit
Die mächtigen Readline- und History-Funktionen sind übrigens nicht Bash-spezifisch. Jeder Programmierer kann in seine Projekte die Libreadline und die Libhistory einbinden - sogar in ein GUI-Interface. Die entsprechenden Wrapper sind auch für andere Programmiersprachen zu haben. (mg)
| Der Autor |
|---|
| Bernhard Bablok betreut bei der Allianz Shared Infrastructure Services ein Datawarehouse mit technischen Performancemessdaten von Mainframes bis zu Servern. Wenn er nicht Musik hört, mit dem Rad oder zu Fuß unterwegs ist, beschäftigt er sich mit Linux oder Objektorientierung. |
Diesen Artikel als PDF kaufen
Express-Kauf als PDF
Umfang: 2 Heftseiten
Preis € 0,99
(inkl. 19% MwSt.)
Als digitales Abo
Weitere Produkte im Medialinx Shop »
Versandartikel
Onlineartikel
Alle Rezensionen aus dem Linux-Magazin
- Buecher/07 Bücher über 3-D-Programmierung sowie die Sprache Dart
- Buecher/06 Bücher über Map-Reduce und über die Sprache Erlang
- Buecher/05 Bücher über Scala und über Suchmaschinen-Optimierung
- Buecher/04 Bücher über Metasploit sowie über Erlang/OTP
- Buecher/03 Bücher über die LPI-Level-2-Zertifizierung
- Buecher/02 Bücher über Node.js und über nebenläufige Programmierung
- Buecher/01 Bücher über Linux-HA sowie über PHP-Webprogrammierung
- Buecher/12 Bücher über HTML-5-Apps sowie Computer Vision mit Python
- Buecher/11 Bücher über Statistik sowie über C++-Metaprogrammierung
- Buecher/10 Bücher zu PHP-Webbots sowie zur Emacs-Programmierung
Insecurity Bulletin
Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...





