bash shell脚本编程经典实例(第2版)
上QQ阅读APP看书,第一时间看更新

1.17 获取Windows版的bash

1.17.1 问题

你想要获取 Windows 系统下的 bash,或确认已安装的 bash 是否为最新版。

1.17.2 解决方案

使用 Cygwin 或 Windows 上的 Ubuntu,也可以使用虚拟机。又或者干脆不用 bash。

下载 Cygwin 并运行。按照提示选择要安装的包,bash 位于 shell 分类,默认是选中状态。安装好 Cygwin 后,你还得做一番配置。具体可参见用户手册。

对于 Windows 上的 Ubuntu,你需要使用 2016 年夏季版或更新版本的 Windows 10,然后按照安装说明操作,具体方法参见 1.17.3 节。

要想使用虚拟机,参见 15.4 节。

最后,尽管我们讨厌这么说,但也许正确的解决方案是使用 PowerShell 这样的原生工具。

1.17.3 讨论

  1. Cygwin

    Cygwin 在 Windows 下提供了一种具备 Linux 观感的类 Linux 环境。

    以下描述取自 Cygwin 的官方站点。

    Cygwin 是:

    • 一个数量庞大的 GNU 及开源工具合集,在 Windows 上提供了与 Linux 发行版类似的功能;
    • 一个提供了大量 POSIX API 功能的 DLL(cygwin1.dll)。

    Cygwin 不是:

    • 在 Windows 上运行原生 Linux 应用程序的方法。如果想要这么做,必须从源代码重新构建应用程序;
    • 一种让原生 Windows 应用程序能够知晓 UNIX® 功能(如信号、伪终端等)的神奇方法。再次强调,如果想要利用 Cygwin 的功能,必须从源代码重新构建应用程序。

    Cygwin DLL 可以在从 Windows Vista 起的所有 X86 32 位和 64 位的 Windows 商业发行版上工作。

     Cygwin 2.5.2 是支持 Windows XP 和 Server 2003 的最后一个版本。

    Cygwin 是在 Windows 上运行的一种真正的类 Unix 环境。它的确是一款绝佳的工具,但有时似乎有点杀鸡用牛刀了。
     

  2. Windows上的Ubuntu

    在 Windows 上运行 Ubuntu 颇有意思,但除了其中包含 bash 外,其他方面与本书主题无关,因此我们就不细谈了。详细信息可参见 1.17.4 节中列出的参考资料。

    简单来说:

    • 启用 Developer Mode。
      • 搜索“Windows Features”。
      • 选择“Turn Windows features on or off”,启用“Windows Subsystem for Linux”。
        • 这可能需要重启!!!开玩笑的吧?!
    • 打开 Command Prompt 并输入 bash
      • 从 Windows 商店下载 Windows Subsystem for Linux。

     

  3. 使用PowerShell或其他原生工具

    面对可脚本化命令行工具的威力和灵活性,微软给出的答案就是 PowerShell,而且用其替代了 command.com 和 cmd.exe 批处理文件。除了作为 Windows 原生的 shell 脚本编程语言,PowerShell 已经超出了本书的讨论范围,因此不再多讲。

    虽然与 Unix/Linux 工具比起来相形见绌,但旧式的 Windows shell 脚本语言其实比很多人所知的更为强大。它们也许适合于那些使用其他解决方案显得大材小用的简单任务。

    如果想要一款功能强大、基于字符且拥有更为一致的 DOS/Windows 界面特色的图形用户界面命令行 shell,不妨看看 JP Software 网站。本书作者无一隶属这家公司,但其中一位作者长期以来对该公司的产品都很满意。

1.17.4 参考

  • Cygwin 站点
  • Windows 上的 Ubuntu:
    • Windows Subsystem for Linux documentation
    • “Microsoft and Canonical Partner to Bring Ubuntu to Windows 10”,Steven Vaughan-Nichols 撰写
    • “Ubuntu on Windows—The Ubuntu Userspace for Windows Developers”,Dustin Kirkland 撰写
    • “Developers Can Run Bash Shell and User-Mode Ubuntu Linux Binaries on Windows 10”,Scott Hanselman 撰写
    • “Announcing Windows 10 Insider Preview Build 14316”,Gabe Aul 撰写
    • “alwsl Project Lets You Install Arch Linux in the Windows Subsystem for Linux”,Marius Nestor 撰写
    • “How to Install and Use the Linux Bash Shell on Windows 10”,Chris Hoffman 撰写
  • 维基百科(PowerShell)
  • JP Software 网站
  • 1.12 节
  • 1.18 节
  • 15.4 节