Skip to main content

01.WSL常用的运维命令

WSL (Windows Subsystem for Linux) 核心是一个 Linux 发行版,运维命令分为 Linux 运维命令和 WSL 特有命令两类。

一、Linux 运维命令 (大部分通用)

由于 WSL 核心是一个 Linux 发行版,因此你可以使用大量标准 Linux 命令行工具进行系统管理和运维。

  • 系统信息:
    • uname -a: 显示内核版本和操作系统信息。
    • cat /etc/os-release: 显示发行版名称和版本。
    • lsb_release -a: (如果已安装 lsb-release 包) 显示发行版的详细信息。
    • free -h: 显示内存使用情况。
    • df -h: 显示磁盘空间使用情况。
    • top/htop: (如果已安装 htop) 实时显示系统进程和资源占用情况。
  • 用户和权限管理:
    • whoami: 显示当前用户名。
    • id: 显示当前用户的用户 ID (UID) 和组 ID (GID)。
    • sudo apt update && sudo apt upgrade: 更新软件包列表和升级已安装的软件包 (Debian/Ubuntu)。 使用 yum update (CentOS/RHEL) 或 zypper update (openSUSE/SUSE Linux Enterprise)。
    • useradd <用户名>: 创建新用户 (通常需要 sudo 权限)。
    • passwd <用户名>: 更改用户密码 (通常需要 sudo 权限)。 不加用户名则修改当前用户的密码。
    • usermod: 修改用户账户属性。
    • groupadd <组名>: 创建新组 (通常需要 sudo 权限)。
    • chmod: 更改文件或目录的权限。
    • chown: 更改文件或目录的所有者。
    • chgrp: 更改文件或目录的所属组。
  • 进程管理:
    • ps aux: 显示所有进程的详细信息。
    • kill <进程ID>: 终止指定进程。
    • kill -9 <进程ID>: 强制终止指定进程 (使用需谨慎)。
    • top/htop: 实时监控进程资源占用。
    • systemctl: 控制 systemd 系统和服务管理器(用于管理服务,例如启动、停止、重启)。 例如: sudo systemctl start nginx, sudo systemctl stop nginx, sudo systemctl status nginx。 并非所有 systemd 功能在 WSL 中都完全支持,但常用的服务管理功能通常可用。
  • 网络管理:
    • ip addr: 显示网络接口信息。
    • ifconfig: (已弃用,但可能仍然可用) 显示或配置网络接口。
    • ping <目标地址>: 测试网络连接。
    • netstat: 显示网络连接、路由表和网络接口信息. (ss 命令是 netstat 的替代者,通常更推荐)。
    • ss: 显示套接字统计信息,更简洁和高效. 例如 ss -lt 列出正在监听的 TCP 端口。
    • route: 显示或修改路由表。
    • traceroute <目标地址>: 追踪数据包的路由路径. (如果未安装,需要先安装: sudo apt install traceroute 或类似命令)。
    • nslookup <域名>: 查询 DNS 信息.
  • 文件和目录管理:
    • ls -l: 列出文件和目录的详细信息。
    • cd: 更改目录。
    • pwd: 显示当前工作目录。
    • mkdir: 创建目录。
    • rmdir: 删除空目录。
    • rm: 删除文件或目录 (使用 -r 选项可递归删除目录及其内容,非常危险,请小心)。
    • cp: 复制文件或目录。
    • mv: 移动或重命名文件或目录。
    • touch: 创建空文件或更新文件的时间戳。
    • cat: 显示文件内容。
    • less: 分页显示文件内容(允许向上和向下滚动)。
    • head: 显示文件的前几行。
    • tail: 显示文件的后几行 (常与 -f 选项一起使用,用于实时查看日志文件)。
    • grep: 在文件中搜索指定模式的文本。
    • find: 根据条件查找文件。
    • tar: 用于打包和解包文件,常与其他压缩工具(如 gzip 或 bzip2)结合使用。
  • 日志管理:
    • /var/log: 默认的 Linux 日志存储目录。
    • journalctl: 查询 systemd 日志 (用于查看 systemd 管理的服务的日志)。 例如: journalctl -u nginx.service 查看 nginx 服务的日志。

二、WSL 特有命令 (在 PowerShell 或 CMD 中运行)

这些命令只能在 Windows 的 PowerShell 或 CMD 中运行,用于管理 WSL 子系统本身。

  • wsl --list --verbosewsl -l -v: 列出已安装的 WSL 发行版及其状态 (Running 或 Stopped)。 也可以 wsl --list --all 显示所有已安装或正在安装的发行版
  • wsl --install: 安装默认 Linux 发行版(如果尚未安装)。
  • wsl --install <发行版名称>: 安装指定的 Linux 发行版。
  • wsl --unregister <发行版名称>: 从 Windows 取消注册(卸载)指定的 WSL 发行版。 警告:这将删除该发行版中的所有数据!
  • wsl --shutdown: 立即关闭所有正在运行的 WSL 发行版。
  • wsl --set-version <发行版名称> <版本号>: 转换发行版的 WSL 版本 (例如,从 WSL 1 转换为 WSL 2)。 <版本号> 可以是 12。 转换可能需要较长时间。
  • wsl --set-default <发行版名称>: 设置默认 WSL 发行版。 当你运行 wsl 命令而不指定发行版时,将启动默认发行版。
  • wsl --set-default-version <版本号>: 设置新安装的发行版的默认 WSL 版本 (12)。
  • wsl -d <发行版名称> <command>: 在指定的发行版中运行命令。 例如: wsl -d Ubuntu ls -l 在名为 "Ubuntu" 的发行版中运行 ls -l 命令。
  • wsl --import <发行版名称> <安装目录> <tar文件路径>: 从 tar 文件导入发行版.
  • wsl --export <发行版名称> <tar文件路径>: 将发行版导出到 tar 文件.
  • wsl --status: 显示 WSL 的配置信息,例如默认发行版和内核版本.
  • wsl --update: 检查 WSL 内核更新.
  • wsl --optimize-vhd: 优化虚拟磁盘(VHD)的大小,释放未使用的空间。