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

Warum speichert Bash keine Befehle, die mit Leerzeichen beginnen?

Wenn ich eine Folge von Befehlen ausführe wie:

$ ls
$   grep abc file.txt

und verwenden Sie dann die Pfeiltaste nach oben, um zum vorherigen zu gelangen, das Terminal zeigt das letzte cmd (das ist der grep hier)

Aber wenn ich so etwas mache:

$ ls
$   grep abc file.txt

wobei grep vorangestellt sind Leerzeichen, nach oben drücken ergibt ls , nicht grep .

Warum ist das so?

Akzeptierte Antwort:

echo $HISTCONTROL
ignoreboth

Mann bash:

HISTCONTROL

Eine durch Doppelpunkte getrennte Liste von Werten, die steuern, wie Befehle in der Verlaufsliste gespeichert werden. Wenn die Werteliste ignorespace enthält , werden Zeilen, die mit einem Leerzeichen beginnen, nicht in der Verlaufsliste gespeichert. Ein Wert von ignoredups bewirkt, dass Zeilen, die mit dem vorherigen Verlaufseintrag übereinstimmen, nicht gespeichert werden. Ein Wert von ignoreboth ist eine Abkürzung für ignorespace und ignoredups .


Linux
  1. Gekoppelte Befehle mit Steueroperatoren in Bash

  2. Warum funktioniert die Bash-Prozesssubstitution bei einigen Befehlen nicht?

  3. Rm-Befehl im Bash-Skript funktioniert nicht mit Variablen?

  4. Wie kann man eine Datei ausgeben und Zeilen ignorieren, die mit „?“ beginnen?

  5. 15 nützliche integrierte Bash Shell-Befehle (mit Beispielen)

Was ist Git Bash? Arbeiten mit Git Bash-Befehlen

Retten Sie erfolgreich den Tag mit Bash-Verlaufsbefehlen

Ersetzen Sie Leerzeichen mit Unterstrichen über BASH

Docker-Befehle hängen ohne Antwort

Warum wird poll nicht durch epoll ersetzt?

Warum reicht das Löschen des Bash-Verlaufs nicht aus?