Gibt es eine Möglichkeit, alle Bash-Befehle von allen Terminals in einer einzigen Datei zu speichern? Standardmäßig haben verschiedene Terminals unterschiedliche Verläufe, was verwirrend ist. Ich möchte den gesamten Verlauf in einer einzigen Datei speichern und stattdessen optional diese Befehle nachschlagen? Vielleicht könnte shift+ uparrowden Verlauf in der zentralen Datei nachschlagen?
Antwort1
Zuerst müssen Sie die Shell anweisen, die Zeit und den Benutzernamen zum Verlauf jedes Benutzers hinzuzufügen und die Größe jeder Verlaufsdatei von der Standardgröße von 500 Zeilen mit einem Befehl wie diesem zu erweitern (legen Sie den Wert nach Wunsch fest), der an einer Shell-Eingabeaufforderung eingegeben wird, mit
echo 'HISTTIMEFORMAT="%F %T $USER"' >> ~/.bashrc && HISTSIZE=10000
und starten Sie danach neu, damit die Änderung aktiviert wird. Warum? Nun, ein Verlauf ohne Datum und Uhrzeit, der nicht identifiziert, wer einen Befehl eingegeben hat, ist möglicherweise nicht sehr nützlich.
Kopieren Sie dann regelmäßig den Inhalt von ~/.bash_history für jeden Benutzer in eine gemeinsame Verlaufsdatei und sortieren Sie diese, sodass der konsolidierte Verlauf nach Datum, Uhrzeit und Benutzer sortiert wird.
Nachdem Sie dies getan haben, löschen Sie die Quelldateien in jedem Benutzerverzeichnis mit einem Skript auf Administratorebene, das
cd /home/userx && rm ~/.bash_history && history -c
ÄndernXum diese Zeile für jeden Benutzer auszuführen.