GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Das Ausrufezeichen (!) In Bash verstehen?

Ich habe

verwendet
history | less

Um die Zeilen der vorherigen Befehle zu erhalten und aus den Zahlen auf der linken Seite habe ich die Zeile gefunden, die ich wiederholen wollte (z. B. 22) und getan

!22

an der Eingabeaufforderung und es funktionierte – Ausführen des Befehlssatzes auf der Zeile, die ich damals gemacht habe. Ich kann nicht herausfinden, wo das Ausrufezeichen verwendet wird, was es in Bezug auf die von bash ausgeführten Aktionen darstellt und wo es verwendet wird. Aus der Dokumentation sehe ich keine „greifbare“ Erklärung.

Akzeptierte Antwort:

! ruft die History-Erweiterung auf, eine Funktion, die ursprünglich in der C-Shell auftauchte, damals, als man sich darauf verlassen konnte, dass Terminals Pfeiltasten hatten. Es ist besonders nützlich, wenn Sie die aktuelle Befehlsnummer zur Eingabeaufforderung hinzufügen (PS1="!$ " ), sodass Sie schnell auf Ihren Bildschirm schauen können, um Zahlen für frühere Befehle zu erhalten.

Jetzt können Sie Pfeiltasten und Dinge wie Strg-R verwenden Um den Befehlsverlauf zu durchsuchen, sehe ich keinen großen Nutzen für die Funktion.

Eine Variante davon, die Sie vielleicht noch nützlich finden, ist !! , wodurch der vorherige Befehl erneut ausgeführt wird. Alleine finde ich ! nicht ! Eingabe schneller als nur Eingabe , aber es kann hilfreich sein, wenn es zu einem größeren Befehl kombiniert wird.

Beispiel: Ein häufiger Pilotenfehler bei sudo basierten Systemen ist das sudo zu vergessen Präfix für einen Befehl, der zusätzliche Berechtigungen erfordert. Ein Neuling gibt den gesamten Befehl erneut ein. Der fleißige Schüler bearbeitet den Befehl aus der Befehlshistorie der Shell. Der Erleuchtete tippt sudo !! .

Verarbeitung von ! auf diese Weise ist in Bash standardmäßig in interaktiven Shells aktiviert und kann mit set +o histexpand deaktiviert werden oder set +H . Sie können es in Zsh mit set -K deaktivieren .


Linux
  1. So verwenden Sie den Verlaufsbefehl unter Linux

  2. Bash-Tipps für den Alltag an der Kommandozeile

  3. Der Unterschied zwischen den Bash-Operatoren [[ Vs [ Vs ( Vs ((?

  4. Der „eval“-Befehl in Bash?

  5. So deaktivieren Sie die Bearbeitung meines Verlaufs in Bash

Verlaufsbefehl in Linux (Bash-Verlauf)

Die Liste nützlicher Bash-Tastaturkürzel

So aktivieren Sie den Zeitstempel im Bash-Verlauf unter Linux

Verstehen des uname-Befehls in Linux

Verstehen des Zeitbefehls in Linux

die Ausgabe des Befehls „yum history“ verstehen