我正在寻找可以充当Windows PC集成式Linux终端的应用程序。例如,我可以在文件系统中漫游,安装vi等应用程序。我希望该应用程序满足以下要求,


Gratis
使用Bash
不是仿真器(实际上我可以在C驱动器上看到我的文件并与之交互)
易于安装
与Windows 10兼容


评论

如果您愿意放弃对bash的要求,还可以查看Powershell,它可编写脚本并集成到更多Windows服务-en.wikipedia.org/wiki/Windows_PowerShell

^那么,为什么不使用Python?它也是跨平台的,并且确实是一种功能全面的通用编程语言。

总是有腻子。这将需要在网络上的某个位置(例如,树莓派,专用PC,虚拟机,EC2)安装Linux盒。这样,您将不会遇到Cygwin的许多痛苦。将此添加为注释,因为它是对您的条件的相当宽松的解释。但是,对我而言,我更喜欢实际的Linux,而不是Cygwin。

您是否在询问Windows控制台以外的命令外壳或终端?

带有本地gnu工具的ConsoleZ是一个很好的选择

#1 楼

我已经使用Cygwin一段时间了,它似乎可以胜任。它非常容易安装,我可以从许多不同的软件包中选择安装,例如vim,wget等。适用于Microsoft Windows的类Unix环境和命令行界面。 Cygwin提供基于Windows的应用程序,数据和其他系统资源与应用程序,软件工具以及类Unix环境的数据的本地集成。



评论


我使用Cygwin已有十多年了。这是我的标准命令行终端(mintty),几乎不需要使用cmd.exe。

–吉姆·加里森(Jim Garrison)
2015年9月29日下午4:31

为什么有一张Hamilton C Shell的图片?

–史蒂芬·潘妮(Steven Penny)
15年9月29日在17:29

Babun作为带有软件包管理器和自动更新的自觉Cygwin配置非常好。

–讨价还价
2015年9月30日10:10在

@kasperd我从未注意到性能问题。我不希望它能与Linux的本机性能相匹配,但是从来没有出现过因性能不佳而沮丧的情况。

–吉姆·加里森(Jim Garrison)
2015年10月2日于16:40

@JimGarrison我认为那只能意味着您没有广泛使用慢速功能,因为对于我需要的shell脚本,这种慢速是不可能的。并不是说这是令人沮丧的原因,因为我可以仅使用ssh到Linux服务器并在那里运行脚本。 Cygwin从来没有让我感到沮丧-我会责怪Windows,并承认带有Cygwin的Windows比没有Cygwin的Windows更好。

–卡巴斯德
2015年10月2日,17:55

#2 楼

cmder

它结合了ConEmu,它是Windows控制台模拟器,并通过Clink和msysgit增强了类似bash的功能。一些值得注意的功能包括:通过msysGit的Bash外壳

GNU C编译器和GNU Make的Perl
cURL
内置SSH agent
命令自动完成
别名(与bash相同的语法)
使用CTRLV从键盘粘贴


如果您正在寻找软件包管理器(例如apt-getyum),Chocolatey是Windows的可能替代品。它不包含所有软件包,并且有些软件包有时会过时,但确实有相当不错的普及。
choco install googlechrome


评论


+1表示Chocolatey具有广泛的传播。 :-)

–伊恩·戈德比(Ian Goldby)
2015年10月2日,7:33

+1只是提到Cmder,我喜欢那个软件。它也是便携式的,因此您可以将其放在USB记忆棒上,随时随地使用,这是我为避免可怕的cmd界面所做的工作。

– Yondaime008
2015年10月2日,11:16

有趣的是它使用了Git Bash。我自己使用它,但与Cygwin相比,它真的是更好的方法吗?没有包管理器。 Chocolatey似乎只是在安装Windows应用程序。

–亚历山大·杜宾斯基(Aleksandr Dubinsky)
2015年10月2日在16:00

关于这个问题(要求使用bash shell),我认为它与Cygwin一样好。有时,您不需要带有软件包管理器的完整Linux系统,只需一个bash外壳即可进行一些快速而肮脏的工作。

–休伊
2015年10月2日,16:30

+1。 cmder可能和它一样好。我会提到,尽管重绘有很多问题。 (例如,如果您的菜单在vim中忽隐忽现)。

–林登·怀特(Lyndon White)
16年8月9日,1:11

#3 楼

已列出的Cygwin是一个很好的解决方案。

但是,还有另一种选择:MSYS。

MSYS的重量比Cygwin轻得多,但是它可能不具备您所需的一切。显然,您必须自己进行评估。它确实可以满足您的所有5个要点。它是免费的,具有Bash外壳,您可以与当前驱动器进行交互,易于安装,并且可以在Win10上运行。

评论


