Synchnronisierte History

Hallo,

ich starte mit User1 eine Konsole und setze ein Kommando ab.

Nun starte ich mit User1 eine weitere Konsole und setze ein weiteres Kommando ab.

Wie kann ich es erreichen, das alle Kommandos eines Users konsolenübergreifend in die history geschrieben werden?

Momentan ist es so, dass, wenn ich das System mit den beiden offenen Sessions herunterfahre, nur ein Kommando in der history stehen wird und nicht zwei.

Wer weiß, wie es geht?

Gruß

Datei—neues Unterfenster??

Nein, neues Fenster. Vielleicht gibt es einen Parameter irgendwo, mit dem man das steuern kann.

Ich meinte:
Konsole starten und ein neues Unterfenster über das Datei Menü öffnen, sodass du in dieser Konsole 2 Fenster offen hast.

Ich kenne nicht die Lösung, aber möchte darauf hinweisen das die History eine Function der Shell ist, nicht der Konsole.

Also zwei Tabs in einer Konsole wird meiner Meinung nach nichts bringen.

man bash

hat viel über HISTORY zu sagen.

Wenn ich richtig verstehe has jedes bash Process sein HISTORY im Speicher. Also gibt es keine verbindung zwischen verschiedene gleichzeitig lafende bash (auch nicht vom selben Benützer).

Wenn ein bash Prozess endet wird die HISTORY in ~/.bash_history gespeichert. Da ist natiürlich nur da was den letzt endeten bash gespeichert hat.

Stimmt also ziemlich miet deine Erfahrungen.

Wenn ein bash Prozess endet wird die HISTORY in ~/.bash_history gespeichert. Da ist natiürlich nur da was den letzt endeten bash gespeichert hat.

Ok. Das erklärt einiges aber nicht, warum Kommandos manchmal nicht in der History zu finden sind.
Der Grund dürfte sein, dass der History-Speicher auf meinem System nicht groß genug gesetzt ist um alle bzw. möglichst viele Kommandos von mehreren Konsolenprozessen zu speichern.
Abhilfe: https://unix.stackexchange.com/questions/20861/is-there-a-way-to-set-the-size-of-the-history-list-in-bash-to-more-than-5000-lin

Ich wünsche euch noch einen schönen Abend. :slight_smile:

Jede Bash Shell ist ein eigener Prozess, der keine Verbindung zu den parallelen Shellprozessen hat.

Beim Starten eines Shellprozesses wird der Inhalt der .bash_history in den Speicher geladen. Kommandos, die jetzt in dem Shellprozess ausgeführt werden, werden im Speicher an die History angehängt. Beim Schliessen des Shellprozesses wird der Speicherinhalt der History wieder nach .bash_history zurückgeschrieben. Waren mehrere Prozesse gleichzeitig aktiv, überschreibt dabei der zuletzt geschlossene Prozess die .bash_history

Das war der entscheidende Input. Ich denke, jetzt habe ich es kapiert. :slight_smile: