Linux下如何撤销clear命令?

Linux下如何撤销clear命令?

clear清除终端的屏幕。

是否有任何命令可以恢复clear运行之前的原始屏幕内容,从而有效地撤消该操作clear

答案1

没有clear与清除终端屏幕的命令直接相反的命令。

然而,命令行终端仿真器的某些实现提供了回滚缓冲区。该缓冲区可以保留先前的输出行。例如,使用minttyCygwin 中的这些命令生成文本,然后清除屏幕,我发现我能够滚动回之前的结果。然而,这纯粹是作为终端仿真器的一部分实现的,不太可能以编程方式访问:

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

20行输出

clear

屏幕已清除

向后滚动后

向后滚动缓冲区

答案2

如果使用tmux终端仿真器/多路复用器,您可以将撤消定义clear为:

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

unclear作为:

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

whereclear将屏幕内容捕获到c缓冲区中,并在清除之前s保存光标位置,并在将光标移动到起始位置(左上角)后转储该缓冲区的内容,然后恢复光标位置。cunclearrc

答案3

如果你的意思是撤消,那么就没有什么了。除此之外,您可以查看命令历史记录并重新运行命令。如果该命令是幂等的,那么您将得到相同的结果。

脚注: ★ 除非您使用某种日志系统,否则什么都没有。此日志记录可以是终端程序的一部分,也可以是单独的。它不是 Linux 内核的一部分。

相关内容