Linux on Windows简介
Win10一周年版推出了用于Windows的Linux子系统这一功能,最近体验了一下感觉极佳。不说别的,有一个完整的Linux环境就可以完爆一切bash环境了,痛快地卸载了Git for Windows/Cygwin/minGW/msys/babun吧!
Linux子系统和Windows的结合真是有一种神互补。子系统可以挂载windows的文件系统,于是就可以在现有的文件系统下干一个完整的Linux环境所能干的事情。软件丰富更适合日常使用的Windows与开源且适合开发的Linux结合使得开发更加简便,不用再考虑双系统虚拟机这种效率不高的结合方式了,Linux on Windows用一种应用软件的方式实现了系统软件的功能,这一点可以说让人惊艳了。重要的是这样同时运行的两个系统并不是相互独立的,而是可以协作的,以后完全可以使用Windows下的工具进行编码,然后在Linux子系统进行Git提交,当然,它所能够发挥的作用远远不仅于此。
如何启用
启用Linux子系统
启用开发者模式
系统模式的设定位于所有设置->更新和安全->针对开发人员, 更改后如下:
更改系统功能
使用win+X快捷键调出系统管理菜单后点击程序与功能,选择启用或关闭Windows功能,修改“适用于Windows的Linux子系统一项”,勾选之,确认并重启。
安装系统
使用cmd下载Linux系统。打开功能以后系统中其实还没有安装Linux,需要使用cmd完成安装,这一步可能比较漫长。如果PC中已经安装了bash工具如msys(git for Windows),打开管理员权限的cmd,输入bash,按照提示一步一步下载即可。下载的过程比较漫长,耐心等待。
下载完成以后配置用户名密码即可愉快地使用ubuntu啦!
启用root权限并建立用户
接下来可以输入sudo passwd root建立root用户(最高权限)。如果需要的话可以再使用adduser username建立一个新user(不建议使用useradd), 用户的切换通过suusername完成。
切换到root用户输入su即可。
完成升级
启用了root用户,接下来操作就比较方便了,先使用su切到root用户,然后直接使用apt-get完成软件包的升级。(apt-get update和apt-get upgrade)。
如果升级过程中出现连接错误(__Assertion__、method dies),先把命令再输一次试试。如果cmd保持一个类似于死机的状态太久(比如20分钟),先按一次ctrl+C试试。
基本配置
修改源
源的修改有两种方式:
通过修改源列表;
通过apt-add-repository命令。
源列表文件位于/etc/apt/sources.list,可以使用vim直接完成修改,建议先保存原文件cp /etc/apt/sources.list /etc/apt/sources.list.backup,然后再使用vim编辑,将找到的源直接加在列表后面。使用cmd开vim比较方便的在于可以直接将系统剪贴板的内容帖进去。在插入模式下(按i进入)将光标移到合适的位置,然后鼠标右键点击cmd标题栏,编辑->粘贴即可。修改完成以后按Esc退出插入模式,输入:x并回车保存并退出。完成以后可以apt-get update和apt-get upgrade来一次。
升级系统
输入lsb_release -a可以看到当前的系统版本为:ubuntu 14.04.4 LTS, 最新版本为16.04.1 LTS, 可以更新一下。
- apt-get install update-manager安装更新管理器;
- do-release-upgrade -f DistUpgradeViewNonInteractive -d完成更新。
如果上述步骤没有达到更新效果,可以再尝试以下步骤:
- dpkg --configure -a
- apt-get update,更新包列表,这一步可能会询问是否继续,YES即可。
- apt-get upgrade,升级软件包;
- apt-get dist-upgrade,完成升级;
- apt-get autoremove,自动删除不需要的包。
如果遇到网络问题,参照完成升级,解决。完成以后再输入lsb_release -a就是金光闪闪的16.04啦~
优雅地使用
使用zsh
ubuntu的默认shell使用bash,但是外观不太好看而且功能不够强大。zsh是一个相对好用一点的shell,可以使用zsh替换默认shell。
使用步骤
安装zsh
1 |
$ apt-get install zsh |
安装wget和git
1 |
$ apt-get install wget git |
执行oh-my-zsh配置脚本
1 |
$ wget --no-check-certificate https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh |
替换默认shell
1 |
$ chsh -s /bin/zsh |
到这里zsh的安装就完成啦,可以关闭命令行然后重新输入bash进入Linux,然后输入su登录root账户查看效果。这时可以输入echo $SHELL查看当前的shell版本。
注意:输入bash进入Linux后其实是一种未登录的状态,需要输入su username切换到指定用户才能正常使用。
zsh配置
尽管zsh非常强大,但是默认设定还是不够完美,可以通过修改/root/.zshrc文件完成配置的更改,修改完成以后输入source /root/.zshrc即可查看效果。
zsh的主题可以在这里找到,修改文件中的ZSH_THEME="robbyrussell"即可更改主题。不过由于cmd本身使用单个字体文件显示字符,所以一些很漂亮的主题可能不太好用,建议选择没有太多特殊符号的主题。由于zsh的配置其实是一件非常有趣的事情,故其包含的内容也非常多,这里就不多说了。
cmd设定
尽管zsh非常漂亮,但是在cmd中的显示依然要通过cmd的支持,所以建议对cmd也进行一些修改,右键标题栏->默认值可以设定默认属性,属性项里的设定可以设定本次会话的显示效果。cmd默认使用点阵字体,但是不太好看,推荐使用TrueTypeFont字体。下载好TrueTypeFont字体文件并安装后如果在cmd中无对应选项,可以修改注册表中关于concole的设定。
找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont\添加项即可。如添加000项,值为要添加的字体名。
更好的选择
推荐使用cmder代替cmd,外观极美的一个命令行工具,关键字高亮、配色和字体都很棒,可定制性很强。不过在cmder中使用Linux on Windows只有登陆后才能正常使用,登录前(输入bash而未切换到具体用户)甚至没有关键字高亮和命令重复的支持。
此外,cmder还提供了对mintty/poweshell等的支持。很优雅~
使用cmder时可以新建一个空的task,在start-up的框中填入bash.exe即可。这样可以避免历史命令文件的读取异常,保证正常使用上下键回看历史命令。不过由于cmder对vim的支持不太好,可能会有方向键的问题。解决方法如下:在框中填入%windir%\system32\bash.exe ~ -cur_console:p:n即可。界面如下:
如果遇到vim的visual block模式无法进入的问题,在设置中关闭Ctrl+v的粘贴功能就好:settings->keys¯o->paste->paste mode #2->do nothing。
进阶
w2qw 提供了一种通过bash运行图形界面软件的方法。主要步骤如下:
在Linux中安装图形界面的程序(如Firefox)
在Linux中输入DISPLAY=:0 firefox)。
有兴趣可以体验一下~