wsl2+windows terminal+ubuntu配置初见
最近想搞几个实验, 恰好都需要使用Linux环境, 之前我的方案一直是使用vmware workstation + Ubuntu 20.04, 但是最近项目需要安装了docker, docker在安装的时候需要安装wsl2, 我寻思既然安装了就把环境搭好, 体验一下这个著名的WSL2
由于在装docker的时候就装好了wsl2, 这里就不记录装wsl2的过程了
1 | 安装ubuntu 20.04 LTS
这一步很简单, 直接在Microsoft Store
中搜Ubuntu安装就好了
然后启动后直接输入账号密码就配置好了?!
打开Windows Terminal
(这个也可以在Store中装)
发现已经可以直接进入ubuntu了
啊, 全称不到5分钟, 这就装好了? 啥也不用配置的吗, 属实比虚拟机还简单啊。
本来晚上就打算到装好ubuntu为止,但现在看来还有充分的时间搞搞别的。
2 | 换源
清华镜像站:https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
复制里面的内容
1 |
|
首先输入sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
将原来的源备份一下
然后sudo vim /etc/apt/sources.list
将上面的清华源黏贴进去
最后sudo apt-get update && sudo apt-get upgrade
就OK了
3 | 将wsl搬离C盘
由于当时分区的时候C盘是用来只装windows, 只分配了100G, 现在还剩20多G, 而我还有一块1T的固态, 打算移动一下wsl的位置, 这时候就需要祭出一个大杀器:
https://github.com/DDoSolitary/LxRunOffline
在release下载后后:
首先用LxRunOffline.exe list
查看一下wsl安装了哪些子系统
然后移动就直接LxRunOffline.exe move -n Ubuntu20.04 -d E:\Ubuntu_Wsl
就好了!
4 | 配置zsh和oh-my-zsh
看看当前系统下的shell
1 |
|
安装zsh: sudo apt install zsh -y
切换shell为zsh: chsh -s /bin/zsh
安装oh-my-zsh: sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
然后就是喜闻乐见的被墙了
…
合着没代理不让装是吧
WSL配置代理
网上查了一下, 配置个小脚本, 原理是「由于 Linux 子系统也是通过 Windows 访问网络,所以 Linux 子系统中的网关指向的是 Windows,DNS 服务器指向的也是 Windows,基于这两个特性,我们可以将 Windows 的 IP 读取出来。」
脚本放在~/.zshrc
中
1 |
|
设置好后source ~/.zshrc
后, 便可以使用proxy
设置代理和unproxy
取消代理
注意: 协议为socks5
, windows主机需要设置允许来自局域网的连接
代理搞好后再来装oh-my-zsh
嘿嘿
然后vim ./.zshrc
把主题改为ys
其他花里胡哨的先不改了
其他插件
1 |
|
5 | 从windows访问WSL以及反之
将wsl的ubuntu路径添加到win下方便查看, 操作如下:
点进去就可以看到ubuntu的文件啦
想到一个问题…wsl不是也可以访问windows吗, 那么…
这三个不就是我win的盘吗, 那我点进去不就递归….
好吧是我想多了
而且wsl2和windows的环境变量居然也是共享的?!
可以自行关闭, 方法如下;
sudo vim /etc/wsl.conf
打开wsl.conf输入
1 |
|
然后windows重启一下wsl (管理员身份, powershell)
1 |
|
感觉环境变量共享这件事情有好有坏吧, 为了防止之后发生难以解释的bug, 我还是选择关闭了, 这里记录下操作以后开启也方便~
(后面配置vscode发现并不能关闭啊啊)
在后面几天安装thefuck等插件的过程中, 我发现由于windows引入过多的环境变量将导致一些插件变得很慢, 具体见
The fuck is sluggish while in Debian WSL2
给出的解决方案就是取消appendWindowsPath
Hey guys, I figured this out. it’s irrelevant to thefuck but your wsl machine.
Try
echo $PATH
and you probably gonna see a long list there, and that’s the reason the fuck is so slow. You can do what’s suggested here, microsoft/WSL#1640 (comment), and restart your linux distro.After that thefuck runs smooth as fuck for me
Beware your vscode would be gone after that, so probably do
which code
first
注意需要保留vs code的路径, 毕竟vscode是最大生产力, 方式:
- 使用
which code
获得vscode的路径 如/mnt/d/tools/Microsoft VS Code/bin/code
echo PATH="$PATH:/mnt/d/tools/Microsoft VS Code/bin" >> ~/.zshrc
source ~/.zshrc
将管理员身份打开powershell添加到terminal
首先安装gsudo
这个软件, powershell中输入:
1 |
|
注意有可能下载不下来
这时候需要改下host, 方法:
进入该页面: https://www.ipaddress.com/
搜索raw.githubusercontent.com
得到类似下面的结果
将其中一条或者几条以xx.xx.xx.xx raw.githubusercontent.com
的方式写到host文件中
文件位置C:\Windows\System32\drivers\etc
, 注意host编辑后无法直接保存, 需要先拖到桌面编辑完再拖回去 (很傻逼)
然后下载好gsudo
后将下面内容写到terminal的设置文件中
1 |
|
然后就ok啦 (如果打不开, 说明环境变量没更新, 下载好gsudo他会自己配置环境变量, 但有时需要重启电脑才能更新)
6 | vscode与wsl的插件
vscode-wsl文档: https://code.visualstudio.com/docs/remote/wsl-tutorial
作为MS自家的WSL, 自然在vscode上有对应的插件
Remote-WSL
安装后在wsl下输入code .
就打开了 vscode
然后其他和Remote-SSH差不多, 以后再慢慢了解
注意到win和wsl下的插件是分开装的~
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!