学习目标
学完本节后,应当能够做到:
- 说清楚 Linux 是什么,它和 GNU、Unix、发行版之间是什么关系。
- 概括 Linux 的发展历史,并理解它为什么能成为现代计算的重要基础。
- 说明 Linux 相比 Windows、macOS 的核心特点与适用场景。
- 理解开源社区在 Linux 生态中的作用,并知道普通学习者如何参与开源。
- 熟练掌握基础文件与目录命令:
ls、cd、pwd、mkdir、rm。 - 能在实际目录场景中完成查看、切换、创建、删除等基本操作。
- 知道
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 发展得这么快
主要原因有四个:
- 开源协作降低了创新门槛。
- GPL 许可证推动了代码共享和社区共建。
- 稳定、高效、可定制,特别适合服务器和开发场景。
- 互联网、云计算、容器化等技术浪潮与 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 不是靠一个人完成的,而是依赖全球开发者长期协作。
开源社区的价值主要体现在:
- 快速修复问题
- 快速迭代功能
- 公开透明,便于审计
- 不同团队可以发展不同发行版和工具链
普通学习者如何参与
参与开源不一定要一开始就写复杂代码,可以从容易的事情做起:
- 报告 Bug
- 改进文档
- 翻译文档
- 回答新手问题
- 提交小补丁
对初学者最现实的路径
建议顺序如下:
- 学会使用 Git 和 GitHub/GitLab。
- 阅读项目的 README 和贡献指南。
- 从文档勘误、示例修正、小问题修复开始。
- 学会描述问题:重现步骤、环境、预期结果、实际结果。
学习意义
理解开源社区,不只是为了「贡献」,更是为了建立两个意识:
- 软件不是凭空出现的,而是由协作完成的。
- 学 Linux 不能只学命令,还要理解生态和协作方式。
Linux 基本命令总览
本节涉及的命令都属于最基础、最常用的文件与目录操作命令。
| 命令 | 作用 | 你要掌握的重点 |
|---|---|---|
ls |
列出目录内容 | 看文件、看隐藏文件、看详细信息、看递归结果 |
cd |
切换目录 | 相对路径、绝对路径、返回上级、返回上次目录 |
pwd |
显示当前路径 | 确认自己当前所在位置 |
mkdir |
创建目录 | 创建单级目录、递归创建多级目录 |
rm |
删除文件或目录 | 删除文件、删除目录、强制删除、交互删除、安全意识 |
学习文件与目录命令时,最重要的不是死记,而是始终明确两件事:
- 我当前在哪个目录?
- 我要操作的目标相对我当前位置在哪里?
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强制执行,不再确认
一旦路径写错,后果可能非常严重。
安全操作建议
删除前建议按以下流程执行:
- 先用
pwd确认当前位置。 - 用
ls确认目标是否正确。 - 优先使用
rm -i,尤其是在不熟悉目录结构时。 - 对重要目录先备份,再删除。
- 谨慎使用
rm -rf。
初学者最容易犯的错误
把相对路径看错
例如你以为自己在测试目录,实际上在项目根目录,此时删除动作就可能扩大范围。
误删目录却没有备份
特别是在批量删除和递归删除时,风险最大。
过度依赖 -f
-f 虽然省事,但同时也省掉了最后一道安全确认。
推荐习惯
对于学习阶段,建议优先使用:
rm -ri 目标目录
虽然步骤慢一些,但更安全,更有助于理解删除过程。
五个命令之间的配合关系
这五个命令不是孤立的,而是常常连用。
一个典型操作流程如下:
pwd
ls
cd Projects/project1
mkdir test
ls -alh
rm -ri test
这个流程体现了文件管理的基本思路:
- 用
pwd确认位置。 - 用
ls查看环境。 - 用
cd切换到目标目录。 - 用
mkdir创建目录。 - 再用
ls验证结果。 - 用
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。
复习题
概念题
- Linux 是完整操作系统,还是操作系统内核?
- 为什么很多时候说「GNU/Linux」更准确?
- Linux 为什么特别适合服务器场景?
- Linux 与 Windows、macOS 的主要差异分别是什么?
命令题
- 如何查看当前目录下的隐藏文件?
- 如何回到上一级目录?
- 如何显示当前所在目录的完整路径?
- 如何一次性创建
a/b/c多级目录? - 删除目录为什么通常需要
-r? - 为什么
rm -rf必须谨慎使用?
实操题
假设你在 /home/user 下,请完成以下操作:
- 查看当前目录内容。
- 进入
Projects/project1。 - 显示当前完整路径。
- 创建
demo/src目录结构。 - 查看新目录是否创建成功。
- 安全地删除
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 中,位置感和删除操作同样重要;很多错误并不是不会命令,而是没有先确认路径。
建议的课后练习方式
建议按下面顺序练习:
- 自己在测试目录中反复练
ls、cd、pwd。 - 人为创建几层目录,练习
mkdir -p。 - 用
ls -alh观察隐藏文件、权限和大小。 - 先用
rm -i删除测试文件,再逐步理解rm -r和rm -f。 - 每次删除前都先执行
pwd和ls,养成标准习惯。