# SSH 进客户服务器之前，先学完这门免费 Linux 课

> LFS101 报名人数超过百万，其中六章正好对应在裸 Linux 上排查 Agent 失联的各个步骤。

原文: https://fdetimes.net/zh/books-courses/introduction-to-linux-lfs101-for-fdes/

2020 年，Linux 基金会宣布其在 edX 上的免费 Linux 课程报名人数突破 100 万。学的人多，本身并不说明课教得好。但这至少表明，Linux 入门（Introduction to Linux，LFS101）是大量工程师接触真实服务器之前熟悉的起点。

对前线部署工程师（FDE）来说，真实服务器通常是客户的。设想你正 SSH 进客户内网里的一台虚拟机：没有熟悉的 IDE，身边没有 DevOps 同事，而部署必须在今天下午演示之前跑通。这时，会用命令行就不再是锦上添花。

## 课程由谁制作，面向谁？

LFS101 由 Linux Foundation Education 制作，是一门入门级在线自学课程，在 edX 上的名称是“LinuxFoundationX: Introduction to Linux”。课程的目标是让学员掌握足够的知识，能通过图形界面和命令行使用 Linux。

课程面向熟悉电脑、但几乎没有 Linux 经验的人。很多软件工程师正是如此：在 macOS 或 Windows 上写代码很强，在云平台上一键部署，可一旦要自己查清服务为什么在一台裸 Linux 机器上挂掉，就无从下手。

据官方页面介绍，课程免费，约 60 小时内容，可访问 90 天。内容定期修订，到 2020 年 9 月已更新到第六版。2024 年 10 月，Linux 基金会又推出日文版 LFS101-JP，同样免费，时长约 60 小时。

## FDE 真正值得学的是哪几章？

大纲中有六章与客户现场的工作直接对应：命令行操作（Command Line Operations）、进程（Processes）、文件操作（File Operations）、网络操作（Network Operations）、Bash 脚本（Bash scripting）和本地安全原则（Local Security Principles）。要看清每一章何时派上用场，最简单的办法是走一遍假想的故障，同时记住该熟记的命令。

你刚把一个文档处理 Agent 部署到客户服务器上，客户反馈 API 没有响应。第一个问题：进程还在运行吗？这是进程一章的内容。`ps aux | grep ` 告诉你进程是否存活；如果服务由 systemd 管理，`systemctl status ` 会显示它的状态和最近一次重启。

下一个问题：日志在哪里，配置文件有没有被覆盖？这是文件操作一章。`journalctl -u  -n 50` 或 `tail -n 50 ` 能给出最后 50 行日志，`ls -l ` 能显示文件最后一次修改的时间和修改它的账户。

最后一个问题：服务监听的端口对不对，是否被拦截？这是网络操作一章。`ss -tlnp` 列出开放端口，`curl -v http://localhost:` 告诉你服务在本机上是否有响应。如果本机 curl 正常、外部调用却失败，问题多半出在网络或防火墙，而不是代码。

如果客户只给你一个受限账户，就要细读本地安全原则一章。先运行 `id` 查看账户所属的组，再运行 `sudo -l` 查看可以提权执行哪些命令，然后再去申请更多权限。

修复完成后，你肯定不想每次更新都手动敲一遍这些步骤。这时 Bash 脚本的价值就体现出来了。

**要点:** 在客户服务器上，唯一一定靠得住的就是命令行。

## 学习时要养成的三个习惯

课程给你的是工具。把工具变成流程，要靠你自己在这 60 小时里练出来。第一个习惯：所有练习都通过终端完成，最好 SSH 进你自己的虚拟机，因为在客户现场，这几乎是你唯一的访问方式。

第二个习惯：把排查当作一串有顺序的问题，而不是靠猜。先进程，再文件，再网络，最后权限。每学完一章，就把对应的步骤和上面那样的几条命令写进自己的检查清单。课程结束时，你就有了一套随身可用的现成流程。

第三个习惯：凡是需要第二次手动做的事，就写成脚本。一个短小的 Bash 脚本，依次运行 `systemctl status`、打印最后几行日志、再用 `ss` 检查端口，就能在一个又一个客户那里复用。演示前被催的时候，它也能让你保持镇定。

## 按什么顺序学，花多长时间？

内容共 60 小时，访问期 90 天。平均分到 12 周，每周约 5 小时。对在职工程师来说完全可行，前提是从报名那天起就定好固定的学习时间。

学员常犯三个错误。最常见的是只看视频不敲命令，一周后忘掉大半。其次是在桌面和图形界面章节上花太多时间，而这些内容在客户服务器上很少用到。最后是在一个周末突击，之后一直搁置到 90 天到期。

如果你每天都会打开终端，就不必按顺序学：快速浏览图形界面和安装部分，直接进入上面六章。无论哪种情况，都要搭一台自己的 Linux 虚拟机，把每条命令重新敲一遍，包括你觉得已经会的。

学完 LFS101，Linux 基金会自己建议的下一步是 LFS201，即 Linux 系统管理基础（Essentials of Linux Systems Administration）。这门课自 2015 年起在 edX 上线，面向已学完 LFS101 的人。如果你已经运维过生产环境的 Linux 服务器，LFS101 会太基础，可以直接从 LFS201 开始。

## 把课程变成求职优势

2020 年，学完这门课不花钱；认证证书可选，需要付费。有证书固然好，但能证明你会做事更有说服力。把你的排查脚本放到 GitHub 上，配一份 README，描述一次你自己模拟的故障，以及你是如何定位原因的。

阅读 FDE 岗位描述时，留意“在客户环境中部署”、“on-prem”或“熟练使用 Linux”这类表述。看到之后，在简历里加一句具体的话，比如你编写过 Bash 脚本来排查 Linux 服务器上的服务。这句话比课程名称更有分量。

在客户现场，没人会问你上过哪些课。他们只看你查清服务为什么没在运行，用的是五分钟还是五小时。

**本周动手试试:**

- 报名 LFS101，搭一台 Linux 虚拟机，完整学完命令行操作一章，并重新敲一遍每条命令
- 写一份服务停止响应时的四步排查清单（进程、文件、网络、权限），然后自己模拟一次故障来检验它
- 把这份清单写成一个短小的 Bash 脚本，放到 GitHub 上，并配一份描述该故障的 README

## 信源

- [Introduction to Linux (LFS101) - Linux Foundation - Education](https://training.linuxfoundation.org/training/introduction-to-linux/)

- [Free Intro to Linux Course Surpasses One Million Enrollments - Linux Foundation - Education](https://training.linuxfoundation.org/blog/free-intro-to-linux-course-surpasses-one-million-enrollments/)

- [LinuxFoundationX: Introduction to Linux | edX](https://www.edx.org/learn/linux/the-linux-foundation-introduction-to-linux)

- [Linux Foundation and edX Offer New Course as Starting Point for In-Demand Linux Careers](https://www.linuxfoundation.org/press/press-release/linux-foundation-and-edx-offer-new-course-as-starting-point-for-in-demand-linux-careers)

- [Linux Foundation、無料オンラインコース「Linux入門」の提供を開始](https://www.linuxfoundation.org/ja-jp/news/free-online-course-introduction-to-linux-now-available-in-japanese)
