初识Linux
初识 Linux:
本博客面向 Linux 初学者,内容基于官方文档与权威技术资料整理,力求准确、详尽。 主要参考来源:Red Hat 官方文档、Ubuntu 官方文档、Debian 官方文档、FHS(Filesystem Hierarchy Standard)、GNU 项目官网、菜鸟教程(runoob.com)等。
目录
一、Linux 是什么
Linux 是一个类 Unix(Unix-like)的自由开源操作系统内核(Kernel)。它最初由芬兰程序员**林纳斯·托瓦兹(Linus Torvalds)**于 1991 年发布。
严格来说,"Linux" 指的是内核,而完整可用的操作系统通常称为 GNU/Linux——因为系统上大量基础工具(shell、编译器、文本工具等)来自 GNU 项目。但由于习惯,"Linux" 一词常被用来指代整个操作系统及其发行版。
Linux 的特点:
- 开源自由:遵循 GPL(GNU 通用公共许可证),源代码公开,可自由使用、修改、分发。
- 多用户、多任务:多个用户可同时使用,支持并行运行多个进程。
- 稳定可靠:广泛应用于服务器、云计算、嵌入式、超级计算机等领域。
- 安全性高:权限体系完善(读/写/执行、属主/属组/其他)。
- 免费:绝大多数发行版可免费下载使用。
二、Linux 发展史
2.1 起源背景
Linux 的历史离不开两个重要脉络:Unix 的诞生与 GNU 项目的推动。
- 1969 年:AT&T 贝尔实验室的 Ken Thompson 和 Dennis Ritchie 等开发了 Unix 操作系统。它后来演化为多个商业 Unix 变体(如 BSD、System V 等)。
- 1983 年:**Richard Stallman(理查德·斯托曼)**发起 GNU 项目(GNU's Not Unix),旨在创建一个完全自由的开源类 Unix 操作系统。GNU 开发了大量自由软件工具,并制定了 GPL 许可证。
- 1991 年:Linus Torvalds 在学习操作系统课程时,因不满当时的教学用操作系统 MINIX 的局限,开始在个人电脑上编写一个全新的内核,最初只是"一个爱好,不会像 gnu 那样大而专业"。
2.2 关键时间节点
| 时间 | 事件 |
|---|---|
| 1983 | Richard Stallman 发起 GNU 项目 |
| 1989 | 发布 GPL v1(1991 年 v2,2007 年 v3) |
| 1991 年 8 月 | Linus Torvalds 在 comp.os.minix 新闻组宣布正在开发一个"免费的类 Unix 操作系统内核",即 Linux 前身 |
| 1991 年 9 月 | Linux 0.01 版本发布(约 1 万行代码),发布到 FTP 供下载 |
| 1991 年 10 月 | 发布 Linux 0.02,第一个"可用"版本,开始吸引开发者 |
| 1994 年 3 月 | Linux 内核 1.0 正式发布,标志着内核走向稳定 |
| 1996 年 | Linux 内核 2.0 发布,开始支持多处理器(SMP) |
| 2003 年 | Linux 内核 2.6 发布,性能与扩展性大幅提升 |
| 2011 年 | Linux 内核 3.0 发布(版本号策略调整) |
| 2015 年至今 | 内核进入 4.x、5.x、6.x 版本(当前 6.x 系列) |
2.3 为什么叫 Linux
Linus 最初想命名为 Freax(free + freak + x),但负责托管的同事 Ari Lemmke 在 FTP 服务器上直接使用了 Linux(Linus + Unix)这个目录名,从此被沿用至今。Linux 的吉祥物是一只名为 Tux 的企鹅。
2.4 Linux 的扩张
- 1993 年:Slackware(最早的仍在维护的发行版之一)发布。
- 1993 年:Debian 项目由 Ian Murdock 发起,以其自由、社区驱动著称。
- 1994 年:Red Hat Linux 发布(后演变为 RHEL / Fedora)。
- 2004 年:Ubuntu(基于 Debian)由 Canonical 公司发布,主打易用性,极大推动了 Linux 的桌面普及。
- 至今:Linux 内核已支持几乎所有主流硬件架构,是 Android、绝大多数云服务器、超算(TOP500 中绝大多数)的核心系统。
三、主流发行版对比
3.1 什么是"发行版"
Linux 内核本身无法直接"使用",需要配合各种软件工具、包管理器、桌面环境等构成完整系统。把内核 + 软件 + 安装程序 + 维护工具打包成可直接安装使用的系统,就是 Linux 发行版(Distribution / Distro)。
3.2 四大家族一览
| 发行版 | 所属体系 | 包管理器 | 默认桌面 | 面向人群 | 商业模式 |
|---|---|---|---|---|---|
| RHEL | Red Hat | RPM + DNF/Yum | GNOME | 企业、服务器 | 商业订阅 |
| CentOS | Red Hat | RPM + DNF/Yum | GNOME | 服务器 | 社区(已转型) |
| Debian | Debian | dpkg + APT | 可选(默认 GNOME) | 通用、服务器 | 纯社区 |
| Ubuntu | Debian 系 | dpkg + APT | GNOME | 桌面、服务器、云 | 商业(Canonical) |
3.3 RHEL(Red Hat Enterprise Linux)
- 全称:Red Hat Enterprise Linux,红帽企业级 Linux。
- 特点:面向企业生产环境的商业发行版,以高度稳定、安全、合规著称。提供长达 10 年的支持周期(5 年标准支持 + 5 年扩展支持)。
- 商业模式:需要购买商业订阅(付费),以获取官方支持、安全更新、认证(如与硬件/软件的兼容性认证)。
- 适用:企业级服务器、关键业务、对稳定性和合规性要求极高的场景。
- 版本:当前主流 RHEL 8、RHEL 9;RHEL 10 于 2025 年发布。
3.4 CentOS
- 历史定位:曾是基于 RHEL 源码重新编译、与 RHEL 二进制兼容的免费社区版,被称为"免费的 RHEL",在服务器领域极为流行。
- 重要转折(2020 年 12 月):Red Hat 宣布将 CentOS Linux 的战略重心转向 CentOS Stream。
- CentOS Linux 8 于 2021 年 12 月 31 日提前终止支持(原计划 2029 年)。
- CentOS Linux 7 于 2024 年 6 月 30 日结束维护(EOL)。
- 传统 CentOS Linux 系列已停止发布新版本,CentOS 8/9 不再存在。
- CentOS Stream:改为 RHEL 的上游(upstream)滚动发行版,即先有 CentOS Stream,再从中衍生出 RHEL 正式版本。它不再是 RHEL 的"免费复制版",而是"RHEL 的预览版/测试版"。
- 现状与替代方案:
- 需要免费、稳定、与 RHEL 兼容的系统,可考虑 Rocky Linux、AlmaLinux(均为 RHEL 二进制兼容的社区替代品)。
- 追求 RHEL 生态但能接受付费,可选择 RHEL(红帽曾为开发者提供免费的个人订阅)。
参考:CentOS 官方博客、Red Hat 关于 CentOS 生命周期的说明、Rocky Linux、AlmaLinux
3.5 Ubuntu
- 全称:Ubuntu,由 Canonical 公司(创始人 Mark Shuttleworth)于 2004 年发布,基于 Debian。
- 特点:
- 易用性高,安装与桌面体验友好,是 Linux 桌面的首选之一。
- 固定发布周期:每 6 个月发布一个新版本(如 24.04、24.10、25.04)。
- LTS(Long Term Support)长期支持版:每 2 年发布一次,支持 5 年(标准支持),可扩展至 10 年(Ubuntu Pro / ESM)。LTS 版本号均为 x.04(如 20.04、22.04、24.04)。
- 命名:版本号采用"年份.月份",如 **24.04(Noble Numbat)**于 2024 年 4 月发布。
- 适用:桌面用户、开发者、云服务器(AWS/Azure 等云厂商广泛支持)、需要 LTS 稳定版本的场景。
- 包管理:使用
apt(Advanced Package Tool)。
3.6 Debian
- 全称:Debian,由 Ian Murdock 于 1993 年发起,是历史最悠久、最受尊重的社区发行版之一,完全由社区驱动、无商业公司控制。
- 特点:
- 极其稳定,被称为"最纯粹的 Linux 发行版之一"。
- 采用三个分支(release 分支):
- stable(稳定版):经充分测试,适合生产环境。
- testing(测试版):正在测试、较新但可能有小问题。
- unstable(不稳定版,代号 sid):开发版,包最新但最不稳定。
- 自由至上:严格遵循 Debian Free Software Guidelines(DFSG)。
- 是 Ubuntu 的上游基础。
- 版本命名:以玩具总动员角色命名,如 Debian 12 Bookworm、Debian 13 Trixie。
- 包管理:使用
apt/dpkg。
3.7 怎么选?决策建议
| 场景 | 推荐 |
|---|---|
| 企业生产环境、需要官方支持与合规 | RHEL(付费)或 Ubuntu LTS |
| 学习、自学、考取红帽认证(RHCSA/RHCE) | RHEL 或 Rocky Linux / AlmaLinux(与 RHEL 兼容,可免费练习) |
| 免费、稳定、服务器长期运行 | Ubuntu LTS、Debian stable、Rocky Linux / AlmaLinux |
| Linux 桌面入门、日常办公 | Ubuntu、Linux Mint(基于 Ubuntu) |
| 想要最纯净、社区驱动的稳定系统 | Debian |
| 追求最新软件版本 | Fedora(RHEL 的上游桌面发行版)、Debian testing |
一句话总结:
- 要花钱买保障、进企业 → RHEL。
- 要免费且和 RHEL 兼容、学红帽技术 → Rocky Linux / AlmaLinux。
- 要易用、资料多、适合新手和云 → Ubuntu LTS。
- 要极致稳定、纯社区、深入研究 → Debian。
四、在虚拟机中安装 CentOS/RHEL
虚拟机(Virtual Machine)可以让你在一台电脑上"虚拟"出多台独立运行的计算机,非常适合练习 Linux 而无需重装系统。常用虚拟机软件:VMware Workstation、VirtualBox(免费)、Hyper-V 等。
由于传统 CentOS Linux 已停止维护,下面以 Rocky Linux / AlmaLinux(与 RHEL 兼容,可免费下载)或 RHEL 开发者订阅为例,流程与 CentOS 基本一致。
4.1 准备工作
- 下载镜像(ISO):
- Rocky Linux:https://rockylinux.org/download
- AlmaLinux:https://almalinux.org/get-almalinux/
- RHEL 开发者订阅:https://developers.redhat.com/products/rhel/download
- 选择 "DVD ISO" 或 "Minimal ISO"。服务器学习建议 Minimal(最小化,无图形界面),桌面学习可选 "Workstation/DVD"。
- 安装虚拟机软件:如 VirtualBox(免费)或 VMware Workstation Player(免费个人版)。
4.2 新建虚拟机
- 打开虚拟机软件,点击"新建虚拟机 / New"。
- 选择镜像文件:加载下载好的 ISO。
- 选择操作系统类型:Linux → Red Hat (64-bit)(Rocky/Alma/CentOS 均选此项)。
- 分配资源(按主机性能):
- 内存:建议 ≥ 2 GB(4 GB 更佳)。
- CPU:2 核以上。
- 磁盘:建议 ≥ 20 GB(动态分配即可)。
- 完成创建,启动虚拟机。
4.3 安装系统(RHEL/Rocky/Alma 通用)
- 启动后选择 "Install" 进入安装界面(首次启动可能提示 Test this media,可直接跳过)。
- 选择 语言(建议保留 English 避免路径乱码,也可选中文)。
- 关键配置项:
- Software Selection(软件选择):
- 学习服务器:选 Minimal Install(最小化)。
- 桌面:选 Workstation 或 Server with GUI。
- Installation Destination(安装位置):选择磁盘,点击 Done(完成),使用默认自动分区即可。
- Network & Host Name(网络与主机名):开启网络(ON),可修改主机名。
- Root Password(Root 密码):必须设置(root 是超级管理员账号)。
- User Creation(用户创建):可创建一个普通用户,并勾选 Make this user administrator(让该用户拥有管理员权限,可用 sudo)。
- Software Selection(软件选择):
- 点击 Begin Installation(开始安装),等待完成。
- 安装完成后 Reboot(重启),移除安装介质。
4.4 安装后基本操作
# 登录后查看系统信息
cat /etc/os-release # 查看发行版信息(推荐)
uname -a # 查看内核版本
hostname # 查看主机名
# 更新系统(RHEL/Rocky/Alma/CentOS 使用 dnf/yum)
sudo dnf update -y # 更新所有软件包(新系统推荐先执行)
# 查看当前用户
whoami
id
# 常用管理命令
sudo systemctl status # 查看 systemd 服务状态
df -h # 查看磁盘使用情况
free -h # 查看内存使用情况
提示:Red Hat 系(RHEL/Rocky/Alma/CentOS/Fedora)包管理器为 dnf(旧版为 yum,dnf 是 yum 的升级版,二者命令基本兼容);Debian/Ubuntu 使用 apt。安装软件:
sudo dnf install <包名>/sudo apt install <包名>。
五、Linux 文件系统结构
Linux 使用**单一根目录(/)**的层级树状结构,所有文件和目录都挂在根目录 / 之下。其组织方式遵循 FHS(Filesystem Hierarchy Standard,文件系统层次标准),保证不同发行版之间的目录结构基本一致。
/
├── bin -> usr/bin (可执行程序)
├── boot (启动相关文件)
├── dev (设备文件)
├── etc (系统配置文件)
├── home (普通用户主目录)
├── lib -> usr/lib (共享库)
├── lib64 -> usr/lib64
├── media (可移动设备挂载点)
├── mnt (临时挂载点)
├── opt (第三方软件)
├── proc (进程与内核虚拟文件系统)
├── root (root 用户主目录)
├── run (运行时数据)
├── sbin -> usr/sbin (系统管理程序)
├── srv (服务数据)
├── sys (内核与设备虚拟文件系统)
├── tmp (临时文件)
├── usr (用户程序与数据)
└── var (经常变化的数据,如日志)
5.1 核心目录详解
/(根目录)
整个文件系统的最高层,所有其他目录都是它的子目录。只有 root 用户拥有写权限。
/etc(系统配置文件)
存放系统的几乎所有配置文件,是系统管理的核心目录。
| 常见文件/目录 | 作用 |
|---|---|
/etc/passwd |
用户账户信息 |
/etc/shadow |
用户密码(加密)信息 |
/etc/group |
用户组信息 |
/etc/fstab |
系统启动时自动挂载的文件系统列表 |
/etc/hosts |
主机名与 IP 的静态映射 |
/etc/hostname |
主机名配置文件 |
/etc/resolv.conf |
域名解析(DNS)配置 |
/etc/profile、/etc/bashrc |
全局 shell 环境配置 |
/etc/sysconfig/network-scripts/ |
旧式网络配置(RHEL 7/CentOS 7 及 RHEL 8 早期,已弃用) |
/etc/apt/、/etc/dnf/、/etc/yum.repos.d/ |
软件包管理器配置 |
/var(经常变化的数据)
存放运行时会持续增长或变化的数据,最常见的用途是日志。
| 常见目录 | 作用 |
|---|---|
/var/log |
系统日志目录(如 /var/log/messages、/var/log/syslog) |
/var/log/secure |
安全/登录日志(Red Hat 系) |
/var/spool |
待处理的任务队列(如邮件、打印队列) |
/var/tmp |
临时文件(比 /tmp 更持久) |
/var/lib |
程序运行时数据 |
/var/cache |
程序缓存 |
/home(用户主目录)
存放所有普通用户的个人目录。每个用户通常有 /home/用户名,只有该用户(和 root)可以访问。用户配置文件(如 .bashrc、.bash_profile)也存放于此。
ls /home # 查看所有用户目录
ls -a /home/yourname # 查看用户目录下的隐藏文件(以 . 开头)
/tmp(临时文件)
存放临时文件,任何用户都可写入。系统重启后其中的内容可能被清空,不适合存放重要数据。
/usr(用户程序与数据)
存放系统的主要应用程序、库、源代码、文档等,是最大的目录之一。注意:尽管字面意思是"user(用户)",但 /usr 存放的是系统级共享的程序与数据,并非普通用户自己的文件(那是在 /home)。
| 常见目录 | 作用 |
|---|---|
/usr/bin |
用户可执行程序(普通命令) |
/usr/sbin |
系统管理程序(需 root 权限) |
/usr/lib、/usr/lib64 |
系统库文件 |
/usr/share |
共享数据、文档、帮助文件 |
/usr/local |
本地(自行编译)安装的程序,通常放这里 |
/usr/src |
源代码目录 |
现代发行版的
/usr合并(usr-merge):较新版本的 Fedora、RHEL、Debian、Ubuntu 等把/bin、/sbin、/lib通过符号链接指向/usr/bin、/usr/sbin、/usr/lib(即/bin -> usr/bin),统一了目录结构,根目录更简洁。
/root(root 用户主目录)
超级管理员 root 的个人目录,与普通用户一样存放个人文件。注意与根目录 / 区分。
5.2 系统与设备相关目录
| 目录 | 作用 |
|---|---|
/boot |
启动相关文件,如内核(vmlinuz)、initramfs、grub 引导配置 |
/dev |
设备文件。Linux 中一切皆文件,硬件设备在此表示为文件(如 /dev/sda 磁盘、/dev/tty 终端) |
/proc |
虚拟文件系统,运行时反映内核和进程信息(如 /proc/cpuinfo、/proc/meminfo) |
/sys |
虚拟文件系统,反映内核与设备树信息 |
/run |
运行时数据(如进程 PID 文件、socket),重启后清空 |
/media |
可移动设备(U 盘、光驱)的自动挂载点 |
/mnt |
手动挂载其他文件系统时的临时挂载点 |
/opt |
第三方(非系统自带)大型软件包的安装位置 |
/srv |
系统提供的服务数据(如网站、FTP 数据) |
5.3 为什么这样设计?——FHS 的意义
FHS(Filesystem Hierarchy Standard,文件系统层次标准) 定义了 Linux 目录结构,它的好处是:
- 不同发行版、不同系统之间目录结构一致,学习和迁移成本低。
- 系统管理员可以快速定位文件(知道日志在
/var/log、配置在/etc)。 - 软件开发者可以遵循标准安装程序,避免混乱。
六、总结
- Linux 是一个开源内核,源于 Linus Torvalds 1991 年的个人项目,与 GNU 项目结合构成完整系统(GNU/Linux)。
- 发行版选择核心看需求:
- 企业付费要保障 → RHEL;
- 免费 + 红帽兼容(学红帽技术/考证) → Rocky Linux / AlmaLinux(传统 CentOS 已停止维护);
- 新手 / 桌面 / 云 → Ubuntu LTS;
- 纯社区 / 极致稳定 → Debian。
- 虚拟机安装是练习 Linux 的最佳方式,Red Hat 系(RHEL/Rocky/Alma/CentOS)安装流程一致,装好后用
dnf管理软件。 - 文件系统遵循 FHS 标准,单根
/结构。重点记住:- 配置 →
/etc - 日志/变化数据 →
/var - 用户文件 →
/home - 临时文件 →
/tmp - 系统程序/库 →
/usr
- 配置 →
继续学习建议:
- 动手在虚拟机里多敲命令,熟悉
ls、cd、cat、mkdir、chmod、useradd、systemctl等基础命令。 - 熟读
/etc下的配置,理解系统如何工作。 - 参考 菜鸟教程 Linux 命令大全 和各大发行版官方文档深入学习。
参考资料
- 菜鸟教程 - Linux 教程:https://www.runoob.com/linux/linux-tutorial.html
- Linux Kernel 官网:https://www.kernel.org/
- GNU 项目官网:https://www.gnu.org/
- History of Linux(Wikipedia):https://en.wikipedia.org/wiki/History_of_Linux
- Red Hat 官网:https://www.redhat.com/
- Red Hat Enterprise Linux Release Dates:https://access.redhat.com/articles/red-hat-enterprise-linux-release-dates
- CentOS 官方博客:https://blog.centos.org/
- Ubuntu 官网 & 发布周期:https://ubuntu.com/ 、https://ubuntu.com/about/release-cycle
- Debian 官网 & 发行版列表:https://www.debian.org/ 、https://www.debian.org/releases/
- Rocky Linux:https://rockylinux.org/
- AlmaLinux:https://almalinux.org/
- FHS 3.0 标准:https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html
- Ubuntu FHS 说明:https://ubuntu.com/project/docs/how-ubuntu-is-made/concepts/filesystem-hierarchy-standard
