主题
Ubuntu 服务器命令行教程系列
面向:会写前端 / Node / Go、但服务器命令行不熟的学习者。
原则:云 Ubuntu(SSH)为主,WSL2 作对照;能敲、能看输出、能排查。
三阶段:A 命令行与部署(01~10)→ B Shell(11~15)→ C 操作系统动手(16~23,与 A 交叉阅读)。
怎么读
| 节奏 | 建议 |
|---|---|
| 平日 40~60′ | 读 1 篇 + 在云机敲完「动手清单」 |
| 周末 | 冲 08~10(systemd → Nginx → 部署) |
| Shell 阶段(11~15) | 先 11~13 语法,再 14~15 落地;脚本统一放 ~/lab/scripts/ |
| OS 阶段(16~23) | 按下方交叉阅读地图穿插;实验目录 ~/lab/os/ |
| 卡壳时 | 先 man / Ubuntu 文档 / Bash manual,再问 AI;命令必须本机复现 |
交叉阅读地图(命令行 ↔ OS)
| 读完命令行篇 | 建议接着读 OS 篇 |
|---|---|
| 01~02 | 16 · 全景与系统调用 |
| 05 | 17 · 进程 · 18 · 调度/线程 · 19 · 内存 · 22 · 套接字 |
03 + df/ls | 20 · 文件系统与 inode |
| 06 管道重定向 | 21 · 文件描述符与管道 |
05 ss / 09~10 端口 | 22 · 套接字与网络栈 |
05 kill / 08 systemd | 23 · 信号与进程结束 |
也可先扫完 01~10 再集中读 16~23;地图用于「命令会了但原理糊」时回跳。
文章索引(建议顺序)
阶段 A · 命令行与部署(01~10)
| # | 文档 | 你学完应能做什么 |
|---|---|---|
| 01 | 为什么学服务器命令行:环境与心智 | 说清 SSH 云机 vs WSL;画个人练习机地图;守住安全底线 |
| 02 | SSH 登录、密钥与基础生存命令 | 密钥登录;pwd/ls/cd 等生存命令;会用 man |
| 03 | 文件系统、权限与用户组 | 读懂 ls -l;chmod/chown;理解 sudo 边界 |
| 04 | apt 包管理与软件安装 | apt update/install;装常用工具;不乱加源 |
| 05 | 进程、端口与资源查看 | 定位谁占端口;看 CPU/内存/磁盘 |
| 06 | 文本检索、管道与日志排查 | 管道 + grep 够用子集;跟一条错误日志 |
| 07 | 防火墙、SSH 加固与基本安全 | ufw 放行必要端口;备份后再改 sshd |
| 08 | systemd 服务与开机自启 | 写最小 unit;systemctl 启停与看日志 |
| 09 | Nginx 反向代理与静态站 | 静态页 + 反代本机端口;会查 access/error |
| 10 | 部署迷你 Node/Go 服务常驻运行 | curl 通 + systemd 自启 + Nginx 反代(可验收) |
阶段 B · Shell 脚本(11~15)
| # | 文档 | 你学完应能做什么 |
|---|---|---|
| 11 | 第一个 Bash 脚本:shebang 与严格模式 | 可执行 .sh;引号;set -euo pipefail |
| 12 | 变量、参数、条件与退出码 | $1/$@、if/case、退出码约定 |
| 13 | 循环、函数与脚本结构 | for/while、函数、source 拆库 |
| 14 | 运维脚本:健康检查与服务重启 | healthcheck.sh 探活失败则重启 mini-api |
| 15 | 运维脚本:备份、清理与定时任务 | 备份/清理脚本 + cron 定时(timer 对照) |
阶段 C · 操作系统动手(16~23)
| # | 文档 | 你学完应能做什么 |
|---|---|---|
| 16 | 操作系统全景:用户态、内核态与系统调用 | 用 strace 看见 syscall;说清用户态/内核态 |
| 17 | 进程:PID、父子关系与地址空间 | ps/pstree//proc 读 PID、PPID |
| 18 | 线程、调度与上下文切换 | 区分线程与进程;建立调度直觉 |
| 19 | 虚拟内存:RSS、VSZ 与 OOM | 读 RSS/VSZ;会查 OOM 线索 |
| 20 | 文件系统:inode、挂载与路径解析 | stat/ls -i/findmnt;硬链 vs 软链 |
| 21 | 文件描述符、管道与重定向 | 用 /proc/PID/fd 解释 > 与 | |
| 22 | 套接字、端口与网络栈直觉 | 把 ss/反代映射到 socket |
| 23 | 信号、中断与进程如何结束 | trap/kill;对照 systemctl stop |
官方总入口(收藏)
- Ubuntu Server documentation
- OpenSSH Server(Ubuntu)
- APT
- UFW
- systemd(freedesktop)
- Nginx 官方文档
- Bash Reference Manual
- syscalls(2) · proc(5) · signal(7)
- The Linux Kernel documentation(选读)
- manpages.ubuntu.com(查具体命令)
复盘与自评
| 文档 | 说明 |
|---|---|
| 从 history 看掌握程度:算不算入门 | 对照 history/history.txt 与本系列目标:入门结论与下一步 |
与 blog 其他文档的关系
- 履历 / 暑期总计划在
blog/根目录;本目录放 Linux 命令行、Bash 脚本与操作系统动手。 - Go / Node 语言本身见
go/等;本系列教「放到 Ubuntu 上跑稳」「脚本自动化」以及「用命令理解 OS」。
