Die Bash-Geschichte kann viele hilfreiche Dinge bewirken, und die Suche Strg-r
, die Terry Wang erwähnte, ist eine wichtige unter ihnen. Es ist aber auch möglich, genau das zu tun, wonach Sie gefragt haben.
Sie können den vorherigen Befehl mit erneut ausführen !!
. Hiermit können Sie auch den vorherigen Befehl bearbeiten. Wenn Sie zum Beispiel vergessen haben, Root-Rechte für einen Befehl zu erhalten
apt-get install a-long-list-of-packages
Sie müssen das alles nicht noch einmal eingeben. Stattdessen einfach anrufen
sudo !!
Wenn Sie den Befehl an einer bestimmten Position von Ihrer Geschichte erneut ausführen möchten, können Sie auch nutzen !
, zum Beispiel
!3
Führen Sie den Befehl an Position 3 erneut aus. Beachten Sie, dass dies von oben zählt. Wenn Sie also 500 Befehle in Ihrem Verlauf speichern, !1
wäre dies "vor 500 Befehlen". Sie können auch negative Zahlen verwenden. Beispielsweise
!-2
würde den vorletzten Befehl erneut ausführen.
Sie können auch den letzten Befehl erneut ausführen, der mit einer Zeichenfolge wie gestartet wurde
!apt-
Das würde die letzte Zeile wiederholen, die mit "apt-" begann. Wenn Sie den letzten Befehl haben möchten, bei dem der String irgendwo in der Zeile vorkommt, können Sie so etwas wie verwenden
!?pt-ge
Es gibt interessantere Dinge, die die Bash-Geschichte tun kann. Um einen Eindruck von den vielfältigen Möglichkeiten zu bekommen, können Sie gezielt auf einen Parameter eines Befehls aus der Historie zugreifen. So
!-5:3:p
würde den dritten Parameter bis zum fünften vom letzten Befehl ausgeben.
BEARBEITEN: In Bezug auf Rudies Kommentar unten werden diese Bash-History-Erweiterungen mit den Standardeinstellungen tatsächlich direkt ausgeführt. Es ist wahrscheinlich am besten so zu beschreiben: Ein Aufruf wie !-3
wird durch die Shell mit dem drittletzten Befehl aus Ihrem Verlauf ersetzt und dann Ihre Eingabe (mit dem Ersetzen) ausgeführt. Wenn Sie also tippen !-3
und drücken ENTER
und Ihr drittletzter Befehl war ls ~
, ist er in der Tat derselbe, als hätten Sie ls ~
erneut getippt und ENTER
"auf eigene Faust" gedrückt .
Wenn Sie das nicht möchten, können Sie die Shell-Option einstellen histverify
. Zum Festlegen und Deaktivieren von Shell-Optionen möchten Sie möglicherweise den shopt
Befehl nachlesen . Mit histverify
set !-3
schreibt ein Aufruf wie nur die Ersetzung aus Ihrem Verlauf in Ihre Befehlszeile, führt sie jedoch nicht direkt aus. Sie müssen sozusagen ENTER
selbst auf das Entscheidende drücken - oder es unterlassen, wenn Sie möchten.