ArcLibrary

Linux 速通

搞清楚目录结构、最小命令集、shell 重定向 —— 进运维的第一道门槛。

LinuxShell入门
核心 · 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 略有差异。

延伸阅读#