docs: 更新多个技术文档内容
更新Nginx安装指南,添加源码编译和AlmaLinux安装方法 补充Linux系统监控文档,增加网络和PCI/USB设备信息 新增WSL2安装配置文档 完善Vim编辑器文档,增加安装和基础命令 扩展Linux软件安装文档,添加MySQL、Redis、Node.js等安装指南
This commit is contained in:
parent
99e61e24c4
commit
f1f3aac13b
@ -183,16 +183,121 @@ lspci | grep -i 'eth'
|
|||||||
ifconfig -a
|
ifconfig -a
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### 查看网络接口详细信息
|
||||||
|
|
||||||
|
```shell
|
||||||
|
ip link show
|
||||||
|
```
|
||||||
|
|
||||||
**输出示例**:
|
**输出示例**:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
|
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
|
||||||
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
|
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
|
||||||
ether 02:42:66:fe:52:a2 txqueuelen 0 (Ethernet)
|
2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
|
||||||
|
link/ether 2c:ea:7f:a9:fc:76 brd ff:ff:ff:ff:ff:ff
|
||||||
|
```
|
||||||
|
|
||||||
em1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
|
### 查看网络流量统计
|
||||||
inet 192.168.6.20 netmask 255.255.255.0 broadcast 192.168.6.255
|
|
||||||
ether 2c:ea:7f:a9:fc:76 txqueuelen 1000 (Ethernet)
|
```shell
|
||||||
|
cat /proc/net/dev
|
||||||
|
```
|
||||||
|
|
||||||
|
**输出示例**:
|
||||||
|
|
||||||
|
```
|
||||||
|
Inter-| Receive | Transmit
|
||||||
|
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
|
||||||
|
em1: 589404500 4189635 0 245895 0 0 0 966587 3040611778 3751409 0 0 0 0 0 0
|
||||||
|
```
|
||||||
|
|
||||||
|
### 查看网卡详细参数
|
||||||
|
|
||||||
|
```shell
|
||||||
|
ethtool em1
|
||||||
|
```
|
||||||
|
|
||||||
|
**输出示例**:
|
||||||
|
|
||||||
|
```
|
||||||
|
Settings for em1:
|
||||||
|
Supported ports: [ TP ]
|
||||||
|
Supported link modes: 10baseT/Half 10baseT/Full
|
||||||
|
100baseT/Half 100baseT/Full
|
||||||
|
1000baseT/Half 1000baseT/Full
|
||||||
|
Speed: 100Mb/s
|
||||||
|
Duplex: Full
|
||||||
|
Port: Twisted Pair
|
||||||
|
Auto-negotiation: on
|
||||||
|
Link detected: yes
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## PCI信息
|
||||||
|
|
||||||
|
### 查看PCI设备
|
||||||
|
|
||||||
|
```shell
|
||||||
|
lspci
|
||||||
|
```
|
||||||
|
|
||||||
|
**输出示例**:
|
||||||
|
|
||||||
|
```
|
||||||
|
00:00.0 Host bridge: Intel Corporation Sky Lake-E DMI3 Registers (rev 07)
|
||||||
|
00:14.0 USB controller: Intel Corporation C620 Series Chipset Family USB 3.0 xHCI Controller
|
||||||
|
04:00.0 Ethernet controller: Broadcom NetXtreme BCM5720 2-port Gigabit Ethernet PCIe
|
||||||
|
```
|
||||||
|
|
||||||
|
### 查看详细信息
|
||||||
|
|
||||||
|
```shell
|
||||||
|
lspci -v # 详细信息
|
||||||
|
lspci -vv # 更详细信息
|
||||||
|
```
|
||||||
|
|
||||||
|
### 查看设备树
|
||||||
|
|
||||||
|
```shell
|
||||||
|
lspci -t
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## USB信息
|
||||||
|
|
||||||
|
### 查看USB设备
|
||||||
|
|
||||||
|
```shell
|
||||||
|
lsusb
|
||||||
|
```
|
||||||
|
|
||||||
|
**输出示例**:
|
||||||
|
|
||||||
|
```
|
||||||
|
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
|
||||||
|
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
|
||||||
|
```
|
||||||
|
|
||||||
|
### 查看USB拓扑
|
||||||
|
|
||||||
|
```shell
|
||||||
|
lsusb -t
|
||||||
|
```
|
||||||
|
|
||||||
|
**输出示例**:
|
||||||
|
|
||||||
|
```
|
||||||
|
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 5000M
|
||||||
|
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M
|
||||||
|
```
|
||||||
|
|
||||||
|
### 查看详细信息
|
||||||
|
|
||||||
|
```shell
|
||||||
|
lsusb -v
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -5,6 +5,52 @@ tags: [Nginx, 反向代理, Web服务器, 负载均衡]
|
|||||||
categories: [运维, Web服务器]
|
categories: [运维, Web服务器]
|
||||||
---
|
---
|
||||||
|
|
||||||
|
# Nginx 安装
|
||||||
|
|
||||||
|
## 源码编译安装
|
||||||
|
|
||||||
|
```shell
|
||||||
|
tar -zxvf nginx-1.21.4.tar.gz
|
||||||
|
cd nginx-1.21.4/
|
||||||
|
./configure
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
```
|
||||||
|
|
||||||
|
## AlmaLinux/RHEL 安装
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# 确保软件是最新的
|
||||||
|
sudo dnf clean all
|
||||||
|
sudo dnf update
|
||||||
|
sudo dnf groupinstall "Development Tools"
|
||||||
|
|
||||||
|
# 安装 Nginx
|
||||||
|
sudo dnf install nginx
|
||||||
|
|
||||||
|
# 启动并设置开机自启
|
||||||
|
sudo systemctl restart nginx
|
||||||
|
sudo systemctl status nginx
|
||||||
|
sudo systemctl enable nginx
|
||||||
|
|
||||||
|
# 配置防火墙
|
||||||
|
sudo firewall-cmd --permanent --add-service=http
|
||||||
|
sudo firewall-cmd --permanent --add-service=https
|
||||||
|
sudo firewall-cmd --reload
|
||||||
|
```
|
||||||
|
|
||||||
|
## 目录结构
|
||||||
|
|
||||||
|
| 目录/文件 | 说明 |
|
||||||
|
|-----------|------|
|
||||||
|
| `/etc/nginx` | 包含所有 Nginx 配置文件的主目录 |
|
||||||
|
| `/etc/nginx/nginx.conf` | 主要的 Nginx 配置文件 |
|
||||||
|
| `/etc/nginx/sites-available` | 定义各个网站的目录 |
|
||||||
|
| `/etc/nginx/sites-enabled` | Nginx 积极服务的网站列表 |
|
||||||
|
| `/var/log/nginx` | Nginx 日志目录 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Nginx 隐藏版本号
|
## Nginx 隐藏版本号
|
||||||
|
|
||||||
nginx配置文件`nginx.conf`里增加 server_tokens off;
|
nginx配置文件`nginx.conf`里增加 server_tokens off;
|
||||||
|
|||||||
@ -4,54 +4,90 @@ date: 2023-09-21 15:00:20
|
|||||||
tags: [Vim, 编辑器, Linux, 开发工具]
|
tags: [Vim, 编辑器, Linux, 开发工具]
|
||||||
categories: [开发工具, Vim]
|
categories: [开发工具, Vim]
|
||||||
---
|
---
|
||||||
|
# Vim 编辑器
|
||||||
|
|
||||||
|
## 简介
|
||||||
|
Vim 是 Linux 系统中常用的文本编辑器,是 vi 的增强版本。它具有强大的编辑功能和可扩展性。
|
||||||
|
|
||||||
|
> **特点**:语法高亮、多级撤销/重做、插件系统
|
||||||
|
|
||||||
|
## 安装 Vim
|
||||||
|
### CentOS/RHEL/AlmaLinux
|
||||||
|
```shell
|
||||||
|
yum install -y vim
|
||||||
|
```
|
||||||
|
### Ubuntu/Debian
|
||||||
|
```shell
|
||||||
|
sudo apt install vim
|
||||||
|
```
|
||||||
|
### Arch Linux
|
||||||
|
```shell
|
||||||
|
sudo pacman -S vim
|
||||||
|
```
|
||||||
|
## vi 基础命令
|
||||||
|
vi 是 Vim 的前身,以下是 vi 的基本操作命令:
|
||||||
|
### 进入编辑模式
|
||||||
|
| 按键 | 功能 |
|
||||||
|
|-----|------|
|
||||||
|
| `i` | 在光标前插入 |
|
||||||
|
| `I` | 在光标当前行的行头插入 |
|
||||||
|
| `a` | 在光标后插入 |
|
||||||
|
| `A` | 在光标当前行的行尾插入 |
|
||||||
|
| `o` | 在当前行的下方插入一个新行 |
|
||||||
|
| `O` | 在当前行的上方插入一个新行 |
|
||||||
|
### 保存与退出
|
||||||
|
| 匉键 | 功能 |
|
||||||
|
|-----|------|
|
||||||
|
| `:wq` | 保存并退出 |
|
||||||
|
| `:q` | 不保存退出 |
|
||||||
|
| `:w` | 保存 |
|
||||||
|
| `:q!` | 强制不保存退出 |
|
||||||
|
| `:wq!` | 强制保存退出 |
|
||||||
|
| `Shift + zz` | 保存退出(与 `:wq` 相同) |
|
||||||
|
### 其他常用命令
|
||||||
|
| 按键 | 功能 |
|
||||||
|
|-----|------|
|
||||||
|
| `:set nu` | 显示行号 |
|
||||||
|
| `:set nonu` | 取消显示行号 |
|
||||||
|
| `gg` | 到文本的第一行 |
|
||||||
|
| `G` | 到文本的最后一行 |
|
||||||
|
| `u` | 后退一步(相当于 Ctrl + z) |
|
||||||
|
| `Ctrl + r` | 前进一步 |
|
||||||
|
| `起始行号,结束行号 del` | 删除对应范围内的行 |
|
||||||
|
> 💡 **提示**:更多详细的 Vim 使用方法请参考下面的章节。
|
||||||
# Vim 的工作模式
|
# Vim 的工作模式
|
||||||
|
vim 有6种工作模式:
|
||||||
vim 有6种工作模式。
|
|
||||||
|
|
||||||
- 普通模式:使用 vim 打开一个文件时默认模式。也叫命令模式,运行用户通过各种命令浏览代码、滚屏等操作。
|
- 普通模式:使用 vim 打开一个文件时默认模式。也叫命令模式,运行用户通过各种命令浏览代码、滚屏等操作。
|
||||||
- 插入模式:也可以叫做编辑模式,在普通模式下敲击i、a 或 o 就进入插入模式,允许用户通过键盘输入、编辑。
|
- 插入模式:也可以叫做编辑模式,在普通模式下敲击i、a 或 o 就进入插入模式,允许用户通过键盘输入、编辑。
|
||||||
- 命令行模式:在普通模式下,先输入冒号`:`,接着输入命令 ,就可以通过配置命令对 vim 进行配置了,如改变颜色主题、显示行号等,这些配置命令也可以保存到/etc/vim/vimrc配置文件中,每次打开默认配置执行。
|
- 命令行模式:在普通模式下,先输入冒号`:`,接着输入命令 ,就可以通过配置命令对 vim 进行配置了,如改变颜色主题、显示行号等,这些配置命令也可以保存到/etc/vim/vimrc配置文件中,每次打开默认配置执行
|
||||||
- 可视化模式:在普通模式下敲击键盘上的 v 键,就进入可视化模式,然后移动光标就可以选中一块文本,常用来完成文本的复制、粘贴、删除等操作。
|
- 可视化模式:在普通模式下敲击键盘上的 v 键,就进入可视化模式,然后移动光标就可以选中一块文本,常用来完成文本的复制、粘贴、删除等操作
|
||||||
- 替换模式:如果我们想修改某个字符,不需要先进入插入模式,删除,然后再输入新的字符,直接在普通模式下,敲击`R`键就可以直接替换。
|
- 替换模式:如果我们想修改某个字符,不需要先进入插入模式,删除,然后再输入新的字符,直接在普通模式下,敲击`R`键就可以直接替换
|
||||||
- EX模式:类似于命令行模式,可以一次运行多个命令。
|
- EX模式:类似于命令行模式,可以一次运行多个命令
|
||||||
|
|
||||||
vim 的各种工作模式可以通过不同的键进行切换,用户统一使用`ESC`键返回到普通模式。
|
vim 的各种工作模式可以通过不同的键进行切换,用户统一使用`ESC`键返回到普通模式。
|
||||||
|
|
||||||
## 命令模式
|
## 命令模式
|
||||||
|
|
||||||
**用户刚刚启动vim,便进入里命令模式**
|
**用户刚刚启动vim,便进入里命令模式**
|
||||||
|
|
||||||
此状态下敲击键盘动作会被 Vim 识别为命令,而非输入字符,比如我们此时按下`i`,并不会输入一个字符,`i`被当作了一个命令。
|
此状态下敲击键盘动作会被 Vim 识别为命令,而非输入字符,比如我们此时按下`i`,并不会输入一个字符,`i`被当作了一个命令。
|
||||||
|
|
||||||
以下是普通模式常用的几个命令:
|
以下是普通模式常用的几个命令:
|
||||||
|
|
||||||
- `i` -- 切换到输入模式,在光标当前位置开始输入文本。
|
- `i` -- 切换到输入模式,在光标当前位置开始输入文本。
|
||||||
- `x` -- 删除当前光标所在处的字符。
|
- `x` -- 删除当前光标所在处的字符
|
||||||
- `:` -- 切换到底线命令模式,以在最底一行输入命令。
|
- `:` -- 切换到底线命令模式,以在最底一行输入命令
|
||||||
- `a` -- 进入插入模式,在光标下一个位置开始输入文本。
|
- `a` -- 进入插入模式,在光标下一个位置开始输入文本
|
||||||
- `o` -- 在当前行的下方插入一个新行,并进入插入模式。
|
- `o` -- 在当前行的下方插入一个新行,并进入插入模式
|
||||||
- `O` -- 在当前行的上方插入一个新行,并进入插入模式。
|
- `O` -- 在当前行的上方插入一个新行,并进入插入模式
|
||||||
- `dd` -- 删除当前行。
|
- `dd` -- 删除当前行
|
||||||
- `yy` -- 复制当前行。
|
- `yy` -- 复制当前行
|
||||||
- `p`(小写)-- 粘贴剪贴板内容到光标下方。
|
- `p`(小写)-- 粘贴剪贴板内容到光标下方
|
||||||
- `P`(大写)-- 粘贴剪贴板内容到光标上方。
|
- `P`(大写)-- 粘贴剪贴板内容到光标上方
|
||||||
- `u` -- 撤销上一次操作。
|
- `u` -- 撤销上一次操作
|
||||||
- `Ctrl + r` -- 重做上一次撤销的操作。
|
- `Ctrl + r` -- 重做上一次撤销的操作
|
||||||
- `:w` -- 保存文件。
|
- `:w` -- 保存文件
|
||||||
- `:q` -- 退出 Vim 编辑器
|
- `:q` -- 退出 Vim 编辑器
|
||||||
- `:q!` -- 强制退出 Vim 编辑器,不保存修改。
|
- `:q!` -- 强制退出 Vim 编辑器,不保存修改
|
||||||
|
若要编辑文本,只需要启动 Vim,进入了命令模式,按下`i`切换到输入模式即可
|
||||||
若要编辑文本,只需要启动 Vim,进入了命令模式,按下`i`切换到输入模式即可。
|
|
||||||
|
|
||||||
命令模式只有一些最基本的命令,因此仍要依靠**底线命令行模式**输入更多命令。
|
命令模式只有一些最基本的命令,因此仍要依靠**底线命令行模式**输入更多命令。
|
||||||
|
|
||||||
## 输入模式
|
## 输入模式
|
||||||
|
在命令模式下按下`i`就进入了输入模式,使用`Esc`键可以返回到普通模式
|
||||||
在命令模式下按下`i`就进入了输入模式,使用`Esc`键可以返回到普通模式。
|
在输入模式中,可以使用以下按键:
|
||||||
|
|
||||||
在输入模式中,可以使用以下按键:
|
|
||||||
|
|
||||||
- **字符按键以及Shifi组合**,输入字符
|
- **字符按键以及Shifi组合**,输入字符
|
||||||
- **ENTER**,回车键,换行
|
- **ENTER**,回车键,换行
|
||||||
- **BACK SPACE**,退格键,删除光标前一个字符
|
- **BACK SPACE**,退格键,删除光标前一个字符
|
||||||
@ -61,32 +97,21 @@ vim 的各种工作模式可以通过不同的键进行切换,用户统一使
|
|||||||
- **Page Up/Page Down**,上/下翻页
|
- **Page Up/Page Down**,上/下翻页
|
||||||
- **Insert**,切换光标输入为输入\替换模式,光标将变成竖线/下划线
|
- **Insert**,切换光标输入为输入\替换模式,光标将变成竖线/下划线
|
||||||
- **ESC**,退出输入模式,切换到命令模式
|
- **ESC**,退出输入模式,切换到命令模式
|
||||||
|
|
||||||
## 底线命令模式
|
## 底线命令模式
|
||||||
|
在命令模式下按下`:`(英文冒号)就进入了底线命令模式
|
||||||
在命令模式下按下`:`(英文冒号)就进入了底线命令模式。
|
|
||||||
|
|
||||||
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
|
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
|
||||||
|
|
||||||
在底线命令模式中,基本的命令有(已经省略了冒号):
|
在底线命令模式中,基本的命令有(已经省略了冒号):
|
||||||
|
|
||||||
- :w 保存文件
|
- :w 保存文件
|
||||||
- :q 退出 Vim 编辑器
|
- :q 退出 Vim 编辑器
|
||||||
- :wq 保存文件并退出 Vim 编辑器
|
- :wq 保存文件并退出 Vim 编辑器
|
||||||
- :q! 强制退出 Vim 编辑器,不保存修改
|
- :q! 强制退出 Vim 编辑器,不保存修改
|
||||||
- :set nu 开启行号
|
- :set nu 开启行号
|
||||||
- :set nonu 关闭行号
|
- :set nonu 关闭行号
|
||||||
|
按`ESC`键可随时退出底线命令模式
|
||||||
按`ESC`键可随时退出底线命令模式。
|
|
||||||
|
|
||||||
简单的说,我们可以将这三个模式想成底下的图标来表示:
|
简单的说,我们可以将这三个模式想成底下的图标来表示:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
# Vim 的按键说明
|
# Vim 的按键说明
|
||||||
|
|
||||||
## 第一部分:命令模式可用的光标移动、复制粘贴、搜索替换等
|
## 第一部分:命令模式可用的光标移动、复制粘贴、搜索替换等
|
||||||
|
|
||||||
<center>
|
<center>
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
@ -172,7 +197,7 @@ vim 的各种工作模式可以通过不同的键进行切换,用户统一使
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>gg</td>
|
<td>gg</td>
|
||||||
<td>移动到这个档案的第一行,相当于 1G 啊! (常用)</td>
|
<td>移动到这个档案的第一行,相当于 1G 啉! (常用)</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>n『 Enter 』</td>
|
<td>n『 Enter 』</td>
|
||||||
@ -187,19 +212,13 @@ vim 的各种工作模式可以通过不同的键进行切换,用户统一使
|
|||||||
</table>
|
</table>
|
||||||
</center>
|
</center>
|
||||||
# Vim配置文件
|
# Vim配置文件
|
||||||
|
## 当前用户配置文件(~/.vimrc)
|
||||||
## 当前用户配置文件(~/.vimrc)
|
|
||||||
|
|
||||||
若在当前用户目录下没有`.vimrc`,则手动新建即可
|
若在当前用户目录下没有`.vimrc`,则手动新建即可
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
vim ~/.vimrc
|
vim ~/.vimrc
|
||||||
```
|
```
|
||||||
|
|
||||||
其中可添加如命令模式中的命令,比如`set nu`,之后再打开vim则默认开启行号
|
其中可添加如命令模式中的命令,比如`set nu`,之后再打开vim则默认开启行号
|
||||||
|
|
||||||
```
|
```
|
||||||
set nu
|
set nu
|
||||||
```
|
```
|
||||||
|
|
||||||
`:wq`保存退出后,需使用`source ~/.vimrc`使改动生效
|
`:wq`保存退出后,需使用`source ~/.vimrc`使改动生效
|
||||||
260
source/_posts/WSL2.md
Normal file
260
source/_posts/WSL2.md
Normal file
@ -0,0 +1,260 @@
|
|||||||
|
---
|
||||||
|
title: WSL2
|
||||||
|
date: 2026-04-17 10:00:22
|
||||||
|
author: 文永达
|
||||||
|
tags: [WSL, Windows, Linux, 子系统]
|
||||||
|
categories: [操作系统, WSL]
|
||||||
|
---
|
||||||
|
|
||||||
|
# WSL2 (Windows Linux 子系统)
|
||||||
|
|
||||||
|
WSL2 是 Windows 的 Linux 子系统,允许在 Windows 上运行 Linux 环境,无需使用虚拟机。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 安装
|
||||||
|
|
||||||
|
### 1. 启用 Windows 功能
|
||||||
|
|
||||||
|
打开控制面板 → 程序和功能 → 启用或关闭 Windows 功能,勾选"适用于 Linux 的 Windows 子系统"。
|
||||||
|
|
||||||
|
也可通过运行窗口快速打开:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
Win + R → 输入 appwiz.cpl → 回车
|
||||||
|
```
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
> 此步骤也可解决安装发行版时的报错:
|
||||||
|
> `错误代码: Wsl/InstallDistro/Service/RegisterDistro/CreateVm/HCS/HCS_E_SERVICE_NOT_AVAILABLE`
|
||||||
|
|
||||||
|
### 2. 安装 WSL
|
||||||
|
|
||||||
|
打开 Windows Terminal PowerShell:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
wsl --install
|
||||||
|
```
|
||||||
|
|
||||||
|
> 微软官方文档:[安装 WSL | Microsoft Docs](https://docs.microsoft.com/zh-cn/windows/wsl/install)
|
||||||
|
|
||||||
|
默认安装 Ubuntu 20.04 LTS 版。
|
||||||
|
|
||||||
|
### 3. 更改默认发行版
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
wsl --install -d <Distribution Name>
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. 访问 Windows 磁盘
|
||||||
|
|
||||||
|
`/mnt` 目录下是 Windows 系统的挂载盘,可直接访问 Windows 磁盘文件。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 迁移
|
||||||
|
|
||||||
|
将 WSL 发行版迁移到其他目录:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
wsl --manage Ubuntu-24.04 --move d:\ubuntu
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 导出
|
||||||
|
|
||||||
|
### 1. 查看当前分发版
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
wsl -l
|
||||||
|
```
|
||||||
|
|
||||||
|
输出示例:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
适用于 Linux 的 Windows 子系统分发:
|
||||||
|
archlinux (默认值)
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. 停止运行中的 WSL
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
wsl --terminate archlinux
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. 导出镜像
|
||||||
|
|
||||||
|
使用 `wsl --export` 命令将分发版导出为 `.tar` 文件:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
wsl --export archlinux E:\Backup\archlinux.tar
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 导入
|
||||||
|
|
||||||
|
使用 `wsl --import` 命令导入镜像:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
wsl --import <发行版名称> <安装位置> <tar文件路径>
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 通过 FinalShell 连接 WSL2
|
||||||
|
|
||||||
|
### 方式一:重装 SSH
|
||||||
|
|
||||||
|
#### 1. 删除并重装 SSH
|
||||||
|
|
||||||
|
```shell
|
||||||
|
apt-get remove --purge openssh-server
|
||||||
|
apt-get install openssh-server
|
||||||
|
rm /etc/ssh/ssh_config
|
||||||
|
service ssh --full-restart
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 2. 修改配置文件
|
||||||
|
|
||||||
|
```shell
|
||||||
|
vim /etc/ssh/sshd_config
|
||||||
|
|
||||||
|
Port 6666 # 指定连接端口 6666
|
||||||
|
ListenAddress 0.0.0.0 # 指定连接的 IP
|
||||||
|
PasswordAuthentication yes # 开启密码认证
|
||||||
|
PermitRootLogin yes # 开启 root 用户登录
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 3. 重启 SSH(每次重启 WSL 都要执行)
|
||||||
|
|
||||||
|
```shell
|
||||||
|
service ssh --full-restart
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 4. 重新生成 host key
|
||||||
|
|
||||||
|
```shell
|
||||||
|
dpkg-reconfigure openssh-server
|
||||||
|
```
|
||||||
|
|
||||||
|
### 方式二:端口转发
|
||||||
|
|
||||||
|
#### 1. 查看 WSL 地址
|
||||||
|
|
||||||
|
安装 `ifconfig` 工具:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
apt install net-tools
|
||||||
|
```
|
||||||
|
|
||||||
|
查看 IP 地址:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
ifconfig
|
||||||
|
```
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
#### 2. 端口转发
|
||||||
|
|
||||||
|
在 PowerShell 中执行,将 `[IP]` 和 `[PORT]` 替换为 WSL 的 IP 和 SSH 端口:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=2222 connectaddress=[IP] connectport=[PORT]
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 启用 systemctl
|
||||||
|
|
||||||
|
进入当前发行版,编辑 `/etc/wsl.conf`:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
vim /etc/wsl.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
内容如下:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
[boot]
|
||||||
|
systemd=true
|
||||||
|
```
|
||||||
|
|
||||||
|
重启 WSL:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
wsl --shutdown
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 取消密码复杂度及长度限制
|
||||||
|
|
||||||
|
编辑 `/etc/pam.d/system-auth`:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
vim /etc/pam.d/system-auth
|
||||||
|
```
|
||||||
|
|
||||||
|
修改密码要求:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen=6 ucredit=1 lcredit=1 ocredit=1 dcredit=1
|
||||||
|
```
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## WSL 玄学 Bug:SSH 连接找不到 nvidia-smi
|
||||||
|
|
||||||
|
本地正常,但通过 SSH 连接 WSL 时执行 `nvidia-smi` 找不到。
|
||||||
|
|
||||||
|
### 解决方式
|
||||||
|
|
||||||
|
在 `.bashrc` 中加入:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
export PATH=/usr/lib/wsl/lib:$PATH
|
||||||
|
```
|
||||||
|
|
||||||
|
> 参考:[https://github.com/microsoft/WSL/issues/8794](https://github.com/microsoft/WSL/issues/8794)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 常用命令
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
# 查看所有分发版
|
||||||
|
wsl -l --all
|
||||||
|
|
||||||
|
# 查看正在运行的分发版
|
||||||
|
wsl -l --running
|
||||||
|
|
||||||
|
# 设置默认分发版
|
||||||
|
wsl -s <Distribution Name>
|
||||||
|
|
||||||
|
# 启动指定分发版
|
||||||
|
wsl -d <Distribution Name>
|
||||||
|
|
||||||
|
# 关闭指定分发版
|
||||||
|
wsl -t <Distribution Name>
|
||||||
|
|
||||||
|
# 关闭所有分发版
|
||||||
|
wsl --shutdown
|
||||||
|
|
||||||
|
# 卸载分发版
|
||||||
|
wsl --unregister <Distribution Name>
|
||||||
|
|
||||||
|
# 更新 WSL
|
||||||
|
wsl --update
|
||||||
|
|
||||||
|
# 查看状态
|
||||||
|
wsl --status
|
||||||
|
|
||||||
|
# 查看版本
|
||||||
|
wsl --version
|
||||||
|
```
|
||||||
Loading…
x
Reference in New Issue
Block a user