当然有人写了一个适合Windows的体面的shell。
我在找
a)或多或less像普通的linux shell(即历史,完成等)
b)这是一个简单的安装(比Cygwin更容易,当我尝试它时,似乎并不是那么好)。
奖励积分如果是:
c)免费(如在演讲中)
d)在path中允许正斜杠而不是反斜杠
Powershell比任何其他命令shell都具有显着的优势。 它是面向对象的。
在cmd,bash等你的命令输出像dir / ls是一个有效的string数组。 如果你把另一个命令连接起来,那么你必须处理string。 在Powershell中,dir cmdlet实际上提供了一个文件对象数组,您可以将其传递给另一个命令,并通过属性对这些对象执行操作。 Powershell真的是一个互动的.Netshell。 每个cmdlet实际上都是一组.Net对象的包装器。
所有来自Microsoft的下一代pipe理接口实际上都是在Powershell中实现的,GUI接口是Powershell命令的一个包装,类似于执行GUIpipe理工具的“Unix方式”。
以下是Active Directory透视图的一个示例…您可以使用cmd.exeshell程序和像dsquery.exe这样的实用程序为对象执行LDAP查询。 但是,你得到一个名单返回一个杰出的名字。 然后,您可以将这些DN作为string等进行处理。在Powershell v1或v2中,您可以安装和使用一个Questpipe理单元 ,为您提供get-QADUser等工具。 当您使用get-QADuser查询AD时,返回值是User对象的集合。 所以一个命令如:
$users = get-QADUser svc_*
将返回一个你可以通过属性处理的集合,例如按照你将使用的HomeDirectory对它们进行sorting:
$HmDirs = get-QADUser svc_* | sort-object HomeDirectory
有没有其他的shell有这种能力的Windows。 Powershell绝对是最好的select。
更新:PowerShell v2现在作为Windows Management Framework的一部分发布,但是如果要获取Microsoft AD cmdlet,则必须运行服务器2008 R2或Windows 7,否则它仍然是Quest cmdlet。
Poweshell。 努夫说。 🙂
我很确定CMD允许正斜杠。
你看过Powershell? 人们似乎发誓。
Windows Powershell是伟大的,易于安装,并将与Windows 7一起来。你甚至可以编写与bash脚本非常相似的cmdlet 。
我已经使用了大约3年的Ubuntu用户,而且我喜欢它。
我将不得不joinpowershell合唱团。 与unix风格的shell不同,cmdlet都使用从一个cmdletstream向另一个cmdlet的对象stream水线。 这意味着您不必担心如何使一个cmdlet与另一个cmdlet一起工作。 在unix世界中,大多数shell命令和脚本都花费了大量代码去除下一个命令无法处理的“额外文本”。 这也意味着你越了解它越多,你可以使用它。 不像一个典型的shell,你必须学习每个命令是如何工作的,所以你可以找出如何转换pipe道文本,powershell cmdlet的工作原理是相同的,无论input。 例如,如果我发送一个目录列表select对象(select特定的属性使用),select对象工作方式完全相同,如果我发送一个活动目录用户对象,一个SCOMpipe理类或交换邮箱。
看看和现在完全不同:介绍Windows PowerShell
你为什么放弃Cygwin? Cygwin遇到了什么样的问题? 虽然我只涉及到PowerShell,但是我已经使用了cygwin好几年了,并且发现它在POSIX机器上是必须的,更不用说所有的服务,比如SSH客户端和服务器以及X-windows。 全部免费。
迈克的权利,总是有哈密尔顿C壳 。 (我写的!:)我可以高兴地报告说,我刚刚发布了一个重大的修改,就在迈克的观察几天后,它似乎没有更新最近。 这个最新的版本现在完全支持Vista和Win7,你将得到32和64位二进制文件。
回答你的具体问题:
是的,它包括所有常见的嫌疑犯,历史logging,命令行编辑,文件名和命令完成,别名,后台进程等,以及许多增强function,如内置和用户定义的过程,块结构variables,点和改进的通配符(例如,“…”构造意味着零或多个目录级别,以使模式匹配)。它还包括一套相当完整的所有常用的内置和外部实用程序,例如更多的,ls,grep,sed,head,tail,diff,xargs,sort,chown,tar等等(唯一不重要的东西是awk,perl和vi,对于Windows的权威免费版本已经存在。)
安装非常简单。 只要打开标准的XP和Vista兼容的Windows安装程序.msi文件,你很好去。 整个用户指南安装为超文本。 它完全运行良好,所以通过控制面板进行卸载也完全可以正常工作,消除一切。 (你不会在registry或其他地方发现任何垃圾。)
对不起,这不是免费的。 在美国,这里的价格是350美元,但是我给了学生和其他一些情况的折扣。 (我真的不想花钱成为问题,所以如果有的话,请联系我,我是一个像你这样的普通人,不是一个大公司。)
是的,你可以使用向前或向后的斜杠。 您可以将转义字符设置为Windows风格的旋风(^)或UNIX风格的反斜杠()。
我是唯一的作者。 这完全是我自己的工作,所有这些都是从头开始为Windows编写的。 我直接进入了Win32 API(我甚至不打扰C运行时,除了sprintf的东西,因为CRTL隐藏了错误代码之类的东西),所以它非常快,它真的了解Windows。 在内部,它被实现为一个真正的multithreading自顶向下recursion下降编译器体系结构,所以尽pipe它是一个C shell,但您可以放心,它没有任何在原始UNIX C shell中经常抱怨的问题。
如果你想仔细看看,我的网站上有免费的演示版本,所以你可以在购买之前试用。 它有一个无条件的满意保证,所以如果购买和改变主意,你可以以任何理由甚至毫无理由地退还,并把你的钱收回。
如果您有任何问题,或者我可以以任何方式提供帮助,只需发邮件至[email protected]或致电425-497-0102。 正如我所说,我是真实的人,我接电话。 我希望这是有帮助的。
http://win-bash.sourceforge.net/ < – 如果你已经习惯了bash风格。
Hamilton C Shell总是有,但是看起来在去年一直没有得到积极的更新。
你最近有没有看过cmd.exe? 至less从Windows XP开始,它就支持所有的需求,而不是/(而不是奖励点,否则就没事了)。
将unxutils的内容添加到您的path是最适合我的。
现在已经很多年了。 所以你仍然在一个原始的dos框,因此没有附加模拟器的string。
grep,ls,du,它几乎都在那里,你可能不得不寻找一些额外的东西,比如'curl.exe'。