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. MySQL,简单了解下、

    第一章 数据备份与导入导出 1.1.备份基本概念介绍 1.2.mysqldump详解 1.3.mydumper浅析 1.4.MySQL物理备份基本操作 1.5.了解mysqlpump工具 1.6.数据 ...

  2. 架构选型之Nodejs与Java

    前言: 身边越来越多的同事谈论Nodejs,谈其异步IO.事件回调.前后台统一一门语言,创业的朋友的第一个创业项目也选择了Nodejs,期望能够使用一种语言节省成本快速完成需求开发.与其他项目组的同事 ...

  3. 详解Linux文档属性、拥有者、群组、权限、差异

    写在前面 我们都知道Linux是一个支持多用户.多任务的系统,这也是它最优秀的特性,即可能同时有很多人都在系统上进行工作,所以千万不要强制关机,同时,为了保护每个人的隐私和工作环境,针对某一个文档(文 ...

  4. Mongodb---操作备忘

     mysql/mongodb对比 CREATE TABLE USERS (a Number, b Number) Implicit or use MongoDB::createCollection() ...

  5. python使用随机的163账号发送邮件

    import linecache import smtplib import time import linecache import random #算出txt的行数,163账号_2.txt中,每一 ...

  6. 关于Kafka监控方案的讨论

    之前在知乎上尝试过回答这个问题,后来问的人挺多,干脆在博客里面保存一下. 目前Kafka监控方案看似很多,然而并没有一个"大而全"的通用解决方案.各家框架也是各有千秋,以下是我了解 ...

  7. 安卓----Spinner

    <?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android=" ...

  8. engine_init_options.go

    package ) type {         options.PersistentStorageShards = defaultPersistentStorageShards     } }

  9. nsqlookup_protocol_v1.go

    , atomic.LoadInt64(&client.peerInfo.lastUpdate))         now := time.Now()         p.ctx.nsqlook ...

  10. BZOJ_3196_Tyvj 1730 二逼平衡树_树状数组套主席树

    BZOJ_3196_Tyvj 1730 二逼平衡树_树状数组套主席树 Description 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作: 1.查询k在区间内的排 ...