使用WSL吧
WSL(Windows Subsystem for Linux)已经装在电脑上好一阵子了,谁如果还没装的,可以看看本文,至少知道个大概,觉得有用的话知道该如何做。
简介
WSL简单说就是一个能让你在Windows上跑Linux程序的子系统,什么是子系统?贴个图:

其实我们一直在用子系统,它就是Windows子系统,它提供了一系列我们的Windows应用程序所需要的接口,是子系统将对这些接口的调用转变为对Windows内核的调用,才使得我们的应用程序能够正常运行,现在多了一个WSL,它能把Linux程序对各系统接口的调用转变为对Windows内核的调用,因此,Linux应用程序可以在Windows系统里跑起来了。Cool!反过来,我能不能在Linux系统里弄一个类似的东西跑Windows程序呢?其实这东西早就有了,叫“Wine”,自己去查。
是虚拟机吗?
不是,说了,是子系统,Linux程序与原生Windows程序是并列的。虚拟机与系统彼此隔离,而子系统并不隔离,文件系统可以互访,共用IP地址。还有一点很重要:WSL的资源消耗比虚拟机小得多,你装上了也不会觉得系统变慢。
是真正的Linux吗?
Linux的定义是什么?Mac OS X是不是Linux?其实我个人觉得不用太纠结这种问题,WSL用的显然是Windows内核,但它具有相当完整的Linux系统的功能,能够运行几乎所有的Linux程序,它肯定是*真正*的Linux,你甚至可以选择不同的发行版,呃,所谓发行版就是Ubuntu,CentOS,Fedora之类的。
用它干点啥?
当然是可以使用Linux上各种强大的工具了,比如ssh,你不用再纠结去哪里下个Windows版之类的了,各种牛X的工具,想要什么,apt-get一下,信手沾来,Linux下那些酷炫的shell命令,现在全都供你差遣,当然你还可以轻轻松松用几个命令搭建一台Web服务器,总而言之,比Windows的命令行界面(现在还有人称之为DOS)高不知哪去了。
没什么限制吗?
有,由于它用的是Windows内核,我第一反应就是依赖于Linux内核的CGroups功能的Docker应该是没戏(但也不排除以后会支持,微软daddy太强大),Windows下搞Docker还是老老实实用虚拟机吧。另外,微软官方说了,WSL不太适合用来当生产环境的服务器,因为它本来就不是为这个设计的,生产环境的服务器还是用Linux虚拟机吧。
如何开始?
哈,想行动了吧?我才不会再写一套“教程”呢,目前网上一搜一大把了。不过我还是推荐一下:你在应用商店里搜“WSL Guideline”,这个是一个不错的向导,你看这个好了。

选什么发行版?
目前应用商店有以下这些发行版:

