Windows Subsystem for Linux(WSL)安装记录
什么是WSL
Windows Subsystem for Linux(简称WSL)是一个为在Windows 10上能够原生运行Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,目标是使纯正的Ubuntu 14.04 "Trusty Tahr"映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行.
以上来自维基百科,简单的说WSL就是可以运行在Win10上的一个Linux子系统,有点类似于cygwin的那种。说白了,就是在win10装个小小Ubuntu。按照微软的说法,他可以给web开发者或者经常在开源项目上工作的人提供方便,同时提供Bash工具以及一些公共的Linux工具(如sed和awk)等。
对于使用ruby和Python这种Linux第一优先的语言也是不错的选择。
wsl相对于虚拟机的优势
相比于VMware等虚拟机,wsl占用内存和CPU资源更少,在wsl上运行软件的消耗和直接在Windows上差不多。
在wsl上可以直接操纵Windows上的文件资源,但是不推荐使用Windows工具反过来操作Linux文件。实际上在Windows磁盘里面是无法直接看到wsl的安装文件和根目录的。
wsl不能做什么
首先他不支持GUI桌面以及应用,如Gnome等。
同时,也不建议直接在上面部署Redis做稳定的服务器等。因为他有时会莫名的丢失文件之类的。
当然,自己平时练练手是没问题的。
安装
开启"Windows Subsystem for Linux" 可选特性
打开`PowerShell`,运行下面指令:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
或者通过控制面板的"启动或关闭Windows功能"选项来开启该特性。最后,重启系统。

安装wsl
首先,开启开发者模式。进入控制面板,
设置-->更新和安全-->针对开发人员-->打开开发人员模式进入
PowerShell,输入指令lxrun /install /y,网速不是很稳定。
注:如果你是16215之后的版本,直接进入APP Store,搜索Linux,就会显示Ubuntu、suse等几个发行版,点击进行安装即可,方便快捷。

进入wsl系统
打开PowerShell,输入指令bash即可进入wsl子系统。默认是root账户,无密码。可以使用passwd指令设置密码。
几个常见的小问题
如何卸载wsl
运行指令lxrun /uninstall /full
如何切换到Linux操作目录
当你运行bash进入wsl的时候,默认目录是/mnt/c/Users/<userName>对应C盘c:/Users/<userName>目录。如果要切到wsl根目录,使用cd /即可。
如果想切到C盘目录,访问Windows资源,使用cd /mnt/c即可。当然也可以使用mount指令将Windows目录挂在到wsl上。
或者通过ln指令,创建连接到Windows资源的symbolic link。
比如,创建一个连接到windows目录的symbolic link。
ln -s "/mnt/c/idea_project" /home/Projects

如何备份wsl
切到dos运行,
##xcopy是dos下的拷贝整个文件夹的命令,在bash下目前还不能用
xcopy lxss 目标目录 /E
这样备份了整个wsl子系统的文件,如果搞坏了可以直接覆盖回去,据说不会丢失权限。
消除shell中按键无效的滴滴嗡鸣声
## 创建配置文件,如果有则不需要
touch ~/.inputrc
vim ~/.inputrc
##在里面输入下面内容
set bell-style none
去掉vim状态下的嗡嗡声
##创建配置文件
touch ~/.vimrc
vim ~/.vimrc
##写入下面内容
noeb vb t_vb=
更换数据源
在Ubuntu中一般通过apt-get命令安装软件,系统配置的软件仓库默认在国外,网络环境较差。可以通过切到国内的镜像仓库比较好。
备份配置文件
cp /etc/apt/sources.list /etc/apt/sources.list_backup
更新数据源配置文件
vi /etc/apt/sources.list
添加清华的数据源仓库
##把原来的数据源都删了,添加下面的数据源
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main multiverse restricted universe
更新配置
apt-get update
注意事项
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main multiverse
中的xenial是16.04 Ubuntu的版本代号,更新源的时候注意自己的版本代号,替换成自己的版本号即可,否则更新配置会报错。
更好的bash客户端软件cmder(参考)
我们的bash命令符界面是有Windows自带的cmd工具启动的,我们可以下载cmder作为替代启动工具。它的体验,包括颜色以及复制等较好。
下载安装
cmder官网可以下载到mini版。
设置
- 启动cmder
- 进入
Setting-->StartUp-->Startup Options - 选择
Command line,输入bash -cur_console:p - 进入
Setting-->Startup-->Tasks - 选择
bash::bash,将指令改为cmd /c "bash" -cur_console:p -new_console:d:%USERPROFILE% - 最后,将
cmder的目录添加进环境变量Path中,这样通过Win+R,输入cmder就可以快速启动了。


