1. 磁盘占用与排序(du/sort)
常用写法
1 2 3 4 5
| du -h --max-depth=1 . | sort -hr
du -sh -- * | sort -h
|
2. 文本搜索(grep)
基础
1 2 3
| grep "keyword" file.txt grep -n "keyword" file.txt grep -i "keyword" file.txt
|
目录递归与上下文
1 2 3 4
| grep -rin --color=auto "keyword" . grep -nC 3 "keyword" file.txt grep -nA 2 "keyword" file.txt grep -nB 2 "keyword" file.txt
|
精确匹配与正则
1 2 3
| grep -rw "\<token\>" . grep -E "err(or)?|fail(ed)?" app.log grep -rF "literal*text" .
|
排除文件/目录
1 2 3
| grep -rin "keyword" . \ --exclude-dir={.git,node_modules,dist} \ --exclude="*.min.js"
|
3. 文件路径查找(find/locate)
find:灵活但实时扫描(慢)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| find /path -type f -iname "*name*"
find . -maxdepth 2 -type d -name "build"
find /var -type f -size +100M -printf '%s\t%p\n' | sort -nr | head -20
find . -type f -mtime -1
find . -type f -name "*.log" -print0 | xargs -0 gzip
|
跳过系统目录且压制报错
1 2
| find / \( -path /proc -o -path /sys -o -path /run \) -prune -o \ -type f -name "*.conf" -print 2>/dev/null
|
locate/plocate:基于索引(快)
1 2 3
| sudo apt-get install -y plocate sudo updatedb locate filename_or_pattern
|
4. 常见网络工具安装包
1 2 3 4 5 6 7 8 9 10 11 12
| sudo apt-get install -y iputils-ping
sudo apt-get install -y net-tools
ip addr ip link ip route
sudo apt-get install -y psmisc
|
5. 进程查杀(kill/pkill/killall)
1
| ps -ef | grep python3 | awk '{print $2}' | xargs kill -9
|
更安全的做法
1 2 3 4 5 6 7 8 9
| pgrep -f python3 | xargs -r kill
pkill -f python3 pkill -9 -f python3
ps -ef | grep '[p]ython3' | awk '{print $2}' | xargs -r kill
|
建议先尝试 SIGTERM
(默认),无响应再用 SIGKILL
(-9
)。
6. 高频命令清单与示例
系统/资源
1 2 3 4 5 6 7
| top htop free -h df -h du -sh * | sort -h uname -a lsb_release -a
|
进程/网络
1 2 3 4
| ps aux | less pstree -p lsof -i :8080 ss -lntp
|
文本/日志
1 2 3 4 5 6 7
| less file.log tail -f file.log wc -l file.txt sort file | uniq -c | sort -nr cut -d',' -f1,3 file.csv sed -n '1,20p' file.txt awk -F: '{print $1,$3}' /etc/passwd
|
文件/归档/传输
1 2 3 4 5
| tar -czf logs.tgz logs/ tar -xzf logs.tgz zip -r src.zip src/ rsync -av --progress src/ dst/ scp file user@host:/path/
|
权限/链接
1 2 3
| chmod +x run.sh chown user:group file ln -s /real/path link_name
|
服务与日志(systemd)
1 2 3
| systemctl status nginx sudo systemctl start nginx journalctl -u nginx --since "1 hour ago"
|
其他
1 2 3 4 5
| which python3 command -v node date "+%F %T" nohup python3 app.py >out.log 2>&1 & tmux new -s work
|
7. 小贴士与常见坑
- 隐藏文件:
*
不匹配隐藏项,可用 .* *
组合或开启 dotglob
。
- 防止参数被当作选项:当文件名以
-
开头时加 --
,如 rm -- -weirdfile
。
- xargs 安全:二进制文件/空格用
-0
配合 -print0
;无结果时不执行用 -r
。
- 优雅停服务优先:
kill -TERM
→ 不行再 kill -KILL
。
- 权限:系统目录操作慎用
sudo
,写前先 ls
/du
/stat
确认。
- grep 正则 vs 字符串:纯文本匹配更稳更快用
-F
。
- find 性能:大目录用
-maxdepth
限制层级或改用 locate/plocate
。