Größe des Bash-Verlaufs

Abdul Mateen 20 Juni 2023
  1. Überblick über die Bash-Geschichte
  2. Verwenden Sie den Bash-Befehl history, um den Bash-Verlauf anzuzeigen
  3. Größe des Bash-Verlaufs
  4. Ändern Sie die Größe der Bash-Verlaufsdatei
  5. Legen Sie die unbegrenzte Größe der Bash-Verlaufsdatei fest
  6. Kontrollieren Sie den Bash-Verlauf
  7. Speichern Sie den Verlauf in HISTFILE, bevor Sie sich abmelden
Größe des Bash-Verlaufs

In diesem Tutorial erfahren wir mehr über den Verlauf von Bash, seine Größe und wie wir unsere Verlaufsgröße ändern und Grenzen handhaben können. Bevor wir uns unserem Thema zuwenden, wollen wir zunächst herausfinden, warum wir Geschichte in einer Bash-Shell brauchen und wie wir sie nehmen können.

Die meisten Entwickler, Systemadministratoren und Softwareanwendungsingenieure verbringen viel Zeit an der Linux-Befehlszeile. Als Menschen machen sie Tippfehler.

Außerdem haben viele Befehle eine Liste von Parametern/Optionen (mit ihrer jeweiligen Reihenfolge). Daher ist es schwierig, sie sich in ihrer genauen Reihenfolge zu merken.

Daher hilft uns der Verlauf, uns an den vorherigen Befehl zu erinnern, der in die Bash-Shell eingegeben wurde.

Überblick über die Bash-Geschichte

In Bezug auf den Verlauf verfolgt Bash die Befehle, Dateien und Verknüpfungen. Die Benutzer können auf der Befehlszeile mit dem Dienstprogramm Verlauf eingeben.

Das Hilfsprogramm Verlauf liefert nützliche Informationen. Es hilft nachzuvollziehen, wie es zu den aktuellen System- oder Kontoänderungen gekommen sein könnte.

Bash hat zwei eingebaute Befehle, die sich auf den Bash-Verlauf beziehen:

  1. history – Dieser Befehl bietet eine Liste der zuvor verwendeten Befehle aus Ihrem Bash-Verlauf und ermöglicht Ihnen auch, den Bash-Verlauf zu ändern
  2. fc - Dieser Befehl führt alle Aufgaben des Befehls history aus und ermöglicht die Ausführung des Befehls.

Alle Informationen über den Bash-Verlauf werden für Bash-Benutzer in der Datei ~/.bash_history gespeichert, während es für andere Benutzer möglicherweise nur .history ist.

Beginnen wir mit unserem history-Befehl und sehen, wie er funktioniert.

Verwenden Sie den Bash-Befehl history, um den Bash-Verlauf anzuzeigen

Wenn Sie Ihren gesamten Verlauf anzeigen möchten, können Sie den Befehl Verlauf in die Shell schreiben. Es listet den gesamten Verlauf aus der Verlaufsdatei auf.

$ history

Die Ausgabe wird wie folgt aussehen:

	1  ping google.com
    2  sudo apt update
    3  ping google.com
    4  java --version
    5  sudo apt install openjdk-17-jre-headless
    6  sudo apt-get install gcc
    7  sudo apt-get install gpp
    8  sudo apt-get install g++
    9  sudo apt-get install mingw-w64
   10  sudo apt-get install codeblocks
   11  codeblocks
   12  sudo apt update
   13  sudo apt update mu-editor
   14  sudo apt install mu-editor
   15  sudo apt update
   16  python3 --version
   17  clear
   18  snap find pycharm
   19  sudo snap install pycharm-professional --classic
   20  clear
   21  cd desktop/python
   22  cd desktop/python task5.py
	...

Es gibt auch andere hilfreiche Bash-Verlaufs-Befehle, die wir nicht erklären werden, aber Sie können sie auf dieser Website nachlesen.

Der fc-Befehl in Bash ist unter Linux auch als fix-Befehl bekannt. Hauptsächlich wird es verwendet, um mehrzeilige Befehle zu ändern.

Der Parameter -l beim Befehl fc zeigt die bisherige Befehlshistorie.

Sehen wir uns das folgende Beispiel des Befehls und seiner Ausgabe an:

$ fc -l
302	 284 ./a.out
303	 285 gcc execve1.c -o e1
304	 286 gcc execve2.c
305	 287 ./a.out
306	 288 $ sudo snap install whatsdesk
307	 289 sudo snap install whatsdesk
308	 290 cd ..
309	 291 cd CodeForces/
310	 292 pwd
311	 293 history
312	 294 1  ping google.com
313	 295 ls
314	 296 wc Test.c
315	 297 fc -l
316	 298 ls
317	 clear

Größe des Bash-Verlaufs

Wenn Sie über die Bash-Verlaufsdatei sprechen, denken Sie, dass es auch einige Daten gibt. Der Standardwert der Bash-Verlaufsdatei ist 500 bis 1000.

Dies ist die maximale Anzahl von Einträgen in der Verlaufsdatei. Aber es ist nicht dauerhaft, da wir unsere Verlaufsgröße mit verschiedenen Befehlen so konfigurieren können, wie wir möchten.

Lassen Sie uns sie erkunden.

Konfigurieren Sie den Bash-Verlauf

Um den Bash-Befehlsverlauf zu konfigurieren, müssen Sie Änderungen an der Datei ~/.bashrc vornehmen. Die Datei ~/.bashrc kann mit dem folgenden nano-Befehl aktualisiert werden:

$ nano ~/.bashrc

