Ubuntu

如何在終端視窗中查看以前的輸出?

  • January 27, 2020

我在我的 Linux 工作站上執行了一個冗長的科學模擬(執行了將近一周),命令如下所示:

time ./simulation

因此,除了從模擬中獲取輸出文件之外,我的目標還在於獲得執行該模擬所需的確切時間。然而,不幸的是,我ls -la在複製時間輸出之前執行了該命令,但我的終端視窗只顯示有限數量的行。所以我現在在終端設置裡把行數改成無限制了,但是還是不能向上滾動查看時間資訊。有沒有辦法在不必重新執行模擬的情況下查看該資訊?

您無法再訪問 mate-terminal 中的這些行。

增加回滾行數也無濟於事:終端不會記住所有行,只顯示配置的數量;它只記住配置的數量。


話雖如此,如果給定的終端選項卡仍處於打開狀態,則仍有可能數據實際上並未被覆蓋,並且可以通過深入調查來恢復;類似於如果它們實際上沒有被覆蓋,仍然可以從磁碟恢復已刪除的文件。每滾出一行,成功的機會就會降低,即如果數據滾出 5 行,它很可能是可恢復的,如果它滾出數百萬行,則很可能它被覆蓋了。

(如果您關閉了給定的終端選項卡,則無法恢復數據:它以加密文件的形式儲存在磁碟上,並且當終端關閉時,加密密鑰在記憶體中歸零。)

這樣的調查需要了解 VTE 的回滾處理,探勘終端程序的記憶體和打開文件,並仔細檢查這些數據。這可能需要幾天的繁重工作,而且無法保證。訪問整個原始驅動器稍微進一步增加了機會,儘管顯著增加了所需的時間,並且使遠端操作變得有問題。

如果是關於一些非常關鍵的數據(例如,包含您畢生積蓄的比特幣錢包的密碼),您可以開始研究 VTE 的內部結構並進行調查,或者聘請某人(例如我)為您做這件事。鑑於它“只是”執行一個星期,對你來說不太可能值得,重新執行它更便宜。

(注意:我編寫了大部分處理 VTE(即配對終端)回滾緩衝區的程式碼。)

引用自:https://unix.stackexchange.com/questions/564352