Linux 入门基础知识总结
一、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 子系统”选项,然后勾选并重启生效。

接着,以管理员身份打开 PowerShell 或 CMD,然后输入命令安装并重启:
1 | |
这个命令默认安装的是最新版 Ubuntu OS,同时默认指定为 WSL2 模式,但是你也可以自行选择自己需要的操作系统(将 [Distro] 替换为您想要安装的发行版的名称):
1 | |
备注:wsl -l -o 或 wsl.exe --list --online 可以查看可通过在线商店下载的 Linux 发行版列表。

同理,你也可以指定不同的 Linux OS 的模式(请将 <Distro> 替换为你想要更新的 Linux 发行版的名称):
1 | |
最后也不赘述什么内容了,详细的 WSL 命令可以查阅 Basic commands for WSL。
二、Linux 的目录结构
这里没有什么好说的内容,就是记住一句话“Linux 上一切皆文件”!
这是“菜鸟教程”中展示的 Linux 目录层级结构,/ 是最顶层的目录,~ 是当前用户目录。

更详细的内容可以直接查阅菜鸟教程 - Linux 系统目录结构。
三、Linux 基础命令
注意这里只说入门级别的基础命令,学会后基本覆盖大部分使用场景。如果你想补充一些内容,直接评论区留言即可(可以在当前页面右键菜单找到“直达评论”选项)。
3.1 ls 命令
该命令用于显示指定工作目录下之内容,其基本格式为 ls [OPTION]... [PATH]... -> list,其中常用参数为:
-l, --long展示详细信息。-a, --all不要忽略隐藏文件(即以.开头命名的文件)。-h以人类可读的方式显示文件和目录大小 -> hunman。-t按照修改时间排序(最新的在前) -> time。-S按照文件大小进行排序(最大的在前) -> Size。

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

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

3.4 mkdir 命令
该命令如果指定的一个或多个目录不存在,则创建这些目录,其基本格式为 mkdir [OPTION]... DIRECTORY... -> make directory, 以下是常用参数:
-p, --parents根据需要创建父级目录(常用于一次性创建多级目录)。

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

3.6 cat 命令
该命令可以将一个或多个文件,或者标准输入,拼接输出到标准输出,其基本格式为 cat [OPTION]... [FILE]... -> concatenate,常用参数有:
-n, --number对所有输出行进行行号编号。-b, --number-nonblank仅对非空的输出行编号,该选项会覆盖-n参数。

3.7 more 命令
该命令可以以分页的形式在终端中显示文件的内容,其基本格式为 more [options] <file>...,常用参数有:
-<number>每页显示几行文件内容。+<number>从指定行号开始显示文件内容。- (鸡肋)
-d, --silent显示翻页提示。

3.8 cp 命令
该命令算是第一个稍微格式复杂的命令了,主要用于文件及文件夹的复制,其基本格式为 cp [OPTION]... [-T] SOURCE DEST 或 cp [OPTION]... SOURCE... DIRECTORY 或 cp [OPTION]... -t DIRECTORY SOURCE... -> copy。
写了半天发现这里其实很复杂,状态机太多了,所以我打算换一种方式进行讲解!
这个命令常用的就以下几种情况:
- 复制文件并改名:
cp file.txt file_copied.txt或cp file.txt a/file_copied.txt。 - 复制一个或多个文件到目标文件夹:
cp file_0.txt a或cp file_0.txt file_1.txt file_2.txt a。 - 复制文件夹到目标文件夹:
cp -r a b。
常用参数:
-R, -r, --recursive递归复制目录及其内容(用于复制目录)。-f, --force强制复制,覆盖目标文件而不提示。-v, --verbose显示详细的复制过程。-p, --preserve[=ATTR_LIST]保留文件的原始属性(如权限、时间戳等)。-a, --archive等价于-dR --preserve=all或dpR,保留所有文件属性和递归复制目录(归档模式)。-l, --link创建硬链接而不是复制文件。-s, --symbolic-link创建符号链接(软链接)而不是复制文件。-u仅当源文件比目标文件新时才复制(更新模式) -> update。

3.9 mv 命令
该命令主要用于将文件或目录移入其它位置,或为文件或目录改名!其基本格式类似于 cp 命令,其实也很复杂:mv [OPTION]... [-T] SOURCE DEST 或 mv [OPTION]... SOURCE... DIRECTORY 或 mv [OPTION]... -t DIRECTORY SOURCE...。但这个命令在刚入门时,其实并不用了解那么详细。我认为唯一需要记住的基本格式为第一类的无参数版 mv SOURCE DEST -> move。
其中要注意的是 mv 命令是有更改文件或文件夹名称的能力的,这使得其在特殊状态机下有一些不同寻常的理解:
| 命令示例 | 理解说明 |
|---|---|
mv file.txt file0.txt | 将 file.txt 更名为 file0.txt |
mv file.txt dir | 将 file.txt 移入 dir 目录 |
mv dir0 dir1 | - dir1 存在:将 dir0 移入 dir1- dir1 不存在:将 dir0 重命名为 dir1 |
mv dir0 file.txt | 执行报错 |

4.1 rm 命令
该命令用于删除一个文件或者目录,其基本格式为 rm [OPTION]... [FILE]...,常用参数为:
-i删除每一个文件及文件夹前都进行提示确认 -> interactive(交互式的)。-r, -R, --recursive删除文件夹及文件夹中的所有内容。-f, --force强制删除,无需任何确认。

