学习目标

学完本节后,应当能够做到:

  1. 说清楚 Linux 是什么,它和 GNU、Unix、发行版之间是什么关系。
  2. 概括 Linux 的发展历史,并理解它为什么能成为现代计算的重要基础。
  3. 说明 Linux 相比 Windows、macOS 的核心特点与适用场景。
  4. 理解开源社区在 Linux 生态中的作用,并知道普通学习者如何参与开源。
  5. 熟练掌握基础文件与目录命令:lscdpwdmkdirrm
  6. 能在实际目录场景中完成查看、切换、创建、删除等基本操作。
  7. 知道 rm -rf 的风险,形成安全操作意识。

Linux 是什么

Linux 的本质

Linux 严格来说首先是一个「内核」。

  • 内核是操作系统中最核心的部分,负责管理硬件、内存、进程、文件系统等资源。
  • Linux 内核由 Linus Torvalds 于 1991 年首次发布。
  • 仅有内核并不能直接构成一个完整、可用的操作系统。
  • 通常还要配合 GNU 工具链、Shell、桌面环境、软件包管理器等组件,才形成我们平时使用的 Linux 系统。

因此,日常说的「Linux 系统」,往往指的是:

Linux 内核 + GNU 工具 + 其他系统软件 + 桌面环境/服务程序

这类完整组合被称为「Linux 发行版」。

常见发行版有:

  • Ubuntu
  • Debian
  • Fedora
  • CentOS / Rocky Linux / AlmaLinux
  • Arch Linux

Linux 与 GNU 的关系

这个知识点很容易混淆。

  • Linux:主要指内核。
  • GNU:提供大量基础工具和自由软件,例如编译器、Shell、文本处理工具等。
  • GNU/Linux:强调「Linux 内核」和「GNU 工具链」共同组成完整系统。

可以简单理解为:

  • Linux 决定「系统核心怎么运转」
  • GNU 决定「用户和开发者如何方便地使用系统」

Linux 的核心特征

  • 开源:源代码公开,可以学习、修改、分发。
  • 多用户:多个用户可以同时使用同一系统。
  • 多任务:可以同时运行多个程序和服务。
  • 稳定:适合长期持续运行,尤其适合服务器。
  • 安全:权限管理清晰,恶意软件相对更少。
  • 可定制:系统组件可按需裁剪和组合。

Linux 的发展历史

关键时间线

1991 年

  • Linus Torvalds 开始开发 Linux 内核。
  • 最初主要用于学习和研究。
  • 早期版本是 0.01。

1992 年

  • Linux 采用 GPL 许可证。
  • 这一步非常关键,因为 GPL 允许自由使用、修改和分发。
  • 许可证带来的开放协作,使得更多开发者能够参与进来。

1994 年

  • Linux 1.0 发布。
  • 标志着 Linux 具备了较完整的文件系统、网络和驱动支持。

1998 年

  • Red Hat Linux 成为较早的商业化发行版代表之一。
  • Linux 从「爱好者项目」进一步走向企业应用。

2000 年代初期

  • Linux 在服务器领域快速扩张。
  • 大型互联网公司和数据中心开始广泛采用 Linux。

2010 年代至今

  • Linux 成为云计算、容器、超级计算机、物联网的重要基础。
  • Android 基于 Linux 内核,说明 Linux 已深入移动设备生态。

为什么 Linux 发展得这么快

主要原因有四个:

  1. 开源协作降低了创新门槛。
  2. GPL 许可证推动了代码共享和社区共建。
  3. 稳定、高效、可定制,特别适合服务器和开发场景。
  4. 互联网、云计算、容器化等技术浪潮与 Linux 高度契合。

历史中的两个高频考点

命名由来

  • Linux 最初并不叫 Linux。
  • Linus 一开始想用的是 「Freax」。
  • 后来在注册域名时使用了 「Linux」,最终这个名字流传下来。

GNU/Linux 的说法

  • 从技术组合角度,「GNU/Linux」更准确。
  • 从日常交流角度,「Linux」更常见。
  • 学习时要知道这两种表述背后的含义,但不必过度纠结。

Linux 的特点与优势

开源与自由

Linux 最重要的标签就是开源。

它带来的直接好处:

  • 可以查看源码,适合学习操作系统思想。
  • 可以根据需求裁剪系统。
  • 可以用于个人、教育、企业、嵌入式等多种场景。

典型应用:

  • 路由器、智能设备使用定制 Linux。
  • 企业基于 Linux 构建内部服务器平台。

高度可定制

Linux 不是只有一种「固定长相」的系统,而是可以根据需求调整:

  • 安装哪些软件
  • 使用什么 Shell
  • 用什么桌面环境
  • 启用哪些系统服务
  • 如何组织权限与文件系统

