AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 25077
Accepted
Stann
Stann
Asked: 2011-02-07 13:51:30 +0800 CST2011-02-07 13:51:30 +0800 CST 2011-02-07 13:51:30 +0800 CST

如何真正清除终端?

  • 772

我可以发出clear命令或按Ctrl+L来清除当前的 Ubuntu 终端,但这只是将先前的输出向上移动,如果您使用鼠标滚动或PgUP键PgDown,则很难区分上一个命令的输出在哪里结束,而当前命令的输出从哪里开始。

有没有办法真正清除终端,所以我不会看到以前的命令结果?

command-line
  • 12 12 个回答
  • 808983 Views

12 个回答

  • Voted
  1. Best Answer
    Stefano Palazzo
    2011-02-07T13:55:03+08:002011-02-07T13:55:03+08:00

    是的,您要查找的命令是

    reset
    

    相反clear,或Ctrl+ L,reset实际上将完全重新初始化终端,而不是仅仅清除屏幕。但是,它不会重新实例化 shell (bash)。这意味着 bash 的状态与以前相同,就像您只是在清除屏幕一样。

    正如@Ponkadoodle 在评论中提到的那样,这个命令应该更快地做同样的事情:

    tput reset
    

    从其他答案:

    • 您可以为终端设置键盘快捷键,如towolf所述。reset

    • 如果您正在运行Kubuntu,并且您的终端是 Konsole,您需要转到Edit → Clear history,因为reset那里的工作方式不同,正如 UncleZeiv 所指出的那样。

    • 561
  2. Goran
    2014-05-29T21:51:22+08:002014-05-29T21:51:22+08:00

    我一直在寻找这个,我发现了一些发布这个的天才:

    clear && printf '\e[3J'
    

    清除整个屏幕缓冲区,非常干净。在 OS X 上工作,相信它在大多数 *nix 终端上都能正常工作。

    出于好奇,这部分'\e[3J'是一个终端转义命令。

    • 164
  3. towolf
    2011-02-09T14:46:03+08:002011-02-09T14:46:03+08:00

    您还可以通过转到Edit → Keyboard Shortcuts在 gnome-terminal 中分配快捷方式。我用Shift+ Ctrl+ Alt+ C。

    重置和清除快捷方式

    • 52
  4. Autodidact
    2015-10-14T00:08:32+08:002015-10-14T00:08:32+08:00

    从stackoverflow交叉发布我的答案。

    使用以下命令进行清屏,而不是仅仅添加新行...

    printf "\033c"
    

    是的,这是 bash 提示符上的“printf”。

    您可能会想要定义一个别名......

    alias cls='printf "\033c"'
    

    解释

    \033 == \x1B == 27 == ESC
    

    所以这变成<ESC>c了用于重置终端的 VT100 转义码。这是有关终端转义码的更多信息。

    编辑

    这里有一些其他的方法......

    printf "\ec" #\e is ESC in bash
    echo -en "\ec" #thanks @Jonathon Reinhart.
    # -e    Enable interpretation of of backslash escapes
    # -n    Do not output a new line
    

    KDE

    以上不适用于 KDE 控制台(称为 Konsole),但有希望!使用以下命令序列清除屏幕和回滚缓冲区...

    clear && echo -en "\e[3J"
    

    或者也许在 KDE 上使用以下别名...

    alias cls='clear && echo -en "\e[3J"'
    

    我从这里得到了回滚清除命令。

    • 23
  5. dv3500ea
    2011-02-07T13:55:00+08:002011-02-07T13:55:00+08:00

    运行这个命令:

    reset
    

    这与启动新终端的效果相同。

    • 19
  6. dylnmc
    2015-05-02T01:32:13+08:002015-05-02T01:32:13+08:00

    我最喜欢的是printf "\ec"。这也可以是printf "\033c"或printf "\x1bc"。这是一个 ansi 转义序列,它奇迹般地清除了终端输出的屏幕和缓冲区(对于我工作过的大多数标准终端来说,我知道它可以在类似 Ubuntu 的 gnome-terminal、terminator、xterm 等中工作) Linux)

    我知道这在 Linux Mint 和 Ubuntu 14.04 中有效,所以我不知道为什么人们要附加和预先准备clear && echo -ne "\033c. printf "\ec"一直为我工作。

    此外,在我的.bashrc我有这样的绑定:

    bind -x '"\C-t": printf "\ec"';
    

    现在我一直按ctrlt。

    • 10
  7. Shital Shah
    2019-11-04T02:39:21+08:002019-11-04T02:39:21+08:00

    以下是在 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
    
    • 9
  8. UncleZeiv
    2011-02-08T08:27:08+08:002011-02-08T08:27:08+08:00

    好吧,这真的取决于,Konsole例如,如果您正在使用它甚至reset不会阻止您滚动超过第一行。在这种情况下,您必须使用您正在使用的特定终端的某些功能。对于Konsole,是Edit > Clear History。

    • 5
  9. Charles Bell
    2015-04-30T14:26:36+08:002015-04-30T14:26:36+08:00

    我发现 Kubuntu 在以下方面非常成功:

    alias clc="echo -en '\033c\033[3J'"
    

    您可以使用cls以保持 Windows 传统,使用 Matlab 版本clc,或您自己的版本。祝你好运!

    • 5
  10. Wojciech Sidor
    2015-10-07T08:21:11+08:002015-10-07T08:21:11+08:00

    如果您使用的是 yakuake 或 Konsole,请 尝试Ctrl++ 。ShiftK

    来源:https ://bugs.kde.org/show_bug.cgi?id=309008

    • 5

相关问题

  • 如何从命令行仅安装安全更新?关于如何管理更新的一些提示

  • 如何从命令行刻录双层 dvd iso

  • 如何从命令行判断机器是否需要重新启动?

  • 文件权限如何工作?文件权限用户和组

  • 如何在 Vim 中启用全彩支持?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    我需要什么命令来解压缩/提取 .tar.gz 文件?

    • 8 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Martin Hope
    EmmyS 我需要什么命令来解压缩/提取 .tar.gz 文件? 2011-02-09 14:50:41 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve