Linux:不只是操作系统,更是一种理解计算机的方式

咸鱼 发布于 12 天前 272 次阅读


如果你第一次接触 Linux,可能会觉得它离普通人很远:黑色的终端窗口、密密麻麻的命令,以及各种看起来差不多、名字却完全不同的发行版。

但当你真正使用一段时间后,就会发现 Linux 并没有想象中那么神秘。我们每天访问的网站、使用的云服务、手机里的 Android 系统,甚至路由器、智能电视和汽车中的部分软件,都可能运行在 Linux 之上。

Linux 不一定是每个人桌面上的主角,却早已成为现代互联网背后的重要基础设施。

这篇文章将从历史、系统结构、发行版、文件系统、常用命令、权限管理、软件安装和实际应用等方面,带你比较完整地认识 Linux。


一、Linux 到底是什么?

严格来说,Linux 指的是一个操作系统内核,而不是一套完整的桌面操作系统。

内核位于硬件和应用程序之间,主要负责:

  • 管理 CPU 和进程
  • 分配与回收内存
  • 读写磁盘和其他存储设备
  • 管理网络通信
  • 驱动各种硬件
  • 提供系统调用接口
  • 控制用户和程序的访问权限

我们平时所说的“安装 Linux”,实际上通常是在安装一个由 Linux 内核、GNU 工具、软件包管理器、桌面环境和其他应用程序组成的完整系统,例如 Ubuntu、Debian 或 Fedora。

因此,一些人会把这类系统称为 GNU/Linux。不过在日常交流中,大家通常还是直接说 Linux。

可以简单理解为:

Linux 内核像汽车的发动机,发行版则是一辆可以真正开上路的完整汽车。


二、Linux 是怎么诞生的?

Linux 的故事始于 1991 年。

当时,芬兰赫尔辛基大学的学生 Linus Torvalds 想在自己的个人电脑上使用一个类 Unix 系统。由于现有方案无法完全满足他的需求,他决定自己编写一个内核。

1991 年 8 月,Linus 在新闻组中发布了一段后来非常著名的话。他说自己正在制作一个“免费的操作系统”,并强调这只是一个个人爱好,不会像 GNU 那样庞大和专业。

事实证明,他对项目规模的判断显然不太准确。

Linux 发布后,世界各地的开发者开始参与其中。与此同时,GNU 项目已经提供了编译器、Shell、文本工具等大量自由软件。Linux 内核与这些工具结合,逐渐形成了一套完整、可用的操作系统。

后来,Linux 被广泛应用于:

  • 网站服务器
  • 数据库服务器
  • 云计算平台
  • 超级计算机
  • 嵌入式设备
  • 网络设备
  • 智能手机
  • 桌面计算机
  • 人工智能与高性能计算

今天,Linux 已经不再是一个学生的个人项目,而是全球最重要的开源基础设施之一。


三、Linux 与 Unix 有什么关系?

Linux 经常被称为“类 Unix 操作系统”,但它并不是传统 Unix 源代码的直接延续。

Unix 诞生于 20 世纪 60 年代末和 70 年代初,对现代操作系统产生了深远影响。它带来了许多至今仍然重要的设计思想,例如:

  • 一切皆文件
  • 每个工具只做好一件事
  • 通过管道组合多个程序
  • 多用户与权限隔离
  • 使用纯文本作为通用接口
  • 将复杂任务拆分为简单步骤

Linux 借鉴了 Unix 的接口和设计哲学,并在很大程度上兼容 POSIX 等标准,但 Linux 内核是重新编写的。

macOS 也属于 Unix 家族,因此熟悉 Linux 终端的人通常能比较快地适应 macOS 命令行。不过,两者的内核、工具实现和软件管理方式仍有不少区别。


四、什么是 Linux 发行版?

只有内核还不能直接满足普通用户的需求。为了让系统真正可用,不同组织会把 Linux 内核、系统工具、安装程序、软件仓库和桌面环境组合起来,这就形成了不同的 Linux 发行版。

发行版之间的主要差异通常体现在:

  • 默认软件
  • 软件包格式
  • 包管理器
  • 更新节奏
  • 系统配置方式
  • 桌面环境
  • 稳定性策略
  • 技术支持周期
  • 目标用户群体

1. Ubuntu

Ubuntu 是最知名的桌面和服务器 Linux 发行版之一,基于 Debian。

