Befehlsverlauf über mehrere PuTTy-Sitzungen in SunOS 5.10

Befehlsverlauf über mehrere PuTTy-Sitzungen in SunOS 5.10

Ich habe mehrere PuTTy-Sitzungen zu meinem SunOS 5.10-Server geöffnet und verwende ksh. MANCHMAL wird der Befehlsverlauf zwischen den verschiedenen Sitzungen geteilt und MANCHMAL nicht. Ich kann nicht herausfinden, was bestimmt, ob er geteilt wird oder nicht. Mit geteilt meine ich, dass ein in einer Sitzung ausgeführter Befehl als vorheriger Befehl angesehen wird, der in einer anderen Sitzung ausgeführt wurde.

Ich möchte es lieber nicht weitergeben. Gibt es dafür eine Konfigurationseinstellung?

Antwort1

Die meisten Unix-Shells lesen den alten Verlauf einmal aus einer Datei – wenn die Shell gestartet wird – und wenn Sie die Shell schließen, wird der Verlauf erneut in die Datei geschrieben.

Normalerweise werden die alten Inhalte einfach überschrieben. Wenn Sie also etwas tun wie ...

  1. Anmeldung bei den Sitzungen A und B
    • A und B lesen den gleichen Inhalt von~/.history
  2. testBefehl in A ausführen
    • A ergänzt testdie In-Memory-Historie
    • B kennt den Befehl nicht
  3. Abmelden von A
    • A überschreibt ~/.historymit seiner Historie, dietest
  4. Bei Sitzung C anmelden
    • C liest den Inhalt von ~/.history, mittest
  5. Abmelden von B
    • B überschreibt ~/.historymit seiner Historie, die nichttest
  6. Abmelden von C
    • C überschreibt ~/.historymit seiner Historie, dietest

dann testwird es nach Schritt 3 in der Verlaufsdatei gespeichert, aber Schritt 5 verwirft es und Schritt 6 fügt es erneut hinzu …

Einige Shells verfügen über eine Option zum „Anhängen des Verlaufs“, die dies vermeidet (z. B. shopt -s histappendin Bash).

Wenn Sie völlig getrennte Verlaufsdateien haben möchten, können Sie Ihre Verlaufsdatei ganz einfach durch einen symbolischen Link mit verknüpfen /dev/null.

verwandte Informationen