// notes / linux
记录 Linux 开发环境配置、日常使用技巧与服务器运维经验。以实用为导向,覆盖 WSL2、Shell 脚本、性能监控等方向。
注:以下内容在 AI 辅助下整理,命令示例和配置建议经过了人工验证。
WSL2(Windows Subsystem for Linux 2)是 Windows 内置的 Linux 虚拟化方案,相比虚拟机更轻量,文件系统互通,能直接跑 Linux 二进制程序。
对我而言最实用的几点:
/mnt/c/ 挂载 C 盘,Linux 和 Windows 文件系统直接互通以管理员身份打开 PowerShell,执行:
wsl --install这条命令会自动完成:启用 WSL 可选功能、安装 WSL2 内核、设为默认版本、安装 Ubuntu 作为默认发行版。
安装完成后重启电脑,首次进入 Ubuntu 会要求设置用户名和密码(输入密码时终端不显示字符,正常的)。重启后在开始菜单找 "Ubuntu" 或在 PowerShell 里输入 wsl 进入。
Ubuntu 默认源在国外,apt update 经常超时。换成清华源:
# 备份原文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 替换为清华源(Ubuntu 22.04 / jammy)
sudo sed -i "s@http://.*archive.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list
sudo sed -i "s@http://.*security.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list
# 更新索引
sudo apt update && sudo apt upgrade -yUbuntu 24.04(Noble)的 sources.list 格式变了(DEB822),直接编辑 /etc/apt/sources.list.d/ubuntu.sources 改 URL。
sudo apt install -y \\
build-essential \\
curl wget git \\
vim tmux \\
htop tree \\
net-tools iproute2 \\
software-properties-common \\
ca-certificates gnupg lsb-release这几个包覆盖了 90% 的日常需求:编译工具链、下载、Git、编辑器、进程监控、网络诊断。
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
git config --global core.editor "vim"
git config --global pull.rebase falseWindows 各盘符自动挂载在 /mnt/ 下:
cd /mnt/c/Users/你的用户名/
code /mnt/c/Users/你/Desktop/test.py在文件资源管理器地址栏输入 \\wsl$\Ubuntu\home\用户名\,或在 WSL 里输入 explorer.exe . 直接打开当前目录。
在 /mnt/c/ 下跑 Linux 工具(pip install、npm install)会比 WSL 原生文件系统慢 5-10 倍。
~/projects/(WSL 原生),不要用 Windows 文件系统跑 Linux 工具链。VSCode 用 Remote WSL 插件打开项目,不要直接打开 \\wsl$\... 路径。# 安装 pyenv 编译依赖
sudo apt install -y make build-essential libssl-dev zlib1g-dev \\
libbz2-dev libreadline-dev libsqlite3-dev \\
libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev
# 安装 pyenv
curl https://pyenv.run | bash
# 添加到 ~/.bashrc(按提示加这三行)
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
source ~/.bashrc
# 安装 Python
pyenv install 3.11.8
pyenv global 3.11.8在 Windows 侧 VSCode 安装 WSL 扩展,然后在 WSL 终端里输入 code .,VSCode 会自动连接 WSL 环境。左下角显示 "WSL: Ubuntu" 即连接成功,终端/解释器/linter 全部在 WSL 里跑。
# 清理旧版本(避免冲突)
sudo apt remove docker docker.io containerd runc 2>/dev/null
# 安装
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# 免 sudo
sudo usermod -aG docker $USER
# 重新登录后生效
# 验证
docker run hello-worldWSL2 默认会吃满宿主机内存。在 %USERPROFILE%\.wslconfig(Windows 侧)限制:
[wsl2]
memory=8GB
swap=4GB
localhostForwarding=true修改后执行 wsl --shutdown 重启生效。
现代 Ubuntu(22.04+)正确处理方式——不要用已废弃的 apt-key:
curl -fsSL https://example.com/KEY.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/example.gpg
echo "deb [signed-by=/etc/apt/keyrings/example.gpg] https://example.com/ stable main" \\
| sudo tee /etc/apt/sources.list.d/example.listWSL2 是 NAT 网络,IP 会变。访问 WSL 里的服务直接用 localhost,WSL2 会自动端口转发。如果转发失效,确认 .wslconfig 里有 localhostForwarding=true。