运行图形界面
前面说过,wsl没有原生支持GUI的。这里通过一个叫Xserver,具体就是XMing这个工具实现可视化。
之后的步骤:
- 安装XMing,保持Xming开启
- 安装firefox测试(
apt-get install firefox) - 配置运行参数(
echo "export DISPLAY=127.0.0.1:0">>~/.bashrc) - 也可以配置环境参数
export DISPLAY=127.0.0.1:0 - 最后直接在bash里面敲
firefox,XMing即运行可视化浏览器,目前浏览器乱码有些问题等待解决
注:在配置.bashrc文件时,敲export DISPLAY=:0本机上也能运行,但是远程ssh -x就不行了。

装Ubuntu Desktop
sudo apt install ubuntu-desktop
这样Gnome-terminal,gedit,libre都能用了。

注意事项
这个并没有为我们添加模拟Ubuntu桌面的GUI环境,只是替我们安装了Ubuntu GUI默认安装的图形工具,比如gedit等
安装sublime Text 3
cd /home/<username>
# 下载
wget https://download.sublimetext.com/sublime-text_build-3126_amd64.deb
# 安装
dpkg -i sublime-text_build-3126_amd64.deb
# 运行
subl

pss:
使用gtk作为图形依赖包。
说实话,界面超级丑而且满满的xp系统既视感。如果在wsl上编辑文本的话,最好还是使用vim,如果不是在vim上开发项目的话,只需掌握简单的指令应该能满足平时改改配置文件之类的需求。大多时候,我们完全可以在win10上用IDE编辑项目,在wsl上给项目目录做一个sybbolic link,然后用wsl的环境对项目部署等。
另外,关于图形界面XMing的中文处理上暂时还没找到解决方法。所以,目前所有关于图形界面的软件和安装包只能说是玩具,并不实用。
安装配置jdk
下载
wget http://download.oracle.com/otn-pub/java/jdk/8u162-b12/0da788060d494f5095bf8624735fa2f1/jdk-8u162-linux-x64.tar.gz?AuthParam=1519703559_88bc1814ec45189fb948c5db85cc8b50
也可以在windows上下载,再cp进安装目录
解压
mkdir /java
tar -xzvf jdk-8u162-linux-x64.tar.gz
配置环境
vim /etc/environment
## 添加下面路径配置
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:$JAVA_HOME/bin"
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export JAVA_HOME=/java/jdk1.8.0_162
##执行配置
source /etc/environment
##测试是否成功
java -version
解决重启java配置时效问题
通过配置,etc/profile文件,可以是配置对全局、所有用户有效
vim /etc/profile
## 添加下面信息
export JAVA_HOME=/java/jdk1.8.0_162
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
## 启用配置
source /etc/profile
root用户还是没法解决问题
经过上面配置,我发现root用户仍然重启后无效。解决方法是,在root/.bashrc下添加配置。每个用户下都有个.bashrc文件,他是专门针对用户有效的配置,即作用域是当前用户。经过这么修改后,目前问题已经解决。
vim /root/.bashrc
## 下面的都一样
安装配置Python3
(to be continue)
设置bash为后台进程
(to be continue)
安装ssh-server
安装ssh之后,就可以使用xshell连接wsl进行操作了。而且xshell的界面非常的美观。
安装ssh-server
sudo apt-get install openssh-server openssh-client
为sshd生成ssh key
sudo /usr/bin/ssh-keygen -A
修改ssh-server配置
vim /etc/ssh/sshd_config
相关修改:
ListenAddress 0.0.0.0 #去掉原配置的注释即可;监听本地回环
UsePrivilegeSeparation no # yes->no;不知道为什么,不改连接会理解关闭
PasswordAuthentication yes # no->yes;不改只能使用秘钥登陆
PermitRootLogin yes #这个改成yes后,就可以使用root账户远程登陆了,无不需要则不改
启动服务
service ssh start
重启
service ssh --full-restart
注:相关的修改以及服务启动基本上都需要在root权限在操作,如果不是root账户,请在每个指令前加一个sudo指令。
参考文章
Windows Subsystem for Linux(WSL)的配置
Windows Subsystem for Linux 安裝及基本配置
Windows Subsystem for Linux(WSL)安装记录的更多相关文章
- 适用于windows10 Linux子系统的安装管理配置 How To Management Windows Subsystem for Linux WSL
什么是WSL Windows Subsystem for Linux 简称WLS,适用于Linux的Windows子系统,可以直接在Windows上运行Linux环境(包括大部分命令行工具) Linu ...
- WSL(Windows Subsystem for Linux)的安装与使用
有关WSL的介绍这里就不做解释了.另外,本文仅适用于win10 build 16215以及之后的版本,之前的版本可参考官方链接. (可使用“winver”命令查看windows版本号) 安装: 1. ...
- WSL(Windows Subsystem for Linux)的安装与使用及 mongodb安装
有关WSL的介绍这里就不做解释了.另外,本文仅适用于win10 build 16215以及之后的版本,之前的版本可参考官方链接. (可使用“winver”命令查看windows版本号) 安装:1. ...
- 基于Windows Subsystem for Linux (WSL) 【Ubuntu】在WIN10 Home Edition安装Docker
root@Andy-PC:~# uname -a Linux Andy-PC --Microsoft #-Microsoft Fri Apr :: PST x86_64 x86_64 x86_64 G ...
- Windows SubSystem for Linux(WSL)设置默认和设置默认登陆用户
使用wslconfig命令进行管理 1. 设置默认运行的linux系统 wslconfig /setdefault <DistributionName> 正如上面所说,如果执行wslco ...
- Build SSH for Development on Windows Subsystem for Linux
It seems that Windows Subsystem for Linux (WSL) is getting much more mature than the time when it fi ...
- WSL (Windows Subsystem for Linux) 的 VSLAM (Visual Simultaneous Localization and Mapping) 道路
WSL 的 VSLAM 道路 以 Windows Subsystem for Linux 闯入 Visual Simultaneous Localization and Mapping 世界的艰难道路 ...
- VSCode - 使用 WSL(Windows Subsystem for Linux)
一开始我是只将 VSCode 集成的终端改成 WSL 的 Bash,结果发现内置的 GIt 用的还是 Windows 的 Git,Git Hooks 用的 Windows 的环境,上网搜了一下发现有很 ...
- WSL (Windows Subsystem for Linux)
WSL (Windows Subsystem for Linux) :适用于 Linux 的 Windows 子系统. References Install WSL with a single com ...
随机推荐
- 【LDAP】LDAP 中 CN, OU, DC 的含义
1. LDAP的存储规则 区分名(DN,Distinguished Name) 和自然界中的树不同,文件系统/LDAP/电话号码簿目录的每一片枝叶都至少有一个独一无二的属性,这一属性可以帮助我们来区别 ...
- Java中的内存泄漏分析说明
Java语言的一个关键的优势就是它的内存管理机制.你只管创建对象,Java的垃圾回收器帮你分配以及回收内存.然而,实际的情况并没有那么简单,因为内存泄漏在Java应用程序中还是时有发生的. 下面就解释 ...
- Hibernate系列4-----之删除
1.和它的增改查兄弟不同,多了个until包定义了HibernateUntil类,让我们来一起看看吧 public class HibernateUntil { private static Conf ...
- 对fastdfs 文件清单进行检查,打印无效的文件
对fastdfs 文件清单进行检查,打印无效的文件2017年12月12日 18:37:18 守望dfdfdf 阅读数:281 标签: fastdfssftpmysql 更多个人分类: 工作 问题编辑版 ...
- XHML教会我的一些东西-4
今天把“河畔林语”的项目看完了.我自己也试着做了一下,这算是自己写的第一个项目吧.虽然全部是模仿,而且经常一边看写好的一边自己写,还是自己不够成熟呀. 不知道为什么,我用我的电脑进http://www ...
- Mahara-16.10 (Ubuntu 16.04)
平台: Ubuntu 类型: 虚拟机镜像 软件包: mahara-16.10 commercial education elearning mahara open source 服务优惠价: 按服务商 ...
- Visual Studio 编辑器打开项目后,一直提醒Vs在忙,解决方法
今天打开VS2015后,因为这个解决中有很项目,突然就一直现在加载中,点击VS提示在忙,怎么破那?请往下看 第一种方法 1.关闭VS: 2.去C:\Users\<your users name& ...
- 通过windows计划任务和Dos批处理备份文件
目的: 1.计划每天每半小时备份1次,每天8点开始,执行12小时,20点结束. 2.定期删除历史备份文件,由于每天有多个时间段备份,删除前只保留当天最后一个备份. 说明: 由于删除的操作只有每天第一次 ...
- 分治——sqtx
题目描述 Given a string s, partition s such that every substring of the partition is a palindrome. Retur ...
- Altium_Designer-怎么将“原理图的更改”更新到“pcb图”?
打开原理图,直击菜单栏>>Design,选择第一项,>>Update PCB Document...在弹出的对话框里面选择执行更改即可将原理图更新到工程下面对应的PCB.也可以 ...