理解这一点很重要:

Windows 更像「预制系统」,Linux 更像「可拼装系统」

稳定性与高性能

Linux 在服务器领域受欢迎,不只是因为免费,更因为:

  • 长时间运行稳定
  • 资源占用可控
  • 对网络服务、并发任务支持强
  • 适合脚本自动化和批量运维

典型场景:

  • Web 服务器
  • 数据库服务器
  • 容器宿主机
  • 超级计算机

安全性

Linux 的安全性建立在明确的系统机制上,例如:

  • 用户与用户组
  • 文件读写执行权限
  • root 管理员权限隔离
  • SELinux、AppArmor 等安全机制

常见命令:

chmod 755 /path/to/file
chown user:group file.txt

这里要记住:

  • chmod:改权限
  • chown:改所有者/所属组

硬件支持广

Linux 支持多种架构:

  • x86 / x64
  • ARM
  • MIPS
  • PowerPC

这意味着 Linux 不只用于电脑,还能运行在:

  • 手机
  • 路由器
  • 树莓派
  • 工控设备
  • 服务器

社区和文档资源丰富

Linux 的学习资源非常多,原因是它背后有庞大的开源社区。

常见资源来源:

  • 官方文档
  • 社区 Wiki
  • 技术论坛
  • 问答平台

学习建议:

  • 遇到命令不会用,先查官方手册或社区文档。
  • 不要只背命令,要理解「命令解决什么问题」。

Linux 与其他操作系统的比较

Linux 与 Windows

核心差异

  • Linux 开源,Windows 闭源。
  • Linux 定制能力强,Windows 更偏统一化体验。
  • Linux 在服务器和开发场景更常见。
  • Windows 在桌面办公、商业软件、游戏生态中更强。

学习时要抓住的本质

不要只记「哪个好」,而要记「适合什么场景」:

  • 服务器、运维、开发环境:Linux 优势明显。
  • 办公、游戏、常见商业软件:Windows 更友好。

Linux 与 macOS

共通点

  • 都有较强的 Unix 风格。
  • 都适合开发工作。
  • 都拥有较好的命令行环境。

差异点

  • Linux 更自由、更开放、可定制性更强。
  • macOS 体验统一,和苹果硬件深度整合。
  • Linux 支持的硬件平台更广。
  • macOS 在设计、创意软件生态上更成熟。

一句话总结三者定位

  • Linux:自由、稳定、适合服务器和开发。
  • Windows:桌面普及高,软件兼容广。
  • macOS:体验统一,适合苹果生态和创意工作。

开源社区与贡献

Linux 为什么离不开开源社区

Linux 不是靠一个人完成的,而是依赖全球开发者长期协作。

开源社区的价值主要体现在:

  • 快速修复问题
  • 快速迭代功能
  • 公开透明,便于审计
  • 不同团队可以发展不同发行版和工具链

普通学习者如何参与

参与开源不一定要一开始就写复杂代码,可以从容易的事情做起:

  1. 报告 Bug
  2. 改进文档
  3. 翻译文档
  4. 回答新手问题
  5. 提交小补丁

对初学者最现实的路径

建议顺序如下:

  1. 学会使用 Git 和 GitHub/GitLab。
  2. 阅读项目的 README 和贡献指南。
  3. 从文档勘误、示例修正、小问题修复开始。
  4. 学会描述问题:重现步骤、环境、预期结果、实际结果。

学习意义

理解开源社区,不只是为了「贡献」,更是为了建立两个意识:

  • 软件不是凭空出现的,而是由协作完成的。
  • 学 Linux 不能只学命令,还要理解生态和协作方式。

Linux 基本命令总览

本节涉及的命令都属于最基础、最常用的文件与目录操作命令。

命令 作用 你要掌握的重点
ls 列出目录内容 看文件、看隐藏文件、看详细信息、看递归结果
cd 切换目录 相对路径、绝对路径、返回上级、返回上次目录
pwd 显示当前路径 确认自己当前所在位置
mkdir 创建目录 创建单级目录、递归创建多级目录
rm 删除文件或目录 删除文件、删除目录、强制删除、交互删除、安全意识

学习文件与目录命令时,最重要的不是死记,而是始终明确两件事:

  1. 我当前在哪个目录?
  2. 我要操作的目标相对我当前位置在哪里?

ls:列出目录内容

基本作用

ls 用于查看目录中有哪些文件和子目录。

它是 Linux 中使用频率极高的命令之一,通常用于:

  • 进入目录前先查看内容
  • 检查文件是否存在
  • 查看文件大小、权限、时间
  • 排查路径是否正确

常见写法

ls
ls -l
ls -a
ls -lh
ls -R
ls -lt
ls -alh

