Linux 世界强大而自由,但初识黑底白字的终端时,许多人都会感到无从下手。其实,日常工作和运维中用到的命令不过几十个,熟悉它们之后,你会发现命令行远比图形界面更高效。这篇博客将带你梳理最常用的 Linux 命令,按使用场景分类,并配上简明示例,方便随时查阅。


一、文件与目录操作

1. 查看目录内容 – ls

ls          # 列出当前目录文件
ls -l       # 详细列表(权限、大小、时间)
ls -a       # 显示隐藏文件
ls -lh      # 人类可读的文件大小(如 1K, 234M)

2. 切换目录 – cd

cd /path/to/dir   # 进入指定目录
cd ..             # 返回上一级
cd ~              # 回到用户主目录
cd -              # 回到上次所在目录

3. 显示当前路径 – pwd

pwd      # 打印当前完整路径

4. 创建目录 – mkdir

mkdir new_dir           # 创建单个目录
mkdir -p a/b/c          # 递归创建多级目录

5. 删除空目录 – rmdir

rmdir empty_dir         # 只能删除空目录(常用 rm -r 代替)

6. 创建文件 / 更新时间戳 – touch

touch file.txt          # 创建空文件,若存在则更新修改时间

7. 复制 – cp

cp source dest          # 复制文件
cp -r source_dir dest   # 递归复制目录
cp -i source dest       # 覆盖前询问

8. 移动 / 重命名 – mv

mv old_name new_name    # 重命名
mv file /target/dir     # 移动文件

9. 删除 – rm

rm file.txt             # 删除文件
rm -r dir               # 递归删除目录
rm -f file              # 强制删除,不提示
rm -rf dir              # 强制递归删除(慎用!)

二、文件查看与处理

10. 查看文件内容 – catlessheadtail

cat file.txt            # 一次性输出全部内容
less file.txt           # 分页浏览,空格翻页,q 退出
head -n 20 file.txt     # 查看前 20 行
tail -n 20 file.txt     # 查看最后 20 行
tail -f log.txt         # 持续追踪文件末尾(看日志神器)

11. 统计行数/字数 – wc

wc -l file.txt          # 行数
wc -w file.txt          # 单词数
wc -c file.txt          # 字节数

12. 查找文件 – find

find /path -name "*.log"        # 按名称查找
find . -type d -name "backup"   # 查找目录
find / -size +100M              # 查找大于 100M 的文件

13. 搜索内容 – grep

grep "keyword" file.txt         # 在文件中搜索关键字
grep -r "error" /var/log/       # 递归搜索目录下的文件
grep -i "error" file.txt        # 忽略大小写
grep -v "debug" file.txt        # 反向选择,不含 debug 的行

14. 文本流编辑 – sed(常用示例)

sed 's/old/new/g' file.txt      # 替换所有 old 为 new(仅输出)
sed -i 's/old/new/g' file.txt   # 直接修改文件内容
sed -n '5,10p' file.txt         # 打印第5到10行

15. 文本处理语言 – awk(提取列)

awk '{print $1, $3}' file.txt   # 打印第1列和第3列
awk -F':' '{print $1}' /etc/passwd   # 以冒号为分隔符,取第一列

16. 排序与去重 – sortuniq

sort file.txt                   # 按字母排序
sort -n file.txt                # 按数字排序
sort file.txt | uniq            # 去重(需先排序)
sort file.txt | uniq -c         # 去重并统计出现次数

三、权限与用户管理

17. 修改权限 – chmod

chmod 755 script.sh             # 数字方式:rwxr-xr-x
chmod u+x script.sh             # 符号方式:user 增加执行权限
chmod -R 755 dir/               # 递归修改目录及其下所有文件

18. 修改所有者 – chown

chown user:group file.txt       # 同时修改用户和组
chown -R user:group dir/        # 递归修改

19. 切换用户 – susudo

su - username                   # 切换用户并载入其环境
sudo command                    # 以 root 权限执行单条命令
sudo -i                         # 获得一个 root shell

