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. sql server 高可用故障转移(2)

    添加网卡心跳线 目标: 二台sql服务器需要添加网卡心跳线,用于sql server内部数据传输 计算机名 Ip信息 心跳线 Hsr1 192.168.2.50    (ipv4 ip) 255.25 ...

  2. Ubuntu软件中心的完全启用

    新安装的Ubuntu英文版如果不做配置是无法使用Ubuntu软件中心下载或安装软件的,本文就简单介绍一下安装完Ubuntu后该做哪些配置才能完全启用Ubuntu软件中心. 安装完Ubuntu后我们要对 ...

  3. 【基于url权限管理 shiro(一)】--基础

    只要有用户参与的系统一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源.权限管理包括用户认证和授权两部分.   用户认证 1.概 ...

  4. Spring Security-- 验证码功能的实现

    spring security4 添加验证码 http://www.itwendao.com/article/detail/165400.html http://www.itdadao.com/art ...

  5. Markdown 编辑器语法 专题

    基本技巧 代码 如果你只想高亮语句中的某个函数名或关键字,可以使用 `function_name()` 实现 通常编辑器根据代码片段适配合适的高亮方法,但你也可以用 ```(tab键上的符号,要从每行 ...

  6. redis基础操作~~数据备份与恢复、数据安全、性能测试、客户端连接、分区

    数据备份与恢复 数据备份redis save 命令用于创建当前数据库的备份. redis 127.0.0.1:6379> SAVE OK 该命令将在 redis 安装目录中创建dump.rdb文 ...

  7. segment.go

    package sego // 文本中的一个分词 type Segment struct {     // 分词在文本中的起始字节位置     start int     // 分词在文本中的结束字节 ...

  8. 【BZOJ 4652】【NOI 2016】循环之美

    题目连接: 传送 题解: 真是一道好题…… 一: 一个分数$\frac{x}{y}$完全循环当其第一次出现时,当且仅当y与k互质,x与y互质,且y不等于1. 整数情况下y一定为1,即也满足以上判断. ...

  9. HEOI2018 游记

    day0早上没有跑操,收拾了点东西,带了点吃的,老妈打电话说要给送点厚衣服,好像确实有点冷.上午有考试,说自愿考,然后开到一半就没了,根本没人打啊,打了一道小园丁和老司机,一个一个部分分打,最后T了一 ...

  10. python 备份文件脚本

    使用python备份服务器的文件 #coding=utf- import os import os.path def copyFiles(sourceDir, targetDir): for file ...