Linux娘守护日记

前言

作为一个社恐,现实世界的“副本”对我而言难度实在太高了——人群、寒暄、无意义的社交,光是想想CPU就要过载了。

于是我把热爱全部投入到了服务器上,而Linux则是服务器的灵魂。

我注意到,很多对技术充满好奇的朋友站在Linux这座宏伟殿堂的门前,却感到迷茫:“指令如天书?”“配置深似海?”“从哪里开始才好?”

这种心情,我懂。所以,我决定写下这本《Linux娘守护日记》。

这不是冰冷的技术手册,而是记录我和“她”相处点滴、共同成长的冒险日志。我会尽量避开抽象的理论,从最实际、最常用的场景出发,分享如何与你的Linux娘愉快相处。


第一章:初识Linux娘

她的创造者与家族:从一颗种子到一片森林

要真正了解 Linux 娘,我们得先从她的“创造者”和“庞大家族”说起。这就像在冒险开始前,先看看史诗的前传和世界地图。

缘起:一个“只是想玩”的天才少年

故事要回到 1991 年,芬兰赫尔辛基大学。一个名叫 Linus Torvalds 的年轻小伙,出于对当时昂贵的 Unix 系统和教学用的 Minix 系统都不太满意,便萌生了一个想法:“不如我自己写一个操作系统内核试试?”

他在 comp.os.minix 新闻组里发布了那条著名的帖子,谦虚地说这“只是一个爱好,不会像 GNU 那样庞大专业”。他把自己写的内核命名为 Linux —— Linus 的 Minix 替代品。

这个“只是想玩”的个人项目,恰好填补了当时 GNU 计划(由 Richard Stallman 发起,旨在创造一个完全自由的操作系统)最关键的一环——内核。Linux 内核加上 GNU 工具链(如 GCC 编译器、Bash Shell 等),就构成了一个完整的、自由的操作系统。所以,她那更精确的名字是 GNU/Linux

Linus Torvalds 本人至今仍然是 Linux 内核的“仁慈独裁者”,守护着技术决策的最高标准。

家族图谱:百花齐放的“发行版娘”

如果说 Linux 内核是这颗星球的“灵魂核心”,那**发行版(Distribution)**就是围绕它建立的、一个个性格迥异的“完整世界”。她们将内核、GNU 工具、图形界面、各种应用软件打包在一起,提供给用户。

认识她们,是入门的第一步。我们可以把主流的发行版家族想象成这样:

1. Debian 家族:优雅的邻家姐姐

  • 家族领袖Debian。她以“坚如磐石”的稳定性著称,软件仓库极其庞大,是纯粹自由软件的守护者。她的性格沉稳,更新谨慎,是服务器的常客。
  • 人气明星Ubuntu。她是 Debian 最成功的“女儿”,性格更活泼好客。她对新手极其友好,有着漂亮的图形界面和庞大的社区支持。每两年还推出一个长期支持版(LTS),提供长达五年的安心守护,无论是个人电脑还是服务器,她都是个极佳的选择。
  • 包管理器:她们使用 deb 格式的软件包,用 apt 这个聪明的管家来自动处理软件安装和依赖。

2. Red Hat 家族:稳重的企业大小姐

  • 家族领袖Red Hat Enterprise Linux (RHEL)。她是企业级市场的王者,象征着顶级的稳定性和商业支持。想获得她的力量,通常需要付费订阅。
  • 勤奋的“妹妹”与“克隆”Fedora 是她的“先锋妹妹”,快速采用新技术,是红帽的技术试验田。而 CentOS 曾经是 RHEL 的完美免费克隆体,是无数运维学习者的摇篮。虽然 CentOS 的生命周期已经转向 CentOS Stream(一个介于 Fedora 和 RHEL 之间的滚动更新版),但她的精神被 Rocky LinuxAlmaLinux 等后辈所继承。
  • 包管理器:她们使用 rpm 格式的软件包,由 yum 或更先进的 dnf 管家来打理一切。

