WSL,Windows Subsystem for Linux,就是之前的Bash on [Ubuntu on] Windows(嗯,微软改名部KPI++),在wsl环境下我们可以运行一些Linux程序。

首先要说一句,其实Windows 10在一周年更新(1607,内部版本14393)的时候就加入了wsl,但是直到刚刚更新的秋季创意者更新(1709,内部版本16299),wsl才正式脱离beta,逐渐趋于稳定,所以我选择这个时候再写这篇文章。以下内容都是基于秋季创意者更新(1709,内部版本16299.19)。

接下来,我们正式介绍并安装wsl。

Windows Subsystem for Linux(简称WSL)是一个为在Windows 10上能够原生运行Linux二进制可执行文件ELF格式)的兼容层。它是由微软Canonical公司合作开发,目标是使纯正的Ubuntu 14.04 "Trusty Tahr"映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。[1][2][3]

WSL提供了一个微软开发的Linux兼容内核接口(不包含Linux代码),来自Ubuntu的用户模式二进制文件在其上运行。[4]

该子系统不能运行所有Linux软件,例如那些图形用户界面,以及那些需要未实现的Linux内核服务的软件。[5]不过,这可以用在外部X服务器上运行的图形X Window系统缓解。[6]

此子系统起源于命运多舛的Astoria项目,其目的是允许Android应用运行在Windows 10 Mobile上。[5]此功能组件从Windows 10 Insider Preview build 14316开始可用。[7]

——维基百科

    首先打开设置,进入应用,选择程序和功能,点击启用或关闭Windows功能,勾选适用于Linux的Windows子系统,接下来重启。

