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吧的更多相关文章

  1. Bash On Win10 (WSL) 安装 Odoo 开发环境

    前段时间微软发布了Bash On Win10,虽然目前还是Beta阶段,但是一想到再也不用折腾虚拟机上跑odoo了,就忍不住手痒,尝试在WSL上安装了一下odoo,结果比较惊喜,感觉可以抛弃Vitru ...

  2. 推荐一款好用的WSL终端模拟器

    Windows 10 中包含了一个 WSL(Windows Subsystem for Linux)子系统,我们可以在其中运行未经修改过的原生 Linux ELF 可执行文件.利用它我们可以做很多事情 ...

  3. Win10 Bash/WSL调试Linux环境下的.NET Core应用程序

    一.简介 使用过Mac OS的程序员都知道,在Mac Book Pro上写程序是一件比较爽的事儿,作为dotneter,我们都比较羡慕Mac系统的环境,比如命令行,当然设备也是挺漂亮的. 在新的Win ...

  4. 关于WSL(Windows上的Linux子系统)的介绍

    WSL,Windows Subsystem for Linux,就是之前的Bash on [Ubuntu on] Windows(嗯,微软改名部KPI++ 首先要说一句,其实Windows 10在一周 ...

  5. 利用 WSL 在 Windows下打造高效的 Linux 开发环境

    WSL-Windows Subsystem for Linux 介绍 The Windows Subsystem for Linux lets developers run Linux environ ...

  6. 微软为.NET程序员带来了最优的跨平台开发体验-WSL

    前言 在前几个Visual Studio Code更新中发现有一个重要得特性,就是nodejs可以使用VS Code在WSL中进行Debug了(WSL是指Win10中的Linux子系统),之前写过一篇 ...

  7. Windows Sublime Text 配置Linux子系统(WSL)下的 gcc/g++ 编译环境

    0. 简介(若已了解背景可以跳过此部分) Windows 10 Build 14316以上版本中加入了"Windows系统的Linux子系统"(Windows Subsystem ...

  8. Windows Subsystem for Linux (WSL)挂载移动硬盘U盘

    WSL想通过移动硬盘处理一些数据,结果进去了无法发现移动硬盘,于是搜了好久也没有一个正确的解决办法,终于找到一个,现在贡献出来与大家共享. WSL比起linux挂载硬盘简单一些.而且windows本身 ...

  9. WSL与Windows交互实践

    1. WSL是什么 2. WSL新特性 3. WSL管理配置 4. WSL交互 5. 解决方案  * 5.1 使用别名  * 5.2 多复制一份  * 5.3 重定向  * 5.4 symlink 6 ...

  10. WSL Windows Subsystem for Linux安装指南

    见官方文档: https://msdn.microsoft.com/en-us/commandline/wsl/install_guide

随机推荐

  1. 使用Spring Session实现Spring Boot水平扩展

    小编说:本文使用Spring Session实现了Spring Boot水平扩展,每个Spring Boot应用与其他水平扩展的Spring Boot一样,都能处理用户请求.如果宕机,Nginx会将请 ...

  2. 配置服务器nginx 教程

    https://www.cnblogs.com/wangzhongqiu/p/6527346.html

  3. Layer组件多个iframe弹出层打开与关闭及参数传递

    一.Layer简介 Layer是一款近年来备受青睐的web弹层组件,基于jquery,易用.实用,兼容包括IE6在内的所有主流浏览器,拥有丰富强大的可自定义的功能. Layer官网地址:http:// ...

  4. Prometheus运⾏框架介绍

    框架结构的展⽰图 • 我们先来看下这个部分 这⾥是 prometheus的服务端也就是核⼼ prometheus本⾝是⼀个以进程⽅式启动,之后以多进程和多线程实现监控数据收集 计算 查询 更新 存储 ...

  5. 使用Eclipse远程调试

    在一般的开发中,有事因为项目需要,测试环境是在Linux下,这是如果出现异常或者bug,调试起来都是很费劲的,如果你还在为这个头疼,那就好好看接下来的总结 1,启动改程序时,不论是脚本启动,还是tom ...

  6. LOJ_6178_景区路线规划

    LOJ_6178_景区路线规划 题意: 游乐园被描述成一张 nnn 个点,mmm 条边的无向图(无重边,无自环).每个点代表一个娱乐项目,第 iii 个娱乐项目需要耗费 cic_ic​i​​ 分钟的时 ...

  7. 深入剖析最新IE0day漏洞

    在2018年4月下旬,我们使用沙箱发现了IE0day漏洞;自从在野外发现上一个样本(CVE-2016-0189)已经有两年多了.从许多方面来看,这个特别的漏洞及其后续的开发比较有趣.下一篇文章将分析最 ...

  8. C# 在异步线程操作类的变量

    如下代码: public partial class Form1 : Form { public Form1() { InitializeComponent(); } public string Me ...

  9. Postman----模拟服务器返回数据

    使用场景:在某些情况下,比如A接口还没开发好,我们需要测试B接口,刚好B接口的请求数据中需要包含A接口返回的数据,这时我们就可以模拟A接口服务器返回的数据来测试B接口 解决办法: 举例:模拟此 htt ...

  10. Python调用ansible API系列(四)动态生成hosts文件

    方法一:通过最原始的操作文件的方式 #!/usr/bin/env python # -*- coding: utf-8 -*- """ 通过操作文件形式动态生成ansib ...