3. 极客玩家的高岭之花:Arch Linux & Gentoo

  • Arch Linux:一个为“折腾”而生的滚动发行版。她的哲学是 KISS。她的安装过程完全在命令行下完成,像一个严苛的进阶考验。作为回报,你会得到一个极致精简、完全定制化的系统,以及那个传奇的 ArchWiki,堪称所有 Linux 用户的百科全书。
  • Gentoo:比 Arch 更硬核的选择。她的灵魂在于“编译”。通过 PORTAGE 包管理系统,她鼓励用户根据硬件从源码编译所有软件,以榨干每一点性能。是真正想理解 Linux 内部构造的修行者们的终极伴侣。

4. 其他充满魅力的伙伴

  • openSUSE:一个优雅而强大的德系系统。她以漂亮的控制面板 YaST 闻名,是 KDE 桌面环境的最佳体验平台之一。
  • Alpine Linux:极致轻量的“云原生精灵”。她的体积小到只有几 MB,是构建 Docker 容器的绝对女王,将“安全”和“精简”刻在了骨子里。

所以,你的选择是?

  • 快速上手、稳定使用?闭眼选 UbuntuLinux Mint
  • 学习企业级技术、为职业生涯铺路?从 Rocky LinuxFedora 开始准没错。
  • 深度探索、亲手打造独一无二的系统?等你熟悉了基础,欢迎来挑战 Arch Linux!(笑)

选择哪个发行版娘,并不需要太过纠结。最关键的是,迈出理解她的第一步。无论选谁,她对自由、开放和技术的追求,都是相通的。


这样一来,这一章既有有趣的历史故事,又有清晰的知识梳理和实用指导,希望能符合你对“更详细”的期待。

从传统运维到自动化运维(DevOps),再到云原生时代,Linux娘始终站在技术的潮头。无论是跑Python脚本、管理K8s容器集群,还是搭建ELK日志平台、Prometheus监控,甚至是网安渗透测试,她都是当之无愧的核心女主角。


安装软件这件“小事”

想要和Linux娘愉快相处,首先要学会给她“装备”新技能——也就是安装软件。

Windows上我们习惯双击exe,安卓上直接装APK,但Linux娘的“装备系统”更讲究:

源码包 vs 二进制包

类型说明命名示例
源码包程序员写的原始代码,不能直接运行,需要编译成二进制后才能使用包名.tar.gz
二进制包已经编译好的软件包,直接安装即可使用,需选择对应CPU指令集和系统版本xlockmore-5.2312.1.x86_64.rpm

二进制包的安装又有两种主流方式,以CentOS系统为例:

特性rpm方式yum/dnf方式
安装方式命令行手动下载rpm包并安装自动化包管理工具
依赖关系需手动下载安装所有依赖包自动解决依赖,一键搞定
更新管理手动下载新版本rpm包更新自动检查并更新所有已安装软件
操作便捷性相对繁琐简单方便,工作中更常用

小贴士:不同系统平台对应的包管理工具也不同——

  • RedHat/CentOS/Fedora/SuSE 使用 rpm 包,工具为 rpm/rpmbuild,在线安装用 yum/dnf
  • Ubuntu/Debian 使用 deb 包,工具为 dpkg,在线安装用 apt

好的,这一节至关重要。我们用“不同家族的管家与装备规格”这个比喻,把软件包差异和命令使用讲透,延续“Linux娘”的风格。

以下是可直接替换或插入博客“安装软件这件‘小事’”之后的内容:


第二章:各家族“装备”为何不通用?

前面我们提到,不同家族的Linux娘使用不同的包格式和管家。但你可能会问:“为什么不能统一呢?”这就涉及到各发行版的设计哲学了。

1. 技术层面的差异