它的优势包括:

  • 安装简单
  • 社区资料丰富
  • 硬件兼容性较好
  • 第三方软件支持广泛
  • 提供长期支持版本,即 LTS

对于第一次使用 Linux 的用户来说,Ubuntu 通常是一个比较稳妥的选择。

2. Debian

Debian 是一个历史悠久、强调自由软件和稳定性的发行版。

它的软件版本可能不像某些发行版那样新,但经过了较充分的测试。Debian 适合服务器、长期运行环境,以及更看重稳定性的用户。

Ubuntu 本身就是基于 Debian 构建的。

3. Fedora

Fedora 由社区推动,并得到 Red Hat 支持。它通常会较早采用新的 Linux 技术。

Fedora 的特点是:

  • 软件版本较新
  • 技术路线现代
  • 与 Red Hat 生态关系紧密
  • 适合开发者和技术爱好者

4. Red Hat Enterprise Linux

Red Hat Enterprise Linux,简称 RHEL,主要面向企业用户。

它重视:

  • 长期支持
  • 系统稳定性
  • 企业认证
  • 安全更新
  • 商业技术支持

CentOS Stream、Rocky Linux 和 AlmaLinux 等发行版也与 RHEL 生态密切相关。

5. Arch Linux

Arch Linux 强调简洁、透明和高度可定制。

它采用滚动更新模式,软件通常比较新。不过,Arch 往往要求用户自己完成更多安装和配置工作。

Arch 的 Wiki 文档非常优秀,即使你不用 Arch,也经常能从中找到有价值的 Linux 技术资料。

6. Linux Mint

Linux Mint 基于 Ubuntu 或 Debian,桌面布局比较接近传统 PC 使用习惯。

对于从 Windows 转向 Linux 的用户来说,Mint 通常更容易上手。

应该选择哪个发行版?

如果没有特殊需求,可以参考下面的选择:

使用场景推荐发行版
第一次使用 LinuxUbuntu、Linux Mint
稳定的服务器环境Debian、Ubuntu Server
企业生产环境RHEL、Rocky Linux、AlmaLinux
希望体验较新技术Fedora
喜欢高度定制Arch Linux
老旧或低配置电脑Xubuntu、Lubuntu、Linux Mint XFCE

发行版本身并没有绝对的好坏。适合需求、资料充足、维护方便,往往比“技术上更酷”重要。


五、Linux 系统由哪些部分组成?

一个完整的 Linux 系统通常可以分成以下几个层次。

1. 硬件

包括 CPU、内存、硬盘、网卡、显卡、键盘和其他物理设备。

2. Linux 内核

内核直接管理硬件资源,并向上层程序提供统一接口。

3. 系统库

应用程序通常不会直接操作内核,而是通过系统库调用内核功能。最常见的 C 标准库实现之一是 glibc。

4. Shell 和系统工具

Shell 是用户与系统交互的重要入口。常见 Shell 包括:

  • Bash
  • Zsh
  • Fish
  • Dash

此外,系统中还有大量命令行工具,例如 lscpgrepfind

5. 系统服务

Linux 启动后,会运行许多后台服务,例如:

  • SSH 服务
  • Web 服务
  • 数据库服务
  • 日志服务
  • 定时任务
  • 网络管理服务

现代主流发行版通常使用 systemd 管理系统启动和服务。

6. 图形界面

Linux 并不只有命令行。它也可以运行完整的桌面环境,例如:

  • GNOME
  • KDE Plasma
  • XFCE
  • Cinnamon
  • LXQt

桌面环境负责窗口、面板、设置中心、文件管理器等图形功能。


六、Linux 的文件系统为什么只有一个根目录?

Windows 用户熟悉 C:D: 这样的盘符,而 Linux 使用一棵统一的目录树。

整个文件系统从根目录 / 开始。其他磁盘、分区和网络存储,都可以挂载到这棵目录树中的某个位置。

常见目录包括:

目录作用
/整个文件系统的根目录
/home普通用户的主目录
/rootroot 用户的主目录
/etc系统和服务的配置文件
/var日志、缓存等经常变化的数据
/tmp临时文件
/usr大量应用程序、库和共享资源
/bin基础命令;现代系统中常链接到 /usr/bin
/sbin系统管理命令
/dev设备文件
/proc内核与进程信息的虚拟文件系统
/sys设备和内核对象信息
/boot内核、引导器等启动文件
/mnt临时挂载位置
/mediaU 盘等可移动设备的常见挂载位置
/opt可选或第三方软件

