Skip to main content

WSL2 常用配置(Ubuntu 22.04)

  • bash(默认命令行工具)、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

确认当前使用 bash

Ubuntu 默认就是 bash,通常不需要额外切换。可以用下面命令确认:

echo $SHELL

如果输出不是 /bin/bash,再执行:

chsh -s /bin/bash

三、安装并配置环境,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/.bashrc

添加:

# 显示当前路径(~ 缩写)
PS1='\[\e[38;5;214m\]Wsl Ubuntu 22.04\[\e[0m\] \[\e[1;38;5;39m\]\w\[\e[0m\] \[\e[32m\]\$\[\e[0m\] '

# 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)
__last_node_version_dir=""
load_node_version() {
[ "$PWD" = "$__last_node_version_dir" ] && return
__last_node_version_dir="$PWD"

local version_file=""
if [ -f ".nvmrc" ]; then
version_file=".nvmrc"
elif [ -f ".node-version" ]; then
version_file=".node-version"
else
return
fi

local node_version
node_version="$(cat "$version_file")"

if nvm ls "$node_version" >/dev/null 2>&1; then
nvm use --silent "$node_version"
else
echo "Node $node_version not installed. Run: nvm install $node_version"
fi
}


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

__bashrc_prompt_command() {
load_node_version
}

case "$PROMPT_COMMAND" in
*__bashrc_prompt_command*) ;;
*) PROMPT_COMMAND="__bashrc_prompt_command${PROMPT_COMMAND:+;$PROMPT_COMMAND}" ;;
esac

加载并验证:

source /root/.bashrc

安装 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...