Linux系統裡如何徹底的清空螢幕?

vaikan發表於2014-02-19

  Linux使用者,特別是Ubuntu或CentOS使用者,基本上都習慣使用clear命令或Ctrl+L組合快捷鍵來清空終端螢幕。但是,這樣做其實並不是真正的清空螢幕,它只是給人一種錯覺,讓人以為螢幕清空了。但當用滑鼠向上滾時,你仍然能看到之前的命令操作留下來的輸出。當在處理大量的文字時,這種情況就會給我們帶來麻煩。

  網上能查到很多其它清空螢幕的方法,但基本上都是clear命令的變種。那麼,如何能真正的清空螢幕呢?

  很巧,我最近發現了一個命令,它能徹底的解決我們的問題。

  printf “\033c”正是我們需要的命令。它是真正的清空了終端螢幕,它的功能跟DOS裡CMD.EXE提供的CLS效果很相似。

  但這個命令究竟是做什麼的?它的工作原理是什麼?

\033  ==  \x1B == 27 == ESC

  於是,這個命令變成了<ESC>c,它是VT-XXX中表示“Full Reset (RIS)”的轉義碼。現今我們使用的所有的終端都是VT相容的,但如果你發現自己使用的是一個非常奇怪的終端,那這個命令你可能用不了。printf是bash裡內建的命令,內建命令的優先順序比其它可執行檔案要高。

  我們還可以使用另外一個命令,reset,它也是清空終端螢幕,但我們仍然可以使用上下鍵檢視歷史命令。這個命令的一個缺點是,它執行起來有點慢,也許是因為它沒有傳送ESC c指令,但這個命令的相容性顯然比之前的那個要好。

  reset命令在你的終端控制錯亂時非常有用。你是否遇到過輸入字元不出現在游標的位置的情況?當你敲擊Enter鍵時,新提示符並沒有出現在新行上,而是出現在老提示符的前面?reset命令就是來修正這個問題的。你在CYGWIN上也能使用這個命令。

  英文原文:how-to-clear-terminal-screen-for-real

相關文章