Letzten Befehl nach Suchmuster ausführen
!string wird durch die letzte vollständige Kommandozeile ersetzt, die mit string begonnen hat.
!?string? wird durch die letzte vollständige Kommandozeile ersetzt, die irgendwo string enthalten hat.
Beispiele
!viführt das letzte Kommando aus, das mit vi begonnen hat. Je nachdem, was du zuletzt getippt hast, könnte das z. B. vi, vim oder auch vidir sein – jeweils die komplette Kommandozeile. Konkretes Beispiel: die letzten drei Befehle seien:vim /etc/samba/smb.conf man smb.conf sudo !viEs wird
sudo vim /etc/samba/smb.confausgeführt.Du schreibst ein kleines C-Programm. Der Befehlszyklus ist
vim myprogram.c # editiere Quelldatei make myprogram # erstelle Binary ./myprogram # führe das Programm ausDer Test offenbart, dass du nochmal was editieren musst:
!vDann nochmal kompilieren!mUnd nochmal ausführen!.Viel Tipparbeit gespart!
Technisches
- Das führende Ausrufezeichen
!bedeutet: Wir greifen auf die Befehlshistorie zu. - Danach kommt ein Suchstring.
- Ist der Suchstring ein weiteres Ausrufezeichen, ersetze durch die letzte Kommandozeile
- Ist der Suchstring in Fragezeichen
?eingeschlossen, suche den String auf der gesamten Kommandozeile - Ansonsten suche die letzte Kommandozeile, die mit dem Suchstring beginnt.
Weiteres dazu ist in der bash man page unter dem Abschnitt HISTORY EXPANSION zu finden.