首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我的 WSL 之旅

初识 WSL

上了大学以后,开始逐渐了解到 Linux 系统,觉得很是新奇,也曾多次在电脑上安装过许多 Linux 发行版,从最初最傻瓜的 Deepin 和 Ubuntu, 到后来安装 CentOS 和 Fedora, 以及被许多人封神的 Arch Linux 以及它的友好版 Manjaro, 对 Linux 系统的了解也从好奇和装* 发展为想要了解和学习这门技术。

后来听说在 Windows 10 的秋季创意者更新中,加入了 Linux 子系统 (Windows Subsystem Linux 简称 WSL), 我也对此充满了兴趣。于是开始尝试这个神奇的东西。

从残缺到稳定

最开始时,WSL 是作为 Beta 功能推出的,并且只面向 Insider 用户。据说那时的 WSL 功能十分残缺,就连最基本的 Linux 功能都没有实现。而在我开始使用的时候,个人感觉已经有了很大进步。

开启 WSL 之旅

首先,需要确定自己的系统是否为创意者更新及以上版本。确认以后,在设置 > 安全 > 针对开发人员中打开“开发人员模式”,并找到启用或关闭 Windows 功能(控制面板\程序\程序和功能),并在其中启用“适用于 Linux 的 Windows 子系统”。之后按照指引进行。

接下来,就是正式安装系统的时间,有两种不同的途径。

如果系统版本号低的话,需要打开 PowerShell 或 cmd, 输入 命令来执行安装,其中, 是针对 WSl 的命令,安装和卸载都需要这个命令,参数 表示安装, 表示跳过确认。随后就是下载的过程,要做的就是等待。

另一种,对于 Windows 系统已经是最新的用户,可以直接去到微软商店搜索 linux 关键词,会有三个选择:Ubuntu, OpenSUSE, SLES, 在微软的宣传中,可以看到 Fedora 的身影,但是实际并没有出现在商店中。这三个发行版都可以安装,甚至可以同时存在,并可以选择一个作为默认版本。

在下载完成之后,我们就可以开始享受 WSL 带来的便利了。打开 WSL, 会提示创建用户和密码,创建成功之后,就可以开始使用了。不过需要注意的是,这时,Root 用户还没有密码,需要用户创建。输入 创建 Root 用户密码。非必要时间不使用 Root 用户,一般使用 命令即可。

对 WSL 的小折腾

这一节是对 WSL 的一个小小的折腾,更大的折腾在后面。

配置 zsh 和 oh-my-zsh

使用 WSL 时,我们就可以发现,这个命令行和 Windows 下的 cmd, PowerShell 都有一个共同的特点:丑,丑到了我们必须美化的地步。真的无奈。

首要的当然是安装 zsh 和 zsh 的主题扩展 oh-my-zsh。安装 zsh 使用 命令。之后将其设置为默认的 Shell, 使用 命令。之后安装 oh-my-zsh 作为扩展。另外,还可以对 vim 或 emacs 进行配置,比如比较推荐的配置 SpaceVim, spf13-vim 和 SpaceEmacs 都是很好的选择。

配置 wsl terminal

配置完成后,虽然顺眼了一些,但是还是很丑。这该怎么办呢? 有人可能想使用 ssh 或者其它连接方式,是很好的想法。如今已经有人推出了更好用的 WSL 终端,项目叫做 wsl terminal, 我们从 GitHub 上 clone 下来就可以直接使用了。但是我们会发现在 wsl terminal 上,我们的 zsh 不能设置为默认 Shell 了,需要我们再进行配置。其配置文件位于 文件中。打开文件后,将 注释掉,并把 的注释去掉。如果想打开时就使用 tmux 的话,可以将 的值设置为 0,并把下面这段配置添加到 .zshrc 配置文件中:

wsl terminal 中还有许多很有用的工具,比如用 vim 打开文件、在 wsl 中运行文件、添加右键菜单等,就不再一一赘述。

配置 VS Code

除了 wsl terminal, 我们还可以在 Visual Studio Code 中,将 Ubuntu 设置为默认的终端。在 vs code 的首选项中,将 "terminal.integrated.shell.windows" 配置为 Bash 的位置:"C:\Windows\System32\bash.exe",就可以在 vs code 中使用 wsl 进行调试开发了。不过遗憾的是,vs code 中并不能使用 wsl 中的 Git 而只能使用 Windows 下的 Git。

对 WSL 的大折腾

这一节是对 WSL 的大折腾环节,基本都已失败告终,不过还是得到了些好的结果。

运行 Docker

在我认为 WSL 已经和正常的 Linux 发行版没有太大区别的时候,它迎头给了我一个重击,那就是不能运行 Docker. 在安装了 docker.io, docker-ce 等工具后,启动 Docker:

提示:

看起来可以运行,但是当使用的时候就不是这样了。让我们尝试一下:

返回:

看来是无法正常运行的。

后来我在 StackOverflow 上找到了一个相关的提问,下面的回答认为 WSL 没有对应的 Linux 内核接口,因此无法正常运行 Docker. 现在电脑上还安装了一个 Ubuntu 的虚拟机用来运行 Docker.

安装其他发行版

虽然 WSL 现在有 Ubuntu, OpenSUSE, SELS 三个版本可以选择,但是明显还是不够满足人们的好奇心的。我按照 Arch 官方的 Install on WSL 的指引,最终失败。打开 Shell 时,只会返回错误,无法运行。而类似 alwsl 这种工具现在也已经不再维护,对于一个没有经验的小白来说,在 WSL 安装 Arch Linux 的确比较困难。不过听说现在可以使用 Docker 上的 Linux 发行版镜像来实现,没有尝试。

安装桌面环境

在最开始使用 WSl 的时候,我就已经在其上运行桌面软件。当时采取的方法与安装桌面环境的方法大同小异。需要使用 X Window 服务,最开始我使用的是 Xming 这款软件。将 X Window 启动到后台,打开 WSL, 下载一个桌面软件,比如 firefox 浏览器。下载完成后,指定 并运行 firefox, 即执行 命令,这样就可以开启一个桌面软件的窗口。

后来,开始尝试安装桌面环境。主要参考了WSL 使用小结 和 Arch Linux 中对于安装 xfce4 桌面环境的指导。我安装的桌面环境是轻量级的 xfce4, 对资源的占用较小。

在漫长的下载和安装之后,采取与运行桌面软件一样的方式,因为在 Linux 中,桌面环境本质上也只是一套软件而已。启动 Xming 在后台,在 WSL 中执行命令 , 等待加载完成,桌面环境就会显示出来了。但是现在桌面对于中文的支持并不好,会无法显示,需要安装文泉驿字体:

再次启动,中文就可以正常显示了。

但是这种方式问题在于步骤的繁琐,参考了文章之后,我使用了 MobaXterm 这个 X Window 软件,这个软件虽然是商用收费的,但是面向个人用户是免费的。

启动软件之后,点击 Start local terminal, 选择 WSL, 并将其添加到 User Sessions 中。选择编辑这个终端,选择高级终端设置。在下方有一个 , 也就是在终端启动时,默认执行一些操作。我们将原来的命令添加到其中,即 并添加一个回车的操作。启动这个终端,就会发现在启动时就会自动执行命令,显示桌面环境了。并且,我们还可以建立这个终端的快捷方式,只需要点击就可以开启桌面环境了。

有一点比较难受的就是,默认的 xfce4 环境是很丑的,需要自己去配置,我目前的配置是 Yosemite-dark 的主题,MacBuntu-OS 的图标,整体还是比较舒服的。

Have Fun~

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180121G0125E00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com