Drücken Sie nach der Änderung Strg+O gefolgt von Strg+X zum Speichern und Schließen des nano Editor. Führen Sie dann die folgenden Befehle aus, um die Bash-Einstellungen neu zu laden:

$ source ~/.bashrc

oder

$ . ~/.bashrc

Beide Befehle nehmen Änderungen in der Bash-Verlaufsdatei vor.

Ändern Sie die Größe der Bash-Verlaufsdatei

Die Variablen HISTSIZE und HISTFILESIZE beziehen sich auf die Bash-History. Die Variable HISTSIZE hat eine Anzahl von maximal zwischenzuspeichernden Bash-Befehlen, während die Variable HISTFILESIZE eine Anzahl von Top-Befehlen hat, die in der Verlaufsdatei gespeichert sind.

Standardmäßig können wir höchstens 500 Befehle in der Verlaufsdatei speichern.

Wir können diese Werte anzeigen, indem wir diese Variablen drucken; die Ausgabe kann auf verschiedenen Maschinen/Konfigurationen variieren. Hier ist ein Beispiellauf und das zugehörige Ergebnis:

$ echo $HISTSIZE
$ echo $HISTFILESIZE
1000
2000

Wir können diese Werte konfigurieren, indem wir die folgenden Zeilen in die Datei ~/.bashrc einfügen:

$ HISTSIZE = 6000
$ HITFILESIZE = 6000

Auch hier können wir diese Variablen drucken, um die Werte zu überprüfen:

$ echo $HISTSIZE
$ echo $HISTFILESIZE
6000
6000

Legen Sie die unbegrenzte Größe der Bash-Verlaufsdatei fest

Im vorherigen Abschnitt wurde die Methode zum Ändern der Verlaufsgröße in Bash erläutert. Manchmal ist es jedoch praktisch, eine unbegrenzte Größe festzulegen. Wie werden wir das tun? Lass uns erforschen!

Sie können auch die Größe Ihres Bash-Verlaufs oder die Gesamtdateigröße festlegen, indem Sie die folgenden Schritte ausführen:

  • Ändern Sie die Bash-Verlaufsdatei. Wie Sie in StackOverFlow lesen können, gibt es einige Probleme mit der Bash-Verlaufsdatei, da sie in einigen Fällen abgeschnitten wird.

    Wir können dieses Problem lösen, indem wir die Umgebungsvariable HISTFILE ändern, um ein anderes Verzeichnis zu verwenden.

    export HITSFILE= ~/.history
    

    HISTFILE bezieht sich auf den Pfad/Speicherort der Verlaufsdatei (der Standardwert ist ~/.bash_history).

  • Erhöhen Sie die Verlaufsgröße. Setzen Sie die Variablen HISTFILESIZE und HISTSIZE auf eine leere Zeichenfolge, um die Größe des Bash-Verlaufs unbegrenzt zu machen.
    $ export HITSFILESIZE=
    $ export HITSIZE=
    
  • Kopieren bestehender Historie. Obwohl wir eine neue Verlaufsdatei verwenden, sollten wir die vorherigen Dateibefehle nicht verlieren, also kopieren wir den Inhalt der alten Datei in die neue.
    $ cp ~/.bash_history ~/.history
    

Kontrollieren Sie den Bash-Verlauf

Sie können Befehle aus dem Bash-Verlauf ausschließen, um Ausgaberauschen oder aus Sicherheitsgründen zu vermeiden. Sie können dies mit dem Verlaufssteuerbefehl HISTCONTROL tun, der steuert, welcher Verlauf gespeichert wird.

Sie können festlegen, dass doppelte Einträge und Einträge mit führenden Leerzeichen in Ihrer ~/.bashrc-Datei ignoriert werden.

  1. ignorespace – Dies eliminiert Befehle, die mit einer Space-History-Liste beginnen.
  2. ignoredups – Dies eliminiert doppelte Befehle.
  3. ignoreboth – Dies aktiviert sowohl ignoredups als auch ignorespace.
  4. erasedups – Dies eliminiert Duplikate aus der gesamten Liste.
$ export HISTCONTROL=ignorespace:ignoredups

Zu ignorierende Befehle können Sie auch über die Variable HISTIGNORE steuern. Es ist eine durch Doppelpunkte getrennte Liste von Mustern, in der wir alle Befehle angeben können, die wir aus dem Verlauf auslassen möchten.

Wenn Sie beispielsweise grundlegende und häufigste Befehle (z. B. ls und pwd) in der Verlaufsliste ignorieren möchten, schreiben Sie die folgende Zeile in die Datei ~/.bashrc:

$ export HISTIGNORE="ls:pwd:"

Mit dem Befehlsverlauf von Linux Bash können Sie mehr tun, als die alten Befehle zu wiederholen.

Speichern Sie den Verlauf in HISTFILE, bevor Sie sich abmelden

Die Befehle werden erst in die Bash-Datei geschrieben, nachdem sich der Benutzer abgemeldet hat. Allerdings steht mit dem Befehl history die Schreiboption zur Verfügung, um die Historie vor dem Abmelden in die Datei zu schreiben.

Die Syntax lautet:

$ history -w

Dieser Befehl schreibt den gesamten Befehlsverlauf der aktuellen Sitzung in die HISTFILE. Danach steht das Befehlsskript für die zukünftige Verwendung zur Verfügung.

In diesem Artikel haben wir schließlich den Bash-Verlauf, die Verlaufsgröße und die Dateigröße behandelt oder wie wir den Bash-Verlauf und seine Größe auf einen begrenzten oder unbegrenzten Bereich ändern können.