有没有更好的Windows命令行shell?

时间:2009-04-06 20:06:12

标签: windows shell cmd

CMD.EXE给我带来了很多问题。我安装了Cygwin并定期使用bash,而且我还有mSysGit附带的mingwin bash shell,但有时候我确实需要从Windows shell运行。

是否有Windows shell的替代品:

  • 有一个持久的命令行历史记录,在我关闭会话后的下一个会话中可用吗? (如bash HISTFILE)
  • 记得我刚刚进入的目录,以便我可以在两个目录之间切换? (如在bash cd中 - )

(或者有没有办法在CMD.EXE中启用这些功能?)

我看到有些人询问了a better windows shell before,但他们问的是剪切和粘贴,此时我的优先级较低。这不是控制台杀了我,而是命令行解释器。

12 个答案:

答案 0 :(得分:24)

微软刚刚发布Powershell。 (约2年前)

我已经下载了它;并没有尝试太多,但似乎是一个很好的工具。

答案 1 :(得分:12)

我一直很喜欢4NT(现在还没有用过一段时间)。

它是一个增强的Windows命令解释器,它主要向后兼容(意味着你可以运行正常的Windows批处理文件)。不使用它的唯一原因是它不像Windows默认的那样提供Windows。

与默认的Windows命令行解释器相比,它具有更好的流控制机制。所有标准的Windows命令行工具都可用,但有额外的选项和参数。

基本上这就是CMD.exe本应该用的。

更新:看起来它不再被称为4NT,但TakeCommand: http://jpsoft.com/products.htm

答案 2 :(得分:8)

我也在使用Powershell。它是一个很棒的,类似linux的shell,但是面向对象的,可扩展的框架。酷不仅适用于系统管理员,也适用于开发人员(构建过程等)。 Powershell抨击bash或其他Linux竞争对手:)

主要冒险:

    使用.NET语言
  • 可扩展
  • 使用 .NET对象(日期时间,文件等)
  • 简单明了的语法
  • 远程处理
  • 调试
  • 可控管道
  • ...

更多来自这里:

http://blogs.msdn.com/powershell/default.aspx

http://windowsteamblog.com/blogs/windowsvista/archive/2006/11/14/it-forum-day-one-windows-vista-and-windows-powershell.aspx

http://blogs.msdn.com/powershell/archive/2007/11/06/what-s-new-in-ctp-of-powershell-2-0.aspx

答案 3 :(得分:8)

另一个出色的解决方案是'Clink',它通过持久的历史记录和更多类似BASH的功能来增强CMD.exe。只需安装它然后正常打开CMD即可。 请参阅:http://code.google.com/p/clink/

或者如果你真的想要'cd - '来带你到上一个目录,那就按照Wouter和Peter提到的http://jpsoft.com安装'TCC / LE'免费版。

答案 4 :(得分:5)

尝试console2: http://sourceforge.net/projects/console/

我喜欢它

答案 5 :(得分:5)

PyCmd符合您的两个要求!它建立在cmd.exe ...

之上
  1. 命令历史记录在PyCmd会话中是持久的
  2. 最近访问过的目录的历史记录(空行的Alt-Left / Right / D)
  3. 这里有功能列表http://sourceforge.net/projects/pycmd/files/pycmd/0.8/

答案 6 :(得分:2)

我会说,

PowerShell。它是微软命令行管理的新官方shell。

我自己将它用于开发任务,并且喜欢它。它使您可以直接在命令行上与.NET框架类进行交互,这非常强大。

答案 7 :(得分:1)

pushd和popd可用于导航到目录。

c:>推送窗口 C:\ Windows和GT; POPD C:\

答案 8 :(得分:1)

PowerShell在以PowerShell方式执行操作时效果很好。例如,当您想要使用.NET应用程序和Windows文件时。它非常适合脚本编写,因为语法比Bash好很多......

但是当你想使用一些典型的UNIX应用程序时,当PowerShell将你所有的LF行结尾转换为CRLF时(甚至不考虑管道二进制文件),你很容易遇到麻烦。

只是我的经历。

答案 9 :(得分:1)

其他人已经提到了Powershell和4NT,两者都是比CMD更好的解决方案及其所有神秘的语法,缺乏文档,并且经常令人惊讶地无法完成几乎任何你可能想要用它的任务:)

  • 4NT现在是Take Command GUI文件管理套件的一部分,但是所有者已经单独提供了shell部件,它现在称为TCC / LE,现在也是免费的!对于大多数人来说,我会说要使用它 - 这是最简单的学习曲线,因为它具有与CMD大致兼容的语法,在线拥有大量资源并且能够完美地说出80%的文件系统任务。 / p>

    TCC/LE download

  • 对于需要更多模糊,进行大量管理或需要更多灵活性的人,请尝试Powershell - 这是一个陡峭的初始学习曲线,但它内部非常一致,一旦你弄清楚了你可以访问的基础知识使用相同的工具和方法操作Windows处理的99.9%,甚至在其他计算机上通过网络执行。即使学习基础知识(排序,选择,%和?)也比CMD已经......

    更好

    PowerShell Owner's Manual

    PowerShell Examples

  • 如果你更倾向于技术,那么我会考虑IPython--它的核心是编写和执行Python代码的控制台,但它也很容易充当shell(和任务管理系统) - 它有书签,别名,代码/文件的选项卡完成,可以混合代码和shell命令,例如files=!dir *.txt保存dir *.txt的输出,输入和/或输出的可配置日志记录,可以重复过去命令的块,导出它们或创建宏,并具有可以对其进行更多定制的扩展。

    IPython as a shell

    绝对不是为了胆小的人,而是一个非常强大的环境,如果你了解Python!

答案 10 :(得分:0)

然后是PowerShell!没试过,但我听说过很多很好的事情。

答案 11 :(得分:-2)

我使用cygwin。这是Windows的posix实现。因此,您可以在Windows上运行类似程序的unix。默认终端是bash,它比windows cmd更先进。