我强烈建议您使用MSYS2,而不要使用旧的MSYS。

– rubenvb
2015年10月2日,上午8:41

#4 楼

Babun

我很惊讶没有人提到Babun,“您会喜欢的Windows Shell”。这是一个预先配置的Cygwin,可以“正常工作”,通常开箱即用。我想要更多,但是我对Cygwin感到非常恐惧:我担心(可能是不合理地)肿胀和配置问题的难度。我还想要一个外观漂亮的终端,开箱即用的cygwin并不是很漂亮。恐怕听起来像是个广告,但是Babun确实起作用了。
现在,要满足要求了:

它是免费和开源的。
默认情况下,它使用zsh而不是Bash,但是坦率地说,这对于临时用户几乎相同。可以重新配置它以使用正确的bash。
可以与实际的Windows文件完美地交互,这些驱动器可以在/cygdrive/下访问,但也可以别名化为它们在根目录下的驱动器号。
安装仅在运行install.bat。
Windows 10兼容性不是完美的,但是修复看起来很简单。

确实存在问题:有点废话,这是Cygwin的问题。

有一个与权限相关的错误使我有些悲伤。
它的占用空间不可忽略(我机器上大约800 MB的内存,我需要工作),如果磁盘空间是个问题(是的,伙计们,磁盘空间有时仍然是个问题),这使得非Cygwin解决方案(Git-bash或cmder)更合适。慢。但是您仍然会喜欢它。
在某些情况下,与Windows文件和应用程序的交互有时会有些打h,主要是名称中带有空格的文件。可以很容易地避免这些问题,但是仍然有些痛苦。以Windowsy文件作为参数调用Windows可执行文件需要使用cygpath。
Windows无法将Babun识别为交互式外壳,而是认为它是管道。这会导致本机节点交互程序出现各种问题。这是一个有薄荷味的问题,可以改善


通常,如果您只需要外观漂亮的功能部件,而又不花时间进行调整和配置,Babun就是完美的选择。有烦人的问题,但我喜欢:)

评论


您能否编辑您的答案,并包括Babun如何匹配OP的每个要求?有关答案的指南,请阅读我们关于优质答案的讨论。谢谢!

– Izzy♦
2015年9月29日20:17在

+1,尤其是因为它具有开箱即用的有效zsh实现

– SztupY
2015年9月30日15:52

babun项目现在正式死亡。不再建议这样做。

– Krishnakumar Gopalakrishnan博士
18/12/1在15:10

