Ubuntu for Windows子系统(WSL)的安装与配置
前几天看到Windows周年更新加入了一项有趣的功能:在Windows下安装一个Ubuntu子系统。正好想试一下Linux环境,于是便折腾了一番。现在想起来要记录,发现有的东西已经记不清了,忘性还真是大啊。
为什么要用这个玩意?
因为……我手滑把自己的Ubuntu虚拟机毁了。折腾一遍虚拟机,不见得会用几次,还得占用十几G空间,不太划算。而这个子系统只相当于一个应用,不需要担心各种资源的分配;作为仅有CLI界面的系统,占据的空间也很小。并且Windows下的所有存储资源都可以被Ubuntu简单引用(/mnt
路径下的e
,f
,g
,h
就对应着各个磁盘分区)。这样既可以享受优秀的终端应用,又可以在熟悉的Windows环境中进行其他操作。
当然缺点也是有的,作为一个新功能,它总是免不了有些bug;而且这种不常见的环境也就意味着遇到问题是不一定能Google到合适的解答。不过瑕不掩瑜,这还是值得一试的。
安装Ubuntu子系统
主要参考了Win10专业网的教程 、冬菇酱的教程以及Laptop的教程。
首先,使用小娜(Windows10任务栏的搜索框)搜索“启用或关闭windows功能”,翻到对话框的最下面,勾选“适用于Linux的Windows子系统”(这个名字好像反了……)。之后如果要求重启,那就重启。
然后在设置->更新和安全->针对开发人员->使用开发人员功能
下选择“开发人员模式”。这一步操作可能增大你的电脑面临的风险,请考虑后再做决定。等待设置完成。
对于这一步,记忆不很清晰了。应该是打开Microsoft Store,搜索“Ubuntu”即可打开这个窗口,选择一种安装(推荐Ubuntu)。
在一切就绪后,你就可以在开始菜单里找到Ubuntu的图标了(第一次使用可能要设置用户名和密码),而Ubuntu系统的根目录相对Windows的文件系统位于C:\Users\你的用户名\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
。
配置Ubuntu子系统
帮助系统
面对各种指令一脸茫然?请教一下帮助系统吧。一般对于一条指令command
,有以下两种方式获取帮助。
1 | # 简短的帮助,直接打印在终端主窗口里 |
还有一种“帮助系统”,那就是各位大佬的教程,比如这个 。
软件的安装
有一些系统自带了,没有的要自行安装,建议在安装之前先搜索一下,防止安错。
1 | apt-cache search Software_name |
这里有一个问题:使用默认的软件库路径,在安装时经常会发生404 ERROR,可能是跟国内的网络环境有关。建议使用国内的镜像站,例如清华大学镜像或者阿里云镜像。打开/etc/apt/sources.list
,可以看到里面是官方源列表,我们在前面写入要使用的镜像源列表(建议先备份原文件)。然后执行
1 | sudo apt-get update |
就可以正常安装软件了。
另外,据说aptitude对软件的依赖处理得更好,还有交互式界面可用,可以先sudo apt-get install aptitude
安装好,之后安装其他软件就可以用下面的命令了。
1 | sudo aptitude install Software_name |
常用软件
- git:系统自带
- gcc:没找到,需要自行安装,注意分为gcc和gcc5两个版本。(理论上gcc能自动识别
.cpp
从而编译c++代码,但发现实际上还是得用g++) - g++:没找到,需要自行安装
- python:比较坑,因为python有2和3两个版本,系统自带了python3.5,应用名为python3,而
apt-get install python
安装的是python2,应用名为python - pip:作为python的一部分,相同的情况,自带了pip3
- midnight commander:可视化的文件资源管理器,软件名是mc,建议不习惯CLI的朋友安装
- nano:系统自带,可以通过
/ets/nanorc
进行配置 - vim:系统自带
- Node.js和Hexo:见之前的博文。
- htop:进程显示工具,比系统的top命令好
- thefuck:命令纠正工具,主页。可以用
sudo pip3 install thefuck
安装,不能正常运行的话配置alias fuck='eval $(thefuck $(fc -ln -1)); history -r'
,然后就可以愉快的……
系统汉化
我的英语好辣鸡啊.jpg
看到了很多种方法,我也混和着使用了各种步骤……已知下面一步是必须的,如果不行的话,可以试试执行可选步骤,再来进行这个配置。
1 | dpkg-reconfigure locales |
然后你就会看到一个友好的配置界面,选择中文就行了!
可选步骤:
- 安装一个汉化包
1
sudo apt-get install language-pack-zh
- 修改环境变量
/etc/environment
,添加两行
1
2LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh:en_US:en"
这一步应该不是必须的,因为我后来发现我把environment
拼错了,新建了一个文件……(我的英语真的好辣鸡啊.jpg)
颜色配置
外貌协会成员打卡。
其实这里完全就是用了Windows cmd的设置方式,就是在标题栏右键选择“属性”进行修改就可以了(最好只是选择颜色而不要修改颜色的值)。
不过之后发现,Ubuntu似乎对Windows的颜色排列方法有些……误解?大概Ubuntu的标准颜色是8种而非16种,所以我把它修改成了这样(也就是把前面几种颜色也改成了后面的):
背景最好用黑或白,不然可能出现背景和文字同色的情况。
git配置
关于git的使用方法有很多教程,例如廖雪峰的教程,里面还讲了个人信息的设置、与GitHub的链接方法,我在这里只提一个细枝末节——颜色 log。
可以使用git log --pretty=format:
来对log进行格式化,教程见这里,或者套用我的
1 | git config --global alias.lg "log --pretty=format:'%C(yellow) %h %Creset- %Cgreen%d%Creset %s %C(bold cyan)%cn, %cr %Creset' --graph" |
之后使用git lg
就可以了。
创造GUI
虽然命令行界面看起来很爽,但是当我用到 gnuplot 的时候,我意识到:GUI是好文明。于是参照一些教程(其中比较好的一份),给 WSL 搭建了基础的GUI。
- 在 Windows 下安装 Xming,启动
- 在 Linux 下安装 x11-apps(当然就是用
apt-get
啦) - 使用
DISPLAY=:0.0 command
启动命令 - 为了省事,可以直接在
~/.bashrc
里加上export DISPLAY=:0.0
还可以进行其他配置,不过基本用不到。
有了 GUI 之后,就要考虑字体问题了,WSL 没有自带中文字体,要自己安装。其实就是把字体拷贝到字体文件夹,然后刷新列表。这里以 Noto 系列为例:
1 | cd /mnt/c/Windows/Fonts |
最好再安装一个 truetype 的字体,避免有些应用程序挑三拣四。
鬼畜软件
常用软件
- mc:Midnight Commander,非常好用的文件管理器,有直观的可视化界面
- feh:基于 x11 的图片浏览器,默认支持 jpg 和 png,有 ImageMagick 加持可以打开更多格式
- gnuplot:不用说了,绘图必备,为了配合 x11 可能要安装 gnuplot-x11
- htop:靠谱的任务管理器
- wget:下载工具,预装
- grep:正则匹配工具,预装
- lammps:分子动力学程序包,作为学材料的怎么能不会用呢Orz
真正的鬼畜软件
最后为了改善对于命令行的刻板印象,可以使用一下这些软件……
- lolcat:更漂亮的cat
- nynacat:彩虹猫屏保
- figlet:Ascii艺术字
- Asciinema:控制台录像
- nsnake:贪吃蛇!
- sudoku:数独!
- w3m:纯文本的浏览器!
- tpp:纯文本的PPT!
- 其实aptitude里有一个扫雷
- 还有一头大象