目录
介绍
安装
更新软件源
共享文件夹
其他
优化复制粘贴
问题记录
介绍
WSL(Windows Subsystem for Linux) 适用于Linux的Windows子系统
(总感觉这个官方翻译有点怪怪的,是不是直译成 Windows的Linux子系统更合适,虽然还是怪怪的).
这个项目已经启动了很长的时间,刚开始有着很多问题,甚至连子系统的存在都没有意义,所以一直没有安装, 但是看更新日志项目似乎已经成熟了就决定试一试,结果看来常用的软件包如GCC.JDK,GIT,SSH等都没有问题值得一用,而且拿来入门也不差啊.
安装
在开始之前先确定一下Windows版本是不是Windows10,然后建议更新到最新版.
打开 Microsoft Store , 搜索 Linux 会有三个结果 Ubuntu , openSUSE Leap42 , SUSE Linux Enterprise Srever
因为日用为主所以这里选择 Ubuntu,用Ubuntu作为示范(WSL里的Ubuntu自带git,vim,ssh等常用软件,其他的没用过不清楚).
傻瓜式安装完成之后(连下一步都没有),会弹出通知直接打开就行,如果没有通知可以去开始里找到刚刚安装好的 Ubuntu 打开就行了
但是,这个时候会发现,不能用提示没有打开WSL,需要启动后重试
需要到 控制面板\所有控制面板项\程序和功能 中选择 启用或者关闭Windows功能
找到 适用于Linux的Windows子系统 并勾选,然后 确定 选择 立即重新启动
重启之后再次打开 Ubuntu 就可以使用了,根据提示输入用户名,两次输入密码就可以看见熟悉的命令行
然后熟悉的套路,先设置root用户
sudo passwd root
先输入刚刚设置的用户密码,然后两次输入要设置的root用户密码
su root
然后输入root用户的密码即可,
更新软件源
接着更换 apt 的数据源
cd /etc/apt #进入配置文件所在目录
cp sources.list sources.list.bak #备份配置文件
vim sources.list #编辑配置文件
将下面的配置覆盖 sources.list 中的配置
在用vim进行这部操作的时候,用 +p 粘贴系统剪切板会出现错误(具体大家可以试试,如果有人能成功还请告知一下方法)
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
##测试版源
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
# 源码
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
##测试版源
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
# Canonical 合作伙伴和附加
deb http://archive.canonical.com/ubuntu/ xenial partner
deb http://extras.ubuntu.com/ubuntu/ xenial main
于是我就想,既然这是安装在Windows上的子系统,那是不是应该有着类似于共享文件夹的东西,于是找到了这么一个文件夹
- 在c盘中搜索rootfs,可以搜到WSL的根目录在windows上的位置
这个就是 Ubuntu WSL版的根目录,接着到 \etc\apt\ 下找到 sources.list 用之前贴的配置文件覆盖即可.接着更新数据源
sudo apt-get update #更新源
sudo apt-get upgrade #更新软件
更新源的过程中有可能会报错(如上图)重新执行即可(404可以无视),更新软件需要等待的时间稍微偏长大概5-10分钟,但是没关系我们可以再开一个窗口干别的事啊,不然怎么是Linux呢,在开始菜单再次点击 Ubuntu 就可以再打开一个会话窗口(或者在状态栏的图标上右键,然后点击 Ubuntu 也行).
共享文件夹
- 在WSL的/mnt/目录下可以看c的文件夹,这个就是对应Windows C:\
- 在c盘中搜索rootfs,可以搜到WSL的根目录在windows上的位置
Ubuntu 系统的 root 密码
Ubuntu 的默认 root 密码是随机的,即每次开机都有一个新的 root 密码。
我们可以在终端输入命令 sudo passwd
,然后输入当前用户的密码,终端会提示我们输入新的密码并确认,此时的密码就是 root 新密码。
修改成功后,输入命令 su root
,再输入新的密码就 ok 了。
其他
这个时候可以秀一波 screenfetch (滑稽),好了现在来解决下一个坑,在某些电脑中会话窗口的配色有很严重的问题,即蓝色很暗看不清,但是有些电脑又没有问题(不清楚触发条件,我给公司电脑装的时候有问题,家里电脑又没问题,系统内部版本相同,难道是I卡和A卡的区别?逃),WSL的会话窗口配色实际上取决于 CMD 属性里颜色标签里面的配色,发现两台电脑的配色的色值还真不一样(如下图)
这就需要用到一个开源的CMD调色工具ColorTool下载解压zip文件,然后用 CMD 打开到解压的路径 ,然后
colortool.exe -b deuteranopia
colortool.exe -b OneHalfDark
colortool.exe -b OneHalfLight
colortool.exe -b solarized_dark
colortool.exe -b solarized_light
这五套主题自己看着选,如果看重了就打开CMD的属性和默认值分别点一次确定,然后重新打开Ubuntu就会发现配色修改好了(当然CMD的配色也被修改了)
上面是公司的非正常配色修改之后,下面是我的笔记本用的原始配色的比对图
好了接下来就和正常玩shell一样了,尽情的享受运行WSL吧(另附标准结局)
转自
优化复制粘贴
在安装Ubuntu系统后发现与Windows系统的文件不能相互复制,网上查了很多教程,发现都是不能用的,能实现的方法如下所示:
第一步: sudo apt-get autoremove open-vm-tools
第二步:sudo apt-get install open-vm-tools-desktop
然后重启
搞定
SSH连接登录WSL
- 编辑sshd_config文件,修改几处配置才能正常使用用户名/密码的方式连接
-
sudo vi /etc/ssh/sshd_config
-
Port 22 #
默认即可,如果有端口占用可以自己修改
PasswordAuthentication yes #
允许用户名密码方式登录
PermitRootLogin yes
- · 修改完之后重启ssh服务
-
sudo service ssh restart
-
重启服务遇到问题:
启动ssh服务时,提示Could not load host key: /etc/ssh/ssh_host_rsa_key
sshd: no hostkeys available — exiting
解决办法:
sshd re-exec requires execution with an absolute path
用绝对路径启动,也报错如下:
Could not load host key: /etc/ssh/ssh_host_key
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_dsa_key
Disabling protocol version 1. Could not load host key
Disabling protocol version 2. Could not load host key
sshd: no hostkeys available — exiting
解决过程:
#sudo ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
#sudo ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
#sudo /usr/sbin/sshd
//如果上述两个文件存在,仍然出现这个错误,那么试试 chmod 600 上述两个文件。之后应该可以解决。