2017-02-08 75 views
0

我一直在我的Mac(DEV/PROD)兩個終端窗口,既表明了命令和結果歷史(向上滾動)過去6個月的工作,這是非常有助於運行定期命令並檢查過去的錯誤。蘋果終端的歷史 - 過去的命令導致

昨天我關掉我的Mac和手動關閉這兩個終端窗口,但今日開盤終端時,它沒有歷史可言。有一種方法可以恢復窗口的歷史命令及其結果的所有歷史記錄?

我知道有一個.bash_history的文件,但它只能顯示輸入的命令,但沒有結果。
在此先感謝。

+0

正如您所提到的,只有命令歷史存儲在bash_history中。他們的迴應沒有儲存在任何地方你使用時間機器嗎?如果是的話,也許會試着回顧幾天,看看你能否看到這段歷史。 – manishg

回答

1

bash的歷史僅存儲執行的命令,而不是它們的輸出,以及其中只有一個有限數量的(通常是500,由環境變量HISTFILESIZE定義)。這對你的情況沒有幫助。

從我所看到的,似乎終端店面保存目錄裏面/Users/<user>/Library/Saved Application State/com.apple.Terminal.savedState/窗口的狀態(包括控制檯歷史記錄)。無論何時在終端窗口中發生新事件時,都會實時修改此目錄中的文件,除非我錯了,否則應該包含在Time Machine備份中。因此,如果您可以從某個以前的備份恢復此目錄中的文件,那麼您應該恢復您的歷史記錄。您甚至可以在該目錄中嘗試一些「文件反刪除」工具,儘管這些工具在OS X上相當罕見。

此過程應該是您首先退出終端,然後還原整個目錄(例如使用時間機器),然後簡單地啓動終端。這些保存的狀態文件使用自定義的二進制格式,不能通過終端程序本身讀取。

順便說一句,這可能是值得一提的是,你可以在任何時候,一個終端窗口的內容保存到一個文本文件,從殼牌菜單。您可能會考慮定期執行此操作,因爲您的終端歷史記錄似乎具有一些重要價值...

+0

謝謝。你知道如何在終端窗口或任何其他應用程序中加載'window.data'文件嗎? 我已經在您提到的本地目錄('data.data','window_1.data','window_4.data')中找到3個文件。我注意到,無論何時打開新的終端窗口,都會創建一個新的「window_X.data」文件,並在關閉該終端時將其刪除。由於我現在只有1個終端窗口,並且有3個數據文件,所以其他人可能有我以前的歷史記錄。 – Ruben

+0

這些數據文件似乎使用自定義二進制格式。我已經做了一些逆向工程的嘗試,但沒有成功。我不認識一個普通的壓縮方案。沒有我知道的解析器。 – jwatkins

+0

我知道有效加載其中一個文件的唯一方法是在那裏,並啓動終端... – jwatkins