Skip to content
自由人的 BLOG

配置 Win10 Linux 子系统作为开发环境

Windows, Linux, wsl, Win10
阅读量

Hyper

没想到,有一天我还会在 Windows 下做开发,更没想到,凭着 Win10 的 Linux 子系统,开发体验还不错。

Hyper

首先,要有一个用着舒服的终端,我选用了 Hyper,这是一款基于 Web 技术、跨平台的终端软件。在 Hyper 的窗口菜单里依次选择 File -> Edit -> Perferences... 会打开一个文本文件,是 Hyper 的配置文件,文件名为 .hyper,实际上这是一个 JS 文件,看内容就知道,开头除注释外的第一行是 module.exports = {。我对这个配置文件做了如下修改:

zsh

这也是个习惯了,在这个子系统里我也装上了 zsh 和 oh-my-zsh 作为日常 shell。为了提升 Win10 下 Linux 子系统的开发体验,我在之前 Ubuntu 环境里的 .zshrc 基础上做了一些修改供这个子系统用。

bell

其中一点就是前面说过的 bell 的问题。我是通过在 .zshrc 里添加下面这句配置来解决的。

我尝试过在 /etc/profile 或者 ~/.profile 文件里加上这句配置,结果都没其作用,进入系统 zsh 时,zsh 默认并没有加载这两个文件,我想与其修改这两个文件,再修改 .zshrc 或者 /etc/zsh/zprofile 去 source 那两个 profile 文件,不如干脆就把这句配置直接写到 .zshrc 里吧。这样固然对其他 shell 不起作用,但是我也不用其他 shell,没什么负面影响。

umask

.zshrc 做的另一个修改是加了 umask 022 这句配置。进入 Linux 子系统后,默认的 umask000,这样你创建的每个目录的权限都是 777,那还了得。出于跟上面一段同样的原因,我还是把这句配置加到了 .zshrc 里。

z

zsh 有个好用到让人想哭的插件名叫 z,用上它之后,目录切换如行云流水,操作起来飘若浮云,矫若惊龙。再也不用费脑子去记某个文件完整的路径和文件名了,具体细节不在本文讨论范围,请自行体验。

在 Win10 Linux 子系统里,我自然也给 zsh 配上了这个插件,却发现每次启动终端进入 zsh 时,就给我报个错 _z_precmd:1: nice(5) failed: operation not permitted,Google 了一下,在这里找到了一个答案 _z_precmd:1: nice(5) failed: operation not permitted · Issue #230 · rupa/z

默认状态下,zsh 会尝试以低优先级 (给进程 设置高的 nice 值)来运行后台进程,但是 Win10 子系统没让这么做,给进程设置 nice 值时就报了错。Windows 似乎没有修复这个问题,或者可能是他们并没有认为这是一个问题,只好修改 zsh 的行为 —— 不去修改后台进程的 nice 值 —— 来规避这个报错信息了,方法是在 .zshrc 里添加如下内容:


做了一点微小的工作,差不多能舒服地用了。之后一顿操作,安装 nvmgit clone 过来 vim、tmux 的 dotfiles 配置文件,原来 Ubuntu 系统的 ssh 公钥私钥也搬过来……好了。

← 《好妈妈胜过好老师》读书笔记← 上一篇