Skip to main content

WSL2 常用配置(Ubuntu 22.04)

  • zsh(默认命令行工具)、nvm(Node.js 版本管理)、pyenv(Python 版本管理)

一、系统环境准备

使用代理加速下载(可选)

用于加速 aptcurlnpm 等网络请求,仅对**当前终端会话生效。

export https_proxy=http://127.0.0.1:7897 http_proxy=http://127.0.0.1:7897 all_proxy=socks5://127.0.0.1:7897

更新系统,安装基础工具

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git build-essential
# 安装并设置 zsh
sudo apt install -y zsh
chsh -s $(which zsh)

重启 WSL 使配置生效

在 Windows 终端执行:

wsl --shutdown

重新打开 Ubuntu。


三、安装并配置环境,nvm + pyenv

安装 nvm

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

安装 pyenv

sudo apt install -y \
make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev \
wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev
curl https://pyenv.run | bash

2️⃣ 配置环境变量

nano /root/.zshrc

添加:

# 显示当前路径(~ 缩写)
PROMPT='%F{214}Wsl Ubuntu 22.04%f %B%F{39}%1~%f%b %F{green}%#%f '

# proxy
proxy_on() {
export http_proxy=http://127.0.0.1:7897
export https_proxy=$http_proxy
export HTTP_PROXY=$http_proxy
export HTTPS_PROXY=$http_proxy
export all_proxy=socks5://127.0.0.1:7897
export ALL_PROXY=$all_proxy
}
proxy_off() {
unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY all_proxy ALL_PROXY
}

# nvm + node 自动切换
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
# 自动 use 已安装的 Node 版本(基于 .nvmrc 或 .node-version)
autoload -U add-zsh-hook
load-nvmrc() {
local nvmrc_path="$(nvm_find_nvmrc)"
if [ -n "$nvmrc_path" ]; then
local nvmrc_version
nvmrc_version="$(cat "$nvmrc_path")"

if nvm ls "$nvmrc_version" >/dev/null 2>&1; then
nvm use --silent "$nvmrc_version"
else
echo "Node $nvmrc_version not installed. Run: nvm install $nvmrc_version"
fi
fi
}
load-nvmrc
add-zsh-hook chpwd load-nvmrc


# pyenv
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"

# Zsh 历史记录
export HISTFILE="$HOME/.zsh_history"
# 内存中保存的历史条数
export HISTSIZE=100
# 写入文件的历史条数
export SAVEHIST=100
# 关键选项(防止历史丢失)
setopt APPEND_HISTORY
setopt INC_APPEND_HISTORY
setopt SHARE_HISTORY
setopt HIST_IGNORE_ALL_DUPS
setopt HIST_REDUCE_BLANKS
setopt HIST_VERIFY

加载并验证:

source /root/.zshrc

安装 node python

# node
nvm install 25
nvm alias default 25
# python
pyenv install 3.11.9
pyenv global 3.11.9

上配置 Git 的 SSH Key,按下面步骤来即可(适用于 GitHub / GitLab / Gitee 等)。

生成 SSH Key(推荐 ed25519)

ssh-keygen -t ed25519 -C "你的邮箱"

执行后:

  • 一路回车 → 默认路径 ~/.ssh/id_ed25519

生成结果:

  • 私钥:~/.ssh/id_ed25519
  • 公钥:~/.ssh/id_ed25519.pub

三、启动 ssh-agent 并添加私钥

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

四、复制公钥内容

cat ~/.ssh/id_ed25519.pub

复制输出的整行内容(以 ssh-ed25519 开头)。


五、把公钥添加到 Git 平台

https://github.com/settings/ssh/new

GitHub

  1. New SSH key
  2. 粘贴公钥 → Save

六、测试连接

以 GitHub 为例:

ssh -T git@github.com

成功会看到:

Hi username! You've successfully authenticated...