文章目录
0. 前言
之前用了很久的WSL2,重装了系统后发现想恢复以前的环境难上加难,各路教程相当繁杂,为了方便我以后使用,遂在此记录。
1. 安装
检查更新
打开终端(最好管理员),输入
wsl --update

设置默认版本
wsl --set-default-version 2

列出当前已安装的发行版
wsl -l -v

我这里由于已经安了个发行版,就会显示,如果没安会提示你没有安装
列出可安装版本
wsl --list --online

选择版本安装
这里面以Ubuntu为例,没有版本后缀的代表最新入口,其他的带版本的顾名思义,我这里选取Ubuntu玩玩:
wsl --install Ubuntu

然后自行配置账号和密码即可(注:密码看不见是正常现象),设置完成后,会自动给你进入Ubuntu:

这里我们重启terminal,不出意外的话在下拉菜单这里就多了一个Ubuntu的选项(根据你的实际安装版本而定):

再次执行
wsl -l -v
会成功输出你新增的发行版

2. 网络配置
前期检测
我们打开一个Ubuntu的标签,会发现他会提醒检测到配置了代理但是wsl没走

这里可以在WSL Setting里用mirror模式,不过那个有可能有点问题,我这里就用传统方法。
这里死活审核不通过,这一段转发知乎了:链接
4. 给APT换源
检测
然后执行
sudo apt update
更新一下,如果发现更新的速度卡卡的(几个M都跑半天),说明你需要给apt换源
替换清华源
执行:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo nano /etc/apt/sources.list
将内容替换成清华源:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-security main restricted universe multiverse
提示:nano中Ctrl+O后Enter保存、Ctrl+X退出
然后保存更新:
sudo apt update && sudo apt upgrade
会发现这次就很快了。
5. 换用oh-my-zsh+powerlevel10k
原版bash实在是既称不上好用、也称不上好看,这里换成oh-my-zsh。
安装zsh
sudo apt update && sudo apt upgrade -y
sudo apt install zsh -y

设置终端
chsh -s /bin/zsh

这个时候我们检查一下当前终端,发现依旧是bash,这是因为我们没有重启
echo $SHELL

我们重新打开系统,会发现弹了个这个:

我们可以先不管他,先按q,进来后发现现在是zsh了:

安装oh-my-zsh
使用官网命令安装:
sh -c "$(curl -fsSL https://install.ohmyz.sh/)"

加载以前的配置
这个时候我们curl一下Google,会发现超时:
curl -I https://www.google.com

这是因为我们刚刚的代理配置是写在bashrc里的,而现在默认改成了zsh,因此不会去加载那个配置文件,所以我们需要手动加载一下,不过直接加载整个bashrc的话不够优雅,也会报一些错误(zsh不认识bash的一些语法),因此我们可以单独把刚刚那段代理配置拿出来:
vi ~/.wsl-proxy
(内容见知乎)
然后编辑zshrc:
vi ~/.zshrc
在最上方加入这一行:
[[ -f ~/.wsl-proxy ]] && source ~/.wsl-proxy
完成后使用:
source ~/.zshrc

这样就搞定了。
配置主题(powerlevel10k)
oh my zsh有很多主题,这里有一个主题的受欢迎排名,

我就选择了powerlevel10k(这个链接是官方安装教程),主要奔着显示指令cost时间去的。

首先我们要安装扩展字体,下载这四个字体,你也可以下载别的Nerd Font:
由于我们这里是WSL,因此只需要在Windows下下载后点击安装即可:

然后在终端的设置>外观中选择终端字体为MesloLGS NF:

然后安装:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k"
也可以用官方镜像源:
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k"

然后编辑
vi ~/.zshrc
设置主题为powerlevel10k/powerlevel10k:

然后重启zsh:
exec zsh
首次安装会弹出配置:

前面几个是字体校验,显示正常的话应该都是第一个,后面几个就根据自己的喜好自己配置了,我配好了是这样的:

后面也可以通过命令手动进入配置:
p10k configure
我们还可以进一步客制化p10k,编辑它的配置文件:
vi ~/.p10k.zsh
可以看到很多东西都是注释了的:

