常用 Shell 指令速查与实战(工程师向)
如果只记住 10 条 Shell 指令,优先级建议lsllcdpwdlessgrepfinddudfpskill📌核心原则先查再删(尤其是多用lessgrep不要滥用rm -rf。
·
在 Linux / macOS 的日常开发、运维、调试中,Shell 指令几乎是效率的天花板。本文系统整理一批高频、实用、工程友好的 Shell 指令,并结合常见使用场景给出示例,适合作为:
- 新手入门速查表
- 工程师日常查阅
- 团队内部技术博客
一、目录与文件查看类
1️⃣ ls / ll
ls # 列出当前目录文件
ls -a # 显示隐藏文件
ls -lh # 以人类可读方式显示大小
ll # 等价于 ls -l(部分系统是 alias)
📌 常用组合:
ls -lah
2️⃣ pwd
pwd # 显示当前所在路径
3️⃣ tree
tree
tree -L 2 # 只显示 2 层目录
📌 非系统默认命令,可通过:
sudo apt install tree
二、文件内容查看与处理
4️⃣ cat
cat file.txt # 查看文件内容
cat file1 file2 > all.txt # 合并文件
⚠️ 不适合大文件
5️⃣ less(强烈推荐)
less file.txt
- 支持上下滚动
- 支持搜索:
/keyword - 退出:
q
6️⃣ head / tail
head file.txt # 前 10 行
tail file.txt # 后 10 行
tail -f log.txt # 实时查看日志(非常常用)
三、查找与搜索(核心能力)
7️⃣ find —— 文件系统搜索之王 👑
基本用法
find . -name "test.txt"
find /home -type d -name "config"
⭐ 实战:查找并确认后删除文件(重要)
⚠️ 这是工程中非常常见、也非常容易误删的操作,请务必先确认
第一步:只查找,不删除
find . -name "*loose*"
确认输出结果 完全正确 后,再执行删除操作。
第二步:确认无误后执行删除
find . -name "*loose*" -delete
✅ 强烈建议流程:
- 先
find - 确认路径
- 再
-delete
📌 更安全的替代方式(推荐):
find . -name "*loose*" -exec rm -i {} \;
每个文件都会提示确认,防止误删。
8️⃣ grep —— 内容搜索神器
grep "error" log.txt
grep -r "TODO" . # 递归搜索
grep -n "main" *.cpp # 显示行号
📌 与管道配合使用:
ps aux | grep ros
四、磁盘与空间分析
9️⃣ du —— 查看目录大小
du -h file.txt
du -sh * # 查看当前目录下每个文件/文件夹大小
📌 排查磁盘爆满必备
🔟 df —— 查看磁盘使用情况
df -h
五、文件与目录操作
1️⃣1️⃣ cp
cp a.txt b.txt
cp -r dir1 dir2
1️⃣2️⃣ mv
mv old.txt new.txt
mv file.txt /tmp/
1️⃣3️⃣ rm(危险指令 ⚠️)
rm file.txt
rm -r dir
rm -rf dir # 非常危险
❗ 建议养成习惯:
rm -ri dir
1️⃣4️⃣ mkdir
mkdir test
mkdir -p a/b/c
六、权限与用户
1️⃣5️⃣ chmod
chmod +x script.sh
chmod 755 app
1️⃣6️⃣ chown
chown user:user file.txt
七、进程与系统
1️⃣7️⃣ ps
ps aux
1️⃣8️⃣ top / htop
top
htop
📌 htop 更友好(需安装)
1️⃣9️⃣ kill
kill PID
kill -9 PID
八、管道与重定向(Shell 精髓)
管道 |
cat log.txt | grep error
重定向
command > out.txt # 覆盖
command >> out.txt # 追加
command 2> err.txt # 错误输出
九、常用高效组合(Merged 速查版)
下面这一节把最常用、最顺手、最容易形成肌肉记忆的 Shell 指令做了一次 merge 整理,非常适合直接收藏或贴在工位旁边。
1️⃣ 查看目录(强化版)
ll # 等价于 ls -lh,人类可读大小 + 详情
la # 等价于 ls -A,显示隐藏文件
ls -lSh # 按大小倒序(大文件优先)
ls -lt # 按时间倒序(最新在上)
📌 排查磁盘 / 找新生成文件时非常高频
2️⃣ 查看内容
cat file # 一次性全部显示(小文件)
less file # 可翻页 / 搜索(强烈推荐)
head -n 20 file # 前 20 行
tail -f -n 100 log # 实时跟踪日志 + 最后 100 行
📌 日志排错黄金组合:
tail -f log | grep error
3️⃣ 查找文件(find 神器)
find . -name "*.log" # 找所有 log
find . -iname "*error*" # 忽略大小写
find . -type f -size +500M # 大于 500MB 的文件
find . -mtime -7 # 7 天内改过的文件
⚠️ 危险操作前必须先预览
find . -name "*loose*" # 先看要删什么
find . -name "*loose*" -delete # 确认后才删(推荐写法)
或者更显式、更安全:
find . -name "*loose*" -exec rm -v {} +
📌 工程原则:find 永远先跑一遍不带删除参数
4️⃣ 文本搜索(grep 一生推)
grep -r "密码" . # 递归查找
grep -ri "api_key" *.py # 忽略大小写 + 指定类型
grep -v "DEBUG" log # 排除包含 DEBUG 的行
经典技巧(避免 grep 到自己):
ps aux | grep [n]ginx
5️⃣ 空间分析
du -sh . # 当前目录总大小
du -sh * | sort -hr # 子目录按大小排序
df -h # 磁盘整体使用情况
交互式神器(强烈推荐):
ncdu
6️⃣ 快速小技巧
cd - # 回到上一个目录
history | grep git # 在历史命令中找 git
常用 alias 示例:
alias ll='ls -lh --color=auto'
alias grep='grep --color'
7️⃣ 强烈推荐加入 ~/.bashrc / ~/.zshrc 的 alias
alias lla='ls -lAh'
alias del='rm -i' # 防止手滑误删
alias ff='find . -type f -name'
alias fd='find . -type d -name'
十、总结
如果只记住 10 条 Shell 指令,优先级建议:
ls/llcdpwdlessgrepfinddudfpskill
📌 核心原则:
- 先查再删(尤其是
find + delete) - 多用
less、grep - 不要滥用
rm -rf
更多推荐



所有评论(0)