TERMINAL · COMPLETE GUIDE
April 2026 Vol. I Interactive Edition
命令行完全指南

掌握
终端
的艺术

从零基础到专家级应用,系统性地建立你的命令行思维。 每个章节配有实战终端、即时测验与速查手册。

8
章节
50+
核心命令
3
互动测验
练习空间
开始阅读
Contents
目录
01
入门 · Beginner

终端是什么?

理解 Terminal、Shell 与 Kernel 的关系,建立正确的心智模型

终端是你与操作系统对话的窗口——不是隐喻,是字面意义。在图形界面出现之前, 整个计算机世界都通过这一行文字运转。如今,掌握终端仍是区分普通用户与专业开发者的核心技能之一。

"给我一个终端,我就能移动整座服务器。"
— 每一个学会了 CLI 的人
三个核心层次
Terminal 你看到的窗口程序 Shell 解释命令的程序 (zsh/bash) Kernel 与硬件通信的 OS 核心
主流 Shell
bash Linux 默认,最广泛 zsh macOS 默认,功能丰富 fish 智能补全,友好 sh POSIX 兼容标准
提示符解读
user@host:~$ 完整格式 ~ 代表家目录 $ 普通用户 # root 超级用户
💡
如何打开终端 macOS: Cmd+Space → 搜索 Terminal · Linux: Ctrl+Alt+T · Windows: 搜索 Windows Terminal
first session
# 查看当前 Shell $ echo $SHELL /bin/zsh # 当前用户名 $ whoami orion # 当前时间 $ date Mon Apr 20 10:30:00 CST 2026
02
入门 · Beginner

文件系统导航

在目录树中自由移动,查看、创建、复制、删除文件

命令作用典型用法
pwd
显示当前路径
pwd
ls
列出目录内容
-l 长格式 · -a 含隐藏 · -h 可读大小
ls -lah ~/Documents
cd
切换目录
cd - 上次目录 · cd ~ 家目录
cd /usr/local/bin
mkdir
创建目录
-p 递归创建
mkdir -p src/components
touch
创建空文件
touch index.html
rm
删除
-r 递归 · -f 强制
rm -rf build/
cp / mv
复制 / 移动或重命名
cp -r src/ bak/ · mv a.txt b.txt
⚠️
无法撤销 终端删除不经回收站。rm -rf / 会毁掉整个系统, 执行前务必先用 ls 确认目标。
filesystem demo
$ pwd /Users/orion $ ls -lah drwxr-xr-x orion staff 384B Documents drwxr-xr-x orion staff 480B projects -rw-r--r-- orion staff 2.4K .zshrc $ mkdir -p demo/src/components $ tree demo demo └── src └── components

▶ 互动练习终端

sandbox terminal
orion@mac:~$ 
available: pwd · ls · echo · whoami · date · clear · help · uname
— Knowledge Check 02 —
递归创建多级目录应使用哪个命令?
03
入门 · Beginner

查看与编辑文件

cat、less、grep、重定向与管道的组合艺术

查看文件
cat file 输出全部内容 head -20 file 前20行 tail -f log 实时追踪 less file 分页浏览 (q退出) wc -l file 统计行数
搜索内容
grep "txt" file 搜索匹配行 grep -r "txt" dir/ 递归搜索 grep -i 忽略大小写 grep -n 显示行号 grep -v 反向匹配
重定向与管道
> file 覆盖写入 >> file 追加写入 cmd1 | cmd2 管道传递 2> err.log 重定向错误流 &> all.log 全部输出重定向
pipe & filter
# 管道:列进程 → 过滤 node → 统计行数 $ ps aux | grep node | wc -l 4 # 实时监控日志 $ tail -n 50 -f /var/log/system.log # 写入文件 $ echo "Hello, Terminal!" > greeting.txt $ cat greeting.txt Hello, Terminal!
04
进阶 · Intermediate

进程管理

查看、控制与优雅终止运行中的进程

命令功能描述关键参数
ps aux
所有进程快照
a=所有 · u=用户格式 · x=无终端
top / htop
动态进程监视器
htop 界面更友好,需安装
kill <PID>
向进程发信号
-9 强制 · -15 优雅退出
pkill <name>
按名称杀进程
pkill -9 node
jobs/bg/fg
前后台任务管理
Ctrl+Z 挂起 · bg %1 后台
nohup cmd &
终端关闭后继续运行
输出到 nohup.out
lsof -i :3000
查看端口占用
-i 指定网络
process management
# 查找端口 3000 的进程 $ lsof -i :3000 node 1234 orion 22u IPv4 TCP *:3000 (LISTEN) # 优雅终止 $ kill 1234 # 后台持久运行 $ nohup python3 server.py & [1] 5678
— Knowledge Check 04 —
Ctrl+C 与 kill -9 的根本区别是什么?
05
进阶 · Intermediate

