有沒有辦法將所有終端機的所有 bash 命令保存到單一檔案中?

有沒有辦法將所有終端機的所有 bash 命令保存到單一檔案中?

有沒有辦法將所有終端機的所有 bash 命令保存到單一檔案中?預設情況下,不同的終端有不同的歷史記錄,這會讓人感到困惑。我想將所有歷史記錄保存到一個文件中,並可以選擇尋找這些命令?也許shift+uparrow可以在中央文件的歷史記錄中找到?

答案1

首先,您必須告訴shell 將時間和使用者名稱新增至每個使用者的歷史記錄中,並使用在shell 提示字元下輸入類似以下命令(根據需要設定值)來擴展每個歷史檔案的大小(預設為500行) , 和

echo 'HISTTIMEFORMAT="%F %T $USER"' >> ~/.bashrc && HISTSIZE=10000

然後重新啟動,以便啟動變更。為什麼?那麼,沒有日期和時間並且不能識別誰輸入了命令的歷史記錄可能不是很有用。

然後,定期將每個使用者的 ~/.bash_history 內容複製到聯合歷史文件中,並對其進行排序,因此合併的歷史記錄將按照日期、時間和使用者的順序進行排序。

完成此操作後,透過管理級腳本循環刪除每個使用者目錄中的來源文件

cd /home/userx && rm ~/.bash_history && history -c

改變X以便為每個使用者執行該行。

相關內容