常用选项理解

  • -l:长格式显示,能看到权限、所有者、大小、修改时间。
  • -a:显示隐藏文件,包括以 . 开头的文件。
  • -h:配合 -l 使用时,以更易读的方式显示大小。
  • -R:递归显示子目录内容。
  • -t:按修改时间排序。

记忆技巧

  • a 可以理解为 all。
  • h 可以理解为 human-readable。
  • l 可以理解为 long format。
  • R 可以理解为 recursive。

高频组合

ls -alh

这是一个很常见的实用组合,原因是它同时满足:

  • 能看隐藏文件
  • 能看详细信息
  • 大小更容易读

学习提醒

  • ls 只是「查看」,不会改动文件。
  • 当你不确定路径是否正确时,优先使用 ls 验证。

cd:切换目录

基本作用

cd 用来切换当前工作目录。

几乎所有文件操作都依赖你当前所在位置,所以 cd 是理解 Linux 文件系统的关键命令。

常见用法

cd Documents
cd ..
cd ~
cd
cd -
cd Projects/project1
cd /home/user/Downloads

核心知识点

相对路径

相对路径是相对于当前目录而言的,例如:

cd Projects/project1

说明目标目录就在当前目录下面。

绝对路径

绝对路径是从根目录开始写的完整路径,例如:

cd /home/user/Downloads

无论你当前在哪里,只要路径存在,就可以直接切换过去。

特殊写法

  • cd ..:回到上一级目录
  • cd ~cd:回到当前用户主目录
  • cd -:回到上一次所在目录

常见报错

目录不存在

cd /home/user/nonexistent

错误原因:

  • 路径写错
  • 目录确实不存在

处理方法:

  • ls 检查上一级目录内容
  • 重新确认路径拼写

权限不足

cd /root

错误原因:

  • 当前用户没有访问该目录的权限

处理方法:

  • 使用有权限的账户
  • 在需要时配合管理员权限操作

学习提醒

很多初学者并不是不会命令,而是总是忘记「自己当前在哪」。

所以建议形成固定习惯:

cd 切换后,必要时立刻用 pwd 确认位置


pwd:显示当前路径

基本作用

pwd 用于显示当前工作目录的绝对路径。

这是一个「定位命令」,可以帮助你确认:

  • 当前目录到底是哪一个
  • 相对路径该如何写
  • 脚本执行位置是否正确

常见用法

pwd
echo "你现在位于 $(pwd)"

为什么 pwd 很重要

在 Linux 学习初期,路径感很容易混乱。

例如:

  • 你以为自己在项目根目录,实际上在子目录。
  • 你以为删除的是测试文件,结果删到了正式目录里的文件。

这时 pwd 就是最低成本、最高价值的确认方法。

使用建议

当你准备执行以下操作时,建议先运行一次 pwd

  • 删除文件
  • 批量移动文件
  • 创建多级目录
  • 运行依赖相对路径的脚本

mkdir:创建目录

基本作用

mkdir 用于创建目录。

常见用法

mkdir new_folder
mkdir -p ../project3/src/utils
mkdir -v example_dir
mkdir -m 755 secure_folder
mkdir -pv ../project4/{bin,lib,include}

常用选项理解

  • -p:递归创建多级目录;如果父目录不存在,会一起创建。
  • -v:显示创建过程。
  • -m:创建时直接设置权限。

为什么 -p 很常用

因为现实中经常不是只建一层目录,而是直接建完整结构,例如:

mkdir -p src/components/common

这条命令比一层一层创建更高效,也更适合脚本化。

常见问题

目录已存在

mkdir existing_directory

如果目录已经存在,会报错。

更稳妥的写法是:

mkdir -p existing_directory

优点:

  • 目录存在时不报错
  • 更适合自动化脚本

学习提醒

  • 创建目录前,先明确自己当前路径。
  • 创建目录后,可以用 ls 检查是否成功。

rm:删除文件或目录

基本作用

rm 用于删除文件或目录。

它非常强大,也非常危险,因为删除后通常不会自动进入「回收站」。

常见用法

rm notes.txt
rm main.py README.md
rm -r project2
rm -f .hidden_file
rm -i report.docx
rm -rf ../backup/project1_backup
rm -rv project1/new_folder

常用选项理解

  • -r:递归删除目录及其内部内容。
  • -f:强制删除,不提示确认。
  • -i:交互式删除,执行前先询问。
  • -v:显示删除过程。

重点理解:文件删除和目录删除不同

删除单个文件

rm notes.txt

适合普通文件。

删除目录

rm -r project2

因为目录里可能还有文件,所以必须用递归参数 -r

最危险的命令组合

rm -rf some_directory