环境变量与 Shell 配置

$PATH、alias、~/.zshrc 与持久化设置

env & config
# 查看所有环境变量 $ env HOME=/Users/orion SHELL=/bin/zsh PATH=/usr/local/bin:... # 当前会话临时设置 $ export NODE_ENV=production # 持久化写入 ~/.zshrc $ echo 'export EDITOR=vim' >> ~/.zshrc $ source ~/.zshrc # 别名 $ alias ll='ls -lah' $ alias gs='git status'
ℹ️
$PATH 优先级 Shell 从左到右在 $PATH 中查找可执行文件。 export PATH="$HOME/.local/bin:$PATH" 可将自定义目录置于最高优先级。
06
高阶 · Advanced

Shell 脚本编程

变量、条件、循环、函数与自动化部署

deploy.sh
#!/bin/bash APP_NAME="myapp" TIMESTAMP=$(date +%Y%m%d_%H%M%S) log() { echo "[$(date +'%H:%M:%S')] $1"; } set -e # 遇错即停 log "部署 $APP_NAME 开始..." if [[ ! -d "/var/www/$APP_NAME" ]]; then mkdir -p "/var/www/$APP_NAME" fi for i in 1 2 3; do cp -r ./dist "/var/www/$APP_NAME/build_${TIMESTAMP}_$i" done log "✅ 完成"
条件判断
-f file 文件存在 -d dir 目录存在 -z "$v" 字符串为空 -n "$v" 字符串非空 $a -eq $b 数字相等
特殊变量
$0 脚本名 $1..$9 位置参数 $# 参数个数 $@ 所有参数 $? 上条命令退出码
调试技巧
bash -x script.sh 执行追踪 bash -n script.sh 语法检查 set -e 遇错停止 set -u 未定义报错 set -o pipefail 管道失败报错
— Knowledge Check 06 —
#!/bin/bash 这行叫什么?有何作用?
07
高阶 · Advanced

SSH 与远程操作

密钥认证、安全连接、文件传输与端口转发

ssh workflow
# 1. 生成 ED25519 密钥对 $ ssh-keygen -t ed25519 -C "orion@work" # 2. 上传公钥到服务器 $ ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server.com # 3. 无密码登录 $ ssh user@server.com # 4. 高效传输(rsync 增量同步) $ rsync -avz --progress ./dist/ user@server:/var/www/html/ # 5. 本地 8080 → 远程 3000 隧道 $ ssh -L 8080:localhost:3000 user@server.com
💡
~/.ssh/config 简化连接 Host prod
  HostName server.example.com
  User ubuntu
  IdentityFile ~/.ssh/id_ed25519
之后只需 ssh prod
08
专家 · Expert

高级技巧与效率提升

快捷键、tmux、awk/sed、find 与生产力最大化

⌨ 快捷键 (Readline)
Ctrl+A / E行首 / 行尾
Ctrl+U / K剪切到行首 / 尾
Ctrl+W删除前一个单词
Ctrl+R搜索历史命令
Ctrl+L清屏
!!重复上一条命令
!$上条命令最后参数
🔲 tmux
tmux new -s main创建命名会话
tmux attach -t main重新连接
Prefix + c新建窗口
Prefix + %垂直分割
Prefix + "水平分割
Prefix + d分离(保持运行)
🔍 find
find . -name "*.js"按名称搜索
find . -type f/d仅文件 / 目录
find . -mtime -77天内修改
find . -size +10M大于10MB
find . -exec rm {} \;对结果执行命令
✂ sed / awk
sed 's/old/new/g'全局替换
sed -i 's/a/b/g' f原地修改文件
awk '{print $1}'打印第一列
awk -F: '{print $NF}'指定分隔符,最后列
awk 'NR>1 && $3>100'条件过滤
power combos
# 统计 TS 代码总行数 $ find src/ -name "*.ts" | xargs grep -c "" | awk -F: '{sum+=$2} END{print sum}' 12847 # 批量重命名 .txt → .md $ find ./notes -name "*.txt" -exec bash -c 'mv "$1" "${1%.txt}.md"' _ {} \; # 实时 IP 访问排名 $ tail -f access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head -10
学习进度

展开章节并完成测验以更新进度