在 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

强烈建议流程

  1. find
  2. 确认路径
  3. -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 / ll
cd
pwd
less
grep
find
du
df
ps
kill

📌 核心原则

  • 先查再删(尤其是 find + delete
  • 多用 lessgrep
  • 不要滥用 rm -rf
Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