如何在Cygwin中获得“清除”命令?


198

我安装了Cygwin,选择了相当少量的软件包。

在终端中,我尝试执行“清除”以清除终端,但是我得到了

bash: clear: command not found

我该如何工作?


100
您也可以键入control-L。
基思·汤普森

1
是的,但是(对我而言)在set -o vi模式下不起作用;它确实set -o emacs模式下工作。谢谢。
MarnixKlooster恢复状态莫妮卡2012年

1
set -o vi模式下,您可以先键入Escape,然后再按Control-L(然后i返回到插入模式)。(个人而言,我喜欢vi作为编辑器,但不喜欢使用交互式shell模式。)
Keith Thompson

4
按ctrl + L键即可清除
-KOTIOS,

2
请注意,该ncurses软件包(如接受的答案中所述)还包括其他有用的与终端相关的命令,例如tput,因此根据您的需要可能值得安装。
唐纳德·伯

Answers:



125

应该这样做:

alias clear='printf "\033c"'

2
好答案。在较旧版本的Cygwin中,cmd /c cls曾经按照stackoverflow.com/q/15598245/1207769所述工作。但是该解决方案停止了工作,但在printf撰写本文时仍然有效。
2014年

1
非常好-截至2014年9月仍可使用。为更加清楚起见,您可以将此文件添加到您的./bashrc文件中(只需复制并越过该行),即可在/ home / [用户名]下找到该文件,并将其永久化。
山姆·雷德韦

这对于Gow bash也很有用,但是msysgit在bin目录中有其自己的清晰程序
icc97

1
这是清除回滚和当前屏幕的最佳答案。Ncurses不会为我清除回滚。
blockloop

很好的答案...您甚至可以在不允许安装软件包的生产服务器上使用它(我知道...在生产Windows服务器上的Cygwin ..不是我的选择xd)。您只需将其添加到~/.bashrc文件中source就可以完成了……很好的指出了这一点
Luke Savefrogs

35

只需使用此快捷方式:Alt+F8Ctrl-L跳过页面


4
这不是用户要求的,有时清除屏幕对于快速确保所获得的输出来自您认为的来源非常有用。
DrCord 2013年

1
但是,对于这个问题根本没有答案,如果您将每条稍微相关的有用信息放在每个堆栈溢出后,那将是可怕的。
DrCord

3
谷歌搜索“ cygwin清晰屏幕”让我到了这里,这个答案对我来说是正确的。您可以对答案,范围,限制和诸如此类的要求严格,但就我而言,这为我解决了问题,并获得了真正“有帮助”的投票。
2014年

战斗由此展开:纯粹主义者和反纯粹主义者从哲学鸿沟的相反两侧轰击。如果一名战斗人员被杀死,他将被扔进深渊,跌倒时双方都遮住了耳朵,以免听到悖论的尖叫声。
稳定狗2014年

14

使用cygcheck命令来检查它是什么包(添加.exe到您的CMD字符串,在这个例子:clear.exe

> cygcheck -p 'clear.exe'
Found 4 matches for clear.exe
ncurses-debuginfo-5.9-20150307-1 - ncurses-debuginfo: Debug info for ncurses (installed binaries and support files)
ncurses-debuginfo-5.9-20150404-1 - ncurses-debuginfo: Debug info for ncurses (installed binaries and support files)
ncurses-5.9-20150307-1 - ncurses: Terminal display utilities (installed binaries and support files)
ncurses-5.9-20150404-1 - ncurses: Terminal display utilities (installed binaries and support files)

并且您知道必须ncurses使用cygwin安装程序来安装软件包。


13

拥有clear.exe用于bash脚本文件的程序真是太好了,所以:

Windows Cygwin clear.exe程序命令的详细信息。

  1. setupx86.exehttp://cygwin.com/上下载Cygwin 或任何它所谓的名称。

  2. 运行它并从Internet下载。*如果您具有代理连接,则可能需要使用Internet Explorer设置或设置自定义代理。

  3. 选择所有默认设置,然后完成安装。

  4. 再次运行安装程序,然后再次从Internet下载,但这一次您将进入Utils,从文件树中自定义安装。

  5. 展开Utils并找到ncurses“”文件。在那里,您将单击skipncurses utils左侧的项目(有一些)。

  6. 从更改skipncurses要安装的任何版本后,继续安装并完成。

  7. 再次运行安装程序,这一次您将扩展Libaka库。

  8. 找到terminfo库安装程序,然后再次更改skip为最新版本,然后继续并完成安装。

注意 您可能最终不得不注销Windows并重新登录,或者只是重新启动才能使新程序生效。这是由于Cygwin后台会话的可能性。

注意您还必须执行三个单独的安装。


@克里斯:我只是为了清楚起见问这个问题。为什么这里需要terminfo数据库库?清晰的命令对我来说很好。我阅读了有关terminfo(作为提供的链接)的信息,但想知道它在这里有什么具体的作用吗?
Starney 2015年

11

右键单击>重置...(Alt + F8)对我有用...(在Cygwin-x86-2.830上)


1
+1 Ctrl+ L和ncurses clear命令保持回滚,而将其清除。
赞蒂尔2014年


7

打开Windows资源管理器,然后导航到:

[Cygwin安装目录] \ home \ [用户] \

e.g.: C:\cygwin\home\wreckseal

然后.bashrc使用记事本++ 打开文件。

将光标移动到最后一行的末尾并Enter按键,然后在下面添加文本。

别名cls ='echo -e“ \ 033c”'

或以下文字:

别名cls ='printf“ \ 033c”'

重新启动cygwin,输入cls。做完了!

请注意,发送cls命令后没有滚动条。我更喜欢printf版本而不是echo版本。自己尝试!


6

解决此类问题的一般方法:
Cygwin软件包搜索页面搜索完整的可执行文件名称。

现在,可以通过几种方式来搜索软件包:

  • 通过可执行的基本名称进行基本搜索。
    软件包搜索clear
    https : //cygwin.com/cgi-bin2/package-grep.cgi?grep=clear-
    >找到194个匹配项以清除

  • 通过包含.exe后缀可以更好地匹配。
    软件包搜索clear.exe
    https : //cygwin.com/cgi-bin2/package-grep.cgi?grep=clear.exe-
    >找到6个匹配的clear.exe匹配

  • 通过包含/前缀甚至可以更好地匹配。
    软件包搜索/clear.exe
    https : //cygwin.com/cgi-bin2/package-grep.cgi?grep =
    / clear.exe- >找到4个匹配项/clear.exe

所有这4个匹配项现在都来自ncurses软件包。(即2个调试版本和2个稳定版本。

(专业提示:右键单击搜索字段并创建一个自定义的搜索引擎。我已将其设置cp为Firefox和Chrome中“ cygwin软件包” 的快捷方式。)


2

我刚刚遇到了这个项目,到目前为止,我认为它很棒

https://github.com/transcode-open/apt-cyg

安装后,您可以运行

apt-cyg install ncurses

我个人更喜欢使用此工具而不是Cygwin工具b / c安装库,所有Cygwin版本都附加了.exe,并且在复制和粘贴Linux命令(例如,关闭SO)时会很麻烦。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.