Linux用户,特别是Ubuntu或CentOS用户,基本上都习惯使用clear
命令或Ctrl+L
组合快捷键来清空终端屏幕。可是,这样作其实并非真正的清空屏幕,它只是给人一种错觉,让人觉得屏幕清空了。但当用鼠标向上滚时,你仍然能看到以前的命令操做留下来的输出。当在处理大量的文本时,这种状况就会给咱们带来麻烦。bash
网上能查到不少其它清空屏幕的方法,但基本上都是clear
命令的变种。那么,如何能真正的清空屏幕呢?code
很巧,我最近发现了一个命令,它能完全的解决咱们的问题。兼容性
printf "033c"
正是咱们须要的命令。它是真正的清空了终端屏幕,它的功能跟DOS里CMD.EXE
提供的CLS
效果很类似。原理
但这个命令到底是作什么的?它的工做原理是什么?终端
033 == x1B == 27 == ESC
因而,这个命令变成了<ESC>c,它是VT-XXX中表示“Full Reset (RIS)”的转义码。现今咱们使用的全部的终端都是VT兼容的,但若是你发现本身使用的是一个很是奇怪的终端,那这个命令你可能用不了。printf
是bash里内置的命令,内置命令的优先级比其它可执行文件要高。方法
咱们还可使用另一个命令,reset
,它也是清空终端屏幕,但咱们仍然可使用上下键查看历史命令。这个命令的一个缺点是,它执行起来有点慢,也许是由于它没有发送ESC c
指令,但这个命令的兼容性显然比以前的那个要好。兼容
reset
命令在你的终端控制错乱时很是有用。你是否遇到过输入字符不出如今光标的位置的状况?当你敲击回车键时,新提示符并无出如今新行上,而是出如今老提示符的前面?reset
命令就是来修正这个问题的。你在CYGWIN上也能使用这个命令。文件