Linux

我們如何撤消 Linux 中的 clear 命令?

  • February 5, 2022

clear清除終端螢幕。

是否有任何命令可以從clear執行之前恢復原始螢幕內容,有效地撤消它clear

clear與清除終端螢幕的命令沒有直接相反的意義。

但是,命令行終端仿真器的一些實現提供了回滾緩衝區。該緩衝區可以保留先前的輸出行。例如,使用minttyCygwin 中的這些命令生成文本然後清除螢幕,我發現我能夠滾動回之前的結果。但是,這純粹是作為終端仿真器的一部分實現的,不太可能以程式方式訪問:

yes | head -n20 | nl     # Generate 20 lines of unique output
yes n | head -n20 | nl   # And some more

20行輸出

clear

清屏

回滾後

回滾緩衝區

如果使用tmux終端仿真器/多路復用器,您可以將 undoable 定義clear為:

clear() {
 tmux capture-pane -eb c &&
   tput sc &&
   command clear "$@"
}

並且unclear作為:

unclear() {
 tput home && tmux show-buffer -b c && tput rc
}

Whereclear將螢幕內容擷取到c緩衝區中,並sc清除之前保存游標位置,並unclear在將游標移動到起始位置(左上角)後轉儲該緩衝區的內容,然後r儲存c游標位置。

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