Erweiterte Bash Completion
-
- Beiträge: 2091
- Registriert: 07.07.2006 18:32:05
Erweiterte Bash Completion
Hallo zusammen,
ich habe an einem Server eine interessante Entdeckung zur Vervollständigung von Bash-Befehlen gemacht.
Wenn ich dort z.B. /etc/init.d/ eingebe und dann die Pfeiltasten nach oben auswählen werden mir scheinbar alle Befehle aus der History angezeigt die so beginnen. Das funktioniert auch mit allen anderen Dingen die ich auf der Shell eingegeben habe.
An meinem Desktopsystem funktioniert das nicht... Daher nun die Frage, woher kommt dieses Feature?
ich habe an einem Server eine interessante Entdeckung zur Vervollständigung von Bash-Befehlen gemacht.
Wenn ich dort z.B. /etc/init.d/ eingebe und dann die Pfeiltasten nach oben auswählen werden mir scheinbar alle Befehle aus der History angezeigt die so beginnen. Das funktioniert auch mit allen anderen Dingen die ich auf der Shell eingegeben habe.
An meinem Desktopsystem funktioniert das nicht... Daher nun die Frage, woher kommt dieses Feature?
Re: Erweiterte Bash Completion
Schreib
in die ~/.inputrc, eine Konfigurationsdatei für readline, das von der Bash verwendet wird. Wenn sie nicht vorhanden ist, dann kannst du sie einfach anlegen und danach musst du die bash neu starten.
Die erste Zeile sollte das machen, was du beschrieben hast, die zweite Zeile ist für die Pfeil-nach-unten-Taste - so kann man sich in den Suchergebnissen vor und zurück bewegen.
Code: Alles auswählen
"\e[A":history-search-backward
"\e[B":history-search-forward
Die erste Zeile sollte das machen, was du beschrieben hast, die zweite Zeile ist für die Pfeil-nach-unten-Taste - so kann man sich in den Suchergebnissen vor und zurück bewegen.
-
- Beiträge: 2091
- Registriert: 07.07.2006 18:32:05
Re: Erweiterte Bash Completion
Hi,
danke für den Tipp, werde das mal ausprobieren. Woher weißt du das?
danke für den Tipp, werde das mal ausprobieren. Woher weißt du das?
Re: Erweiterte Bash Completion
Vermutlich schon mal getippt. Eine Suche nach "bash history arrow" liefert auch ähnliche Ergebnisse .Alternativende hat geschrieben:Woher weißt du das?
Re: Erweiterte Bash Completion
Kann ich mich nicht mehr erinnern, gefunden habe ich es (auskommentiert) in meiner .inputrc. Eigentlich müsste so ziemlich alles was man dazu benötigt auch in der Manpage (man 3 readline) stehen.
Re: Erweiterte Bash Completion
Ich habe das auch schon seit längerem so. Habe allerdings noch zwei Zeilen mehr. Gefunden habe ich das vor langer Zeit im freien Magazin.
... und nicht vergessen, es ebenfalls in die .inputrc vom root einzufügen, damit es auch als root funktioniert.
Code: Alles auswählen
## Intelligente Befehlshistory-Suche
"\e[A":history-search-backward
"\e[B":history-search-forward
"\e[C":forward-char
"\e[D":backward-char
Re: Erweiterte Bash Completion
Ich habe (in der zsh) auch zwei verschiedene. Einen um den kompletten Pfade zu vervollständigen, einen nur für das 'erste Wort' (zumindest Leerzeichen ist hier ein funktionierender Trenner).
vim /test [page-up] liefert mir also vim /test/foobar
vim /test [arrow-up] kann mir aber auch vim blabla liefern.
vim /test [page-up] liefert mir also vim /test/foobar
vim /test [arrow-up] kann mir aber auch vim blabla liefern.
-
- Beiträge: 2091
- Registriert: 07.07.2006 18:32:05
Re: Erweiterte Bash Completion
Ich habe die 4 Zeilen in der /etc/inputrc eingefügt. Funktioniert bestens, die Frage die sich mir stellt ist nur warum das kein Standard ist.
Re: Erweiterte Bash Completion
Wenn es dir um weitere Ideen geht, könntest du dir mal die Zsh-Konfiguration von GRML anschauen [1]. Ich denke da wirst du noch ein paar andere nette Funktionen finden, wobei ich jedoch nicht weiß ob das auch für Bash funktionieren würde. Der wahre Shell-Kenner nutzt sowies Zsh wobei ich nicht dazu gehöre. Aber ich nutze gerne Funktionen von tmux bzw. screen auch wenn es nur indirekt mit der Shell zu tun hat. Und unter Openbox gönne ich mir eigentlich auch nur eine "große" Anwendung. Und das ist terminator mit seinen grafischen Terminal-Funktionen.
[1] https://grml.org/zsh/
[1] https://grml.org/zsh/
-
- Beiträge: 2091
- Registriert: 07.07.2006 18:32:05
Re: Erweiterte Bash Completion
Der terminator ist wirklich super, bin durch einen Blogeintrag darauf aufmerksam geworden und liebe es seitdem.
Re: Erweiterte Bash Completion
Beispiele
Code: Alles auswählen
$ locate inputrc
/etc/inputrc
....
/usr/share/augeas/lenses/dist/inputrc.aug
/usr/share/augeas/lenses/dist/tests/test_inputrc.aug
/usr/share/doc/bash/inputrc.arrows
/usr/share/doc/libreadline5/inputrc.arrows
/usr/share/doc/libreadline6/inputrc.arrows
/usr/share/doc/readline-common/inputrc.arrows
/usr/share/readline/inputrc
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")