🏆 本文收录于 《滚雪球学 Ubuntu》 专栏。 本专栏面向有一定计算机基础,但尚未系统学习 Linux / Ubuntu 的读者,采用“滚雪球式学习法”:先装好、再会用、再理解、再优化、再实战,带你从第一次进入 Ubuntu 桌面 / 终端开始,逐步掌握 Ubuntu 的日常使用、命令操作、软件安装、系统配置、开发环境搭建与服务器部署能力。 🎯 适合人群: Linux 初学者、Ubuntu 新手、计算机专业学生、后端 / 运维 / 测试入门同学、想搭建 Linux 开发环境的开发者、准备学习服务器部署的同学,以及想从 Windows 过渡到 Ubuntu 工作流的用户。
从“会打开终端”到“能管理系统”,从“复制命令”到“理解 Linux 思维”,这一次,我们不零散学,而是一路滚雪球! 🎉 限时福利:当前专栏活动中,一次订阅,终身阅读,后续更新章节全部免费解锁 👉 立即查看 👈️
演示环境说明:
- 开发工具:Visual Studio Code / JetBrains 系列 IDE / Vim / Nano
- Ubuntu版本:Ubuntu 22.04 LTS / Ubuntu 24.04 LTS,推荐 Ubuntu 24.04 LTS
- Linux内核版本:Linux Kernel 6.x 或更高
- 终端环境:Bash / Zsh
- 包管理工具:APT / Snap / Flatpak
- 远程连接工具:OpenSSH / Windows Terminal / MobaXterm / Termius
- 虚拟化环境:VMware Workstation / VirtualBox / WSL2 / 云服务器
- 容器环境:Docker / Docker Compose
- 操作系统:Ubuntu Desktop / Ubuntu Server
全文目录:
-
- 一、前言:一个让我醍醐灌顶的设计思想
- 二、本文要解决什么问题
- 三、背景知识:Linux 与 Ubuntu 的关系
- 四、\”一切皆文件\”的哲学基础
-
- 4.1 Unix 设计哲学的诞生
- 4.2 \”一切皆文件\”究竟是什么意思
- 4.3 文件描述符:一切的起点
- 五、Linux 文件类型全景图
-
- 5.1 普通文件
- 5.2 目录文件
- 5.3 符号链接文件
- 5.4 字符设备文件
- 5.5 块设备文件
- 5.6 套接字文件
- 5.7 命名管道文件
- 六、实验环境准备
- 七、案例一:用文件操作接口与设备和进程交互
-
- 7.1 与终端设备交互
- 7.2 向 /dev/null 扔掉输出
- 7.3 从 /dev/urandom 获取随机数据
- 7.4 读取 /proc 中的进程信息
- 八、案例二:/proc 文件系统——把内核信息变成可读文件
-
- 8.1 查看系统内存信息
- 8.2 查看 CPU 信息
- 8.3 查看网络连接状态
- 8.4 通过 /proc 观察一个正在运行的进程
- 九、案例三:/sys 文件系统与设备管理
-
- 9.1 查看磁盘设备信息
- 9.2 调节屏幕亮度(桌面环境实践)
- 9.3 查看网卡信息
- 十、深入理解:文件描述符与 I/O 重定向
-
- 10.1 标准输入、标准输出、标准错误
- 10.2 重定向的本质
- 10.3 管道的本质
- 十一、\”一切皆文件\”在 Ubuntu 运维中的实际应用
-
- 11.1 systemd 的 socket 激活机制
- 11.2 通过文件接口调试网络
- 11.3 利用 /proc 排查高负载问题
- 十二、核心命令与配置解析
-
- 12.1 文件类型识别命令
- 12.2 /proc 常用读取命令
- 12.3 设备文件操作命令
- 12.4 文件描述符相关命令
- 十三、常见问题与踩坑总结
- 十四、最佳实践建议
- 十五、扩展知识点
-
- 15.1 Plan 9 与\”一切皆文件\”的进一步演化
- 15.2 FUSE:用户空间的文件系统扩展
- 15.3 inotify:监听文件系统事件
- 15.4 /run 目录:现代运行时文件的家
- 十六、完整操作流程回顾
- 十七、总结
- 🧧 学习福利 · 限时开放 🧧
- 🫵 Who am I?
一、前言:一个让我醍醐灌顶的设计思想
我第一次认真接触 Linux 的时候,学的是一堆命令:ls、cd、cat、grep……这些命令我能背下来,但内心一直有个困惑挥之不去:为什么 Linux 的操作方式和 Windows 差异这么大?为什么很多东西在 Linux 里都要绕到命令行里操作?
直到某一天,我的一位同事在调试一个奇怪的系统问题时,突然把一个文件的内容 cat 出来,然后说了一句:“你看,这就是内核对这块内存的描述,改这个文件就能改内核行为。”
我当时愣了一下:改一个文件,就能改内核行为?
那个文件不是普通文件,它是 /proc/sys/ 下的一个虚拟文件。从那一刻起,我才真正开始理解\”一切皆文件\”这句话的含义。它不是一句口号,而是 Unix/Linux 操作系统最核心的设计哲学——用统一的文件接口来抽象一切系统资源。
这个设计思想贯穿了整个 Linux 的世界:磁盘是文件、内存是文件、进程是文件、网络套接字是文件、键盘是文件、终端是文件,连内核参数都是文件。理解了这个设计,你再去看各种 Linux 命令和操作,会豁然开朗——原来它们都在用同一套逻辑做事。
这篇文章,我想把这个思想讲透。不只是讲\”是什么\”,还要讲\”为什么\”,以及在 Ubuntu 22.04/24.04 的日常使用中,这个思想如何影响你敲的每一行命令。
如果你刚开始学 Lin






