环境变量配置


WSL

安装

wsl --install

这会默认安装 Ubuntu,可以参照官网介绍(https://learn.microsoft.com/zh-cn/windows/wsl/install#change-the-default-linux-distribution-installed)安装其他发行版

安装完成后重启电脑,在开始菜单中打开 Ubuntu,打开后根据提示输入用户名和密码创建默认管理员用户。

第一次进入窗口可能会提示如下信息(如果没遇到这个信息可以跳过这一步):

The WSL optional component is not enabled. Please enable it and try again.
See https://aka.ms/wslinstall for details.
Error: 0x8007007e
Press any key to continue...

打开控制面板 ===> 程序 ===> 启用或关闭windows 功能,

系统为64位的 需要勾选 适用于 Linuxwindows 子系统 、Hyper-v
系统为32位的 需要勾选 适用于 Linuxwindows 子系统 、虚拟机平台

完成上面设置之后重启电脑即可

升级命令包

WSL 默认的软件源列表(/etc/apt/sources.list)可能未更新,导致无法找到最新版本的软件包。

许多工具(如 mininetwireshark)位于 UbuntuUniverseMultiverse 仓库中,但 WSL 默认可能未启用这些仓库。启用 Universe/Multiverse 仓库:

sudo apt update && sudo apt upgrade
sudo add-apt-repository universe
sudo add-apt-repository multiverse

配置命令行 zsh

理想当中的命令行:

  1. 好看(配色、字体可以自由设定);
  2. 支持 UTF-8 字符的输入与显示;
  3. 支持常见的 *NIX 命令行工具(cat、grep、awk 等);
  4. 自动补全、语法高亮、历史记录;
  5. 完善的复制粘贴支持;
  6. 互操作性(共享文件系统、网络栈,可调用 Win32 程序);
  7. 支持常用的脚本语言(PHP、Python、Node.js 等);
  8. 包管理器,以及其他各种常用软件的支持;
  9. 快速呼出(快捷键、右键菜单入口)。

安装 zsh:

sudo apt install zsh

设置 zsh 为默认命令行:

chsh -s $(which zsh)

运行后需要输入密码,之后重启终端即可看到设置生效了,也可以通过 echo $SHELL 命令查看当前命令行是否是 /bin/zsh

zsh 配置 Proxy(不在国内可以跳过)

注意:它仅仅只用来配置 zsh,安装了 oh-my-zsh 后就会失效,因为 ~/.zshrc 会被覆盖。

如果遇到:「wsl: 检测到 localhost 代理配置,但未镜像到 WSL。
NAT 模式下的 WSL 不支持 localhost 代理。」,
可以在 C:\Users\[username] 目录下创建 .wslconfig 文件,写入:

[experimental]
autoMemoryReclaim=gradual
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true

然后在 PowerShell 中用 wsl --shutdown 命令关闭 WSL,再重启终端。

WSL2 的网络是连接自 Windows 的一个单独网络,所以无法直接使用到 Windows 中开启的代理,但是可以通过设置代理为 Windows IP + 代理端口号实现

首先在代理软件中开启「允许来至局域网的连接」

「本机 sockets 端口」对应的端口号也就是 Windows 代理的端口号,而一般我们在 Clash 中使用的 http 端口号,则为 sockets 端口 + 1。

假设我们用到的是 9090.

Windows IP 地址是可能变化的,可以利用上面提到的 WSL 网络连接自 Windows 这一点,从 /etc/resolv.conf 文件中自动获取

之后通过 code ~/.zshrcvim ~/.zshrc 在 zsh 配置中添加:

host_ip=$(cat /etc/resolv.conf | grep "nameserver" | cut -f 2 -d " ")
proxy_port=10809
alias proxy="all_proxy=http://$host_ip:$proxy_port"

运行

source ~/.zshrc

让配置生效,之后运行:

curl www.google.com # 失败
proxy curl www.google.com # 成功

你可以看到,当我们在 curl 请求命令前增加 proxy,这就意味着我们使用了 windows 代理进行了访问。随后的 oh-my-zsh 的安装就说明了这一点。

如果还是无法正常使用代理,可能是因为防火墙的原因,可以在 Windows 命令行中以管理员身份执行:

New-NetFirewallRule -DisplayName "WSL" -Direction Inbound  -InterfaceAlias "vEthernet (WSL)"  -Action Allow

防火墙设置如果遇到:「New-NetFirewallRule : The specified interface was not found on the system.」,需要将命令中的 vEthernet (WSL) 替换为「Windows Defender 防火墙属性 -> 公用配置文件 -> 受保护的网络连接-自定义」中实际的 vEthernet-WSL 名称

配置 oh-my-zsh

运行命令安装 oh-my-zsh

proxy curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh

随后安装:

  • zsh-syntax-highlighting:提供语法高亮功能
  • zsh-autosuggestions:根据历史命令提供建议

运行:

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

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

随后在 ~/.zshrc 中,修改主题和插件:

plugins=(
        git
        sudo
        z
        zsh-autosuggestions
        zsh-syntax-highlighting)
ZSH_THEME="agnoster"

Windows

MacOS


文章作者: 海星来来
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 海星来来 !
  目录