核心 · Key Idea
一句话:Linux 哲学是「一切皆文件 + 小工具组合」。学会几十个命令 + 重定向 + 管道,就能解决 90% 的日常运维。
目录结构(FHS)#
/etc 全局配置(nginx.conf、systemd unit)
/var 变化数据(日志 /var/log、数据库 /var/lib)
/usr 发行版自带程序与库
/opt 第三方独立应用
/home 用户家目录
/root root 用户家目录
/tmp 临时文件,重启会清
/proc /sys 内核虚拟文件系统(看进程 / 调内核参数)
任何文件 / 设备 / 网络 socket 在 Linux 里都是文件路径 —— 这是「一切皆文件」。
打个比方#
打个比方 · Analogy
Linux 像积木盒:每个命令是一块积木(grep / sort / awk),用管道 | 拼起来就成不同形状。Windows 倾向于"一个大型应用解决一切"。
必会命令分类#
- 查看 / 浏览
- ls / cat / less / tail / head / file
- 导航
- cd / pwd / pushd / popd
- 操作文件
- cp / mv / rm / mkdir / ln
- 搜索
- find / grep / rg (ripgrep) / locate
- 进程
- ps / top / htop / kill / pgrep
- 权限
- chmod / chown / chgrp
- 网络
- ip / ss / curl / dig
- 归档
- tar / gzip / zstd / unzip
- 文本处理
- sed / awk / cut / sort / uniq / wc
重定向与管道#
cmd > file # stdout 写到文件(覆盖)
cmd >> file # 追加
cmd 2> err.log # stderr 重定向
cmd > out 2>&1 # 都重定向到 out
cmd1 | cmd2 # cmd1 的 stdout 当作 cmd2 的 stdin
< file cmd # stdin 来自 file| 是 Linux 最强大的设计:
ps aux | grep nginx | awk '{print $2}' | xargs kill -9怎么工作#
每条命令都是 fork + exec 出来的进程,stdin / stdout / stderr 是它的"三根管子"。
实操要点#
man cmd/tldr cmd:man 是规范文档;tldr 是最常用例子的速查卡。- 善用
xargs:把 stdin 转成参数。find . -name '*.log' | xargs rm -f。 - 谨慎
rm -rf:尤其是带变量。先echo一遍再执行:echo rm -rf "$DIR"/*。 - 环境变量:
export VAR=val当前 shell 生效;写进~/.bashrc/~/.zshrc持久化。 - 后台运行:
cmd &后台执行;nohup cmd > log 2>&1 &退出 shell 不挂。生产环境用 systemd。 - 历史搜索:Ctrl+R 反向搜索历史命令,比 ↑ 找命令快得多。
易混点#
bash
几乎所有发行版默认。
脚本兼容性最强。
脚本兼容性最强。
zsh
macOS 默认,配 oh-my-zsh 体验更好。
脚本与 bash 略有差异。
脚本与 bash 略有差异。