reset
在 Linux 下,我可以通过命令行简单清除终端输出。但在 Cygwin 下,它似乎reset
不起作用:
我也试过,reset 0
但reset 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
答案2
这将清理屏幕和滚动缓冲区,包括 mintty 和控制台上的:
echo -e "\033c"
答案3
尝试一下clear
——它应该能实现你想要的效果。
编辑:它是软件包的一部分ncurses
,默认情况下未安装。
答案4
Cygwinreset
在 2015 年 12 月左右增加了命令库。当时Cygwin 终端不响应“reset”或“cls”已归档。或者,它开始按预期工作。
如果您没有重置,请重新运行包安装程序并更新所有内容。