「clear(1)」-

清除终端屏幕

命令语法格式

clear

命令描述

如果可能,命令 clear 清除屏幕,包括其回滚缓冲区(如果定义了扩展的“E3”功能)。清除环境变量中的终端类型,然后在 terminfo 数据库中确定如何清除屏幕。

命令 clear 忽略可能存在的任何命令行参数。

历史

命令 clear 出现在 1979 年 2 月 24 日的 BSD 2.79 中。后来在 Unix 第 8 版(1985)中提供。

AT&T 调整了一个不同的 BSD 程序(tset)来创建一个新命令(tput),并使用它来用一个调用 tput clear 的 shell 脚本替换 clear 命令,例如:

/usr/bin/tput ${1:+-T$1} clear 2> /dev/null
exit

1989 年,当 Keith Bostic 修改了 BSD 的 tput 命令以使其类似于 AT&T 的 tput 时,他为 clear 命令添加了一个 Shell 脚本:

exec tput clear

每种情况下,脚本的其余部分是版权声明。

而 ncurses 的 clear 命令始于 1995 年,它通过调整原始的 BSD 的 clear 命令(当然还有 terminfo)。

随后 E3 扩展来了:

在 1999 年 6 月,xterm 提供了清除屏幕的标准控制序列的扩展。而不是仅使用清除屏幕的可见部分:

printf '\033[2J'

可以使用下述命令清除回滚缓冲:

printf '\033[3J'

这在“XTerm 控制序列”中记录为源自 xterm 的特征。

其他一些终端开发者采用了该功能,例如 2006 年的 PuTTY。

2011 年 4 月,Red Hat 开发人员向 Linux 内核提交了一个补丁,修改了它的控制台驱动程序以执行相同的操作。作为 3.0 版本的一部分,Linux 更改没有提及 xterm,尽管红帽错误报告(#683733)中引用了这一变化导致了这一变化。

再次,一些其他终端开发人员采用了该功能。但下一个相关步骤是在 2013 年对 clear 程序进行了修改,以纳入此扩展。

2013 年,E3 扩展在 tput 中被忽略了“clear”参数。2016 年通过重新组织 tput,来与 clear 和 tset 分享其逻辑以解决这个问题。

可移植性

IEEE Std 1003.1/Open Group Base Specifications Issue 7(POSIX.1-2008)和 X/Open Curses Issue 7 都没有记录 tset 或 reset 文件。

后者记录了 tput,可用于通过 Shell 脚本或别名(如符号链接)替换此实用程序,以将 tput 作为清除运行。

相关手册

tput(1), terminfo(5)

This describes ncurses version 6.0 (patch 20161126).

参考文献

  • man 1 clear, Version 6.0+20161126-1

更新日志

  • 09/01/2018 创建文章