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

So vermeiden Sie doppelte Einträge im Bash-Verlauf unter Linux

In dieser kurzen Anleitung erfahren wir, wie Sie doppelte Einträge im Bash-Verlauf unter Linux vermeiden. Wenn Sie von der Befehlszeile aus arbeiten, haben Sie möglicherweise einige Linux-Befehle mehrmals ausgeführt. Wie Sie bereits wissen, wird jeder Befehl, den wir im Terminal ausführen, in der Verlaufsdatei gespeichert. Das wiederholte Ausführen derselben Befehle würde also die Verlaufsdatei füllen. Früher oder später werden Sie zu viele doppelte Einträge in der Verlaufsdatei haben.

Standardmäßig werden 500 Befehlseingaben in der Verlaufsdatei gespeichert. In neueren Ubuntu-Systemen beträgt die Dateigröße 1000. Sobald die Anzahl der Befehlseinträge das Standardlimit überschritten hat, werden die ältesten Einträge aus der Verlaufsliste gelöscht. Daher können Sie die alten Einträge nicht abrufen. Sie können natürlich die Größe der Verlaufsdatei erhöhen und so viele Einträge speichern, wie Sie möchten. Anstatt jedoch die Größe der Verlaufsdatei zu erhöhen, ist es viel besser, das Speichern von Duplikaten in der Verlaufsdatei zu vermeiden.

Speicherort der Verlaufsdatei suchen

Der Befehlsverlauf ist eine Shell-spezifische Funktion, die auf Benutzerbasis gespeichert wird. Je nach verwendeter SHELL wird die Verlaufsdatei in einer bestimmten Datei gespeichert. In Linux-Systemen, die Bash verwenden, werden die Befehle in ~/.bash_history gespeichert Datei standardmäßig. Sie können den Speicherort der Verlaufsdatei Ihrer Shell überprüfen, indem Sie den folgenden Befehl ausführen:

$ echo $HISTFILE

Hier ist HISTFILE eine Variable, die verwendet wird, um den Namen der Datei zu definieren, in der die Befehlshistorie gespeichert wird.

Beispielausgabe von meinem Ubuntu Desktop:

/home/sk/.bash_history

In CentOS 8 , habe ich folgende Ausgabe erhalten:

/root/.bash_history
Speicherort der Verlaufsdatei ändern

Wenn Sie den Standardspeicherort ändern möchten, führen Sie Folgendes aus:

$ echo "export HISTFILE=~/.custom_file" >>~/.bashrc

Ersetzen Sie "~/.custom_file" im obigen Befehl durch Ihre eigene.

Führen Sie den folgenden Befehl aus, um die Änderungen zu übernehmen:

$ source ~/.bashrc

Sehen wir uns nun an, wie man es vermeidet, dieselben Befehle mehrmals in ~/.bash_history zu speichern Datei.

Vermeiden Sie doppelte Einträge im Bash-Verlauf unter Linux

Wir rufen die zuletzt ausgeführten Befehle mit dem Befehl "history" ab. Sehen Sie sich das folgende Beispiel an:

$ history | grep ls

Beispielausgabe:

    8  lsb_release -a
   13  ls -l
   14  lsb_release -a
   17  ls -l
   20  ls -l
   23  lsb_release -a
   27  ls
   29  lsb_release -a
   32  ls
   36  ls
   42  ls
   44  lsb_release -a
   62  history | grep ls

Wie Sie in der obigen Ausgabe sehen können, ist das "ls" Befehl wurde mehrfach aufgezeichnet. Wir können diese Duplikate mit HISTCONTROL kontrollieren Variable. HISTCONTROL kann die folgenden Werte haben:

  • Leerzeichen ignorieren - Zeilen, die mit einem Leerzeichen beginnen, werden nicht im Verlauf gespeichert.
  • Ignorierte Nachrichten - Zeilen, die mit dem vorherigen Verlaufseintrag übereinstimmen, werden nicht gespeichert. Mit anderen Worten, Duplikate werden ignoriert.
  • beide ignorieren - Es ist eine Abkürzung für die Werte "ignorespace" und "ignoredups". Wenn Sie diese beiden Werte auf die HISTCONTROL-Variable setzen, werden die mit einem Leerzeichen beginnenden Zeilen und die Duplikate nicht gespeichert.
  • Löschungen - Duplikate im gesamten Verlauf eliminieren.

Um doppelte Einträge im Bash-Verlauf unter Linux zu vermeiden, bearbeiten Sie also Ihre ~/.bashrc Datei:

$ nano ~/.bashrc

Fügen Sie am Ende die folgende Zeile hinzu:

export HISTCONTROL=ignoredups

Speichern und schließen Sie die Datei. Hier haben wir der HISTCONTROL-Variablen das Präfix „export“ vorangestellt. Das bedeutet, dass die Variable allen Teilprozessen zur Verfügung steht. Weitere Einzelheiten hier .

Verwenden Sie alternativ den folgenden Einzeiler:

$ echo "export HISTCONTROL=ignoredups" >>~/.bashrc

Führen Sie nun den folgenden Befehl aus, um die Änderungen zu übernehmen:

$ source ~/.bashrc

Oder melden Sie sich ab und wieder an, um die Änderungen zu übernehmen.

Von nun an werden die doppelten Einträge nicht erfasst. Sie können dies überprüfen, indem Sie denselben Befehl mehrmals ausführen und die Verlaufsliste mit dem folgenden Befehl anzeigen:

$ history

Sie können auch mehrere Werte für die HISTCONTROL-Variable mit Doppelpunkten getrennt wie unten festlegen:

export HISTCONTROL=ignoredups:erasedups

Weitere Einzelheiten finden Sie auf der Manpage von Bash:

$ man bash

Verwandte Lektüre:

  • So löschen Sie den Befehlszeilenverlauf unter Linux
  • So löschen Sie einen bestimmten Befehl aus dem Bash-Verlauf in Linux
  • So zeigen Sie den Bash-Verlauf ohne Zeilennummern an

Linux
  1. So verwenden Sie Bash-Verlaufsbefehle

  2. So löschen Sie den BASH-Befehlszeilenverlauf in Linux

  3. So löschen Sie den Bash-Verlauf unter Linux

  4. So löschen Sie einen bestimmten Befehl aus dem Bash-Verlauf in Linux

  5. Analysieren des Bash-Verlaufs unter Linux

So mounten Sie eine ISO-Datei unter Linux

So verwenden Sie Bash-Dateitestoperatoren in Linux

So sichern und wiederherstellen Sie den Verlauf des Linux-Terminals

So aktivieren Sie den Zeitstempel im Bash-Verlauf unter Linux

So verknüpfen Sie eine Datei unter Linux per Symlink

So löschen Sie den Bash-Verlauf in Linux und Mac