简答
clear && clear
或
tput reset
其他方式
以下是在 Unix 中清除终端屏幕的所有方法:
clear # only clear visible screen
clear && clear # clear buffer as well
tput clear # same as clear but by sending escape seq
reset # clear + reset internal terminal state + 1sec delay
tput reset # same as reset but without 1sec delay
stty sane # don't clear screen but reset some terminal options
echo -e "\033c" # same as tput reset but hardcoded escape seq
printf "\033c" # same as tput reset but hardcoded escape seq
setterm -reset # same as tput reset, setterm has friendlier commands
长答案
clear 命令只清除可见屏幕,但不清除缓冲区,因此您可以使用Shift+PageUp 在终端中向上滚动并仍然查看以前的输出。如果您想获得与cls 相同的结果,请像clear && clear 一样清除两次。
另一个相关的命令是reset(我相信)它会重置终端程序的内部状态。不幸的是,这个命令包含 1 秒的延迟来支持非常旧的终端。因此,如果您对这种延迟不满意,请使用tput reset,这似乎与重置减去延迟相同。
但是tput 做了什么?在 Unix 中,您可以向终端发送各种 ASCII 字符序列,这些字符序列被终端解释为命令。这使您可以做一些时髦的事情,例如闪烁或为文本着色或关闭回显(在输入密码期间)或设置终端选项或清除或重置。您可以通过tput clear 或tput reset 发送。 clear 和 reset 命令是等效的,但它们从发行版附带的二进制文件中运行,并且可能会执行其他操作。 setterm -reset 类似于 tput reset。使用setterm 设置终端通常更好,因为与tput 不同,它在一般情况下具有更多可读选项,但是我们在这里使用 tput 因为它的长度更小:)。
您可能还看到人们使用 echo -e "\033c" 或 printf "\033c" 之类的东西,它们等同于 tput reset,但转义序列现在是硬编码的。 tput 查找终端属性并使用正确的转义序列。
另一个相关的命令是stty sane,它实际上不执行任何屏幕清除,但它sets many of the terminal options 是默认的,所以如果您的终端看起来乱码或者当您键入时终端保持空白(例如,因为您将二进制文件打印到带有转义序列的终端以关闭回显),那么此命令可能会有所帮助。对于极端乱码的终端情况,您可以按顺序使用所有可用的重置技术。在这种情况下,我有这样的别名:
alias cls='tput reset'
alias clshard='reset; stty sane; tput rs1; setterm -reset; tput reset'
相关
What's the equivalent of the “cls” command from Windows/DOS?
What commands can I use to reset and clear my terminal?