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

我以前在windows中使用cmd,而我使用的命令行很多,是cls 。 它有点像Linux中使用的clear命令,但它会永久清除屏幕。

如果使用clear命令,它只是向下滚动,这样就不会看到你在哪里工作的命令。

我喜欢这两个,但我的问题是,我如何获得像命令一样的cls ,清除屏幕,无法浏览,看到你在哪里工作的命令?

你可以使用reset 。 这会重置整个终端,但这可能有点矫枉过正。

关于Konsole的注意事项:
@Mechanical蜗牛注意到“在Konsole 4.8.5中,如果向上滚动,旧文本仍然存在”。 @gertvdijk解释说它是“一个function.Console有Ctrl + Shift + K (重置和清除回滚)。”

将此行添加到~/.bashrc (即名为.bashrc的文件,位于您的主文件夹中 – 您可以通过按Ctrl + H在Nautilus中看到它):

 alias cls='printf "\033c"' 

现在cls命令将像在Windows中一样清除屏幕。 它会让你回到终端窗口的顶部,上面没有显示文字。 (它不会删除shell的命令历史记录。)

这是因为:

  • 每次bash shell启动时都会运行.bashrc
  • alias命令定义cls命令以运行右侧引用的命令。
  • printf命令将字符写入终端。 它接受转义码。 八进制033是用于表示终端控制代码开始的字符。 控制代码 c告诉终端清除自己。
  • 所以,通过对.bashrc这种修改。 运行cls将必要的数据发送到终端,告诉它清除自己。

在当前的终端窗口中,只需键入以下内容:

 printf "\033c" 

如果目的是避免只是偶然重新发现命令历史, reset可能是一个可行的选择。

但是,请记住,默认情况下,shell会将您的命令历史记录记录到文件中 – 这也是非常容易被发现的。 如果您想阻止其他人浏览您的命令历史记录,您也应该清除它。

history -c #清除你的历史

cls通过清除缓冲区来工作,缓冲区分别在DOS和Windows的情况下固定25或50行。 你可以通过在溢出的缓冲区中写入这么多行来实现这样的事情(2000是一个典型值),但是随着@lgarzo说, reset也是一个可行的选择。