我工作用的Linux发行版是CentOS7.4,这里居然没有,网上有攻略如何安装任意发行版的Linux,但我懒得折腾了,直接选了个Ubuntu,其实大同小异,不同发行版无非就是一些目录及软件包的区别,习惯以下就好了,比如我习惯用yum,Ubuntu默认没有安装,用apt-get装上就行了,其它同理。
跟Windows如何互访?
Linux访问Windows很简单,Windows的C盘会挂到“/mnt/c”去,同理还有“/mnt/d”和“/mnt/e”等,这里面的文件可以直接读写;反过来就有点麻烦,Linux的文件其实是在这个目录下:
%LOCALAPPDATA%\Packages\{Linux发行版}\LocalState\rootfs
(Linux发行版在我这里是CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc)
这个目录一来藏得比较深,二来你尝试直接在Windows里把文件复制到这个目录的话,Linux是读不出来的,所以要共享文件的话还是用Windows的文件系统吧。
root密码是什么?
默认用户是你自己windows的账号,root用户默认没有密码,你来改一下吧:sudo passwd
下一步
其实我也不知道,我只知道它好用,至于要玩得多酷炫我并不在行。比如图形界面,这个是很酷啊,但我觉得图形界面还是Windows的好,Windows图形界面甩KDE/Gnome N条街。再说了,这并不作为我们工作的内容,所以接下来你自己看着办。
使用WSL吧的更多相关文章
- Bash On Win10 (WSL) 安装 Odoo 开发环境
前段时间微软发布了Bash On Win10,虽然目前还是Beta阶段,但是一想到再也不用折腾虚拟机上跑odoo了,就忍不住手痒,尝试在WSL上安装了一下odoo,结果比较惊喜,感觉可以抛弃Vitru ...
- 推荐一款好用的WSL终端模拟器
Windows 10 中包含了一个 WSL(Windows Subsystem for Linux)子系统,我们可以在其中运行未经修改过的原生 Linux ELF 可执行文件.利用它我们可以做很多事情 ...
- Win10 Bash/WSL调试Linux环境下的.NET Core应用程序
一.简介 使用过Mac OS的程序员都知道,在Mac Book Pro上写程序是一件比较爽的事儿,作为dotneter,我们都比较羡慕Mac系统的环境,比如命令行,当然设备也是挺漂亮的. 在新的Win ...
- 关于WSL(Windows上的Linux子系统)的介绍
WSL,Windows Subsystem for Linux,就是之前的Bash on [Ubuntu on] Windows(嗯,微软改名部KPI++ 首先要说一句,其实Windows 10在一周 ...
- 利用 WSL 在 Windows下打造高效的 Linux 开发环境
WSL-Windows Subsystem for Linux 介绍 The Windows Subsystem for Linux lets developers run Linux environ ...
- 微软为.NET程序员带来了最优的跨平台开发体验-WSL
前言 在前几个Visual Studio Code更新中发现有一个重要得特性,就是nodejs可以使用VS Code在WSL中进行Debug了(WSL是指Win10中的Linux子系统),之前写过一篇 ...
- Windows Sublime Text 配置Linux子系统(WSL)下的 gcc/g++ 编译环境
0. 简介(若已了解背景可以跳过此部分) Windows 10 Build 14316以上版本中加入了"Windows系统的Linux子系统"(Windows Subsystem ...
- Windows Subsystem for Linux (WSL)挂载移动硬盘U盘
WSL想通过移动硬盘处理一些数据,结果进去了无法发现移动硬盘,于是搜了好久也没有一个正确的解决办法,终于找到一个,现在贡献出来与大家共享. WSL比起linux挂载硬盘简单一些.而且windows本身 ...
- WSL与Windows交互实践
1. WSL是什么 2. WSL新特性 3. WSL管理配置 4. WSL交互 5. 解决方案 * 5.1 使用别名 * 5.2 多复制一份 * 5.3 重定向 * 5.4 symlink 6 ...
- WSL Windows Subsystem for Linux安装指南
见官方文档: https://msdn.microsoft.com/en-us/commandline/wsl/install_guide
随机推荐
- Java 面试知识点解析(五)——网络协议篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- Windows上使用Git托管代码到Coding
作者:荒原之梦 Git简介: Git是一款分布式版本控制系统,可用于项目的版本管理.Git可以管理本地代码仓库与远程代码仓库间的连接以及进行版本控制,使得我们可以在本地离线进行修改等操作,之后再将代码 ...
- mybatis通用mapper的使用
项目中持久层封装了两套,一个hibernate,一个是mybatis.hibernate中封装了一些通用的方法,但是mybatis中没有,基于这个需求开始使用mybatis的通用mapper. ...
- web页面测试
一.Web的功能测试 1.超链接测试 a.链接与链接的说明文字要匹配 (注:也可以是图片) b.链接的文字要描述正确 c.链接的文字要精简有效 d.链接 ...
- 跟我学ASP.NET MVC之五:SportsStrore开始
摘要: 这篇文章将介绍一个ASP.NET应用程序SportsStore的开发过程. 开始 创建解决方案 创建工程 在New ASP.NET Project - SportsStore窗口中,选择Emp ...
- Python实现Telnet自动连接检测密码
最近在学习Python网络相关编程,这个代码实现了Telnet自动连接检测root用户密码,密码取自密码本,一个一个检测密码是否匹配,直到匹配成功,屏幕输出停止. Python内置了telnetlib ...
- Python3 venv 创建虚拟环境
简介 Python3.3以上的版本通过venv模块原生支持虚拟环境,可以代替Python之前的virtualenv. 该venv模块提供了创建轻量级"虚拟环境",提供与系统Pyth ...
- python3.5中,import sqlite3 出现 no module named _sqlite3的解决方法
我用的centos7.2,系统自带python2.7. 我自己装了python3.5,但在导入sqlite3这个包的时候出现找不到包的错误. 下面给出解决方法. 第一种: 检查自己有没有安装sqlit ...
- 前端BUG监控神器
有时候,看到用户的反馈,我们往往会一脸茫然,因为反馈的信息太少了. 比如有用户反馈登录不了.为了解这个问题,一般的流程是这样的:首先试试自己能不能登录网站,发现没问题:然后查看后台日志,发现最近没有登 ...
- Instrumentation(1)
Instrumentation介绍: JavaInstrumentation指的是可以用独立于应用程序之外的代理(agent)程序来监测和协助运行在JVM上的应用程序.这种监测和协助包括但不限于获取J ...