259 lines
6.8 KiB
Markdown
259 lines
6.8 KiB
Markdown
# 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
|
||
|
||
### 安装步骤
|
||
|
||
1. 克隆项目
|
||
```bash
|
||
git clone https://github.com/yourusername/wsl2-debian-init.git
|
||
cd wsl2-debian-init
|
||
```
|
||
|
||
2. 检查 Windows 上的 WSL2 环境(在 CMD 中运行)
|
||
```cmd
|
||
scripts\system\check_windows_wsl.bat
|
||
```
|
||
|
||
3. 检查 WSL2 内部环境(在 WSL 终端中运行)
|
||
```bash
|
||
./scripts/system/check_wsl.sh
|
||
```
|
||
|
||
4. 运行初始化脚本
|
||
```bash
|
||
./init.sh
|
||
```
|
||
|
||
5. 按需运行各个模块的安装脚本
|
||
```bash
|
||
# 安装 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`: 安装和配置 Zsh
|
||
- `scripts/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等)
|
||
- 配置常用快捷键和主题
|
||
- 使用方法:
|
||
1. 先安装 Neovim:`sudo ./scripts/editor/neovim.sh`
|
||
2. 再安装 NvChad:`sudo ./scripts/editor/nvchad.sh`
|
||
3. 启动 Neovim 并等待插件安装完成:`nvim`
|
||
4. 安装 LSP 服务器:在 Neovim 中运行 `:MasonInstallAll`
|
||
|
||
### 开发工具链脚本
|
||
- `scripts/devtools/docker.sh`: 安装 Docker 和 Docker Compose
|
||
- `scripts/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 开发环境
|
||
- 使用方法:
|
||
1. 运行安装脚本:`sudo ./scripts/php/dnmp.sh`
|
||
2. 使别名生效:`source ~/.zshrc` 或 `source ~/.bashrc`
|
||
3. 访问 http://localhost 查看 PHP 信息页面
|
||
|
||
#### PHP 开发环境特性
|
||
1. 优雅的命令行工具
|
||
- 直接在宿主机使用 `php` 命令:`php -v`
|
||
- 直接在宿主机使用 `composer` 命令:`composer install`
|
||
- 所有命令都会在 Docker 容器中执行,无需进入容器
|
||
|
||
2. Laravel 开发支持
|
||
- 提供常用 Laravel 命令别名:
|
||
- `laravel`: 执行 artisan 命令
|
||
- `laravel-make`: 创建新的 Laravel 组件
|
||
- `laravel-migrate`: 执行数据库迁移
|
||
- `laravel-seed`: 执行数据库填充
|
||
- `laravel-test`: 运行测试
|
||
- `laravel-route`: 查看路由列表
|
||
- `laravel-config`: 清除配置缓存
|
||
- `laravel-cache`: 清除应用缓存
|
||
- `laravel-view`: 清除视图缓存
|
||
- `laravel-optimize`: 优化应用
|
||
|
||
3. 开发工具支持
|
||
- PHPUnit 测试框架
|
||
- PHP_CodeSniffer 代码规范检查
|
||
- PHP_CodeBeautifier 代码格式化
|
||
|
||
4. 默认配置
|
||
- MySQL 密码:123456
|
||
- Redis 密码:123456
|
||
- 安装目录:/opt/dnmp
|
||
- 网站目录:/opt/dnmp/www
|
||
|
||
5. 常用命令
|
||
- `dphp`: 进入 PHP 容器
|
||
- `dcomposer`: 在容器中执行 Composer 命令
|
||
- `dphpunit`: 执行 PHPUnit 测试
|
||
- `dphpcs`: 执行代码规范检查
|
||
- `dphpcbf`: 执行代码格式化
|
||
|
||
6. 注意事项
|
||
- 首次使用 Composer 时,建议配置国内镜像:
|
||
```bash
|
||
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
|
||
```
|
||
- 如果遇到权限问题,请确保当前用户在 docker 组中
|
||
- 建议在项目根目录下创建 `.env` 文件配置数据库连接信息
|
||
|
||
### 系统工具脚本
|
||
- `scripts/utils/git.sh`: 配置 Git 和安装 Git 工具
|
||
- `scripts/utils/tools.sh`: 安装各种系统工具和开发效率工具
|
||
|
||
## 常见问题
|
||
|
||
1. 如果遇到权限问题,请使用 `sudo` 运行脚本
|
||
2. 如果遇到网络问题,请检查网络连接或使用代理
|
||
3. 如果遇到依赖问题,请先运行 `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>`: 切换到上一个缓冲区 |