1
0

《TLCL》前十章:Learning the Shell

2026-06-23
《TLCL》前十章:Learning the Shell

在后端开发的日常中,如果说 Spring Boot 和 MySQL 是我们手中的剑与盾,那么 Linux 命令行就是承载这一切的广袤战场。很多时候,真正的技术分水岭不在于我们能写出多复杂的业务逻辑,而在于当服务器出现异常、日志滚屏如瀑布时,我们是否能在一个纯黑的终端窗口里游刃有余地穿梭、排障、掌控全局。

最近,我一口气通关了被誉为神书的《The Linux Command Line》(TLCL)前十章。这 10 章内容没有花哨的噱头,而是极其扎实地构建了 Linux 交互的最核心基石。写篇博客在此记录规划一下。前十章内容包括:

前十章:

  1. What Is the Shell? (date, cal, df, free, exit)
  2. Navigation (pwd, cd, ls)
  3. Exploring the System (ls, file, less)
  4. Manipulating Files and Directories (cp, mv, mkdir, rm, ln)
  5. Working with Commands (type, which, help, man, apropos, info, whatis, alias)
  6. Redirection (cat, sort, uniq, grep, wc, head, tail, tee)
  7. Seeing the World as the Shell Sees It (echo)
  8. Advanced Keyboard Tricks (clear, history)
  9. Permissions (id, chmod, umask, su, sudo, chown, chgrp, passwd)
  10. 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),还是把卡死的后台服务无情干掉(killkillall),或是把任务丢到后台跑(bg),这都是我们日常必须的高频操作。
  • 游刃有余的环境漫游: 前 4 章关于文件系统和导航的内容,加上第 8 章的键盘快捷键和历史记录技巧,能让我们在黑框框里健步如飞,再也不用像无头苍蝇一样迷失在层层叠叠的目录里了。

距离“全能”还差哪些关键拼图?

前十章主要聚焦于“操作系统自身”的交互。但在真实的后端网络架构和长效运行中,未来可能还需要补齐以下几个方向的实用命令(可以边查边学,不用非得现在系统性死磕):

  1. 网络排障(极度重要): 比如后端连不上数据库,或者接口不通。你需要掌握 pingcurl(测试接口)、netstatss(看端口有没有被占用)。
  2. 磁盘与空间管理: 后端程序产生的日志经常会悄无声息地把服务器硬盘塞满。你需要了解 df(看整体硬盘空间)、du(查哪个文件夹最大)以及 tar(打包压缩旧日志)。
  3. ......

后续暂定遇到就学,等时间充裕才把后面内容完整地学一遍,虽然很想学脚本,但目前得先学一下docker基本操作命令~

评论