WSL2 Debian 开发环境配置
这是一个用于在 Windows 11 上配置 WSL2 Debian 开发环境的项目。该项目提供了一系列脚本来自动化安装和配置各种开发工具和环境。
功能特性
基础系统环境
- 安装 WSL2 Debian
- 系统更新和配置
- 配置镜像源
- 安装基础工具
- WSL2 环境检查(Windows 端)
- WSL2 环境检查(Linux 端)
Shell 环境
- 安装和配置 Zsh
- 安装常用 Zsh 插件
- zsh-autosuggestions
- zsh-syntax-highlighting
- zsh-completions
- autojump
- fzf
- zsh-nvm
- pyenv
编辑器环境
- 安装和配置 Neovim
- 安装常用 Neovim 插件
- 配置 NvChad
开发工具链
- Docker 和 Docker Compose
- Go 语言环境
- Node.js 环境
- Python 环境
- PHP 开发环境(使用 DNMP)
系统工具
- Git 配置和工具
- 系统监控工具
- 网络工具
- 安全工具
- 终端工具
- 开发效率工具
项目结构
.
├── README.md
├── init.sh
└── scripts/
├── shell/
│ ├── zsh.sh
│ └── plugins.sh
├── editor/
│ ├── neovim.sh
│ └── nvchad.sh
├── devtools/
│ ├── docker.sh
│ ├── go.sh
│ ├── node.sh
│ └── python.sh
├── php/
│ └── dnmp.sh
├── system/
│ ├── check_windows_wsl.bat
│ └── check_wsl.sh
└── utils/
├── git.sh
└── tools.sh
使用方法
系统要求
- Windows 11
- WSL2
- Debian 12
安装步骤
- 克隆项目
git clone https://github.com/yourusername/wsl2-debian-init.git
cd wsl2-debian-init
- 检查 Windows 上的 WSL2 环境(在 CMD 中运行)
scripts\system\check_windows_wsl.bat
- 检查 WSL2 内部环境(在 WSL 终端中运行)
./scripts/system/check_wsl.sh
- 运行初始化脚本
./init.sh
- 按需运行各个模块的安装脚本
# 安装 Shell 环境
./scripts/shell/zsh.sh
./scripts/shell/plugins.sh
# 安装编辑器环境
./scripts/editor/neovim.sh
./scripts/editor/nvchad.sh
# 安装开发工具链
./scripts/devtools/docker.sh
./scripts/devtools/go.sh
./scripts/devtools/node.sh
./scripts/devtools/python.sh
# 安装 PHP 开发环境
./scripts/php/dnmp.sh
# 安装系统工具
./scripts/utils/git.sh
./scripts/utils/tools.sh
脚本说明
系统环境脚本
-
scripts/system/check_windows_wsl.bat: 在 Windows 端检查 WSL2 环境,包括:- Windows 版本检查
- WSL 安装检查
- WSL2 状态检查
- 虚拟化检查
- Debian 安装检查
- Windows 功能检查
-
scripts/system/check_wsl.sh: 在 WSL 端检查环境,包括:- Windows 版本检查
- WSL 版本检查
- 系统要求检查
- Debian 版本检查
- 系统更新检查
- 必要组件检查
- 网络连接检查
- WSL 配置检查
Shell 环境脚本
scripts/shell/zsh.sh: 安装和配置 Zshscripts/shell/plugins.sh: 安装常用 Zsh 插件
编辑器环境脚本
-
scripts/editor/neovim.sh: 安装和配置 Neovim- 自动检查并安装 Neovim 0.10.0 或更高版本
- 自动安装必要的依赖(GCC、Make、Python3、Node.js等)
- 配置 Python 和 Node.js 支持
- 使用方法:
sudo ./scripts/editor/neovim.sh
-
scripts/editor/nvchad.sh: 配置 NvChad- 自动安装 NvChad 及其依赖
- 配置基本的 LSP 支持(Lua、Python、TypeScript等)
- 配置常用快捷键和主题
- 使用方法:
- 先安装 Neovim:
sudo ./scripts/editor/neovim.sh - 再安装 NvChad:
sudo ./scripts/editor/nvchad.sh - 启动 Neovim 并等待插件安装完成:
nvim - 安装 LSP 服务器:在 Neovim 中运行
:MasonInstallAll
- 先安装 Neovim:
开发工具链脚本
scripts/devtools/docker.sh: 安装 Docker 和 Docker Composescripts/devtools/go.sh: 安装 Go 语言环境scripts/devtools/node.sh: 安装 Node.js 环境scripts/devtools/python.sh: 安装 Python 环境
PHP 开发环境脚本
scripts/php/dnmp.sh: 安装和配置 PHP 开发环境(使用 DNMP)- 自动安装 Docker 和 DNMP 环境
- 配置 PHP 8.2、MySQL 8.0、Redis 7.0 等最新版本
- 提供优雅的 PHP 和 Composer 命令别名
- 支持 Laravel 开发环境
- 使用方法:
- 运行安装脚本:
sudo ./scripts/php/dnmp.sh - 使别名生效:
source ~/.zshrc或source ~/.bashrc - 访问 http://localhost 查看 PHP 信息页面
- 运行安装脚本:
PHP 开发环境特性
-
优雅的命令行工具
- 直接在宿主机使用
php命令:php -v - 直接在宿主机使用
composer命令:composer install - 所有命令都会在 Docker 容器中执行,无需进入容器
- 直接在宿主机使用
-
Laravel 开发支持
- 提供常用 Laravel 命令别名:
laravel: 执行 artisan 命令laravel-make: 创建新的 Laravel 组件laravel-migrate: 执行数据库迁移laravel-seed: 执行数据库填充laravel-test: 运行测试laravel-route: 查看路由列表laravel-config: 清除配置缓存laravel-cache: 清除应用缓存laravel-view: 清除视图缓存laravel-optimize: 优化应用
- 提供常用 Laravel 命令别名:
-
开发工具支持
- PHPUnit 测试框架
- PHP_CodeSniffer 代码规范检查
- PHP_CodeBeautifier 代码格式化
-
默认配置
- MySQL 密码:123456
- Redis 密码:123456
- 安装目录:/opt/dnmp
- 网站目录:/opt/dnmp/www
-
常用命令
dphp: 进入 PHP 容器dcomposer: 在容器中执行 Composer 命令dphpunit: 执行 PHPUnit 测试dphpcs: 执行代码规范检查dphpcbf: 执行代码格式化
-
注意事项
- 首次使用 Composer 时,建议配置国内镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 如果遇到权限问题,请确保当前用户在 docker 组中
- 建议在项目根目录下创建
.env文件配置数据库连接信息
- 首次使用 Composer 时,建议配置国内镜像:
系统工具脚本
scripts/utils/git.sh: 配置 Git 和安装 Git 工具scripts/utils/tools.sh: 安装各种系统工具和开发效率工具
常见问题
- 如果遇到权限问题,请使用
sudo运行脚本 - 如果遇到网络问题,请检查网络连接或使用代理
- 如果遇到依赖问题,请先运行
sudo apt-get update && sudo apt-get upgrade
贡献指南
欢迎提交 Issue 和 Pull Request 来帮助改进这个项目。
许可证
MIT License
常用快捷键
<Space>+th: 切换主题<Space>+ff: 查找文件<Space>+fw: 查找文本<Space>+ch: 查看所有快捷键<Ctrl>+h/j/k/l: 窗口导航<Ctrl>+s: 保存文件jk: 退出插入模式<Tab>: 切换到下一个缓冲区<Shift>+<Tab>: 切换到上一个缓冲区
Description
Languages
Shell
81.4%
PowerShell
10.4%
Batchfile
8.2%