"CLS"等同于BASH?

Meh*_*dad 56 bash terminal clear

如何清除BASH中的整个终端,就像命令提示符的cls命令一样?

clear 不起作用,因为它实际上没有清除任何东西,它只是向下滚动.

Dou*_*iot 34

据我所知,没有办法比clearbash 更好地做到这一点.

我认为这是一个可以构建到您正在使用的终端中的功能.我知道Mac Terminal应用程序有一个'Clear Scrollback'菜单选项(命令+ k)可以满足您的要求.

  • `shell` -> 正在运行的软件。`terminal` -> 计算机的一部分,通常由玻璃制成,可以扔掉。`虚拟终端` -> 一个充当终端的软件。(xterm)。 (2认同)

Sri*_*aju 30

为什么不尝试Ctrl+ l(控制,小写"L").这适用于大多数shell(错误终端)......

在OSX终端 -

Command ⌘+ l(command,l)导致从显示中删除最后输入的命令.

Command ⌘+ k(命令,k)导致删除/清除所有显示缓冲区.

reset (在终端中键入此内容)会导致终端重置,以防显示变为乱码.

不确定其他unix口味的等价物.


zad*_*zad 15

回滚缓冲区不是bash的功能,而是终端程序的功能.你没有说你正在使用什么终端程序.

https://superuser.com/questions/122911/bash-reset-and-clear-commands


Ran*_*832 14

xterm将允许转义序列ESC [3J清除回滚,所以你可以这样做:

alias cls="clear; printf '\033[3J'"
Run Code Online (Sandbox Code Playgroud)

  • 到目前为止最好的答案很好 (2认同)

Ami*_*Ami 9

使用+ K.它会删除条目,因此我无法向上滚动.

所以+ K清除一切,包括滚动. Ctrl+ L清除终端窗口但滚动时仍能看到所有内容.


Shi*_*hah 9

简答

clear && clear
Run Code Online (Sandbox Code Playgroud)

或者

tput reset
Run Code Online (Sandbox Code Playgroud)

其他方法

以下是在 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
Run Code Online (Sandbox Code Playgroud)

长答案

clear命令只清除可见屏幕而不是缓冲区,因此您可以Shift+PageUp在终端中向上滚动并仍然查看以前的输出。如果你想得到相同的结果,cls那么像clear && clear.

另一个相关命令是reset(我相信)重置终端程序的内部状态。不幸的是,此命令包含 1 秒的延迟以支持真正的旧终端。因此,如果您对这种延迟不满意,请使用tput reset它似乎与重置减去延迟做同样的事情。

但是有什么作用tput呢?在 Unix 中,您可以向终端发送各种 ASCII 字符序列,这些字符序列被终端解释为命令。这允许您做一些时髦的事情,例如闪烁或为文本着色或关闭回显(在输入密码期间)或设置终端选项或清除或重置。这可以通过tput clear或发送tput reset。该clearreset命令是等价的,但他们从随你的发行版,并且可以做更多的东西二进制运行。在setterm -reset类似tput reset。设置终端 usingsetterm通常更好,因为tput它在一般情况下具有更多可读选项,但是我们在这里使用 tput 因为它的长度更小:)。

您可能还看到人们使用类似echo -e "\033c"printf "\033c"等同于的东西,tput reset但转义序列现在是硬编码的。在tput查找终端的性能和用途正确的转义序列。

另一个相关的命令stty sane实际上不执行任何屏幕清除,但它将许多终端选项设置为默认值,因此如果您的终端看起来乱码或终端在您键入时保持空白(例如,因为您使用转义将二进制文件打印到终端序列关闭回声)那么这个命令可能会有所帮助。对于极端乱码的终端情况,您可以使用序列中所有可用的重置技术。在这种情况下,我有这样的别名:

alias cls='tput reset'
alias clshard='reset; stty sane; tput rs1; setterm -reset; tput reset'
Run Code Online (Sandbox Code Playgroud)

有关的

Windows/DOS 中的“cls”命令的等价物是什么?

我可以使用哪些命令来重置和清除我的终端?