在beta的时候我们需要在powershell里面输入bash才能下载wsl,而且没有国内下载节点,不支持断点续传,所以一旦网络不稳定就废了。在1709版本的Windows10中,我们可以去商店搜索Ubuntu来下载,现在不但有Ubuntu,还有SUSE和openSUSE。(在Windows商店里下载Ubuntu是不是感觉很诡异w(゚Д゚)w

安装完成之后我们就可以进行折腾了,有人可能会好奇那如何使用windows上的文件呢?其实windows的目录全部挂载在/mnt这个目录下,我们可以在/mnt/c目录下看到c盘的各种文件。好了,先运行一下screenfetch来看看。

作为一个java web developer,常用的大概就是ssh,git,jdk,tomcat,nginx等等。我们一一来测试一下。

SSH

我们可以看到ssh远程连接可以正常使用,所以嘛putty或者xshell这种东西可以卸载了(逃

Git

git的各种命令也很正常。

JDK

    接下来测试jdk,我们来编译一小段代码试试看,可以看到jdk也没什么问题。

Tomcat&Nginx

    我们启动tomcat,然后在Edge浏览器里面访问,便可以看到tomcat的默认首页,是不是很神奇?当然nginx也是没有问题的。

另外,gcc和clang经过测试也可以使用,这里就不再展示了。

据说大神们已经可以在wsl上运行图形化的Linux程序了,这点我没有测试过,有兴趣的小伙伴可以自行折腾。

那如果我们把wsl里面的环境折腾乱掉怎么办?得益于Windows商店的好处,我们只要卸载并重新在商店下载即可。

最后,我认为wsl对windows平台的开发者绝对是重大利好,一方面,一部分linux上好用的工具也可以在windows平台上使用了,另一方面,在windows上开发好的程序可以直接部署到wsl上测试,这样就能保证开发环境和生产环境尽可能的相似。好了,Enjoy it!

(btw,贴几个wsl的相关资料,感兴趣的小伙伴自行阅读研究。

release notes:

https://msdn.microsoft.com/en-us/commandline/wsl/release_notes

WSL团队的blog:

https://blogs.msdn.microsoft.com/wsl/

issue tracker:

https://github.com/Microsoft/BashOnWindows/issues

关于WSL(Windows上的Linux子系统)的简单介绍及安装的更多相关文章

  1. WSL(Windows上的Linux子系统)

    WSL(Windows上的Linux子系统) WSL,Windows Subsystem for Linux,就是之前的Bash on [Ubuntu on] Windows(嗯,微软改名部KPI++ ...

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

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

  3. Windows下的Linux子系统安装,WSL 2下配置docker

    Windows下的Linux子系统安装,WSL 2下配置docker 前提条件: 安装WSL 2需要Windows 10版本是Build 18917或更高,首先先确认系统版本已升级. 在“启用或关闭W ...

  4. Windows10上使用Linux子系统(WSL)

    Linux的Windows子系统让开发人员可以直接在Windows上运行Linux环境(包括大多数命令行工具,实用程序和应用程序),而无需建立在虚拟机的开销之上,整个系统共200多M,但包含了你能用到 ...

  5. WSL(Windows Subsystem for Linux)的安装与使用

    有关WSL的介绍这里就不做解释了.另外,本文仅适用于win10 build 16215以及之后的版本,之前的版本可参考官方链接. (可使用“winver”命令查看windows版本号) 安装: 1.  ...

  6. Windows上使用Linux命令

    WSL Windows Subsystem for Linux(简称WSL)是一个在Windows 10上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层.它是由微软与Canonical公 ...

  7. Windows 10 下 Linux 子系统的安装和使用

    介绍 适用于 Windows 的 Linux 子系统(英语:Windows Subsystem for Linux,简称 WSL)是一个为在 Windows 10 和 Windows Server 2 ...

  8. windows 下使用Linux子系统

     在 Windows 上进行 web 开发,比较普遍的方案是使用 phpstudy 或者别的一些集成环境软件进行环境搭建,写好代码后将代码上传至版本管理工具 git/svn,再将代码同步到 Linux ...

  9. 在Windows上运行Linux

    在Windows上运行Linux 之前了解过一些适用于linux的Windows子系统,最近又听人提起,于是在自己的Windows 10专业版上安装了一个Ubuntu.运行起来还真方便,以后在wind ...

随机推荐

  1. Java的Date类与Calendar

    一.Date类 在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理.这里简单介绍一下Da ...

  2. Beta阶段——Scrum 冲刺博客第一天

    一.当天站立式会议照片一张 二.每个人的工作 (有work item 的ID),并将其记录在码云项目管理中 昨天已完成的工作 今日是Beta冲刺第一天,昨日没有完成的工作 今天计划完成的工作 实现对i ...

  3. python单链表

    #!/usr/bin/env python3 # -*- coding:utf-8 -*- class LNode: """ 结点类 """ ...

  4. python分布式爬虫打造搜索引擎--------scrapy实现

    最近在网上学习一门关于scrapy爬虫的课程,觉得还不错,以下是目录还在更新中,我觉得有必要好好的做下笔记,研究研究. 第1章 课程介绍 1-1 python分布式爬虫打造搜索引擎简介 07:23 第 ...

  5. npm run build之后生成的dist如何扔到服务器运行(npm run build之后如何本地运行)

    运行npm run build之后,会生成一个dist文件夹,里面的目录结构大概是这样的: 生成完的文件我们怎么来运行呢?直接在本地打开inde.html是无法运行的,打包的时候有提示: 构建文件应该 ...

  6. Xshell基础入门

    启动 双击快捷方式,启动 新建回话 建立连接 在这里需要填写的是: 1. 连接名称 2. 服务器IP 3. 服务器端口(默认22) 填写完毕后,点击确定,保存配置,回到连接页面,可以看到多了一个测试服 ...

  7. easyUI-textbox回车获取不到正确的textbox值问题

    //要先给文本框手动赋值之后才可以获取正确的文本框内容 var t = $('#tt'); t.textbox('textbox').bind('keydown', function(e){ if ( ...

  8. JavaMelody - 常用配置

    一直没怎么关注javaMelody这个东西. 自己写东西的时候想弄点监控,于是把javaMelody装进去了. 看了文档几乎全是法语,在此记录一些常用的配置. 首先依赖添加如下: <depend ...

  9. nginx+tomcat实现Windows系统下的负载均衡搭建的案例

    刚入行没多久就听过‘负载均衡’的大名,到现在因为工作接触的少,所以没什么太多的认识.但自己又对其非常的好奇,所以前两天通过查资料,在自己的笔记本上就搭建了一个超简单的案例(工作中没有时间,晚上到家了条 ...

  10. javaSE——字节流

    IO流:InputStream/OutputStream 字节流:         文件输出流 :内存 ——>文件 文件输入流 :内存<——文件 应用             文件输入/出 ...