例如,一个名为 yingjie 的用户,其主目录通常是:

/home/yingjie

用户登录后,~ 通常就表示自己的主目录:

cd ~

七、“一切皆文件”是什么意思?

Linux 继承了 Unix 中一个非常重要的思想:一切皆文件

这里并不是说所有东西都是普通文档,而是说系统尽量通过统一的文件接口表示不同资源。

例如:

  • 硬盘可能表示为 /dev/sda
  • 终端可能表示为 /dev/tty
  • 空设备是 /dev/null
  • 进程信息位于 /proc
  • 硬件和驱动信息位于 /sys

程序可以通过读取、写入或操作这些特殊文件,与设备或内核进行交互。

这种设计降低了系统接口的复杂度,也让许多命令行工具可以组合使用。


八、Linux 命令行应该怎么理解?

很多初学者把命令行理解成“需要背诵的指令集合”,于是还没有开始就产生了畏惧。

其实更好的理解是:命令行是一种精确地表达操作意图的方式。

图形界面适合探索和直观操作;命令行则适合:

  • 批量处理
  • 自动化
  • 远程管理
  • 重复执行
  • 记录过程
  • 组合工具
  • 在无图形界面的服务器上工作

一个命令通常由命令名、选项和参数组成:

ls -la /etc

其中:

  • ls 是命令
  • -l-a 是选项
  • /etc 是操作目标

选项也可能使用长格式:

ls --all

遇到不熟悉的命令,可以查看帮助:

ls --help
man ls

不必一开始记住所有命令。真正重要的是理解文件、进程、权限、输入输出和管道这些基础概念。


九、常用 Linux 命令

1. 查看当前目录

pwd

2. 查看文件

ls
ls -l
ls -la

其中,-l 显示详细信息,-a 显示隐藏文件。

Linux 中,以点开头的文件通常被视为隐藏文件,例如:

.bashrc
.gitconfig

3. 切换目录

cd /etc
cd ..
cd ~
cd -

分别表示:

  • 进入 /etc
  • 返回上一级目录
  • 返回用户主目录
  • 返回上一次所在目录

4. 创建目录和文件

mkdir project
touch README.md

递归创建多层目录:

mkdir -p project/src/components

5. 复制、移动和删除

cp source.txt backup.txt
mv old.txt new.txt
rm file.txt

操作目录时:

cp -r source_dir backup_dir
rm -r old_dir

需要特别小心 rm。它删除的文件通常不会进入回收站。

尤其不要在不了解含义时执行来源不明的高权限删除命令。

6. 查看文件内容

cat file.txt
less file.txt
head file.txt
tail file.txt

实时查看日志新增内容:

tail -f /var/log/example.log

7. 搜索文件

find /var/log -name "*.log"

在当前目录中查找名称包含 config 的文件:

find . -iname "*config*"

8. 搜索文本

grep "error" app.log

递归搜索:

grep -R "database" /etc

忽略大小写:

grep -i "warning" app.log

9. 查看磁盘和目录大小

df -h
du -sh /var/log

df 关注文件系统剩余空间,du 关注目录和文件实际占用。

10. 查看内存

free -h

11. 查看进程

ps aux
top

如果安装了 htop,也可以使用:

htop

12. 结束进程

kill 1234

这里的 1234 是进程 ID,也就是 PID。

如果普通终止信号无效,才考虑强制结束:

kill -9 1234

kill -9 不会给进程清理资源和保存数据的机会,因此不应作为默认选择。


十、管道和重定向:Linux 命令行的灵魂

Linux 命令行真正强大的地方,不是某一个命令有多少功能,而是多个小工具可以组合起来。

1. 标准输入、标准输出和标准错误

程序通常有三种基本数据流:

  • 标准输入:stdin
  • 标准输出:stdout
  • 标准错误:stderr

2. 输出重定向

把结果写入文件:

ls -l > files.txt

> 会覆盖原文件。追加内容则使用:

ls -l >> files.txt

3. 输入重定向

sort < names.txt

4. 管道

管道符 | 可以把前一个命令的输出,传给后一个命令作为输入。

例如,查找日志中的错误:

cat app.log | grep "ERROR"

实际上,grep 可以直接读取文件,因此更简洁的写法是:

