我知道“清除”当前屏幕的清除命令,但它只是通过打印大量换行来做到这一点-清除的内容只是向上滚动。

是否有一种方法可以完全擦除终端之前的所有输出,以至于我即使向上滚动也无法到达它?


当前回答

clear && printf '\e[3J'

清除所有东西,它在OS X上也能很好地工作。非常整洁。

其他回答

Command + K将清除之前的输出。

要清除输入的文本,首先用Command + A跳转到左边,然后用Control + K清除指针右边的文本。

可视化例子:

在终端中输入以下内容将删除你的历史记录(这意味着使用向上箭头将一无所获),但它不会清除屏幕:

history -c

在Mac OS X终端上,这个功能已经内置到终端应用程序的菜单视图→清除屏幕(默认是CMD + K)。

你可以用苹果的键盘快捷键重新分配它。只需添加一个新的终端快捷方式与命令“清除屏幕”。(我使用CMD + L,因为它类似于Ctrl + L来清除当前屏幕内容,而不清除缓冲区。)

我不确定你会如何在脚本中使用这个(可能是AppleScript,因为其他人已经指出)。

把它放在你的.bash_profile或.bashrc文件中:

function cls {
    osascript -e 'tell application "System Events" to keystroke "k" using command down'
}

做正确的事;把事情做好!

清除上一个标记:命令+ L

清除到以前的书签:选项+命令+ L

可以开始:Command + K