Linux: Linux简介——开源操作系统革命

Linux 是所有开发者迟早都要面对的操作系统。无论是部署后端服务、配置数据库、还是跑 CI/CD 流水线,服务器上跑的大概率是 Linux。

📋 前置知识:零基础可学,无需先修课程

1. 你将学到


2. 一个从未用过终端的新手故事

(1) 痛点:第一次面对服务器时的茫然

小明是一名刚转Linux的开发者。公司配了一台 MacBook,后端的同事们却在终端里飞速操作。他需要登录一台 Linux 服务器查看日志,打开终端后却连"ls 是什么"都不知道。

资深工程师 Bob 告诉他:"Linux 是每个开发者必备的技能——不是因为你要用它当桌面系统,而是因为互联网的绝大部分服务都跑在 Linux 上。"

(2) Linux 的解法

Bob 带小明认识 Linux:一个免费、开源、稳定到可以连续运行数年的操作系统内核。任何设备——从树莓派到 NASA 火星车——都可以运行它。

BASH
# 查看一台 Linux 服务器已经运行了多久
uptime
# 输出示例:10:23  up 187 days, 4 users, load average: 0.08 0.03 0.01

(3) 收益:理解基础设施

小明学完本课后理解了他每天使用的 GitHub、Netflix、YouTube 背后的操作系统是什么——以及为什么 Linux 能统治服务器市场。


3. 知识点讲解

(1) 什么是 Linux

Linux 严格来说只是一个内核(Kernel)——操作系统的核心组件,负责管理硬件资源、进程调度、文件系统等。1991 年,芬兰大学生 Linus Torvalds 发布了它的第一个版本。

但人们通常所说的"Linux"实际上是指 GNU/Linux 操作系统——Linux 内核 + GNU 工具集(cp/mv/ls/bash 等命令)的完整组合。

💡 提示:面试和考试中常考"Linux vs GNU/Linux"的区别。严格来说,Android 也使用 Linux 内核,但它不包含 GNU 工具集,因此不属于 GNU/Linux。

(2) Linux vs Windows vs macOS

三大操作系统在设计与哲学上有根本区别:

维度 Linux Windows macOS
内核 Linux(开源) NT(闭源) XNU(开源部分)
包管理 apt/yum/dnf EXE/MSI Homebrew
命令行 bash/zsh(核心体验) PowerShell(附加) zsh(类 Linux)
文件系统 ext4/XFS/Btrfs NTFS APFS
桌面环境 GNOME/KDE(可按需选) 固定桌面 Aqua
许可证 GPL(开源免费) 商业授权 商业授权
主要市场 服务器 / 嵌入式 桌面 / 企业 桌面 / 创作

(3) 主流发行版家族

Linux 有数百个发行版,但核心家族只有四个:

家族 包管理 代表发行版 适合场景
Debian 系 apt/.deb Ubuntu、Debian、Linux Mint 入门首选、服务器
RHEL 系 yum/dnf/.rpm RHEL、Fedora、CentOS 企业服务器
Arch 系 pacman Arch Linux、Manjaro 爱好者、最新软件
Alpine apk Alpine Linux Docker 镜像最小化

(4) 为什么服务器都用 Linux

▶ 示例:查看 Linux 内核版本

BASH

uname -r
# 输出示例:5.15.0-91-generic

输出:

TEXT 📖 仅展示
5.15.0-91-generic

▶ 示例:查看发行版信息

TEXT 📖 仅展示
lsb_release -a
# 输出示例:
# Distributor ID: Ubuntu
# Description:    Ubuntu 22.04.3 LTS
# Release:        22.04
# Codename:       jammy

▶ 示例:查看系统运行时间

BASH
uptime
# 输出示例:10:23:45 up 187 days, 4 users, load average: 0.08 0.03 0.01

输出:

TEXT 📖 仅展示
10:23:45 up 187 days, 4 users, load average: 0.08, 0.03, 0.01

▶ 示例:查看 CPU 和内存信息

BASH
# CPU 信息
lscpu | grep "Model name"

# 内存总量
free -h | grep Mem

输出:

TEXT 📖 仅展示
Model name:                      Intel(R) Core(TM) i7-12700K
Mem:              15Gi       4.0Gi        11Gi       256Mi       2.0Gi        11Gi

▶ 示例:列出所有发行版的包管理命令对比

BASH
# Debian/Ubuntu
sudo apt install nginx

# RHEL/Fedora/CentOS
sudo yum install nginx   # 或 dnf
sudo dnf install nginx

# Arch
sudo pacman -S nginx

# Alpine
apk add nginx

输出:

TEXT 📖 仅展示
Reading package lists... Done
Building dependency tree... Done
The following NEW packages will be installed:
  nginx
0 upgraded, 1 newly installed, 0 to remove.
Need to get 42.3 kB of archives.

▶ 综合示例:认识你的 Linux 系统

登录一台 Linux 机器(或 WSL),依次执行以下命令了解它的基本信息:

BASH
echo "=== 内核版本 ===" && uname -r && \
echo "=== 发行版 ===" && lsb_release -d && \
echo "=== 运行时间 ===" && uptime && \
echo "=== CPU ===" && lscpu | grep "Model name" && \
echo "=== 内存 ===" && free -h | grep Mem

❓ 常见问题

Q: Linux 和 Unix 有什么区别? A: Unix 是 1970 年代贝尔实验室开发的操作系统,商业授权且闭源。Linux 是 Linus Torvalds 重新编写的类 Unix 内核,完全开源免费,不包含任何 Unix 代码。Linux 被描述为"Unix-like"(类 Unix)。

Q: 为什么大多数服务器都用 Linux? A: 免费(省去 Windows Server 授权费)、稳定(可跑数年不重启)、资源占用低(CLI 只需几百 MB 内存)、远程管理友好(SSH)、生态完善(几乎所有服务器软件都优先支持 Linux)。

Q: 哪个发行版最适合入门? A: \1

Q: 桌面 Linux 适合日常使用吗? A: 适合普通办公(浏览器/办公软件/开发工具),但仍有短板:Adobe 全家桶不可用、部分游戏不支持、腾讯生态(微信/QQ)体验一般。作为开发者,推荐 Windows/Mac 做桌面 + WSL/虚拟机做开发。

Q: Linux 内核和 GNU/Linux 有什么关系? A: \1


📖 小节


📝 作业

  1. 基础题(难度⭐):用搜索引擎查找"Linux 市场份额 2025",了解服务器、桌面、嵌入式三个市场的占比差异
  2. 进阶题(难度⭐⭐):在 Ubuntu 官网和 Fedora 官网对比两者的定位区别(桌面 vs 服务器、稳定性 vs 新特性),并用表格整理对比结果
  3. 挑战题(难度⭐⭐⭐):列出你每天使用的 5 个网站/应用,查找它们是否运行在 Linux 上(提示:查看 WhoIsHostingThis),并总结 Linux 在互联网基础设施中的角色
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