一、WSL 的安装和使用

因为大部分人的主力机器基本上都是 Windows OS,所以除了笨重的虚拟机外最合适的 Linux 子系统方案莫过于 WSL(Windows Subsystem for Linux)。

那么如何安装这个 WSL 呢?可以参见 Microsoft Learning 的原文:How to install Linux on Windows with WSL

下面简单说一下安装的步骤:

首先,需要确保你的操作系统版本必须大于 Windows 10 2004 及更高版本(也就是内核 Build 19041 或者更高)或者 Windows 11。这些信息你可以在电脑设置系统信息中关注 Windows 发布版本OS 内核版本得到。

然后,在控制面板>程序>程序和功能>启用或关闭 Windows 功能中找到“适用于 Linux的 Windows 子系统”选项,然后勾选并重启生效。

图1.1 适用于 Linux的 Windows 子系统

接着,以管理员身份打开 PowerShell 或 CMD,然后输入命令安装并重启

1
wsl --install

这个命令默认安装的是最新版 Ubuntu OS,同时默认指定为 WSL2 模式,但是你也可以自行选择自己需要的操作系统(将 [Distro] 替换为您想要安装的发行版的名称):

1
wsl.exe --install -d [Distro]

备注:wsl -l -owsl.exe --list --online 可以查看可通过在线商店下载的 Linux 发行版列表。

图1.2 Linux 发行版列表

同理,你也可以指定不同的 Linux OS 的模式(请将 <Distro> 替换为你想要更新的 Linux 发行版的名称):

1
wsl.exe --set-version <Distro> <1|2>

最后也不赘述什么内容了,详细的 WSL 命令可以查阅 Basic commands for WSL

二、Linux 的目录结构

这里没有什么好说的内容,就是记住一句话“Linux 上一切皆文件”!

这是“菜鸟教程”中展示的 Linux 目录层级结构,/ 是最顶层的目录,~ 是当前用户目录。

图2.1 树状目录结构

更详细的内容可以直接查阅菜鸟教程 - Linux 系统目录结构

三、Linux 基础命令

注意这里只说入门级别的基础命令,学会后基本覆盖大部分使用场景。如果你想补充一些内容,直接评论区留言即可(可以在当前页面右键菜单找到“直达评论”选项)。

3.1 ls 命令

该命令用于显示指定工作目录下之内容,其基本格式为 ls [OPTION]... [PATH]... -> list,其中常用参数为:

  1. -l, --long 展示详细信息。
  2. -a, --all 不要忽略隐藏文件(即以 . 开头命名的文件)。
  3. -h 以人类可读的方式显示文件和目录大小 -> hunman
  4. -t 按照修改时间排序(最新的在前) -> time
  5. -S 按照文件大小进行排序(最大的在前) -> Size

图3.1.1 ls 命令

3.2 cd 命令

该命令用于更改 Shell 的工作目录,其基本格式为 cd [dir] -> change directory,没有常用参数。

图3.2.1 cd 命令

3.3 pwd 命令

该命令用于打印输出当前工作目录的名称,其基本格式为 pwd -> print working directory,没有常用参数。

图3.3.1 pwd 命令

3.4 mkdir 命令

该命令如果指定的一个或多个目录不存在,则创建这些目录,其基本格式为 mkdir [OPTION]... DIRECTORY... -> make directory, 以下是常用参数:

  1. -p, --parents 根据需要创建父级目录(常用于一次性创建多级目录)。

图3.4.1 mkdir 命令

3.5 touch 命令

该命令用于将每个文件的访问时间与修改时间更新为当前系统时间,但是常用于新文件的创建,其基本格式为 touch [OPTION]... [FILE]...,无常用参数。

图3.5.1 touch 命令

3.6 cat 命令

该命令可以将一个或多个文件,或者标准输入,拼接输出到标准输出,其基本格式为 cat [OPTION]... [FILE]...,常用参数有:

  1. -n, --number 对所有输出行进行行号编号。
  2. -b, --number-nonblank 仅对非空的输出行编号,该选项会覆盖 -n 参数。

图3.6.1 cat 命令

3.7 more 命令

该命令可以以分页的形式在终端中显示文件的内容,其基本格式为 more [options] <file>...,常用参数有:

  1. -<number> 每页显示几行文件内容。
  2. +<number> 从指定行号开始显示文件内容。
  3. (鸡肋)-d, --silent 显示翻页提示。

图3.7.1 more 命令

3.8 cp 命令

该命令算是第一个稍微格式复杂的命令了,主要用于文件及文件夹的复制,其基本格式为 cp [OPTION]... [-T] SOURCE DESTcp [OPTION]... SOURCE... DIRECTORYcp [OPTION]... -t DIRECTORY SOURCE...

写了半天发现这里其实很复杂,状态机太多了,所以我打算换一种方式进行讲解!

这个命令常用的就以下几种情况:

  • 复制文件并改名:cp file.txt file_copied.txtcp file.txt a/file_copied.txt
  • 复制一个或多个文件到目标文件夹:cp file_0.txt acp file_0.txt file_1.txt file_2.txt a
  • 复制文件夹到目标文件夹:cp -r a b

常用参数:

  1. -R, -r, --recursive 递归复制目录及其内容(用于复制目录)。
  2. -f, --force 强制复制,覆盖目标文件而不提示。
  3. -v, --verbose 显示详细的复制过程。
  4. -p, --preserve[=ATTR_LIST] 保留文件的原始属性(如权限、时间戳等)。
  5. -a, --archive 等价于 -dR --preserve=alldpR,保留所有文件属性和递归复制目录(归档模式)。
  6. -l, --link 创建硬链接而不是复制文件。
  7. -s, --symbolic-link 创建符号链接(软链接)而不是复制文件。
  8. -u 仅当源文件比目标文件新时才复制(更新模式) -> update。

图3.8.1 cp 命令

—未完待续—