文章目录
  1. 1. 为什么要用这个玩意?
  2. 2. 安装Ubuntu子系统
  3. 3. 配置Ubuntu子系统
    1. 3.1. 帮助系统
    2. 3.2. 软件的安装
    3. 3.3. 常用软件
    4. 3.4. 系统汉化
    5. 3.5. 颜色配置
  4. 4. git配置
  5. 5. 创造GUI
  6. 6. 鬼畜软件
    1. 6.1. 常用软件
    2. 6.2. 真正的鬼畜软件

前几天看到Windows周年更新加入了一项有趣的功能:在Windows下安装一个Ubuntu子系统。正好想试一下Linux环境,于是便折腾了一番。现在想起来要记录,发现有的东西已经记不清了,忘性还真是大啊。

为什么要用这个玩意?

因为……我手滑把自己的Ubuntu虚拟机毁了。折腾一遍虚拟机,不见得会用几次,还得占用十几G空间,不太划算。而这个子系统只相当于一个应用,不需要担心各种资源的分配;作为仅有CLI界面的系统,占据的空间也很小。并且Windows下的所有存储资源都可以被Ubuntu简单引用(/mnt路径下的e,f,g,h就对应着各个磁盘分区)。这样既可以享受优秀的终端应用,又可以在熟悉的Windows环境中进行其他操作。

当然缺点也是有的,作为一个新功能,它总是免不了有些bug;而且这种不常见的环境也就意味着遇到问题是不一定能Google到合适的解答。不过瑕不掩瑜,这还是值得一试的。

安装Ubuntu子系统

主要参考了Win10专业网的教程冬菇酱的教程以及Laptop的教程

首先,使用小娜(Windows10任务栏的搜索框)搜索“启用或关闭windows功能”,翻到对话框的最下面,勾选“适用于Linux的Windows子系统”(这个名字好像反了……)。之后如果要求重启,那就重启。

启用或关闭windows功能

启用或关闭windows功能

然后在设置->更新和安全->针对开发人员->使用开发人员功能下选择“开发人员模式”。这一步操作可能增大你的电脑面临的风险,请考虑后再做决定。等待设置完成。

开发人员模式

开发人员模式

对于这一步,记忆不很清晰了。应该是打开Microsoft Store,搜索“Ubuntu”即可打开这个窗口,选择一种安装(推荐Ubuntu)。

Microsoft Store

Microsoft Store

在一切就绪后,你就可以在开始菜单里找到Ubuntu的图标了(第一次使用可能要设置用户名和密码),而Ubuntu系统的根目录相对Windows的文件系统位于C:\Users\你的用户名\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs

配置Ubuntu子系统

帮助系统

面对各种指令一脸茫然?请教一下帮助系统吧。一般对于一条指令command,有以下两种方式获取帮助。

1
2
3
4
# 简短的帮助,直接打印在终端主窗口里
command --help
# 详细的文档,会另外显示
man command

还有一种“帮助系统”,那就是各位大佬的教程,比如这个

软件的安装

有一些系统自带了,没有的要自行安装,建议在安装之前先搜索一下,防止安错。

1
2
3
apt-cache search Software_name
# 从返回的列表中找到软件的正确名称
sudo apt-get install 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
2
LANG="zh_CN.UTF-8" 
LANGUAGE="zh_CN:zh:en_US:en"

这一步应该不是必须的,因为我后来发现我把environment拼错了,新建了一个文件……(我的英语真的好辣鸡啊.jpg)

颜色配置

外貌协会成员打卡。

其实这里完全就是用了Windows cmd的设置方式,就是在标题栏右键选择“属性”进行修改就可以了(最好只是选择颜色而不要修改颜色的值)。

控制台颜色

控制台颜色

不过之后发现,Ubuntu似乎对Windows的颜色排列方法有些……误解?大概Ubuntu的标准颜色是8种而非16种,所以我把它修改成了这样(也就是把前面几种颜色也改成了后面的):

Ubuntu颜色

Ubuntu颜色

背景最好用黑或白,不然可能出现背景和文字同色的情况。

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
2
3
4
5
6
7
cd /mnt/c/Windows/Fonts
sudo mkdir /usr/share/fonts/opentype
sudo mkdir /usr/share/fonts/opentype/Noto
sudo cp Noto* /usr/share/fonts/opentype/Noto
sudo chmod 744 /usr/share/fonts/opentype/Noto/Noto*

sudo fc-cache -fv

最好再安装一个 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里有一个扫雷
  • 还有一头大象
文章目录
  1. 1. 为什么要用这个玩意?
  2. 2. 安装Ubuntu子系统
  3. 3. 配置Ubuntu子系统
    1. 3.1. 帮助系统
    2. 3.2. 软件的安装
    3. 3.3. 常用软件
    4. 3.4. 系统汉化
    5. 3.5. 颜色配置
  4. 4. git配置
  5. 5. 创造GUI
  6. 6. 鬼畜软件
    1. 6.1. 常用软件
    2. 6.2. 真正的鬼畜软件