grep "ERROR" app.log

但在更复杂的场景中,管道非常有用:

ps aux | grep nginx

统计当前目录中的条目数量:

ls -1 | wc -l

查找出现次数最多的 IP:

awk '{print $1}' access.log | sort | uniq -c | sort -nr | head

这就是 Unix 哲学的典型体现:每个程序完成一个相对明确的任务,再通过管道将它们组合起来。


十一、Linux 的用户和权限系统

Linux 从一开始就是多用户系统。

系统中的文件和进程通常都属于某个用户和用户组。权限机制决定谁可以读取、修改或执行某个文件。

使用下面的命令查看详细权限:

ls -l

可能会看到:

-rwxr-xr-- 1 alice developers 2048 Jul 13 10:30 deploy.sh

最前面的权限可以拆分为:

- rwx r-x r--

其中:

  • 第一个字符表示文件类型
  • 第一组 rwx 是文件所有者权限
  • 第二组 r-x 是所属组权限
  • 第三组 r-- 是其他用户权限

权限字符含义如下:

  • r:读取
  • w:写入
  • x:执行

修改权限

chmod +x deploy.sh

这会为脚本添加执行权限。

也可以使用数字形式:

chmod 755 deploy.sh

数字与权限的对应关系是:

  • 读:4
  • 写:2
  • 执行:1

因此:

  • 7 = 4 + 2 + 1,即读、写、执行
  • 5 = 4 + 1,即读、执行
  • 4,即只读

修改所有者

sudo chown alice:developers deploy.sh

root 和 sudo

root 是 Linux 中权限最高的超级用户。它几乎可以修改系统中的任何内容。

普通用户可以通过 sudo 临时以更高权限执行命令:

sudo apt update

sudo 并不是“命令执行失败时就加上去再试一次”的万能前缀。使用它之前,应该先弄清楚:

  1. 这个命令要修改什么?
  2. 为什么普通权限不够?
  3. 命令来源是否可信?
  4. 是否可能破坏系统或泄露数据?

Linux 给用户充分的控制权,也意味着用户要为自己的操作负责。


十二、Linux 如何安装软件?

Linux 通常通过包管理器安装软件。

包管理器会负责:

  • 从软件仓库下载软件
  • 验证软件包
  • 安装依赖
  • 升级软件
  • 卸载软件
  • 处理版本关系

Debian 和 Ubuntu

更新软件索引:

sudo apt update

升级已安装的软件:

sudo apt upgrade

安装软件:

sudo apt install nginx

卸载软件:

sudo apt remove nginx

Fedora

sudo dnf install nginx

Arch Linux

sudo pacman -S nginx

Linux 还存在其他软件分发方式,例如:

  • Flatpak
  • Snap
  • AppImage
  • 第三方软件仓库
  • 语言级包管理器,如 npm、pip、Cargo
  • 从源代码编译

对初学者来说,优先使用发行版官方仓库通常更安全、更容易维护。

另外,不建议随意把网上找到的命令直接复制到终端,尤其是类似下面这种“下载后立即执行”的命令:

curl some-address | sh

这种做法并非一定有问题,但你应该先确认来源,并阅读脚本内容。


十三、进程、服务和 systemd

运行中的程序被称为进程。每个进程通常都有唯一的 PID。

服务器上的 Nginx、SSH、数据库等程序,往往以后台服务的形式运行。

在使用 systemd 的发行版中,可以通过 systemctl 管理服务。

查看服务状态:

systemctl status nginx

启动服务:

sudo systemctl start nginx

停止服务:

sudo systemctl stop nginx

重启服务:

sudo systemctl restart nginx

设置开机启动:

sudo systemctl enable nginx

立即启动并设置开机启动:

sudo systemctl enable --now nginx

查看服务日志:

journalctl -u nginx

持续查看新增日志:

journalctl -u nginx -f

排查服务问题时,通常可以按以下顺序进行:

  1. 查看服务状态
  2. 查看日志
  3. 检查配置文件
  4. 检查端口
  5. 检查权限
  6. 检查防火墙和网络
  7. 修改后重新加载或重启服务

十四、Linux 网络基础

Linux 被大量用于服务器和网络设备,因此网络工具非常重要。

查看网络地址

ip addr

简写为:

ip a

查看路由

ip route

测试网络连通性

ping example.com

