Nur einen Bereich von Einträgen aus dem Bash-Verlauf anzeigen

Nur einen Bereich von Einträgen aus dem Bash-Verlauf anzeigen

Ist es möglich, für den Befehl „Verlauf“ eine feste Zahl festzulegen, um nur eine bestimmte Anzahl von Verlaufselementen, z. B. 100, anzuzeigen, anstatt alles seit Anbeginn der Zeit?

Antwort1

history ndruckt nur nZeilen der Historie. Beispiel:

$ history 4
 2000  type history
 2001  help
 2002  help history
 2003  history 4
$

So können wir einen Alias ​​in Ihrem erstellen .bashrc:

alias h="history 100"

Aus help history:

history: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
    Display or manipulate the history list.

    Display the history list with line numbers, prefixing each modified
    entry with a `*'.  An argument of N lists only the last N entries.

Dies ist nützlich, wenn Sie einen großen Verlaufssatz speichern möchten, vielleicht sogar einenunbegrenzt. MitHISTCONTROL=ignoreboth:erasedupsUndumgekehrte inkrementelle Suche, es ist ein besonderer Anlass, bei dem Sie den historyBefehl tatsächlich ausführen.

Antwort2

HISTFILESIZEÜber diese Einstellung HISTSIZE können Sie die Größe des Verlaufsbefehls beschränken.

Beispielsweise HISTFILESIZE=100und HISTSIZE=100. Dadurch wird die Verlaufsdatei auf 100 Zeilen beschränkt und HISTFILEIhr aktueller Sitzungsbefehl wird im Speicher auf 100 Zeilen gespeichert.

Beim Start der Shell wird der Verlauf aus der durch die HISTFILEVariable benannten Datei initialisiert (Standard: ~/.bash_history). Die durch den Wert von benannte Datei HISTFILEwird bei Bedarf gekürzt, sodass sie nicht mehr Zeilen enthält als die durch den Wert der HISTFILESIZEVariablen angegebene Anzahl.

Sie können in Ihrer Datei HISTFILESIZE=100 und hinzufügen . Ersetzen Sie die 100 durch die gewünschte Zahl.HISTSIZE=100~/.bashrc

Erläuterung

HISTFILESIZE=10UndHISTSIZE=10

  1. Sie starten Ihre Sitzung.
    1. Ihre HISTFILE (Datei, in der Ihr Bash-Befehlsverlauf gespeichert ist) wird auf die Zeilen HISTFILESIZE=10 gekürzt.
  2. Sie schreiben 50 Zeilen.
  3. Am Ende Ihrer 50 Befehle befinden sich nur die Befehle 41 bis 50 in Ihrer Verlaufsliste, deren Größe durch HISTSIZE=10 bestimmt wird.
  4. Sie beenden Ihre Sitzung.
    1. Vorausgesetzt histappend, es ist nicht aktiviert, werden die Befehle 41 bis 50 in Ihrer HISTFILE gespeichert, die jetzt die 10 Befehle enthält, die sie zu Beginn enthielt, plus die 10 neu geschriebenen Befehle.
    2. Ihre HISTFILE wird auf die Zeilen HISTFILESIZE=10 gekürzt.
  5. Sie haben jetzt 10 Befehle in Ihrem Verlauf – die letzten 10, die Sie gerade in der gerade beendeten Sitzung eingegeben haben.
  6. Wenn Sie eine neue Sitzung starten, beginnen Sie wieder bei 1 mit einer HISTFILE von HISTFILESIZE=10.

HISTFILESIZE=10UndHISTSIZE=5

  1. Sie starten Ihre Sitzung.
    1. Ihre HISTFILE (Datei, in der Ihr Bash-Befehlsverlauf gespeichert ist) wird auf maximal HISTFILESIZE=10 Zeilen gekürzt.
  2. Sie schreiben 50 Zeilen.
  3. Am Ende Ihrer 50 Befehle befinden sich nur die Befehle 46 bis 50 in Ihrer Verlaufsliste, deren Größe durch HISTSIZE=5 bestimmt wird.
  4. Sie beenden Ihre Sitzung.
    1. Vorausgesetzt histappend, es ist nicht aktiviert, werden die Befehle 46 bis 50 in Ihrer HISTFILE gespeichert, die jetzt die 10 Befehle enthält, die es zu Beginn enthielt, plus die 5 neu geschriebenen Befehle.
    2. Ihre HISTFILE wird auf die Zeilen HISTFILESIZE=10 gekürzt.
  5. Sie haben jetzt 10 Befehle in Ihrem Verlauf – 5 aus einer vorherigen Sitzung und die letzten 5, die Sie gerade in der gerade beendeten Sitzung eingegeben haben.
  6. Wenn Sie eine neue Sitzung starten, beginnen Sie wieder bei 1 mit einer HISTFILE von HISTFILESIZE=10.

HISTFILESIZE=5UndHISTSIZE=10

  1. Sie starten Ihre Sitzung.
    1. Ihre HISTFILE (Datei, in der Ihr Bash-Befehlsverlauf gespeichert ist) wird so gekürzt, dass sie höchstens HISTFILESIZE=5 Zeilen enthält.
  2. Sie schreiben 50 Zeilen.
  3. Am Ende Ihrer 50 Befehle befinden sich nur die Befehle 41 bis 50 in Ihrer Verlaufsliste, deren Größe durch HISTSIZE=10 bestimmt wird.
  4. Sie beenden Ihre Sitzung.
    1. Vorausgesetzt histappend, es ist nicht aktiviert, werden die Befehle 41 bis 50 in Ihrer HISTFILE gespeichert, die jetzt die 5 Befehle enthält, die sie zu Beginn enthielt, plus die 10 neu geschriebenen Befehle.
    2. Ihre HISTFILE wird auf die Zeilen HISTFILESIZE=5 gekürzt.
  5. Sie haben jetzt 5 Befehle in Ihrem Verlauf – die letzten 5, die Sie gerade in der gerade beendeten Sitzung eingegeben haben.
  6. Wenn Sie eine neue Sitzung starten, beginnen Sie erneut bei Schritt 1 mit einer HISTFILE von HISTFILESIZE=5.

Diese großartige Erklärung von:stackoverflow.com

verwandte Informationen