Terminal
终端(Terminal)也称为命令行或控制台,是通过文本命令操作计算机的方式。
info
面试中提到的命令行通常指类 Unix 系统(如 Ubuntu、Debian、CentOS、Fedora、Arch Linux 等)的终端命令,因为企业生产环境大多使用这些系统。
需要注意的是,不同版本的系统之间存在差异。以 Ubuntu 为例,不仅大版本号重要,小版本号也同样重要。此外,在实际使用中,版本号和代号(如 Ubuntu 22.04 "Jammy Jellyfish")经常会混用。
网道 bash 教程是开源的 bash 文档,教科书式的篇章划分能帮助学习者系统的了解终端命令。
tldr是社区维护的命令行工具帮助页面合集,支持在线查询终端命令,有不同平台选择,支持不同语言显示
WSL
如果你是 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11 ,推荐使用 WSL(Windows Subsystem for Linux)?。
详细内容请参考WSL官方教程。
提示
- 某些版本的命令行需要使用
wsl.exe而不是wsl wsl --unregister会永久删除该发行版及其所有数据,无法恢复!
安装
| 功能描述 | 命令模板 | 命令示例 | 简写 |
|---|---|---|---|
| 安装WSL和默认Ubuntu | wsl --install | wsl --install | - |
| 安装指定发行版 | wsl --install <DistributionName> | wsl --install Ubuntu-24.04 | - |
| 列出可用发行版 | wsl --list --online | wsl --list --online | wsl -l -o |
| 列出已安装发行版 | wsl --list --verbose | wsl --list --verbose | wsl -l -v |
| 仅列出运行中的发行版 | wsl --list --running | wsl --list --running | wsl -l --running |
| 列出所有发行版 | wsl --list --all | wsl --list --all | wsl -l --all/ wsl -l |
网络与状态
| 功能描述 | 命令模板 | 命令示例 | 简写 |
|---|---|---|---|
| 获取Linux的IP地址 | wsl hostname -I | wsl hostname -I | - |
| 获取Windows的IP地址 | wsl ip route show | wsl ip route show | - |
| 查看WSL版本 | wsl --version | wsl --version | wsl -v |
| 检查WSL状态 | wsl --status | wsl --status | - |
| 获取帮助信息 | wsl --help | wsl --help | wsl -h |
配置设置
| 功能描述 | 命令模板 | 命令示例 | 简写 |
|---|---|---|---|
| 设置默认发行版 | wsl --set-default <DistributionName> | wsl --set-default Ubuntu-24.04 | wsl -s Ubuntu-24.04 |
| 设置WSL版本(1或2) | wsl --set-version <DistributionName> <Version> | wsl --set-version Ubuntu-24.04 2 | - |
| 设置默认WSL版本 | wsl --set-default-version <Version> | wsl --set-default-version 2 | - |
| 更改默认用户 | <DistributionName> config --default-user <Username> | ubuntu config --default-user johndoe | - |
启动运行
| 功能描述 | 命令模板 | 命令示例 | 简写 |
|---|---|---|---|
| 启动默认发行版 | wsl | wsl | - |
| 启动指定发行版 | wsl --distribution <DistributionName> | wsl --distribution Ubuntu-24.04 | wsl -d Ubuntu-24.04 |
| 以指定用户启动 | wsl --user <Username> | wsl --user root | wsl -u root |
| 指定发行版和用户 | wsl -d <DistributionName> -u <Username> | wsl -d Ubuntu-24.04 -u root | - |
| 在用户主目录启动 | wsl ~ | wsl ~ | - |
导入导出
| 功能描述 | 命令模板 | 命令示例 | 简写 |
|---|---|---|---|
| 导出发行版 | wsl --export <DistributionName> <FileName> | wsl --export Ubuntu-24.04 ubuntu-backup.tar | - |
| 导出为VHD格式 | wsl --export <DistributionName> <FileName> --vhd | wsl --export Ubuntu-24.04 ubuntu-backup.vhdx --vhd | - |
| 导入发行版 | wsl --import <DistributionName> <InstallLocation> <FileName> | wsl --import Ubuntu-ROS2 C:\WSL_ROS2 ubuntu-backup.tar | - |
| 导入VHD格式 | wsl --import <DistributionName> <InstallLocation> <FileName> --vhd | wsl --import Ubuntu-New C:\WSL_New backup.vhdx --vhd | - |
| 就地导入VHD | wsl --import-in-place <DistributionName> <FileName> | wsl --import-in-place Ubuntu-New ubuntu.vhdx | - |
管理维护
| 功能描述 | 命令模板 | 命令示例 | 简写 |
|---|---|---|---|
| 终止指定发行版 | wsl --terminate <DistributionName> | wsl --terminate Ubuntu-24.04 | wsl -t Ubuntu-24.04 |
| 关闭所有发行版 | wsl --shutdown | wsl --shutdown | - |
| 注销并卸载发行版 | wsl --unregister <DistributionName> | wsl --unregister Ubuntu-24.04 | - |
| 更新WSL | wsl --update | wsl --update | - |
| 从GitHub下载更新 | wsl --update --web-download | wsl --update --web-download | - |
磁盘管理
| 功能描述 | 命令模板 | 命令示例 | 简写 |
|---|---|---|---|
| 挂载磁盘 | wsl --mount <DiskPath> | wsl --mount \\.\PHYSICALDRIVE1 | - |
| 挂载VHD | wsl --mount <DiskPath> --vhd | wsl --mount C:\disk.vhdx --vhd | - |
| 挂载指定分区 | wsl --mount <DiskPath> --partition <PartitionNumber> | wsl --mount \\.\PHYSICALDRIVE1 --partition 1 | - |
| 挂载指定文件系统 | wsl --mount <DiskPath> --type <Filesystem> | wsl --mount \\.\PHYSICALDRIVE1 --type ext4 | wsl --mount <DiskPath> -t <Filesystem> |
| 卸载磁盘 | wsl --unmount <DiskPath> | wsl --unmount \\.\PHYSICALDRIVE1 | - |
| 卸载所有磁盘 | wsl --unmount | wsl --unmount | - |
5分钟上手
命令基本格式:命令名 [选项] [参数]
示例:
ls- 列出当前目录文件ls -l- 列出详细信息(-l是短参数)ls --list /home- 长参数写法,等同于短参数
参数写法
- 短参数:
-l(一个字母,方便手动输入) - 长参数:
--list(完整单词,脚本中更清晰) - 两者通常等效:
ls -l=ls --list
命令组合技巧
| 符号 | 含义 | 示例 | 说明 |
|---|---|---|---|
; | 依次执行 | cd /tmp; ls | 先切换目录,再列出文件 |
&& | 成功才继续 | mkdir test && cd test | 创建成功才进入目录 |
| | 管道传递 | ls -l | grep "txt" | 列出文件后筛选包含txt的行 |
管道(|)解释:将前一个命令的输出作为后一个命令的输入
# 例子:查找包含"python"的进程
ps aux | grep python