如何重置Cygwin下的终端?

如何重置Cygwin下的终端?

reset在 Linux 下,我可以通过命令行简单清除终端输出。但在 Cygwin 下,它似乎reset不起作用:

在此处输入图片描述

我也试过,reset 0reset 1没有成功。我甚至尝试了 Windows 的原生命cls令,也没有成功。

Cygwin 似乎缺乏任何有用的文档:

$ man -k reset
reset: nothing appropriate.

$ man -k terminal
terminal: nothing appropriate.

$ man reset 1
No manual entry for reset
No manual entry for 1
(Alternatively, what manual page do you want from section 1?)

使用 Cygwin 时如何从命令行重置终端?上面的命令缺少什么?


针对此问题,已向 Cygwin 提交了一份错误报告:Bug 19195:Cygwin 终端不响应“reset”或“cls”

答案1

在 Cygwin 下,重置似乎不起作用

  • 您正在运行非 Cygwin 版本的reset

  • 您可以通过运行where reset命令提示符来确认这一点。

笔记:

  • c:\windows\system32\reset.exe远程桌面服务重置实用程序

    在此处输入图片描述

  • 您在问题中显示的输出看起来就像是来自此版本的 reset(而不是 Cygwin 版本)。


Cygwin PATH 设置

如果你已经安装了该ncurses包(见下文),那么你需要确保你的 CygwinPATH具有 Cygwin 元素Windows 元素(安装 Cygwin 时这应该会自动发生)。

示例 cygwin 路径:

DavidPostill@Hal /f/test
$ echo $PATH
.:/home/DavidPostill/bin:/usr/local/bin:/usr/bin:/c/ProgramData/Oracle/Java/javapath:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0:/c/apps/Calibre

Cygwin 重置

Cygwinreset是该软件包的一部分ncurses并链接到tset

参数tset是可选的。

您可以使用以下方法确定您的系统是否存在:

which reset

在我的系统上:

DavidPostill@Hal ~
$ which reset
/usr/bin/reset

DavidPostill@Hal ~
$ ll /usr/bin/reset
lrwxrwxrwx 1 DavidPostill None 8 Jul  1 08:14 /usr/bin/reset -> tset.exe

Cygwinclear也是 的一部分ncurses。我已将cls其别名化如下:

alias cls='clear'

笔记:

  • 你可以随时使用以下命令找出哪些包包含特定的 cygwin 命令搜索套餐

  • clear并且reset行为略有不同:

    • clear清除显示的可见部分mintty。回滚缓冲区保持原样。

    • reset发送终端初始化字符串。在这种情况下,mintty将清除显示屏的可见部分并删除回滚缓冲区。


我如何检查 ncurses 是否已安装?

要查看某个包是否已安装,请使用cygcheck -l ncurses

  • -l package- 列出包裹内容(若未列出则列出所有包裹)
DavidPostill@Hal /f/test
$ cygcheck -l ncurses
/usr/bin/captoinfo
/usr/bin/clear.exe
/usr/bin/infocmp.exe
/usr/bin/infotocap
/usr/bin/reset
/usr/bin/tabs.exe
/usr/bin/tic.exe
/usr/bin/toe.exe
/usr/bin/tput.exe
/usr/bin/tset.exe
/usr/share/doc/ncurses/ANNOUNCE
/usr/share/doc/ncurses/AUTHORS
/usr/share/doc/ncurses/COPYING
/usr/share/doc/ncurses/NEWS
/usr/share/doc/ncurses/README
/usr/share/man/man1/captoinfo.1m.gz
/usr/share/man/man1/clear.1.gz
/usr/share/man/man1/infocmp.1m.gz
/usr/share/man/man1/infotocap.1m.gz
/usr/share/man/man1/reset.1.gz
/usr/share/man/man1/tabs.1.gz
/usr/share/man/man1/tic.1m.gz
/usr/share/man/man1/toe.1m.gz
/usr/share/man/man1/tput.1.gz
/usr/share/man/man1/tset.1.gz

ncurses 包中包含什么?

2015-05-18 21:00           0 usr/bin/
2015-05-18 20:58           0 usr/bin/captoinfo -> tic.exe
2015-05-18 21:00        9747 usr/bin/clear.exe
2015-05-18 21:00       52755 usr/bin/infocmp.exe
2015-05-18 20:58           0 usr/bin/infotocap -> tic.exe
2015-05-18 20:58           0 usr/bin/reset -> tset.exe
2015-05-18 21:00       14355 usr/bin/tabs.exe
2015-05-18 21:00       67091 usr/bin/tic.exe
2015-05-18 21:00       15379 usr/bin/toe.exe
2015-05-18 21:00       15379 usr/bin/tput.exe
2015-05-18 21:00       19475 usr/bin/tset.exe
2015-05-18 20:58           0 usr/share/doc/
2015-05-18 20:58           0 usr/share/doc/ncurses/
2015-05-18 20:58       13750 usr/share/doc/ncurses/ANNOUNCE
2015-05-18 20:58        2529 usr/share/doc/ncurses/AUTHORS
2015-05-18 20:58        1408 usr/share/doc/ncurses/COPYING
2015-05-18 20:58      549943 usr/share/doc/ncurses/NEWS
2015-05-18 20:58       10212 usr/share/doc/ncurses/README
2015-05-18 20:59           0 usr/share/man/man1/
2015-05-18 20:57        2919 usr/share/man/man1/captoinfo.1m.gz
2015-05-18 20:57        1201 usr/share/man/man1/clear.1.gz
2015-05-18 20:57        6976 usr/share/man/man1/infocmp.1m.gz
2015-05-18 20:57        1594 usr/share/man/man1/infotocap.1m.gz
2015-05-18 20:59          39 usr/share/man/man1/reset.1.gz
2015-05-18 20:57        2288 usr/share/man/man1/tabs.1.gz
2015-05-18 20:57        5995 usr/share/man/man1/tic.1m.gz
2015-05-18 20:57        1883 usr/share/man/man1/toe.1m.gz
2015-05-18 20:57        4540 usr/share/man/man1/tput.1.gz
2015-05-18 20:57        4971 usr/share/man/man1/tset.1.gz

来源ncurses:终端显示实用程序(已安装的二进制文件和支持文件)

答案2

这将清理屏幕和滚动缓冲区,包括 mintty 和控制台上的:

echo -e "\033c"

答案3

尝试一下clear——它应该能实现你想要的效果。

编辑:它是软件包的一部分ncurses,默认情况下未安装。

答案4

Cygwinreset在 2015 年 12 月左右增加了命令库。当时Cygwin 终端不响应“reset”或“cls”已归档。或者,它开始按预期工作。

如果您没有重置,请重新运行包安装程序并更新所有内容。

相关内容