查看域名解析

dig example.com

或者:

nslookup example.com

测试 HTTP 服务

curl https://example.com

只查看响应头:

curl -I https://example.com

查看监听端口

ss -tulpn

远程登录服务器

ssh user@server-address

复制文件到服务器:

scp file.txt user@server-address:/tmp/

在实际工作中,SSH 是管理 Linux 服务器最常见的方式之一。相比密码登录,配置得当的 SSH 密钥通常更加方便和安全。


十五、Linux 为什么适合服务器?

Linux 在服务器领域占据重要地位,并不是偶然。

1. 稳定

Linux 可以长时间持续运行。许多发行版还提供长期支持和安全更新。

2. 资源利用率较高

服务器通常不需要完整图形界面。Linux 可以只运行必要组件,把资源留给业务程序。

3. 易于远程管理

通过 SSH,管理员可以从远程完成部署、更新、诊断和维护。

4. 自动化能力强

Shell 脚本、定时任务和配置管理工具,可以把大量重复工作自动化。

5. 开源且可定制

用户可以查看源代码,也可以根据业务需要裁剪系统。

6. 软件生态成熟

Nginx、Apache、MySQL、PostgreSQL、Redis、Docker 和 Kubernetes 等大量基础设施软件,都对 Linux 有良好支持。

7. 权限和隔离机制完善

Linux 提供用户权限、进程隔离、容器、SELinux、AppArmor、控制组和命名空间等安全与资源管理能力。

当然,Linux 并不会因为“安装完成”就自动安全。安全性仍然取决于配置、更新、权限控制和运维习惯。


十六、Linux、容器与云计算

现代云计算几乎无法绕开 Linux。

Docker 容器之所以轻量,关键原因在于它并不像传统虚拟机那样为每个实例运行一个完整的独立内核。多个容器可以共享宿主机的 Linux 内核,同时通过命名空间和控制组实现隔离与资源限制。

其中:

  • Namespace 用于隔离进程、网络、挂载点等资源
  • cgroup 用于限制和统计 CPU、内存等资源
  • Union File System 等机制用于构建分层镜像

Kubernetes 则在更高层次上管理大量容器,包括:

  • 调度
  • 服务发现
  • 扩缩容
  • 故障恢复
  • 配置管理
  • 滚动更新

因此,即使一个开发者平时使用 Windows 或 macOS,最终部署的应用也很可能运行在 Linux 容器或 Linux 云服务器中。


十七、Linux 适合日常桌面使用吗?

答案是:可以,但要看需求。

Linux 桌面已经能够完成许多日常工作:

  • 浏览网页
  • 编写文档
  • 收发邮件
  • 播放音视频
  • 编程开发
  • 图片处理
  • 即时通信
  • 使用游戏平台
  • 远程办公

常见软件包括:

  • Firefox、Chrome
  • LibreOffice
  • Visual Studio Code
  • VLC
  • GIMP
  • Blender
  • Steam

不过,Linux 桌面仍可能面临一些问题:

  • 某些专业商业软件没有原生版本
  • 少数硬件驱动支持不理想
  • 部分网络游戏的反作弊系统不兼容
  • 某些办公文档的复杂格式可能存在差异
  • 不同发行版之间的软件安装方式不完全一致

如果工作高度依赖特定的 Windows 或 macOS 软件,迁移前最好先确认替代方案。

也可以先通过虚拟机、双系统或 WSL 体验 Linux,而不是立刻替换现有系统。


十八、学习 Linux 时常见的误区

误区一:必须背下所有命令

没有必要。

熟练的 Linux 用户也会查看手册、搜索文档和使用命令历史。真正值得掌握的是:

  • 如何定位问题
  • 如何阅读帮助
  • 如何理解权限
  • 如何处理输入输出
  • 如何查看日志
  • 如何安全地修改配置

误区二:命令行比图形界面“高级”

它们只是适合不同场景。

图形界面适合直观操作,命令行适合自动化、远程管理和批量处理。没必要为了显得专业而拒绝图形工具。

误区三:Linux 不会中病毒

Linux 也会受到恶意软件、漏洞利用、弱密码和错误配置的威胁。

服务器被入侵,很多时候并不是因为 Linux 天生不安全,而是因为:

  • 软件长期没有更新
  • SSH 密码过于简单
  • 服务暴露到公网
  • 权限设置过大
  • 使用来源不明的脚本
  • 配置文件泄露密钥
  • 容器或数据库没有访问控制