危险原因:

  • -r 递归删除全部内容
  • -f 强制执行,不再确认

一旦路径写错,后果可能非常严重。

安全操作建议

删除前建议按以下流程执行:

  1. 先用 pwd 确认当前位置。
  2. ls 确认目标是否正确。
  3. 优先使用 rm -i,尤其是在不熟悉目录结构时。
  4. 对重要目录先备份,再删除。
  5. 谨慎使用 rm -rf

初学者最容易犯的错误

把相对路径看错

例如你以为自己在测试目录,实际上在项目根目录,此时删除动作就可能扩大范围。

误删目录却没有备份

特别是在批量删除和递归删除时,风险最大。

过度依赖 -f

-f 虽然省事,但同时也省掉了最后一道安全确认。

推荐习惯

对于学习阶段,建议优先使用:

rm -ri 目标目录

虽然步骤慢一些,但更安全,更有助于理解删除过程。


五个命令之间的配合关系

这五个命令不是孤立的,而是常常连用。

一个典型操作流程如下:

pwd
ls
cd Projects/project1
mkdir test
ls -alh
rm -ri test

这个流程体现了文件管理的基本思路:

  1. pwd 确认位置。
  2. ls 查看环境。
  3. cd 切换到目标目录。
  4. mkdir 创建目录。
  5. 再用 ls 验证结果。
  6. rm 删除不需要的内容。

这其实就是 Linux 初学者最核心的「目录感」和「操作链」。


本节高频易错点总结

把 Linux 当成一个完整发行版名词,而忽略它本质上先是内核

正确理解:

  • Linux 严格说是内核
  • 平时所说 Linux 系统通常是完整发行版

分不清相对路径和绝对路径

判断标准:

  • / 开头的是绝对路径
  • 不以 / 开头,通常是相对路径

忘记隐藏文件需要 ls -a

看不到隐藏文件,不代表文件不存在。

创建多层目录时忘记使用 mkdir -p

父目录不存在时,普通 mkdir 可能失败。

删除目录时忘记加 -r

目录和普通文件的删除方式不同。

rm -rf 缺乏敬畏

这是初学阶段必须重点建立的安全意识。


记忆口诀

为了便于复习,可以记住下面这组口诀:

Linux 基础认知

Linux 是内核,发行版是完整系统;GNU 补工具,开源靠社区。

文件命令口诀

ls 看,cd 走,pwd 定位,mkdir 建,rm 删。

删除安全口诀

删前先定位,定位先 pwd;删前先确认,确认先 ls;不熟先交互,慎用 rm -rf


复习题

概念题

  1. Linux 是完整操作系统,还是操作系统内核?
  2. 为什么很多时候说「GNU/Linux」更准确?
  3. Linux 为什么特别适合服务器场景?
  4. Linux 与 Windows、macOS 的主要差异分别是什么?

命令题

  1. 如何查看当前目录下的隐藏文件?
  2. 如何回到上一级目录?
  3. 如何显示当前所在目录的完整路径?
  4. 如何一次性创建 a/b/c 多级目录?
  5. 删除目录为什么通常需要 -r
  6. 为什么 rm -rf 必须谨慎使用?

实操题

假设你在 /home/user 下,请完成以下操作:

  1. 查看当前目录内容。
  2. 进入 Projects/project1
  3. 显示当前完整路径。
  4. 创建 demo/src 目录结构。
  5. 查看新目录是否创建成功。
  6. 安全地删除 demo 目录。

参考命令可以写成:

ls
cd Projects/project1
pwd
mkdir -p demo/src
ls -R demo
rm -ri demo

本节内容总结

本节可以浓缩为三层理解:

认识 Linux

  • Linux 的核心是内核。
  • Linux 的强大来自开源、稳定、可定制和社区协作。
  • Linux 在服务器、云计算、嵌入式和开发环境中非常重要。

理解生态

  • Linux 不是孤立存在的,它和 GNU、发行版、社区共同构成完整生态。
  • 学 Linux 不只是学命令,还要理解系统思想和开源协作方式。

掌握命令

  • ls 用来看
  • cd 用来切换位置
  • pwd 用来确认位置
  • mkdir 用来创建目录
  • rm 用来删除文件或目录

其中最重要的安全意识是:

在 Linux 中,位置感和删除操作同样重要;很多错误并不是不会命令,而是没有先确认路径。


建议的课后练习方式

建议按下面顺序练习:

  1. 自己在测试目录中反复练 lscdpwd
  2. 人为创建几层目录,练习 mkdir -p
  3. ls -alh 观察隐藏文件、权限和大小。
  4. 先用 rm -i 删除测试文件,再逐步理解 rm -rrm -f
  5. 每次删除前都先执行 pwdls,养成标准习惯。