Bash

GNU 螢幕失去(部分)命令歷史

  • February 22, 2016

我使用GNU screen5 個不同的會話,每個會話都儲存自己的命令歷史記錄。但是我經常在歷史記錄中找不到命令,儘管我確信我在幾週前的目前會話中完全使用了它。

歷史大小似乎有硬性限制?如何將其設置為無窮大?

一個相關問題:如何控制會話歷史的儲存位置?通常,我們的系統管理員會重新啟動電腦,而我會失去所有會話,我必須這樣做,screen -wipe因為會話已損壞。然後,所有的歷史都消失了。:( 我想在這種情況下找到儲存的歷史並將它們綁定到新創建的會話中。

PS:我bash在所有螢幕會話中使用。

更新:我不是在問如何統一會話歷史。只是,我希望每個會話都有無限的歷史記錄,並且我希望能夠將該歷史記錄“載入”到新會話中,以防舊會話被損壞或刪除。

更新 2:您可能已經知道:當我說我使用GNU screen5 個不同的會話時,我的意思是GNU screen其中包含 5 個不同視窗的會話。對不起。

你最好使用 Bash 的歷史而不是螢幕的。螢幕保留一個回滾緩衝區(可能在記憶體中而不是在文件中)。當您使用Ctrl-呼叫命令時,a {它實際上是在探勘仍然在緩衝區中的螢幕上出現的所有內容,看起來就像是在提示字元之後。沒有真正的命令歷史記錄。screen -h num順便說一下,您可以使用ordefscrollback numscrollback numscreen 命令增加回滾緩衝區的大小。

您可以使用warren的建議來更新您的 Bash 歷史記錄。和/或您可以使用我在此處找到的日誌記錄功能之一,該功能可以保存您的 IP 地址或螢幕會話 ID 以及日期、時間、目前工作目錄和實際命令。我自己一直用這個。您可能必須設置$hcmntextra我的函式使用的變數,以便包含$STY螢幕會話名稱,也可以記錄。

引用自:https://serverfault.com/questions/91495