虽然都是Linux内核,但各发行版在具体构建上有微妙不同:

  • 依赖库版本不同:比如A系统用libssl.so.1.1,B系统用libssl.so.3。为A系统编译的二进制包在B系统上就会报错“找不到共享库”。
  • 文件存放路径习惯不同:配置文件有的放/etc/软件名/,有的放/etc/sysconfig/;启动脚本有的用systemd,老系统还可能用SysV init
  • 编译时使用的工具链版本不同:GCC版本、glibc版本等,都会导致二进制不兼容。

所以,二进制包都明确标注了目标系统和CPU架构,就像衣服的尺码标签一样,不能混穿。

2. 包格式的直观辨别

你可以通过命名直接区分:

# RPM 家族的红帽子系
xlockmore-5.23-12.1.x86_64.rpm
# 解读:软件名-版本号-发行次数.架构.rpm

# DEB 家族的戴便帽系
xlockmore_5.23-12.1_amd64.deb
# 解读:软件名_版本号_架构.deb

记法提示:看到.rpm就想到红帽子(Red Hat Package Manager),看到.deb就想到Debian(Debian的缩写为deb,也是其包格式的名称由来)。


各家族管家命令速查:从搜索到清理全流程

下面我用一个生活化的场景——“想安装一个叫 htop 的进程管理工具”——来对比展示各大家族的命令。

Debian/Ubuntu 家族 (使用 apt 管家)

# 1. 拜访前先刷新一下“商店”的货架清单
sudo apt update

# 2. 在“商店”里搜索 htop
apt search htop

# 3. 把 htop 带回家(自动处理所有依赖)
sudo apt install htop -y

# 4. 查看 htop 的“详细档案”
apt show htop

# 5. 如果将来有新版,升级所有已安装的软件
sudo apt upgrade

# 6. 不需要了,把它请走(保留配置文件)
sudo apt remove htop

# 7. 彻底扫地出门(配置文件也删)
sudo apt purge htop

# 8. 清理下载的安装包缓存,节省空间
sudo apt autoremove
sudo apt clean

特点:命令语义化强,update/upgrade分工明确,purge是删除配置的专用词。


RHEL/CentOS/Rocky/Fedora 家族 (使用 dnf 管家)

现代红帽系推荐使用 dnf(Dandified YUM),它是 yum 的升级版,语法几乎一致。以下以 dnf 为例:

# 1. 搜索 htop
dnf search htop

# 2. 查看 htop 的详细信息
dnf info htop

# 3. 安装 htop(自动处理依赖)
sudo dnf install htop -y

# 4. 检查是否有可用更新
dnf check-update

# 5. 升级所有软件包
sudo dnf upgrade

# 6. 移除 htop(同时删除不再需要的依赖)
sudo dnf remove htop

# 7. 清理缓存
sudo dnf clean all

# 8. 如果想查看‘哪個檔案屬於哪個軟體包’
dnf provides */htop

特点dnf的优势是依赖解析更快、占用内存更小,remove时能自动清理孤儿依赖。

老版本 CentOS 7 及之前:请将 dnf 替换为 yum,命令几乎完全相同。


Arch Linux 家族 (使用 pacman 管家)

Arch娘的性格特立独行,她的管家 pacman 命令风格也自成一派:

# 1. 同步仓库数据库 (相当于 apt update)
sudo pacman -Sy

# 2. 搜索 htop
pacman -Ss htop

# 3. 查看 htop 的详细信息
pacman -Si htop

# 4. 安装 htop
sudo pacman -S htop

# 5. 全面系统升级 (相当于 apt upgrade)
sudo pacman -Syu

# 6. 移除 htop(保留依赖)
sudo pacman -R htop

# 7. 移除 htop 及不再需要的依赖
sudo pacman -Rns htop

# 8. 清理不再需要的孤立包和缓存
sudo pacman -Qdtq | sudo pacman -Rns -  # 清理孤儿包
sudo pacman -Sc                         # 清理缓存

