Windows下WSL子系统安装及美化

Windows下WSL子系统安装及美化

适用于 Linux 的 Windows 子系统 (WSL) 是 Windows 的一项功能,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双引导。 WSL 旨在为希望同时使用 Windows 和 Linux 的开发人员提供无缝高效的体验。

前言

WSL 可以方便地使用 Linux 来进行一些操作,不需要到 VPS 运行,使用中发现连接本地代理并不是简单的使用 127.0.0.1,发现已经有人写了现成的脚本,所以复制过来,简单记录一下,除此之外再记录一下其终端的美化。

安装

直接在终端输入安装命令,默认安装的是商店版本的 WSL2

1wsl --install

如果需要完整的说明可以参考:官方文档

设置本地代理

方法来自:WSL2 中访问宿主机 Windows 的代理

新建一个脚本文件 proxy.sh

1touch ./proxy.sh
2chmod +x ./proxy.sh
3vim ./proxy.sh
 1#!/bin/sh
 2hostip=$(cat /etc/resolv.conf | grep nameserver | awk '{ print $2 }')
 3wslip=$(hostname -I | awk '{print $1}')
 4port=<PORT>
 5
 6PROXY_HTTP="http://${hostip}:${port}"
 7
 8set_proxy(){
 9    export http_proxy="${PROXY_HTTP}"
10    export HTTP_PROXY="${PROXY_HTTP}"
11
12    export https_proxy="${PROXY_HTTP}"
13    export HTTPS_proxy="${PROXY_HTTP}"
14}
15
16unset_proxy(){
17    unset http_proxy
18    unset HTTP_PROXY
19    unset https_proxy
20    unset HTTPS_PROXY
21}
22
23test_setting(){
24    echo "Host ip:" ${hostip}
25    echo "WSL ip:" ${wslip}
26    echo "Current proxy:" $https_proxy
27}
28
29if [ "$1" = "set" ]
30then
31    set_proxy
32
33elif [ "$1" = "unset" ]
34then
35    unset_proxy
36
37elif [ "$1" = "test" ]
38then
39    test_setting
40else
41    echo "Unsupported arguments."
42fi

将代码中的 <PORT> 更换为自己使用的程序的端口。

使用:

1source ./proxy.sh set
2source ./proxy.sh unset
3source ./proxy.sh test

别名

如果想要方便使用,可以在 ~/.bashrc 中设置别名,将路径更换为脚本路径:

1alias proxy="source /path/to/proxy.sh"

之后可以直接使用 proxy setproxy unset 来设置代理。

自启动

如果希望打开终端就可以自动启动,在 ~/.bashrc 中添加下面的命令:

1. /path/to/proxy.sh set

替换终端为 zsh

下载 zsh

1sudo apt install zsh

安装 oh-my-zsh

1sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

安装完成后会提示替换当前用户的 shellzsh ,也可以通过下面的命令来设置默认 shell,完成后的配置文件为 .zshrc

1chsh -s /bin/zsh

更换主题

可以点此链接来查看内置主题的截图,存放路径为 ~/.oh-my-zsh/themes ,也可以替换其他的主题,这里推荐主题 powerlevel10k,安装命令如下:

1git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
2#  gitee.com 上的官方镜像
3git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

在 ~/.zshrc 设置 ZSH_THEME="powerlevel10k/powerlevel10k"。然后重新进入终端,按照引导配置 powerlevel10k

Tip

powerlevel10k 用到了默认字体集没有的字符,所以需要将字体设置为 Meslo LGM NF

多用户共享

上述设置仅仅是当前用户的 shell 设置,如果想要每个用户都使用 zsh,可以执行下面的设置,方法来自:Windows11 Terminal: 配置与美化 Powershell7、WSL2、WSA

 1# 移动 oh-my-zsh 目录到 /user/share
 2sudo mv /home/你的用户名/.oh-my-zsh /usr/share/oh-my-zsh
 3cd /usr/share/oh-my-zsh/
 4# 将配置文件模板复制到 zshrc,以后都从这个zshrc文件导出模板,方便使用
 5cp templates/zshrc.zsh-template zshrc
 6#从 MarcinWieczorek 的 AUR 包中获取补丁文件并应用于 zshrc 文件
 7wget https://aur.archlinux.org/cgit/aur.git/plain/0001-zshrc.patch\?h\=oh-my-zsh-git -O zshrc.patch && patch -p1 < zshrc.patch
 8# 创建到 zshrc 文件的硬链接,以便它为新用户创建一个实际的独立副本
 9sudo ln /usr/share/oh-my-zsh/zshrc /etc/skel/.zshrc
10#默认新用户使用 zsh,这样每个新创建的用户都可以直接用 oh-my-zsh 了
11sudo useradd -D -s /bin/zsh

如果要更改默认的 zsh 设置,就更改 /usr/share/oh-my-zsh/zshrc 这个文件,然后对每个用户执行以下操作即可:

1cp /usr/share/oh-my-zsh/zshrc ~/.zshrc

参考

Windows下WSL子系统安装及美化

https://blog.grew.cc/posts/windows-wsl/

作者

Tom

创建时间

2024-09-05

最后更新时间

2024-09-05

许可协议

CC BY 4.0