4.2 find 命令
该命令用于在指定目录下查找文件和目录,其基本格式为 find [-H] [-L] [-P] [-Olevel] [-D debugopts] [path...] [expression],常见用法为:
- 按文件名查找:
-name,支持使用通配符*(匹配任意长度任意字符「0 个或多个」)、?(匹配单个任意字符)和[](匹配括号内任意一个字符)。 - 按文件大小查找:
-size,支持使用+或-表示大于或小于指定大小,单位可以是c(字节)、w(字数)、b(块数)、k(KB)、M(MB)或G(GB)。。 - 按文件类型查找:
-type,其中文件类型常见的有“f(文件)”、“d(文件夹)”、“l(链接)”等。

4.3 grep 命令
该命令用于查找文件里符合条件的字符串或正则表达式,其基本格式为 grep [OPTION]... PATTERNS [FILE]... -> global regular expression,常用参数如下:
-n, --line-number对输出内容打印行号。-i, --ignore-case忽略大小写进行匹配。-r, --recursive递归查找目录中的子文件。-c, --count只打印匹配的数量。
注释:该命令常借助 |(管道符)与 find 命令一起使用,find 查找到的内容通过 | 传递给 grep 命令作为输入,实现在 find 的查找结果中过滤出特定的信息。

4.4 wc 命令
该命令用于计算字数,基本格式为 wc [OPTION]... [FILE]... -> word count,常用参数如下:
-c, --bytes打印字节数。-m, --chars显示字符数(注意与-w参数的区别)。-l, --lines打印行数。-w, --words显示单词总数(注意与-m参数的区别)。

4.5 echo 命令
该命令用于在终端中显示文本或变量的值(与 Windows 几乎一致),其基本格式为 wc [OPTION]... [CONTENT],常用参数为:
-n不输出结尾默认的换行符。-e启用转移字符。-E禁用转移字符(默认)。


4.6 tail 命令
该命令可用于查看文件的内容,其基本格式为 tail [FLAG]... [FILE]...,常用参数为”
-f, --follow循环读取。-<num>显示文件的尾部 num 行内容。+<num>显示从文件的第 num 行到文件末尾的所有内容。


4.7 vi/vim 命令
所有的 Unix 系统都会内建 vi 文本编辑器。但是目前我们使用比较多的是 vim 编辑器,因为 vim 具有相较于 vi 更强的编辑能力(vim ≈ vi pro max)。详细内容请参考 Linux vi/vim。
| 命令模式 | 按键功能说明 |
|---|---|
i | 在当前光标位置开始插入新内容 |
/ | 进入“搜索模式” |
n | 在“搜索模式”下,向后查找下一个 |
N | 在“搜索模式”下,向前查找上一个 |
dd | 删除当前行内容 |
ndd | 删除包括当前行在内的后 n 行内容 |
yy | 复制当前行内容 |
nyy | 复制包括当前行在内的后 n 行内容 |
p | 粘贴内容到当前行的下一行位置 |
u | 撤销修改 |
ctrl+r | 恢复修改 |
gg | 跳到文件行首 |
G | 跳到文件行尾 |
dgg | 删除当前行到行首的全部内容 |
dG | 删除当前行到行尾的全部内容 |
| 底线命令模式 | 按键功能说明 |
|---|---|
:w | 仅保存 |
:q | 仅退出 |
:q! | 强制退出(未保存内容将被丢弃) |
:set nu | 显示行号 |
:set paste | 带格式的粘贴模式(可粘贴带格式的复制内容) |
四、Linux 上的用户管理
4.1 超级管理员与身份切换命令
- root 用户
Linux 的超级管理员账号,拥有系统最高全部权限。 - su 命令:切换用户身份
- 语法:
su [-] [用户名] - 参数
-:切换用户时加载目标用户完整环境变量,实操中建议带上。 - 用户名省略时,默认切换到 root。
- sudo 命令:单条命令临时提权
- 作用:普通用户执行单条命令时,临时获得 root 权限。
- 语法:
sudo 待执行命令 - 前提:root 用户需要通过
visudo编辑配置,授权普通用户使用 sudo。
4.2 用户与用户组管理
Linux 原生支持多用户、多用户组,一个用户可以加入多个用户组;权限管控基于用户级别和用户组级别两套维度。
常用管理命令清单:
groupadd:新建用户组;groupdel:删除用户组useradd:新建用户;userdel:删除用户usermod:修改用户所属组等用户信息id:查看当前用户信息getent passwd:查看系统内全部用户信息getent group:查看系统全部用户组信息
4.3 ls -l 权限解读
执行 ls -l 列出文件详情,返回信息包含三大核心部分:
- 权限控制字符串(第一位代表文件类型:
-普通文件、d文件夹、l软链接) - 文件 / 目录的所属用户
- 文件 / 目录的所属用户组
权限串分为三段:所属用户权限、所属组权限、其他用户权限,每段由 r w x 三个标识组成:
r(读):文件 = 查看内容;目录 = 列出目录内文件(ls)w(写):文件 = 修改内容;目录 = 在目录内新增、删除、重命名文件x(执行):文件 = 可作为程序运行;目录 = 可以cd进入该目录
4.4 chmod:修改文件 / 目录权限
- 功能:修改文件、文件夹的读写执行权限
- 权限限制:仅文件所有者 或 root 用户可以执行
- 语法:
chmod [-R] 权限 文件或文件夹 - 参数
-R:递归,对文件夹内部所有子文件、子目录统一应用权限 - 数字权限规则:r=4,w=2,x=1,数值相加组合得到 0~7 的权限。
例:7 = rwx,5 = r-x,1 = –x
4.5 chown:修改所属用户 / 用户组
- 功能:修改文件、文件夹的所属用户与所属用户组
- 权限限制:仅 root 用户可执行
- 语法:
chown [-R] [用户][:][用户组] 文件或文件夹 - 参数
-R:递归修改目录内全部内容的归属 - 冒号
::用于分隔【用户】和【用户组】