记忆技巧

  • S = Sync(同步/安装)
  • R = Remove(移除)
  • s = search(搜索)
  • y = refresh(刷新)
  • u = upgrade(升级)
  • n = nosave(删除配置文件)
  • c = clean(清理缓存)

终极对比速查表

操作Debian/Ubuntu (apt)RHEL/CentOS (dnf)Arch (pacman)
刷新仓库apt updatednf check-updatepacman -Sy
搜索软件apt search 关键词dnf search 关键词pacman -Ss 关键词
查看详情apt show 包名dnf info 包名pacman -Si 包名
安装apt install 包名dnf install 包名pacman -S 包名
升级全部apt upgradednf upgradepacman -Syu
卸载apt remove 包名dnf remove 包名pacman -R 包名
卸载+配置apt purge 包名dnf remove 包名pacman -Rns 包名
清理缓存apt cleandnf clean allpacman -Sc

通用备选方案:不受发行版限制的安装方式

如果觉得各家命令太复杂,还有一些“通用方案”:

1. Snap / Flatpak

这两者把软件和依赖全打成一个沙箱包,能跑在所有主流发行版上,如同Windows的“免安装绿色版”:

# Snap (Ubuntu 默认支持)
sudo snap install htop

# Flatpak (需先安装 flatpak 框架)
flatpak install flathub org.htop.htop

2. AppImage

直接下载一个文件,给执行权限就能跑,连安装都不需要:

chmod +x 某软件.AppImage
./某软件.AppImage

3. 源码编译

最后的通用解决方案,但因为需要自己处理编译和依赖,适合有经验的用户:

tar -xzf 包名.tar.gz
cd 包名
./configure
make
sudo make install

小结

不同发行版的包管理看似纷繁,但核心逻辑都一致:刷新仓库 → 搜索软件 → 安装 → 定期升级。掌握了一家的使用方法,切换到另一家只是“换个说法”而已。

下一节,我们将真正上手,从 SSH 登录服务器的第一步开始,与 Linux 娘展开日常的亲密互动。

实战:双系统翻车与救援

前两天闲来无事,给我的笔记本装了Windows+Ubuntu双系统,结果测试好久都没找到完美控制笔记本风扇的办法,遂放弃。(果然Linux娘还是该老老实实呆在服务器上口牙!)

直接在Win10的磁盘管理把Linux分区删了,然后忘了删除引导——重启,我靠,怎么是GRUB界面!

丝毫不慌,两种解决办法送上:

方法一(能进BIOS的情况下)

  1. 重启疯狂按Delete键(ROG笔记本,其他品牌自行查找主板快捷键)
  2. 进入BIOS,将启动项里的 Windows Boot Manager 调到第一位
  3. 按F10保存重启,顺利进入Windows
  4. 下载 EasyUEFI,将Linux启动项完全删除

方法二(开启了快速启动,进不去BIOS)

众所周知,开启快速启动后无法进入BIOS……这时候别急,GRUB不是有命令行吗?跟着我打:

ls   # 查看当前目录结构
ls (hd0,gpt1)/efi/microsoft/boot/bootmgfw.efi
# 查看当前分区是否有系统引导文件,如果没有依次查找其他分区
# 如果显示 bootmgfw.efi 则说明成功找到引导文件

set root=(hd0,gpt1)   # 把找到引导文件的分区表设置为系统引导分区
chainloader /efi/microsoft/boot/bootmgfw.efi   # 加载引导文件
boot   # 回车,重新进入Windows

进入系统后,同样下载EasyUEFI把Linux启动项完全删除。大功告成!


写在最后

无论是机房里的硬件设备,还是网络中的交换与路由,Linux娘都在背后默默支撑着整个数字世界的运转。接下来的章节,我会继续记录从SSH登录到服务搭建、从脚本编写到监控告警的日常点滴。

希望这本笔记,能成为你入坑路上的一盏小灯。