如何備份 Linux 終端歷史記錄

Linux 終端具有“歷史”功能。使用此功能,您輸入的每個命令操作都將被備份以備後用。由於您的所有終端命令都保存在“歷史記錄”中,因此必須對其進行備份以妥善保管。

在本指南中,我們將向您展示如何備份 Linux 終端歷史記錄以及如何恢復備份。所以,打開你最喜歡的 Linux 終端模擬器,然後繼續吧!

Linux 終端歷史存儲在哪裡?

Linux 終端將其歷史記錄存儲在一個文件中。該文件名為“.bash_history”。任何人都可以編輯它,它存儲在主目錄中。由於 Linux 的終端歷史文件存儲在用戶目錄中,因此系統上的每個用戶都有一個文件。

特殊權限不會保護這些歷史文件,系統上的任何用戶都可以通過一個簡單的命令查看另一個用戶的歷史。因此,例如,如果我想查看 Linux 系統上用戶名“user”的終端/命令行歷史記錄,我會這樣做:

如何備份 Linux 終端歷史記錄

cat /home/user/.bash_history

用戶還可以通過簡單地執行“history”命令,在 Linux 終端 shell 中查看他們登錄的當前用戶的歷史記錄。

歷史

最重要的是,由於“歷史”只是一個文件,因此可以使用 grep 函數像搜索常規文本文件一樣搜索它。因此,例如,使用以下命令在用戶名中查找“git clone”的實例。

cat /home/user/.bash_history | grep 'git 克隆'

它還可以作為當前登錄的用戶使用“history”命令。

歷史 | grep '搜索詞'

將終端歷史記錄保存到備份

在本指南的前一節中,我談到了 Linux 終端的“歷史”如何只是一個包含所有用戶輸入命令的整齊隱藏的文本文件。好吧,由於它只是一個文件,這意味著備份以進行保管非常容易。

要創建備份,請使用 cat 命令。為什麼?使用 cat,您可以直接在終端中查看整個文本文件。我們可以將此命令與“>”符號結合使用,將查看輸出重定向到備份文件。

因此,例如,要備份您當前的歷史記錄,請針對“~/.bash_history”運行cat命令並將其保存到帶有“history_backup”標籤的文件中。

如何備份 Linux 終端歷史記錄

cat ~/.bash_history > history_backup

您還可以結合“>”運行歷史命令並以這種方式保存。

歷史 > history_backup

最後,可以通過運行以下命令來備份另一個未登錄用戶的命令行/終端歷史記錄。

注意:請務必將“用戶名”更改為您要從中保存歷史記錄的用戶。

cat /home/username/.bash_history > history_backup

只備份某些歷史項目

您可能只想備份 Linux 終端歷史記錄中的特定命令。這樣做的方法是查看歷史文件並將其與grep命令結合起來,它會過濾特定的關鍵字。

例如,要僅備份 Linux 終端歷史記錄中包含git clone或git命令的命令,您可以運行以下操作。

注意:在這些示例中,我們使用“>>”而不是“>”。“>>”的原因是它不會覆蓋歷史文件備份的內容,並且可以重新運行多次添加到備份中。

cat ~/.bash_history | grep 'git' >> history_backup

或者

cat /home/username/.bash_history | grep 'git' >> history_backup

使用grep過濾也可以應用於history命令,就像這樣。

歷史 | grep 'git' >> history_backup

要備份歷史文件中的某些關鍵字,請將上面示例中的“git”替換為您想要備份的任何命令。根據需要隨意重新運行此命令。

如何恢復歷史備份

恢復歷史備份就像刪除原始文件並將備份放在原來的位置一樣簡單。要刪除原始歷史文件,請在終端窗口中使用rm命令刪除“.bash_history”。

rm ~/.bash_history

從要恢復歷史記錄的用戶的主文件夾中刪除原始歷史記錄文件後,使用mv命令將“history_backup”重命名為“.bash_history”。

mv history_backup ~/.bash_history

現在新的歷史文件已經就位,運行history -rw命令來重新加載終端的歷史功能。

歷史記錄 -rw

然後,您將能夠通過以下方式查看您的終端歷史記錄:

歷史

為其他用戶恢復備份

需要從系統上的其他用戶恢復歷史備份?為此,首先使用su命令登錄其用戶。

