如何在 Windows 10 上安装和使用 Linux Bash Shell



  Windows 10 的周年更新为开发人员提供了一个巨大的新功能:一个完整的、基于 Ubuntu 的 Bash Shell,可以直接在 Windows 上运行 Linux 软件。这是微软通过添加新的 “Windows Subsystem for Linux”(Windows 的 Linux 子系统,下文简称 WSL) 实现的。

有关 Windows 10 的 Bash Shell

  这不是虚拟机、容器或为 Windows 编译的 Linux 软件(像 Cygwin)。恰恰相反,Windows 10 获得了一个 Linux 子系统,它基于早已被微软遗弃的在 Windows 上运行 Android 应用的 Astoria 项目。

  这可以认为和 Wine 相反。Wine 允许直接在 Linux 系统上运行 Windows 应用,WSL 可以在 Windows 上运行 Linux 应用。

  微软已经和 Canonical 公司合作,致力于打造一个完整的、基于 Ubuntu 的、运行在这个子系统顶层的 Bash Shell。从技术层面上讲这完全不是 Linux。Linux 是底层操作系统内核,这在这里是不适用的。但是它运行的 Bash Shell 和二进制文件与 Ubuntu 上运行的完全相同。纯粹的自由软件主义者认为,一般的 Linux 操作系统应该被称为 “GNU/Linux”,因为它真的是有很多 GNU 软件在 Linux 内核上运行。你得到的 Bash Shell 只是 GNU 工具和其他软件而已。

  但是这里有一些限制:无法运行服务器软件、不能运行带图形界面的软件,它只适用于想在 Windows 上运行 Linux 命令的程序猿。这些应用程序可以访问 Windows 文件系统,但不能使用 Bash 命令来自动化正常的 Windows 程序,或从标准的 Windows 命令来启动 Bash 命令。仅仅是可以访问相同的 Windows 文件系统,仅此而已。不是每个命令行程序都可以正常工作,因为 WSL 仍处在测试阶段。

如何在 Windows 10 安装 Bash

  在这之前,请确保已经安装 Windows 10 周年版或者更新。这里只适用于 64位的 Windows 系统,如果您仍使用32位的系统,那是时候用64位的 Windows 10 系统了。

  当确定使用的是正确的 Win10 版本后,打开 “应用”,然后转到 “更新和安全” > “针对开发人员”,在这里选择 “开发人员模式”



  接下来打卡控制面板,单击 “程序”,然后单击 “程序和功能” 下的 “打开或关闭 Windows 功能”。在列表中勾选 “适用于 Linux 的 Windows 子系统(Beta)”,然后单击 “确定”



  完成后系统会提示您重启计算机,单击 “立即重新启动”,Windows 10 将会安装新功能。

  重启计算机之后,单击开始按钮(或按 Win 键),输入 “bash” 后回车。



  当您第一次运行 bash.exe 文件时,系统将提示您接受服务条款,然后该命令将从 Windows 应用商店下载 “Bash on Ubuntu on Windows” 程序。之后系统会要求您创建用于在 Bash 环境中使用的用户账户和密码(注:不是 Windows 系统的账号密码)。



  如果您想要自动化安装 Bash,可以在命令提示符窗口运行以下命令。这将自动同意所有提示,并且将默认用户设置为 “root”,不使用密码:

1
lxrun /install /y

