《TLCL》前十章:Learning the Shell
2026-06-23
在后端开发的日常中,如果说 Spring Boot 和 MySQL 是我们手中的剑与盾,那么 Linux 命令行就是承载这一切的广袤战场。很多时候,真正的技术分水岭不在于我们能写出多复杂的业务逻辑,而在于当服务器出现异常、日志滚屏如瀑布时,我们是否能在一个纯黑的终端窗口里游刃有余地穿梭、排障、掌控全局。
最近,我一口气通关了被誉为神书的《The Linux Command Line》(TLCL)前十章。这 10 章内容没有花哨的噱头,而是极其扎实地构建了 Linux 交互的最核心基石。写篇博客在此记录规划一下。前十章内容包括:
前十章:
- What Is the Shell? (date, cal, df, free, exit)
- Navigation (pwd, cd, ls)
- Exploring the System (ls, file, less)
- Manipulating Files and Directories (cp, mv, mkdir, rm, ln)
- Working with Commands (type, which, help, man, apropos, info, whatis, alias)
- Redirection (cat, sort, uniq, grep, wc, head, tail, tee)
- Seeing the World as the Shell Sees It (echo)
- Advanced Keyboard Tricks (clear, history)
- Permissions (id, chmod, umask, su, sudo, chown, chgrp, passwd)
- Processes (ps, top, jobs, bg, fg, kill, killall, shutdown)
目前技能树如何应对日常后端开发?
- 看日志与排错(核心高频操作): 第 6 章的重定向(Redirection)和管道(Pipelines)是未来的排障超能力。以后 Java 程序报错,我们完全不需要把几十兆的日志全下载下来,直接在服务器上用
tail配合grep和|,就能秒速定位到具体的 Exception 堆栈。 - 部署与权限管理: 第 9 章的权限(Permissions)知识能帮我们避开无数个坑。当我们把打包好的 Spring Boot 的 jar 包或者静态博客文件传到远端被控主机时,遇到“Permission denied”,我们现在已经完全知道该用
chmod还是chown来解决,也懂得用sudo提权了。 - 服务监控与资源管控: 第 10 章的进程管理(Processes)是我们的服务器“大管家”。不管是查看哪个 Java 进程吃光了内存(
top),还是把卡死的后台服务无情干掉(kill、killall),或是把任务丢到后台跑(bg),这都是我们日常必须的高频操作。 - 游刃有余的环境漫游: 前 4 章关于文件系统和导航的内容,加上第 8 章的键盘快捷键和历史记录技巧,能让我们在黑框框里健步如飞,再也不用像无头苍蝇一样迷失在层层叠叠的目录里了。
距离“全能”还差哪些关键拼图?
前十章主要聚焦于“操作系统自身”的交互。但在真实的后端网络架构和长效运行中,未来可能还需要补齐以下几个方向的实用命令(可以边查边学,不用非得现在系统性死磕):
- 网络排障(极度重要): 比如后端连不上数据库,或者接口不通。你需要掌握
ping、curl(测试接口)、netstat或ss(看端口有没有被占用)。 - 磁盘与空间管理: 后端程序产生的日志经常会悄无声息地把服务器硬盘塞满。你需要了解
df(看整体硬盘空间)、du(查哪个文件夹最大)以及tar(打包压缩旧日志)。 - ......
后续暂定遇到就学,等时间充裕才把后面内容完整地学一遍,虽然很想学脚本,但目前得先学一下docker基本操作命令~