WSL2简单探索
文章目录
前言
为了同时可以受益于windows易操作性(主要是能玩游戏)和linux的生产力环境,我之前尝试装过双系统,但是双系统切换麻烦。用过虚拟机,但是虚拟机总是感觉很累赘。之前也装过docker,也装过wsl,但总是没用利索。
尝试这么多的目的就是能够轻量化,快速简洁的创建一套或多套开发环境出来。
首先是wsl,即Windows Subsystem for Linux,适用于 Linux 的 Windows 子系统,最简单的安装方法就是,在windows strore里面直接安装自己喜欢的Linux发行版。我选择的还是我用的最多的ubuntu.
关于终端工具,之前我用的是wsl-terminal,但是之前印象中也就那样,这次我发现一个叫windows terminal的东西,好像挺好用 的,一起装了,也在windows strore。
默认启动路径
wsl-terminal的默认启动路径,看着很不爽,可以通过更改json文件设置,如下:
{
"guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
"hidden": false,
"name": "Ubuntu",
"source": "Windows.Terminal.Wsl",
"startingDirectory": "/home/sss"
},
最后一行,我把ubuntu的启动路径设为/home/sss。
json文件位于设置最底下
配置代理服务器
打开wsl(即刚刚安装的ubuntu)后,需要一段时间初始化,完毕之后先老生常谈的更换apt源,然后我安装了zsh,在我打算用antigen配置zsh时,发现git.io超时,而且github clone速度也巨慢…
curl -L git.io/antigen > $HOME/antigen.zsh
我找个下,找到这篇文章,因为我本身使用梯子访问外网,不出所料,又是代理出现了问题。这里引用一下:
新的 WSL2 架构会为 Linux 系统分配一个虚拟网卡,Linux 虚拟机与 Windows 组成了一个局域网,因此 若想在 Linux 下访问 Windows 的服务,必须要使用 Windows 的主机地址。
上面两个网卡就是装完wsl新增的,左边的就是用来和wsl通信的主机的地址。答主专门写了个脚本,如下:
curl -o wslproxy -L https://git.io/Jfo6z
sudo bash ./wslproxy install
大概看了下脚本,其实简单说,功能就是每次解析主机地址,然后组装代理地址:端口号,然后设置git以及代理,函数如下:
# Create a script for system proxy variables, which is sourced on shell startup
makeVars() {
echo "
export http_proxy=$1
export https_proxy=$1
echo \"✔️️ 系统变量设置完毕\"
" >${varsfile}
}
# Set the proxy settings for git
applyGit() {
# For HTTP/HTTPS protocol
git config --global http.proxy $1
git config --global https.proxy $1
# For git:// protocol
git config --global core.gitproxy ${socks}
echo "✔️️ git设置完毕"
}
因为我们使用的是wsl-terminal,相当于直接终端访问wsl,而不是ssh,按照命令指引setup完之后,无需进行提示信息里说的ssh设置,只需要在.zshrc(我用的zsh)加入下面两句即可:
#随WSL启动自动开启代理
wslproxy on
. /home/sss/wslproxy.vars
都搞定之后可以用
curl -v www.google.com
来测试,不要用ping,因为咱设置的代理是http和https,而ping是icmp报文,是三层网络报文~
配置zsh
ok,网络搞定,可以使用antigen了,按我理解这应该就是一个更好的zsh包管理工具,只需要在.zshrc里面加入几个命令,就可以很简单的构建你的zsh,.zshrc示例:
source $HOME/antigen.zsh
# Load the oh-my-zsh's library
antigen use oh-my-zsh
antigen bundles <<EOBUNDLES
# Bundles from the default repo (robbyrussell's oh-my-zsh)
git
# Syntax highlighting bundle.
zsh-users/zsh-syntax-highlighting
# Fish-like auto suggestions
zsh-users/zsh-autosuggestions
# Extra zsh completions
zsh-users/zsh-completions
EOBUNDLES
# Load the theme
antigen theme robbyrussell
# Tell antigen that you're done
antigen apply
他可以兼容oh-my-zsh,可以说比较强了。
需要注意的是他的wiki里也就是上面的配置文件有一个错误,要注意:
antigen bundle <<EOBUNDLES
应该是bundles而不是bundle。
配置vim
这次vim使用的是vim-plug来管理各种插件的。这里偷个懒,直接fork大佬的仓库,自己慢慢修改吧。
配置docker
我还一起装了个docker,因为据说Docker Desktop 发布了支持 WSL2 后端的新版。WSL 2 引入了重大的体系结构更改,因为它是 Microsoft 构建的完整 Linux 内核,允许 Linux 容器在没有仿真的情况下本机运行,而 Docker 也专门开发了可以使用 WSL 2 中的 Docker 守护进程的桌面管理程序。
只要把图上两个打钩,在你的wsl中,就可以docker命令了,无需任何其他操作,而且wsl中的docker和docker desktop是互通的,爽歪歪~
如果有别的后面再补充吧