是的,不幸的是,Babun的产品已经停产了:(。虽然还是可以的!

–SáT
19年5月16日在13:23

#5 楼

Windows 10(具有2016年周年纪念更新)现在提供在Windows本身上运行的Bash Linux二进制文件。可以通过任何命令提示符进行访问,并且可以像其他任何命令一样运行UNIX风格的命令(例如ls)。有关此的更多信息,请阅读Windows Linux子系统页面上的MSDN帖子。



评论


我知道,我真的很兴奋,迫不及待:D

–汤姆
16-3-31在23:05

这看起来真的很令人兴奋。

–艾登·格罗斯曼(Aiden Grossman)
16年4月1日在2:31

这应该是现在的答案,因为它是运行在Windows 10上的实际Linux发行版,并且非常易于安装。

– Herohtar
17-10-12在21:31

仍然缺少一些功能wpdev.uservoice.com/forums/…

–史蒂芬·潘妮(Steven Penny)
18年1月1日在21:39

@StevenPenny感谢您提供的链接和提及的限制。

–弗朗克·德农库尔
18年1月1日在21:52



#6 楼

我使用的是Git Bash和ConEmu的组合,它是在安装Git时提供的。 Git Bash使用MinGW,ConEmu提供了具有多个选项卡和良好配色方案的选项,具有全屏终端的选项等。

评论


对于那些对软件考古感兴趣的人,Windows的Git Bash附带了perl v5.8.8。很难在Windows上找到更多的perl版本。

– tjd
2015年9月29日13:09

@tjd perl --version使用我安装的Git-2.5.2.2报告v5.22.0(最新的稳定版本)。

–讨价还价
2015年9月29日在15:45

@Boggin我放弃检查Windows上Git 1.9.5的更新。很高兴看到他们终于交付了!

– tjd
2015年9月29日在16:06

我不得不说,我更喜欢Git Bash而不是Cygwin,这是因为,如果我真的想要在计算机上拥有完整的类似Linux的环境,那就是我启动Linux的时候。 Cygwin是一件很棒的事情,但是如果您只想要壳,那就太杀了!

–childofsoong
15年9月29日在18:04

#7 楼

MSYS2是Cygwin的一个分支,旨在作为一个更新的环境来支持MinGW的构建。 (也就是说,它是作为更好地维护的替代品,它可以提供比以往更先进的MSYS。有关详细信息,请参见此处。)它可以与Windows计算机上的Linux工具一起用作bash shell。

要求


免费
bash是默认外壳程序

安装在计算机上并可以在本地硬盘驱动器上运行,而不是在仿真系统上

请注意,您必须引用路径(cd 'C:\')或使用替代的绝对规范(cd /c)。我相信Cygwin,MSYS和其他相关变体在这方面是相似的。并密切跟踪它,我相信它与Windows 10兼容,与Cygwin一样。

其他

在我看来,MSYS2的最大优点是相对较干净包管理。在我看来,Cygwin和MSYS的程序包管理器令人困惑且难以使用。它们是图形的,不能很好地与系统本身集成。相比之下,MSYS2移植了Arch Linux的pacman,并且所有程序包管理都在命令行中完成。从Python到Perl到vim到SVN到git到MinGW编译器,都有大量可用且易于安装的软件包。在更新某些“核心”软件包时会遇到一些麻烦:您必须重新启动Shell并再次运行更新,但是在我看来,这比必须启动某些外部图形工具要优越得多。

请参阅Cygwin的介绍和比较,以了解MSYS2自己关于与Cygwin的区别及其目标的声明。

评论


我同意!另外,ConEmu是一个不错的控制台模拟器。我使用zsh或fish作为外壳,但每天在ConEmu中使用MSYS2。

–约瑟夫说恢复莫妮卡
2015年10月1日13:21



@Josef我发现我通常对默认情况下使用的控制台感到满意。它肯定比“命令提示符”窗口好得多。

– jpmc26
2015年10月1日17:16

ConEmu的优势在于它还可以用于本机Windows控制台应用程序和PuTTY / KiTTY,因此我将所有控制台(本地和远程),Windows和MSYS2都集成在一个窗口中。

–约瑟夫说恢复莫妮卡
2015年10月2日在7:08



#8 楼

从2015年和Python 3.4发行版开始,现在可以在以下位置获得相当完整的用户交互shell:http://xon.sh/

演示视频未显示正在使用的管道,但是在默认的shell模式下受支持。

Xonsh('conch')会非常努力地模拟bash,因此您已经获得了肌肉记忆的东西,例如

env | uniq | sort -r | grep PATH




my-web-server 2>&1 | my-log-sorter


仍然可以正常工作。您可能需要cygwin或msys才能访问grep和uniq等GNU coreutils。 Windows以unixlike名称拥有自己的一些内置文件,这些文件可能会炸毁东西,因此请注意PATH变量的顺序。

xonsh教程篇幅相当长,似乎涵盖了很多内容。人们通常会在ash或bash提示符下期望的功能:


编译,求值和执行!
命令历史记录和制表符完成
帮助和超级帮助? &??
别名和自定义提示
执行命令和/或* .xsh脚本,也可以将其导入
环境变量,包括使用$ {}查找的输入/输出重定向和合并
后台作业和作业控制
嵌套子流程,管道和协同流程
命令存在时,子流程模式,否则为Python模式使用$ [],使用@()进行Python评估
带*的文件名匹配或带反引号的正则表达式文件名的匹配


#9 楼

MobaXTerm




免费:是。它具有个人版和专业版。专业版通常只添加支持合同和部署工具(AFAICT)。您可以在工作场所使用个人版本
使用Bash:是的。我正在使用MobaXTerm 8.6,并且正在使用Bash 4.1.17(0)-release。较新版本的MobaXTerm可能使用新的Bash
不是模拟器:是的,它不是模拟器。它确实使您像Unix文件结构一样启动(看起来像ls /),但是如果您导航到/mnt/c,则您的C驱动器在那里。
易于安装:是的。它既可以作为简单的安装程序,又可以作为便携式exe来使用。
与Windows 10兼容:是的,Vista和7

安装Vi可以做到的事情。
它有自己的apt-get
是MobApt,它基于apt-cyg(对我来说是0.59版)
您只需要普通的debian风格apt-get install vi等。但是我更喜欢它,因为我上次使用Cygwin时,它遍及整个操作系统,并添加到了很多菜单中。 MobaXterm将所有内容都保留了。一堆其他的东西。s

评论


这是一个强烈推荐的程序,特别是X11集成,这使其在此处的答案中在其他替代方案中独树一帜。

– Krishnakumar Gopalakrishnan博士
18年11月20日在19:38

请注意此解决方案,您必须使用其终端仿真器! :-(在外部普通文件系统上没有单独的bash.exe,您可以在您选择的终端应用程序中启动它。(但我同意@krishnakumarG,它提供的X11服务器非常出色。)

–halloleo
19-2-22在1:53