有没有办法只用一个或两个键就可以清除 shell 控制台(在 ubuntu linux 中)上显示的内容?当我收到大量的行grep
并且超出了窗口的高度时,我想快速滚动回我在提示后输入命令的位置。如果我在输入命令之前打开了一个新的终端,然后转到初始位置,我就可以这样做。但如果继续使用相同的终端窗口,我必须手动找到该位置。Ctrl+l不是答案,因为它只是滚动,并且终端的内容仍然存在。我无法使用,less
因为 grep 的彩色输出没有以颜色显示。
答案1
这
reset
命令,它是恩诅咒,并且位于ncurses-binDebian 上的软件包将完全清除控制台。那是你要的吗?
reset
手册页的简要摘要:
重置设置cooked和echo模式,关闭cbreak和raw模式,打开换行符转换,并在以与tset相同的方式进行终端初始化之前将任何未设置的特殊字符重置为其默认值。
正如中所讨论的https://superuser.com/questions/122911/bash-reset-and-clear-commands,正如埃里克在Shell 控制台清理,clear
只会清除屏幕,reset
将(正如bignose所说)“当控制序列弄乱时重置你的终端”。就我个人而言,我很擅长弄乱我的终端,当我清除它时,我不想找回以前存在的任何东西,所以我只使用reset
.但是嗯。
答案2
我通常只使用:
clear
从clear
手册页:
clear clears your screen if this is possible. It looks in the environ-
ment for the terminal type and then in the terminfo database to figure
out how to clear the screen.
clear ignores any command-line parameters that may be present.
答案3
这不是你问题的答案,而是你能少用并保持颜色,请参阅: https://serverfault.com/questions/26509/colors-in-bash-after-piping-through-less
暗示:
$ grep --color=always foo bar.txt | $ grep --color=always foo bar.txt |少-r
答案4
你可以尝试这个命令:
tput reset