WSL2的环境配置(安装+网络配置+基本美化)

文章目录

0. 前言

之前用了很久的WSL2,重装了系统后发现想恢复以前的环境难上加难,各路教程相当繁杂,为了方便我以后使用,遂在此记录。

1. 安装

检查更新

打开终端(最好管理员),输入

bash 复制代码
wsl --update

设置默认版本

sh 复制代码
wsl --set-default-version 2

列出当前已安装的发行版

bash 复制代码
wsl -l -v

我这里由于已经安了个发行版,就会显示,如果没安会提示你没有安装

列出可安装版本

bash 复制代码
wsl --list --online

选择版本安装

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

bash 复制代码
wsl --install Ubuntu

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

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

再次执行

bash 复制代码
wsl -l -v

会成功输出你新增的发行版

2. 网络配置

前期检测

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

这里可以在WSL Setting里用mirror模式,不过那个有可能有点问题,我这里就用传统方法。

这里死活审核不通过,这一段转发知乎了:链接

4. 给APT换源

检测

然后执行

bash 复制代码
sudo apt update

更新一下,如果发现更新的速度卡卡的(几个M都跑半天),说明你需要给apt换源

替换清华源

执行:

bash 复制代码
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo nano /etc/apt/sources.list

将内容替换成清华源:

bash 复制代码
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退出

然后保存更新:

bash 复制代码
sudo apt update && sudo apt upgrade

会发现这次就很快了。

5. 换用oh-my-zsh+powerlevel10k

原版bash实在是既称不上好用、也称不上好看,这里换成oh-my-zsh。

安装zsh

bash 复制代码
sudo apt update && sudo apt upgrade -y
sudo apt install zsh -y

设置终端

bash 复制代码
chsh -s /bin/zsh

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

bash 复制代码
echo $SHELL

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

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

安装oh-my-zsh

使用官网命令安装:

bash 复制代码
sh -c "$(curl -fsSL https://install.ohmyz.sh/)"

加载以前的配置

这个时候我们curl一下Google,会发现超时:

bash 复制代码
curl -I https://www.google.com

这是因为我们刚刚的代理配置是写在bashrc里的,而现在默认改成了zsh,因此不会去加载那个配置文件,所以我们需要手动加载一下,不过直接加载整个bashrc的话不够优雅,也会报一些错误(zsh不认识bash的一些语法),因此我们可以单独把刚刚那段代理配置拿出来:

bash 复制代码
vi ~/.wsl-proxy

(内容见知乎

然后编辑zshrc

bash 复制代码
 vi ~/.zshrc

在最上方加入这一行:

bash 复制代码
[[ -f ~/.wsl-proxy ]] && source ~/.wsl-proxy

完成后使用:

bash 复制代码
source ~/.zshrc

这样就搞定了。

配置主题(powerlevel10k)

oh my zsh有很多主题,这里有一个主题的受欢迎排名,

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

首先我们要安装扩展字体,下载这四个字体,你也可以下载别的Nerd Font

由于我们这里是WSL,因此只需要在Windows下下载后点击安装即可:

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

然后安装:

bash 复制代码
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k"

也可以用官方镜像源:

bash 复制代码
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k"

然后编辑

bash 复制代码
vi ~/.zshrc

设置主题为powerlevel10k/powerlevel10k

然后重启zsh

bash 复制代码
exec zsh

首次安装会弹出配置:

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

后面也可以通过命令手动进入配置:

bash 复制代码
p10k configure

我们还可以进一步客制化p10k,编辑它的配置文件:

bash 复制代码
vi ~/.p10k.zsh

可以看到很多东西都是注释了的:

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

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

bash 复制代码
code ~/.p10k.zsh

在其中,你还可以简单地自定义一些显示内容,比如自带的内存显示与磁盘显示一个只显示用了的内存,一个只显示用了的磁盘百分比,我们可以写一个函数:

bash 复制代码
  # ===========================
  # 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

bash 复制代码
  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的插件:

bash 复制代码
code ~/.zshrc

可以看到,默认是启用了一个git插件的:

官方有一些内置插件,我们可以从这个文件夹查看:

bash 复制代码
cd ${ZSH}/plugins && ls

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

6. oh-my-zsh 插件推荐

我在用的插件:

z

内置的插件,缓存打开的文件夹,可以通过文件夹名快速打开文件夹

zsh-autosuggestions

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

安装:

bash 复制代码
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

zsh-syntax-highlighting

为命令加上语法高亮

安装:

bash 复制代码
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开发的环境搭建

相关推荐
weixin_4307509311 小时前
OpenMediaVault debian Linux安装配置企业私有网盘(三) 静态ip地址配置
linux·服务器·debian·nas·网络存储系统
4032407311 小时前
[Jetson/Ubuntu 22.04] 解决挂载 exFAT 硬盘报错 “unknown filesystem type“ 及只读权限问题的终极指南
linux·运维·ubuntu
Source.Liu11 小时前
【沟通协作软件】使用 Rufus 制作 Ubuntu 启动盘的详细过程
linux·ubuntu
Love丶伊卡洛斯11 小时前
Ubuntu 部署 STUN服务端
linux·运维·ubuntu
梁洪飞11 小时前
通过链接文件和Start.S学习armv7
linux·arm开发·嵌入式硬件·学习·arm
DN金猿11 小时前
使用ubuntu安装nginx时报错
linux·nginx·ubuntu
小赵还有头发12 小时前
安装Ceres与glog
linux·学习·无人机·ceres·glog
负二代0.012 小时前
Linux下的网络管理
linux·网络
s_daqing13 小时前
ubuntu(arm)安装redis
linux·redis·ubuntu
林鸿群13 小时前
ubuntu 26.04 安装mysql-server
linux·mysql·ubuntu