用戶名

登錄用戶後,刪除駐留在用戶主目錄 (~) 中的當前歷史文件。

rm ~/.bash_history

從那裡,將歷史備份文件重命名為用戶目錄中的新“.bash_history”文件。

mv /path/to/backup/file/history-backup ~/.bash_history

將更改寫入:

歷史記錄 -rw

完成後,運行history以在終端窗口中查看恢復的命令。

留下評論

修正 SUSE Linux Enterprise Server 上的 Cockpit Web 控制台無法連線的問題

修正 SUSE Linux Enterprise Server 上的 Cockpit Web 控制台無法連線的問題

透過檢查 HTTPS URL、systemd 套接字、已安裝的軟體包、firewalld 區域、憑證和日誌,對 SUSE Linux Enterprise Server 上的 Cockpit 進行故障排除。

如何在不停機的情況下將 SLES 15 SP5 移轉到 SP6

如何在不停機的情況下將 SLES 15 SP5 移轉到 SP6

了解如何透過經過測試的 SLE HA 滾動升級、逐節點檢查以及明確的單一伺服器停機時間注意事項,在 SLES 15 SP5 到 SP6 遷移期間保持服務的可用性。

如何在 Ubuntu Server 24.04 上設定 Pi-hole DNS-over-HTTPS

如何在 Ubuntu Server 24.04 上設定 Pi-hole DNS-over-HTTPS

在 Ubuntu Server 24.04 上設定 Pi-hole,使其使用 dnscrypt-proxy 進行 DNS-over-HTTPS 連接,然後驗證本地上游伺服器,避免常見的 DNS 衝突。

如何修復 YaST GUI 無法透過 SSH X11 轉送啟動的問題

如何修復 YaST GUI 無法透過 SSH X11 轉送啟動的問題

排查 YaST GUI 透過 SSH X11 轉送導致的故障。測試 DISPLAY,修復已記錄的 Qt XIO 錯誤,檢查 SSH 設置,並在必要時切換到 ncurses。

如何設定本地 SUSE RMT 伺服器(SMT 替代方案)

如何設定本地 SUSE RMT 伺服器(SMT 替代方案)

在 SLES 15 上設定 SUSE RMT,同步 SCC 元數據,鏡像選定的儲存庫,透過 HTTPS 註冊客戶端,並了解從 SMT 遷移的限制。

修正 Pardus Linux 23 上無法偵測到音效卡驅動程式的問題

修正 Pardus Linux 23 上無法偵測到音效卡驅動程式的問題

追蹤 Pardus Linux 23 上缺少的音效卡問題。安全地檢查 ALSA 檢測、核心模組、音訊服務、輸出設定檔、韌體和更新。

修正 Pardus KVM 虛擬機器中顯示解析度卡在 1024x768 的問題

修正 Pardus KVM 虛擬機器中顯示解析度卡在 1024x768 的問題

修正 Pardus KVM 虛擬機器卡在 1024x768 解析度的問題,檢查虛擬 GPU、SPICE 代理、X11 或 Wayland 會話,並正確驗證更高的顯示模式。

如何在 Debian 系統中開機時自動掛載遠端 SSHFS 目錄

如何在 Debian 系統中開機時自動掛載遠端 SSHFS 目錄

使用基於金鑰的 SSH、/etc/fstab、systemd 網路選項、自動掛載和驗證步驟,在 Debian 啟動時自動掛載遠端 SSHFS 目錄。

修正 SLES 系統升級期間出現的「無法分配記憶體」錯誤

修正 SLES 系統升級期間出現的「無法分配記憶體」錯誤

排查 SLES 升級過程中出現的「無法分配記憶體」問題。檢查 RAM、交換空間、OOM 日誌和進程限制,然後在不中斷軟體包事務的情況下進行復原。

修復 Harmonica OS 平板電腦的觸控螢幕校準問題:選擇合適的 Linux 修復方案

修復 Harmonica OS 平板電腦的觸控螢幕校準問題:選擇合適的 Linux 修復方案

追蹤 Harmonica OS (HamoniKR) 平板電腦的觸控偏移、旋轉和顯示對映問題。比較 X.Org 和 libinput 的修復方案,安全地進行測試,並了解何時校準無效。