比如我们可以随便取消几个注释,然后source ~/.zshrc:

顺带一提,在WSL中我们可以用code命令直接使用vscode查看编辑文件:
code ~/.p10k.zsh

在其中,你还可以简单地自定义一些显示内容,比如自带的内存显示与磁盘显示一个只显示用了的内存,一个只显示用了的磁盘百分比,我们可以写一个函数:
# ===========================
# Custom Disk Usage Segment
# ===========================
function prompt_my_disk_usage() {
# 获取磁盘信息(/)
local total used percent
total=$(df -h / | awk 'NR==2{print $2}')
used=$(df -h / | awk 'NR==2{print $3}')
percent=$(df / | awk 'NR==2{print int($5)}')
# 根据磁盘使用率选择配色(继承 p10k 内置 disk_usage)
local fg bg
if (( percent < 80 )); then
fg=$POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND
bg=$POWERLEVEL9K_DISK_USAGE_NORMAL_BACKGROUND
elif (( percent < 90 )); then
fg=$POWERLEVEL9K_DISK_USAGE_WARNING_FOREGROUND
bg=$POWERLEVEL9K_DISK_USAGE_WARNING_BACKGROUND
else
fg=$POWERLEVEL9K_DISK_USAGE_CRITICAL_FOREGROUND
bg=$POWERLEVEL9K_DISK_USAGE_CRITICAL_BACKGROUND
fi
# 拼接显示内容(使用 图标)
local text="$used/$total | $percent%%"
# 输出 segment
p10k segment -i '' -t "$text" -f $fg -b $bg
}
然后把这个prompt放在想要的位置:


类似的,写一个my_ram:
function prompt_my_ram() {
# 获取内存信息:单位 MiB
local total used percent
total=$(free -m | awk '/Mem:/ {print $2}')
used=$(free -m | awk '/Mem:/ {print $3}')
percent=$(( used * 100 / total ))
# 转换为 GB(保留 1 位小数)
local human_total human_used
if (( total > 1024 )); then
human_total=$(printf "%.1fG" "$(echo "$total / 1024" | bc -l)")
human_used=$(printf "%.1fG" "$(echo "$used / 1024" | bc -l)")
else
human_total="${total}M"
human_used="${used}M"
fi
# 使用 p10k 内置 RAM 颜色
local fg bg
if (( percent < 80 )); then
fg=$POWERLEVEL9K_RAM_FOREGROUND
bg=$POWERLEVEL9K_RAM_BACKGROUND
elif (( percent < 90 )); then
fg=$POWERLEVEL9K_RAM_WARNING_FOREGROUND
bg=$POWERLEVEL9K_RAM_WARNING_BACKGROUND
else
fg=$POWERLEVEL9K_RAM_CRITICAL_FOREGROUND
bg=$POWERLEVEL9K_RAM_CRITICAL_BACKGROUND
fi
# 显示格式
local text="${human_used}/${human_total} | ${percent}%%"
# 输出 segment(去掉 -n)
p10k segment -i '' -t "$text" -f $fg -b $bg
}


注:WSL默认只分配一半大小的内存,这是正常的
oh-my-zsh插件
折腾完外观,现在来搞zsh的插件:
code ~/.zshrc
可以看到,默认是启用了一个git插件的:

官方有一些内置插件,我们可以从这个文件夹查看:
cd ${ZSH}/plugins && ls

选择想要的插件或者安装第三方插件,然后加plugins里就行

6. oh-my-zsh 插件推荐
我在用的插件:
z
内置的插件,缓存打开的文件夹,可以通过文件夹名快速打开文件夹

zsh-autosuggestions
缓存之前用过的命令,显示你可能希望输入的命令,按上下键可以切换

安装:
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
zsh-syntax-highlighting
为命令加上语法高亮

安装:
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
sudo
内置的插件,按两下ESC为命令加上sudo
colored-man-pages
内置的插件,为man手册加上高亮


hitokoto
内置插件,随机生成一句话,不过要先安装jq

7. 结语
暂时就这样吧,后面会更VS+wsl开发的环境搭建
840

被折叠的 条评论
为什么被折叠?



