Windows下WSL子系统安装及美化
适用于 Linux 的 Windows 子系统 (WSL) 是 Windows 的一项功能,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双引导。 WSL 旨在为希望同时使用 Windows 和 Linux 的开发人员提供无缝高效的体验。
前言
WSL
可以方便地使用 Linux
来进行一些操作,不需要到 VPS 运行,使用中发现连接本地代理并不是简单的使用 127.0.0.1
,发现已经有人写了现成的脚本,所以复制过来,简单记录一下,除此之外再记录一下其终端的美化。
安装
直接在终端输入安装命令,默认安装的是商店版本的 WSL2
1wsl --install
如果需要完整的说明可以参考:官方文档
设置本地代理
新建一个脚本文件 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 set
和 proxy 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)"
安装完成后会提示替换当前用户的 shell
为 zsh
,也可以通过下面的命令来设置默认 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