20. 查看当前用户 – whoamiid

whoami                          # 显示当前用户名
id                              # 显示用户 ID 和所属组

四、系统信息与进程管理

21. 查看系统信息

uname -a                        # 内核版本、系统架构等信息
hostname                        # 主机名
df -h                           # 磁盘使用情况(人类可读)
du -sh dir/                     # 统计目录占用空间
free -h                         # 内存使用情况
uptime                          # 系统运行时间及负载

22. 查看进程 – ps

ps aux                          # 显示所有进程的详细信息
ps aux | grep nginx             # 查找特定进程

23. 动态进程监控 – top / htop

top                             # 实时刷新进程和资源占用(q 退出)
htop                            # 增强版 top(可能需要安装)

24. 结束进程 – kill

kill PID                        # 正常终止进程
kill -9 PID                     # 强制杀死进程
pkill process_name              # 按名称杀死进程

25. 前后台任务 – &jobsfgbg

command &                       # 命令在后台运行
jobs                            # 查看后台任务
fg %1                           # 将 1 号后台任务调回前台
bg %1                           # 让暂停的任务在后台继续运行

五、网络相关

26. 网络连接测试 – ping

ping -c 4 baidu.com             # 发送4个包后停止

27. 下载文件 – wgetcurl

wget https://example.com/file.tar.gz
curl -O https://example.com/file.tar.gz   # 同 wget 效果
curl -I https://example.com              # 只获取 HTTP 头

28. 查看网络接口 – ipifconfig

ip addr                         # 显示所有网络接口的 IP
ifconfig                        # 旧命令,部分系统需安装 net-tools

29. 端口与连接 – ssnetstat

ss -tlnp                        # 查看所有监听的 TCP 端口
netstat -tlnp                   # 类似功能(旧命令)

六、压缩与归档

30. 打包压缩 – tar

tar -cvf archive.tar dir/       # 打包成 tar
tar -xvf archive.tar            # 解包
tar -czvf archive.tar.gz dir/   # 打包并用 gzip 压缩
tar -xzvf archive.tar.gz        # 解压 .tar.gz
tar -cjvf archive.tar.bz2 dir/  # 用 bzip2 压缩
tar -xjvf archive.tar.bz2       # 解压 .tar.bz2

31. 单独压缩命令

gzip file                       # 压缩为 .gz
gunzip file.gz                  # 解压
zip -r archive.zip dir/         # 打包为 zip
unzip archive.zip               # 解压 zip

七、其他常用技巧

32. 命令历史 – history

history                         # 查看历史命令
!123                            # 重新执行历史编号为 123 的命令
!!                              # 执行上一条命令

33. 输入输出重定向

command > file.txt              # 标准输出覆盖写入文件
command >> file.txt             # 标准输出追加到文件
command 2>&1 | grep error       # 将标准错误合并到标准输出再过滤

34. 管道组合

cat access.log | grep "404" | awk '{print $1}' | sort | uniq -c | sort -nr
# 这条命令链统计了访问日志中产生 404 的 IP 并排序

35. 别名 – alias

alias ll='ls -alF'              # 设置别名(临时生效)
unalias ll                      # 取消别名

永久生效需写入 ~/.rc~/._aliases

36. 手册 – man--help

man ls                          # 查看 ls 的完整手册
ls --help                       # 查看简要帮助

结语

Linux 命令看似繁多,但只要你按使用场景分类练习,一周就能熟练掌握这些高频命令。建议在虚拟机或 WSL 里搭建一个实验环境,把每个命令跑一遍。当你能够用管道将多个命令串联成一条优雅的“命令行链条”时,那种掌控感会让你真正爱上 Linux。

安全提醒rm -rfchmod 777 等高危操作,在执行前务必再三确认路径;sudo 赋予你 root 权限时,也意味着更大的责任。

希望这份清单能成为你桌边的速查手册,收藏起来,常看常用,让命令行成为你指尖的魔法。