关于 Windows Subsystem for Linux 的安装配置

算法研
• 阅读 3877

截止2019年初,WSL 系统虽然仍旧有些麻烦,但是目前基本可以使用了。

安装

按照微软的文档,需要以管理员身份在 PowerShell 中执行如下命令:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

然后重新启动系统,就可以在 Microsoft Store 中安装了,建议安装 Kali Linux,滚动升级,避免了维护上的一些麻烦。

终端

WSL 终端窗口的缺省配置惨不忍睹,需要对配色和字体进行必要的修改。

配色方面可以使用 Windows Console Colortool 来修改,具体可以参照这个介绍和命令行的帮助,具体的命令需要在 PowerShell 下执行。

字体方面,截止2019年初,Windows Console 无法修改字体的问题仍旧没有解决,好在可以利用 YaHei Consolas Hybrid 1.12 For Powerline.ttf 这种 hybrid 字体解决。

2019年6月初,微软最新开发的 Windows Terminal 的预览版已经在其应用商店上线,其功能比较初级,配置文件需要直接修改 profile.json 文件,好在其配置属性比较直观,仅需要注意的是 WSL 相关的 profile 中 "commandline" : "wsl.exe -d kali-linux" 之类的启动命令需要修改为 "wsl.exe ~ -d kali-linux" ,这样启动后才能正确进入用户的主目录。

SSH-Agent

关于 SSH-Agent 的问题,可以利用 Win10 自带的 OpenSSH 和 ssh-agent-wsl 相互配合来解决。

首先需要在将 OpenSSH Authentication Agent 服务的启动类型设置为自动。

然后下载 ssh-agent-wsl 并解压缩,将 ssh-agent-wsl 拷贝到 Linux 系统下类似 ~/bin 目录方便执行,将 pipe-connector.exe 拷贝到 Windows 下的类似 /mnt/c/Windows/System32 目录,并且在 shell 的登录配置文件中增加如下内容:

# https://github.com/rupor-github/ssh-agent-wsl
eval "\$(ssh-agent-wsl -r -H /mnt/c/Windows/System32/pipe-connector.exe)" > /dev/null

这样就可以使用 SSH-Agent 了。在使用中需要注意的是,win10 的 ssh-agent 把私钥存储在注册表里,所以不支持 ssh-add -t 选项,并且重启系统后私钥仍旧不会清除,建议通过 ssh-add -D 删除,详情可以参考这篇文章

X Server

对于 X Server 的问题,可以通过 Windows 下安装 VcXsrv 来解决,需要在 Linux 中配置如下环境变量:

export DISPLAY=localhost:0.0

注意其中的 localhost 不可少,以免无法通过 SSH 来对远程的程序进行 X Forwarding。

对于 VcXsrv 的登录后自动启动,需要将其配置文件 config.xlaunch 拷贝到如下目录中:

C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

其中 username 为 Windows 的用户名。

docker

安装 Windows 版本的 docker,运行 Linux container,并且选择 General => Expose daemon on tcp://localhost:2375 without TLS。在 Linux 下设置如下环境变量,就可以正常使用了。

export DOCKER_HOST=tcp://0.0.0.0:2375

其他问题

针对偶发的开机后启动 Linux 报错的情况,可以通过重启 LxssManager 服务解决。

另外,如需要执行 PS1 脚本,则需要以管理员身份运行 PowerShell,然后执行如下命令:

> Set-ExecutionPolicy RemoteSigned
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
3年前
VBox 启动虚拟机失败
在Vbox(5.0.8版本)启动Ubuntu的虚拟机时,遇到错误信息:NtCreateFile(\\Device\\VBoxDrvStub)failed:0xc000000034STATUS\_OBJECT\_NAME\_NOT\_FOUND(0retries) (rc101)Makesurethekern
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
ELK学习笔记之配置logstash消费kafka多个topic并分别生成索引
0x00 filebeat配置多个topicfilebeat.prospectors:input_type:logencoding:GB2312fields_under_root:truefields:添加字段
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
美凌格栋栋酱 美凌格栋栋酱
5个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
算法研
算法研
Lv1
殊方日落玄猿哭,旧国霜前白雁来。
文章
3
粉丝
0
获赞
0