误区四:root 权限可以解决所有问题

root 权限确实能绕过很多限制,但也能让一次错误操作造成更大破坏。

权限错误应该先找出原因,而不是条件反射式地使用 sudo

误区五:必须选择“最专业”的发行版

操作系统是工具,而不是身份标签。

如果 Ubuntu 能让你快速完成工作,就没有必要因为别人说 Arch 更“硬核”而更换系统。理解底层原理比追逐发行版更重要。


十九、初学者可以怎样学习 Linux?

下面是一条比较自然的学习路线。

第一阶段:熟悉基本操作

先掌握:

  • 安装 Linux 或创建虚拟机
  • 目录切换
  • 文件创建、复制和删除
  • 查看文件内容
  • 使用文本编辑器
  • 安装和卸载软件
  • 查看系统资源

第二阶段:理解核心概念

重点学习:

  • 绝对路径与相对路径
  • 用户与用户组
  • 文件权限
  • 进程与信号
  • 标准输入输出
  • 管道和重定向
  • 环境变量
  • Shell 配置

第三阶段:学习系统管理

包括:

  • systemd 服务管理
  • 日志查看
  • 磁盘与挂载
  • 网络配置
  • SSH
  • 防火墙
  • 定时任务
  • 软件仓库

第四阶段:尝试实际项目

例如:

  • 部署一个静态网站
  • 安装 Nginx
  • 搭建个人博客
  • 创建一个数据库
  • 编写备份脚本
  • 使用 Docker 运行应用
  • 配置 SSH 密钥登录
  • 分析 Web 访问日志

第五阶段:学习自动化

可以继续学习:

  • Bash 脚本
  • Git
  • Docker
  • Ansible
  • CI/CD
  • Kubernetes
  • 监控与日志系统

比起单纯阅读命令手册,带着真实目标完成项目,通常学得更快。


二十、一个简单但实用的练习

假设我们想创建一个项目目录,并记录当前系统信息:

mkdir -p ~/linux-practice/logs
cd ~/linux-practice

记录内核版本:

uname -a > logs/system.txt

追加磁盘信息:

df -h >> logs/system.txt

追加内存信息:

free -h >> logs/system.txt

查看结果:

cat logs/system.txt

搜索其中包含 Linux 的行:

grep "Linux" logs/system.txt

查看文件权限:

ls -l logs/system.txt

这个练习很简单,却串联了目录、文件、重定向、系统信息、文本搜索和权限等多个基础概念。


二十一、Linux 真正值得学习的是什么?

学习 Linux,表面上是在学习命令,实际上是在建立一套更清晰的计算机认知。

你会逐渐理解:

  • 程序是如何运行的
  • 操作系统如何管理资源
  • 文件权限为什么重要
  • 网络请求经过了哪些环节
  • 服务为什么启动失败
  • 日志如何帮助定位问题
  • 自动化为什么能提高效率
  • 应用最终如何运行在服务器上

刚开始时,你可能会因为一个权限错误折腾半天,也可能只是为了安装一个软件就查阅大量资料。这些体验有时确实让人沮丧。

但 Linux 的魅力恰恰在于,它愿意把系统的运作方式展示给你。只要肯阅读错误信息、查看日志、理解配置,你通常可以一步步找到原因,而不是只能面对一个“操作失败”的弹窗。

Linux 不要求你一次掌握所有内容。先学会移动文件,再理解权限;先部署一个网站,再研究服务管理;先解决眼前的问题,再逐渐深入内核、网络和容器。

当你不再把终端看成一个神秘的黑色窗口,而是把它当作与计算机准确交流的工具时,你就已经真正走进 Linux 的世界了。


结语

Linux 既是一项技术,也是一种文化。

它代表开放、协作、透明和自由组合。它让个人开发者能够使用与大型企业相同的基础工具,也让全世界的开发者可以共同改进一套庞大而复杂的系统。

你不一定要把 Linux 作为唯一的桌面操作系统,也不一定要成为内核开发者。但如果你从事开发、运维、网络安全、云计算、人工智能或后端工程,理解 Linux 几乎是一项绕不开的基础能力。

最好的开始方式并不是背完一本命令手册,而是现在就打开一个终端,输入:

pwd

看看自己在哪里。

然后,再向前走一步。