
Ich habe dieses Problem auf einigen Unix-Servern. Wenn ich eine andere Sitzung für denselben Benutzer öffne, wird der Befehlsverlauf von allen Sitzungen gemeinsam genutzt. Dies führt zu Problemen, wenn ich versehentlich Ctrl-P
oder drücke up arrow
und dann nur die Eingabetaste. Einmal habe ich es rm -rf *
zum Glück ausgeführt, weil ich mich in einem Verzeichnis befand, in dem ich keine Berechtigungen zum Entfernen von Dateien hatte.
Wie kann ich für verschiedene Sitzungen desselben Benutzers einen separaten Befehlsverlauf erstellen? Meistens verwende ich KSH- und TCSH-Shells.
Antwort1
Sie können HISTFILE=~/.hist$$
Ihrer hinzufügen .profile
. Dadurch sollte pro Sitzung eine eindeutige Datei generiert werden.
Sie werden am Ende eine große Anzahl davon haben, .hist*
daher schlage ich vor, dass Sie sie gelegentlich entfernen.
Antwort2
Von demKSH-FAQ:
F1. Wie bekomme ich separate Verlaufsdateien für die Shell?
A1. ksh verwendet eine gemeinsame Verlaufsdatei für alle Shells, die denselben Verlaufsdateinamen verwenden. Dies bedeutet, dass in einem Fenster eingegebene Befehle von Shells in anderen Fenstern gesehen werden. Um separate Fenster zu erhalten, muss die Variable HISTFILE auf einen anderen Namen gesetzt werden, bevor der erste Verlaufsbefehl erstellt wird.
Antwort3
Ich gehe davon aus, dass Sie von gleichzeitigen Sitzungen sprechen. Das Trennen von Sitzungen, die aufeinander folgen, ist nicht sehr sinnvoll: Sie könnten den Verlauf nie mehr verwenden, da alle Sitzungen eindeutig wären. Wenn dies der Fall wäre, wäre es wahrscheinlich besser, den Befehlsverlauf einfach zu deaktivieren.
Wenn wir über das Trennen gleichzeitiger Sitzungen sprechen, würde ich Ihnen die Verwendung von Bash empfehlen. Ich bin ziemlich sicher, dass ich den Befehlsverlauf von zwei gleichzeitigen Sitzungen nicht damit vermischt bekomme. Bash schreibt den Verlauf nur beim .bash_history
Abmelden, sodass der Befehlsverlauf erst nach dem Abmelden gemischt wird. Vorausgesetzt, die Verwendung von Bash ist akzeptabel, würde das Ihr Problem lösen?
Antwort4
Du könntest benutzenBildschirmIch habe auch eineVariable, die von meinem Konsolenprofil definiert wurde und jeder Sitzung eine andere Verlaufsdatei gab, die einzigen Möglichkeiten, die mir einfallen.