Windows 命令行工具

作为开发者,我们的大部分时间都是在 OSX 和 Linux 上编写代码,我们很好奇现代命令行设置在 Windows 上会是什么样子。

Stack Overflow 的一项开发者调查提醒我们,使用 Windows 的开发者数量比其他任何操作系统都多,因此我们很想知道,其中的工具是否与我们在 *nix 大陆上使用的不相上下。

在评估了 Windows CLI 工具的现状后,我们确定了一套工具,我们认为这套工具可以帮助我们实现 95% 的目标。

归根结底,我们发现了以下问题:

  • PowerShell
  • ConEmu
  • PSReadLine
  • PSGet
  • 巧克力味
  • Babun(可选)

请参阅下文,了解这些不同机械装置的更多注意事项。

PowerShell (shell)

  • 与 cmd.exe 相比,更接近真正的“shell”,为我们提供强大的脚本环境来实现任务自动化。不妨将其与 Bashzsh 进行比较。
  • 自动补全目录和文件名
  • 自动补全应用名称
  • 具有集成的别名和命令(称为 cmdlet,例如 Select-String 类似于 grepInvoke-Elevated 类似于 sudoSort-Object 类似于 sortGet-Process 列出了所有活跃进程)。如果从其他 shell 移至 PS,则 Set-Alias 可让您将熟悉的别名映射到 Windows 等效项。例如:在使用 server 别名时,Set-Alias server python -m http.server 8000 会启动 Python 服务器。
  • 别名可保存在 PowerShell 配置文件中
  • 支持管道,例如 Unix。与 Unix 不同的是,它传送的是对象,而非文本流。这需要熟悉,但又可以避免在想要出手房源时进行重修。
  • 支持模块。PSGet 是 PowerShell 的软件包管理器,可让您轻松对其进行扩展。
  • (可选)考虑使用 Posh-Git,这是一个适用于 Git 的 PowerShell 脚本,可补全上下文。

如果您对知识问答感兴趣,可以参考下方的答案,了解 MS 为何从首席架构师创建 PowerShell。

PSReadLine(控制台修改帮助程序)

  • 显著提升控制台修改体验
  • 在您开始输入命令时突出显示语法。使用红色“>”字符清楚地表示语法错误。
  • 高度可定制的按键组合
  • Bash 样式的自动补全
  • Bash/zsh 交互式历史记录搜索 (Ctrl + R)。此外,还具有强大的命令历史记录遍历功能。使用箭头键可轻松查看之前的多行命令,而不只是命令的最后一行。
  • 适当支持复制/粘贴/剪切(Ctrl+C/X/V 应该可以正常完成)
  • 很好地支持撤消/重做
  • 自动保存历史记录

或者,您也可以使用 Clink,它具有一组类似功能,但并未完全针对 PowerShell 编写。

ConEmu(控制台主机)

  • 一种高级控制台模拟器,您可以在其中运行所选的 shell。
  • 支持在不同标签页中打开多个终端。让以不同用户身份启动终端变得轻而易举。
  • 自定义程度极高 - 从快捷方式到文本选择和状态栏颜色的所有操作都可以更改。
  • 支持分屏视图
  • 简单的 GUI 应用可以在标签页中运行
  • 支持 Windows 7+ 跳转列表
  • 支持平滑的窗口大小调整
  • Windows 字体抗锯齿
  • 起始标签页可完全自定义,以在特定目录中启动
  • 智能复制/粘贴

有些人仍然喜欢使用 Console2,Scott Hanselman 写过一篇博文

Cmder

值得一提的是,Cmder 是融合了 ConEmu、Clink 和 msysgit 的控制台模拟软件包,可为您提供 Git 帮助程序。Cmder 基本上是通过 Monokai 配色方案默认为您提供更美观的 ConEmu 体验。

Cmder 还包含一些其他的小优势,例如与 GUI 应用(例如 Sublime Text)集成。

Chocolatey(软件包管理器)

  • 基本上是适用于 Windows 的 HomeBr,让您能够轻松安装自己喜爱的 Windows 应用。目前,您可以直接使用 Chocolatey 更新大约 3,000 个套餐。
  • Nuget 的不同之处。NuGet 用于开发库。Chocolatey 是一个二进制机器软件包管理器,基于 NuGet 基础架构构建。
  • 提供有效的静默 build

您可能还想了解 Microsoft 的软件包管理器 OneGet,它可以在 Windows 10 系统下与 Chocolatey 配合使用。

Babun(Cygwin 已预配置)

  • Cygwin(适用于 Windows 的类似 Linux 的环境)排除了一些历史上已知的怪异行为。使用 Babun 安装程序进行的整体设置要简单得多。如果您在 Unix 方面尤为有经验,并且希望避免学习 PowerShell,那么 cygwin/Babun 非常值得考虑。
  • 包含一个名为 pact 的软件包管理器(有点类似于 brew),类似于 apt-get。这很重要,因为您目前在添加软件包时必须重新运行 Cygwin 安装程序,而不是仅使用 pact。
  • 预安装和预配置的 Vim
  • 集成了对 oh-my-zsh 的支持
  • 自动更新

延伸阅读