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

Verstümmelte Geschichte?

Wenn ein Benutzer im GUI-Modus mehr als ein Terminal geöffnet hat, wie schreiben die Terminals die Verlaufsdatei dieses Benutzers neu? Der Grund, warum ich frage, ist, dass es durchaus möglich ist, dass der Benutzer in jedem der Terminals unterschiedliche Befehle ausführt. Speichert die Verlaufsdatei also die Befehle von allen Terminals oder nur von dem ersten, das geöffnet wird? Oder gibt es eine andere Art von Schema, das eingesetzt wird, um diese Situation anzugehen?

Akzeptierte Antwort:

Es hängt ganz davon ab, wie die Shell damit umgeht

bash standardmäßig wird die Verlaufsdatei mit dem lokalen Verlauf jeder Shell beim Beenden überschrieben, sodass die zuletzt beendete Shell gewinnt. Das histappend Option bewirkt, dass sie stattdessen an den Hauptverlauf angehängt wird (shopt -s histappend ).

zsh tut dasselbe standardmäßig und hat ein paar Optionen, um damit umzugehen:

  • appendhistory — Der Verlauf jeder Shell wird an die Master-Verlaufsdatei angehängt, wenn die Shell beendet wird
  • incappendhistory — Die Hauptverlaufsdatei wird jedes Mal aktualisiert, wenn eine Zeile in einer beliebigen Shell ausgeführt wird, anstatt zu warten, bis diese Shell beendet wird
  • sharehistory — Wie incappendhistory , sondern zieht auch Änderungen aus der Master-Verlaufsdatei in alle laufenden Shells, sodass Sie einen Befehl in einer Shell ausführen und dann Nach oben drücken können in einer anderen Shell und sieh es dir an

Linux
  1. Wie führe ich einen Befehl in der Shell aus, ohne ihn im Verlauf zu speichern? [Linux-Tipps]

  2. Verlaufsersetzung schlägt fehl, wenn sie im Shell-Skript implementiert wird?

  3. Bash_history auf einer bestimmten Shell vorübergehend aussetzen?

  4. Befehlszeilenverlauf in Linux

  5. CentOS / RHEL :So deaktivieren Sie den BASH-Shell-Verlauf

Navigieren Sie schnell durch den Verzeichnisverlauf in Fish Shell

Aktivieren Sie den Zeitstempel für den Verlaufsbefehl in Fish Shell

Kommando-Shell

Verwendung der Verlaufsfunktion in Bash Shell auf Ubuntu 16.04 LTS-Server

Was ist eine .sh-Datei?

Der BASH-Verlauf wird bei jeder Anmeldung auf 500 Zeilen gekürzt