我想從 bash 腳本發出命令來清除它運行的終端:
- 我不想要清除 bash 歷史記錄 (history -c)
- 我不想要發出清除命令(這會將終端向下移動到最後一個提示符,給人的印像是終端已被清除,但如果向上滾動,則先前的輸出仍然可見)
- 我想完全刪除終端之前的所有輸出並使其乾淨,就像我打開一個新終端一樣
謝謝。
答案1
嘗試printf '\033c'
。這會向終端發送一個轉義序列,通常會清除所有內容,包括回滾緩衝區。
答案2
clear
確實清除終端螢幕。我猜您是從圖形介面存取終端,因此您實際上使用的是控制台介面,而不是實際的控制台。此介面會自動「儲存」您的輸出歷史記錄(向上捲動時看到的內容)。在真正的控制台(沒有圖形介面)中,您不能只是向上滾動。在這種情況下,終端機只是一個保存控制台輸出日誌的程式。
如果您打開新的終端窗口並關閉當前窗口,您將從一個新窗口開始。 (您也可以透過前往終端機 -> 重新初始化並清除來手動重新初始化」)
在桌面環境中運行的終端:
沒有桌面環境的控制台:
答案3
除了reset
答案還描述了另一種清除終端的方法。
答案4
一種選擇可能是查看終端是否可以在禁用回滾的情況下啟動。例如,xterm -sl 0
將啟動一個帶有 0 個 saveLine 的 xterm。查看man檔:
-sl number
This option specifies the number of lines to save that have
been scrolled off the top of the screen. This corresponds to
the saveLines resource. The default is 64.