如何在Mac OS X的终端中清除以前的输出?

风流意气都作罢 提交于 2020-02-27 09:31:23

我知道使用clear命令可以“清除”当前屏幕,但是它只是通过打印许多换行符来实现的-清除后的内容会向上滚动。

有没有一种方法可以完全清除终端上的所有先前输出,以便即使向上滚动也无法到达?


#1楼

把它放在你的.bash_profile或.bashrc中

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

#2楼

或者,您可以按以下命令发送分页符 (ASCII格式的提要):

CTRL+L

从技术上来说,这只是开始一个新页面,但这与所有其他方法具有相同的净效果,但速度要快得多(当然,Apple + K解决方案除外)。

并且由于这是ASCII控制命令,因此它适用于所有shell。


#3楼

在Mac OS X终端上,此功能已作为“ View->Clear Scrollback (默认为CMD + K )内置在终端应用程序中。

因此,您可以根据需要使用Apple的Keyboard快捷键重新分配它。 只需使用“ Clear Scrollback”命令为Terminal添加新的快捷方式。 (我使用CMD + L ,因为它类似于CTRL + L来清除当前屏幕内容,而不清除缓冲区。)

不知道如何在脚本中使用它(也许就像其他人指出的那样是AppleScript)。


#4楼

要手动清除终端:

⌘ + K

Command + K用于更新键盘

从shell脚本中清除终端;

/usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down'

#5楼

在终端中键入以下内容将清除您的历史记录(意味着使用向上箭头将无助您)-但不会清除屏幕:

history -c
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!