如何使用 Ubuntu 的 Bash Shell 并且安装 Linux 软件

  你现在有一个完整的基于 Ubuntu 的 Bash shell 了。由于它和 Ubuntu 使用的是相同的二进制文件,所以您可以使用 Ubuntu 的 “apt-get” 命令从 Ubuntu 的软件源安装软件。您可以运行 Linux 所有的命令,虽然不是每个命令都可以正常运行——特别是最初的测试版本。

  要打开 Bash shell,只需要在你的开始菜单搜索 “bash”“Ubuntu”。你会看到一个 “Bash on Ubuntu on Windows” 的程序(注:由于旧版中文的 Win10 系统会将英文的符号 “.” 换成 “。”,所以原本的快捷方式就失效了。可以去 “C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs” 中手动将 “Windows 中的 Bash on Ubuntu。lnk” 重命名 “Windows 中的 Bash on Ubuntu.lnk” ,回车即可看见白色的未知图标变成了 Ubuntu,创意者更新则没有此问题)。您可以将此快捷方式固定到您的开始菜单、任务栏或者桌面,以方便访问。



  如果你有在 Linux、Mac OS 或其他平台使用 Bash shell 的经验,你就会用的得心应手。你不需要使用 sudo 了,因为你已经是 root 用户了。在 UNIX 平台上,“root” 用户具有绝对的系统访问权限,就像 Windows 上的 “Administrator” 用户一样。在 Bash shell 环境中您的 Windows 文件系统位于 /mnt/c 中。

  它和 Linux 终端的用法一样,如果你熟悉标准 Windows 的 DOS 命令,这里有一下相似的基本命令:

  • 改变目录
    • Bash:cd
    • DOS:cdchdir
  • 列出目录内容
    • Bash:ls
    • DOS:dir
  • 移动或重命名
    • Bash:mv
    • DOS:moverename
  • 复制文件
    • Bash:cp
    • DOS:copy
  • 删除文件
    • Bash:rm
    • DOS:delerase
  • 创建目录
    • Bash:mkdir
    • DOS:mkdir
  • 编辑文件
    • Bash:vinano
    • DOS:edit

  有个很重要的需要记住,WSL 不像 Windows ,Bash Shell 和 它的 Linux 环境是区分大小写的。换句话说,大写字母开头的 “File.txt” 和 小写开头的 “file.txt” 是两个不同的文件。

  更多相关说明请参阅我们的 Linux 命令初级指南 和其他类似介绍 Bash Shell、Ubuntu 命令和 Linux 终端的资料。



  你需要使用 apt-get 命令来安装和更新 Ubuntu 环境,并确保在这些命令前加上 “sudo”,这个命令可以使它以 root 用户的身份运行——就像 Windows 的 Administrator。这里有一些需要知道的:

  • 下载可更新包的更新信息:sudo apt-get update
  • 安装应用程序:sudo apt-get install 包名
  • 卸载应用程序:sudo apt-get remove 包名
  • 搜索可用的软件:sudo apt-cache search 关键字
  • 下载并安装升级包:sudo apt-get upgrade

  下载并安装应用程序后,可以在提示符处键入其名称,然后按 Enter 运行。检查特定应用程序的文档以获取更多详细信息。



福利:安装 Ubuntu 字体以获得真正的 Ubuntu 体验

  如果想在 Win10 上获得更爽的 Ubuntu 体验,还可以安装 Ubuntu 字体并在终端中启用它们。

  从 Ubuntu 的网站 上下载 Ubuntu 系列字体。打开下载的 zip 文件,找到 UbuntuMono-R.ttf 文件,这个是 Ubuntu 等宽字体,终端中使用的唯一一种字体,也是唯一需要安装的字体。



  双击 UbuntuMono-R.ttf 文件,您将看到该字体的预览,单击 “安装” 将其安装在系统上。



  要使 Ubuntu 等宽字体成为控制台中的一个选项,您需要向Windows注册表添加一个设置:

  1. Win + R 打开注册表编辑器,键入 regedit,然后按回车,导航到以下项:

    1
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont
  2. 右键单击右窗格并选择新建 > 字符串值,命名为 000

  3. 双击刚刚创建的 000 字符串,并输入 Ubuntu Mono 作为其值数据。



  1. 启动 Bash,右键单击标题栏,然后选择“属性”。单击“字体”选项卡,然后在字体列表中选择“Ubuntu Mono”。


  记住,安装在 Bash shell 中的软件仅限于 Bash shell。您无法从命令提示符,PowerShell 或 Windows 中的其他位置访问它。Bash shell 中的软件也不能与 Windows 程序直接交互或启动,尽管 Bash 环境和 Windows 可以访问您计算机上相同的文件。

  但是,您可以创建 Bash shell 脚本(.sh脚本)并使用 Bash shell 运行它们。

LJason 译

原文:How to Install and Use the Linux Bash Shell on Windows 10

如果你喜欢我的博客,那就请我吃冰淇淋吧(づ ̄3 ̄)づ╭❤~