适用于 macOS、Linux、WSL,bash/zsh 通用,避开冷门魔法,优先提效、排错、安全。
一、基础操作小技巧
1. !! 重复上一条命令(sudo 救场神器)
apt update
# 提示权限不足,直接输入
sudo !!
# 等价 sudo apt update
!$:取上一条命令最后一个参数
mkdir /tmp/test
cd !$
# cd /tmp/test
!123:执行 history 里编号 123 的命令;!grep:执行最近一条以 grep 开头的命令
2. 快速编辑命令(不用方向键来回跳)
快捷键(bash/zsh)
Ctrl + A:跳到行首Ctrl + E:跳到行尾Ctrl + U:删除光标前面整行Ctrl + K:删除光标后面内容Ctrl + W:删除光标前一个单词(按空格切分)Ctrl + R:反向搜索历史命令,输入关键词,回车直接执行,非常常用
3. 不覆盖文件,追加输出 >>,> 是覆盖
echo "新增一行" >> log.txt # 追加
echo "覆盖内容" > log.txt # 清空后写入,小心!
# 只输出错误信息到文件
command 2> err.log
# 标准输出+错误都写入同一个日志
command > all.log 2>&1
二、查找 & 过滤(最常用)
4. grep 进阶
grep -i "error" app.log # -i 忽略大小写
grep -n "warn" app.log # -n 显示行号
grep -v "debug" app.log # -v 反向匹配,排除debug行
grep -A5 -B2 "Exception" app.log # 匹配行,附带后5行、前2行
grep -r "password" ./src # -r 递归搜索目录下所有文件
5. find 查找文件(生产神器)
# 查找当前目录下大于100M的文件
find . -type f -size +100M
# 查找7天前修改的日志并删除(谨慎!先去掉 -delete 预览)
find ./logs -name "*.log" -mtime +7 -delete
# 查找文件内容含关键词(组合grep)
find . -name "*.java" -exec grep "TODO" {} \;
-exec {} \;:对找到的每个文件执行命令;{}代表文件名占位符
6. 管道 | + 分页
ps aux | grep java # 查看java进程
dmesg | less # less分页查看,空格翻页,q退出,/关键词搜索
less 快捷键:/xxx 向下搜;?xxx向上搜;n下一条匹配;q退出
三、进程、端口、系统状态
7. 查看端口占用
# Linux
ss -tulnp | grep 8080
# 旧版 netstat(很多系统默认没装)
netstat -tulnp | grep 8080
# macOS / BSD
lsof -i :8080
8. 快速杀进程
pkill -f "java" # 按命令字符串匹配杀进程
# 先查PID再杀
ps aux | grep xxx
kill -15 1234 # 优雅终止(优先)
kill -9 1234 # 强制杀死,尽量少用,容易丢数据
9. 后台运行任务(nohup / &)
# 后台跑,脱离终端,日志输出到nohup.out
nohup ./app.sh &
# 查看后台任务
jobs
# 将后台任务切回前台 fg;bg 放到后台继续跑
fg %1
注意:单纯
&会随终端关闭而终止,需要nohup或者screen/tmux长时间托管
四、文件操作
10. 统计行数、单词、大小 wc
wc -l app.log # 统计行数
wc -c app.log # 字节数
11. tar 打包解压(记住这一套,不用反复查)
# 压缩:把 dir/ 打包成 archive.tar.gz
tar -zcvf archive.tar.gz dir/
# 解压 tar.gz
tar -zxvf archive.tar.gz
# 参数记忆:z(gzip) c(create) v(verbose显示) f(文件名);x=extract解压
12. 批量重命名(rename)
# Linux:把所有 .txt 改成 .md
rename 's/\.txt$/.md/' *.txt
五、省时小技巧
13. 用 ; 和 && 串联命令
# ; 不管前面成功失败,都会执行后面
mkdir test ; cd test
# && 前面命令成功,才执行后面(推荐)
apt update && apt install nginx
# || 前面失败,才执行后面
ping 1.1.1.1 || echo "不通"
14. 临时别名 alias,永久写到~/.bashrc/ ~/.zshrc
alias ll='ls -alh'
alias gs='git status'
# 查看所有别名
alias
15. 快速查看命令耗时
time curl baidu.com
六、安全避坑(非常重要)
rm -rf不要直接写 rm -rf /,千万不要变量拼接没校验;批量删除建议先ls预览管道
|组合复杂命令,先分段执行验证生产尽量少用
kill -9,优先kill优雅关闭写脚本时,
set -e遇到错误自动退出;set -u禁止未定义变量
七、tmux(远程服务器必学,终端会话永不掉线)
简单入门:
tmux new -s work # 创建会话 work
tmux ls # 查看会话列表
tmux attach -t work # 重新接入会话
# tmux内快捷键:Ctrl+b 松开,再按 d 后台挂起;Ctrl+b % 垂直分屏;Ctrl+b " 水平分屏本文原创作者:易君召,详见:https://www.yijunzhao.cc/about,转载请注明出处。
原文链接
欢迎访问