Linux娘守护日记
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 Linux 和 AlmaLinux 等后辈所继承。
- 包管理器:她们使用
rpm格式的软件包,由yum或更先进的dnf管家来打理一切。
3. 极客玩家的高岭之花:Arch Linux & Gentoo
- Arch Linux:一个为“折腾”而生的滚动发行版。她的哲学是 KISS。她的安装过程完全在命令行下完成,像一个严苛的进阶考验。作为回报,你会得到一个极致精简、完全定制化的系统,以及那个传奇的 ArchWiki,堪称所有 Linux 用户的百科全书。
- Gentoo:比 Arch 更硬核的选择。她的灵魂在于“编译”。通过 PORTAGE 包管理系统,她鼓励用户根据硬件从源码编译所有软件,以榨干每一点性能。是真正想理解 Linux 内部构造的修行者们的终极伴侣。
4. 其他充满魅力的伙伴
- openSUSE:一个优雅而强大的德系系统。她以漂亮的控制面板 YaST 闻名,是 KDE 桌面环境的最佳体验平台之一。
- Alpine Linux:极致轻量的“云原生精灵”。她的体积小到只有几 MB,是构建 Docker 容器的绝对女王,将“安全”和“精简”刻在了骨子里。
所以,你的选择是?
- 想快速上手、稳定使用?闭眼选 Ubuntu 或 Linux Mint。
- 想学习企业级技术、为职业生涯铺路?从 Rocky Linux 或 Fedora 开始准没错。
- 想深度探索、亲手打造独一无二的系统?等你熟悉了基础,欢迎来挑战 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 update | dnf check-update | pacman -Sy |
| 搜索软件 | apt search 关键词 | dnf search 关键词 | pacman -Ss 关键词 |
| 查看详情 | apt show 包名 | dnf info 包名 | pacman -Si 包名 |
| 安装 | apt install 包名 | dnf install 包名 | pacman -S 包名 |
| 升级全部 | apt upgrade | dnf upgrade | pacman -Syu |
| 卸载 | apt remove 包名 | dnf remove 包名 | pacman -R 包名 |
| 卸载+配置 | apt purge 包名 | dnf remove 包名 | pacman -Rns 包名 |
| 清理缓存 | apt clean | dnf clean all | pacman -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的情况下)
- 重启疯狂按Delete键(ROG笔记本,其他品牌自行查找主板快捷键)
- 进入BIOS,将启动项里的
Windows Boot Manager调到第一位 - 按F10保存重启,顺利进入Windows
- 下载 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登录到服务搭建、从脚本编写到监控告警的日常点滴。
希望这本笔记,能成为你入坑路上的一盏小灯。