0%

Bash On Windows beta版食用笔记

前言

微软于今天发布了Windows一周年版(RS1,1607版,10.0.14393,版本名真多),其中我感兴趣的就是Bash On Windows这个功能了,这个就是Windows内嵌了一个Linux子系统,只不过目前还是beta版,所以和原生的Ubuntu功能上有些缺陷,不过大部分软件都是可以正常使用的,启动这个功能的方式网上一大堆,这里就不再赘述了。只是有个小坑,开启bash功能后,需要在cmd或powershell里输入bash,它会下载一个镜像文件完成初始化工作,此时它会提示“正在从 Windows 应用商店下载…”,如果你在用一些小运营商的宽度,会立即显示“无法从 Windows 应用商店下载。请检查网络连接。”,然而我打开应用商店却能正常下载应用啊。

而事实上它并不是从Windows应用商店上下载的,而且通过访问这里,跳转到微软的一个CDN上,而这个CDN并没有国内节点(我写这篇文章的时候,微软已经把那个链接跳转到Ubuntu网站了,然而依旧没有国内节点),所以你懂得,而解决办法也很简单,给IE设置个代理就可以了,这个包大小为180.02MB,而且微软的下载机制没有考虑到断点续传,so有一点网络波动,你就得重下(我不会告诉你我下了十几次,真坑啊)。

换源

之后你从cmd或者ps里输入bash就可以进入Linux子系统啦,后面的操作就和你用ubuntu一模一样,比如你用ubuntu一般都会换源的吧,默认镜像是14.04的,你按照同样的方法就可以换源了。(其实你直接通过修改sources.list就能从14.04升级到16.04了,不过我在BashOnWindows的issue里看到有人升级会出问题,虽然有解决方法,但是我感觉微软工程师应该是基于14.04进行开发的,所以建议没必要不要升级大版本,除非微软推送镜像包)

1
2
sudo sed -i 's/archive.ubuntu.com/mirrors.163.com/g' /etc/apt/sources.list
sudo sed -i 's/security.ubuntu.com/mirrors.163.com/g' /etc/apt/sources.list

取消系统提示音

如果你进入shell没有输入认识内容,直接按回车,就会触发系统提示音,反正我觉得这个声音听起来挺烦的,你可以输入:

1
sudo echo "set bell-style none" >> ~/.inputrc

但是这个不能取消掉VIM里的提示声,你可以选择关闭系统声音,按照如下步骤:打开控制面板——>打开硬件和声音——>打开声音——>选择声音——>修改关键性停止的声音方案,来取消提示音。

美化

如果你以后经常用这个子系统,那么肯定不能忍受cmd的字体和配色,我之前用cygwin时喜欢用cmder,但是cmder和bash.exe不兼容,如果你直接输入bash,那么进入子系统后将无法使用方向键和Home/PageUp/PageDown等键,需要输入下面的命令进入bash

1
%windir%\system32\bash.exe -cur_console:p1

你可以把这个命令加入cmder的启动项里 我个人习惯用zsh了,而进入这个子系统必须先进入bash(这背后一定有交易,手动滑稽),所以启动项里多了个zsh的切换命令。

PS:这个子系统的文件系统和Windows是融合的,进入bash后默认路径为你的用户文件夹内(/mnt/c/Users/Shura),所以你每次下载时确保当前目录在home目录(~)下,否则你可以会发现你把文件下载到Windows分区里了-XD

8月7日更新

感谢 @Snapsisy的方法,输入bash ~即可从~启动bash,不用再切换目录了。

1
%windir%\system32\bash.exe ~ -cur_console:p1

最后Show一下