linux常用快捷键
linux常用快捷键grep -C 20 “NullPointerException” app.log可以显示匹配行前后各 20 行的上下文快速了解报错前后的业务逻辑。grep “TraceId-xxx” app.log* 批量搜索切割后的日志文件串联起一次请求的完整生命周期。超大文件高效浏览对于几个 G 的日志文件使用 less 命令按需加载不会占满内存。进入后可以使用 /关键词 向上检索按 n 继续查找或按 ShiftF 无缝切换到实时追踪模式。时间窗口切割当日志量极大时使用 sed -n ‘/2023-10-23 10:00:00/,/2023-10-23 10:05:00/p’ app.log 精准提取特定时间段的日志方便下载分析。进程资源监控使用 top 或增强版 htop 实时查看 CPU 和内存占用。在 top 中按 P 可按 CPU 排序按 M 可按内存排序快速锁定高耗能的进程。内存与磁盘排查使用 free -h 查看系统内存使用情况排查 OOM使用 df -h 检查磁盘分区使用率防止日志或临时文件占满磁盘导致服务异常使用 du -sh * 定位当前目录下的大文件。IO 性能分析使用 vmstat 1 或 iostat 实时输出系统 CPU、内存、IO 统计信息分析是否存在 IO 等待过高的问题。进程查找与终止使用 ps -ef | grep java 查找进程 PID。在需要终止进程时优先使用 kill PID发送 SIGTERM 信号让进程有机会优雅地释放资源仅在紧急情况下使用 kill -9 PID 强制杀死进程避免数据损坏。后台持久化运行使用 nohup command 让程序在后台运行即使退出终端或断开 SSH 连接程序也会继续执行。四、 网络排查利器端口与连接状态检查使用 netstat -tuln 或性能更好的 ss -tuln 查看服务端口是否正常监听使用 netstat -anp | grep PID 查看指定进程的网络连接状态排查连接泄露如大量 TIME_WAIT。连通性测试使用 ping 测试网络延迟和丢包使用 telnet IP 端口 或 nc -zv IP 端口 测试特定端口是否通畅如检查后端能否连上数据库。接口快速调试使用 curl -X POST -H “Content-Type: application/json” -d ‘{“key”:“value”}’ URL 直接在命令行测试 REST API 接口。五、 进阶与自动化技巧管道与重定向Linux 哲学的核心是组合。通过管道符 |可以将多个命令串联例如 grep “error” app.log | wc -l 快速统计报错次数。编写自动化脚本将日常繁琐的部署、日志清理、服务重启等操作编写成 Shell 脚本不仅能大幅提升工作效率还能有效减少人为操作失误。基础导航ls -la查看目录详情含隐藏文件cd切换路径pwd确认当前位置。文件管理cp -r递归复制目录如项目备份mv重命名或移动文件rm -rf强制删除慎用。内容查看cat快速查看小文件less分页浏览大文件支持检索head/tail查看文件首尾内容。二、日志分析与文本处理实时监控tail -f logs/app.log跟踪日志更新tail -n 200显示末尾指定行数。精准检索grep -C 20 “ERROR” app.log显示错误行及上下文grep -r递归搜索目录。组合使用tail -f app.log | grep TraceId-xxx实时过滤特定请求日志。三、进程与资源监控进程管理ps aux查看进程列表top/htop动态监控资源占用kill PID优雅终止进程。资源诊断free -h查看内存df -h检查磁盘空间du -sh directory统计目录大小。四、网络与远程操作网络诊断ping测试连通性ip addr查看接口信息curl/wget模拟HTTP请求。远程协作ssh安全登录scp文件传输VSCode Remote-SSH插件实现免密连接与端口转发。五、自动化与脚本部署脚本编写Shell脚本自动化git pull、依赖安装及服务重启流程。定时任务crontab设置周期性任务如日志清理、服务健康检查。使用 tail -f 命令最常用这是最基础且最常用的实时查看日志命令它会持续监视文件的新增内容并显示在终端上。基本用法tail -f 日志文件的路径示例tail -f /var/log/syslog退出方式按下 Ctrl C 组合键即可停止查看。使用 journalctl -f 命令如果您的系统使用 systemd可以使用 journalctl 来实时查看系统日志。查看所有系统日志journalctl -f查看特定服务的日志使用 -u 参数指定服务名称例如 journalctl -f -u sshd 或 journalctl -u nginx -f退出方式同样使用 Ctrl C 退出。使用 less F 命令less 命令不仅可以分页查看文件还支持实时追踪。它的优势在于可以随时暂停实时模式使用上下键或搜索功能按 / 键在历史日志中查找内容。用法less F 日志文件的路径操作进入后默认处于实时追踪模式。按下 Ctrl C 可退出实时模式进入普通浏览模式在普通模式下按 Shift F 或 F 键可重新进入实时追踪模式。使用 multitail 命令如果您需要同时监控多个日志文件multitail 是一个非常强大的工具它可以将多个日志分屏显示。用法multitail 日志文件1 日志文件2示例multitail /var/log/syslog /var/log/auth.log注意该工具可能需要提前安装如 sudo apt-get install multitail。使用 dmesg -w 命令专门用于实时查看和打印内核日志的最新内容。用法dmesg -w初始化与配置初始化本地仓库git init克隆远程仓库git clone配置用户信息全局配置git config --global user.name “你的名字” 和 git config --global user.email “你的邮箱”仅当前项目配置git config user.name “项目名”日常提交增删改查查看状态git status 查看工作区和暂存区的状态查看修改内容git diff 查看工作区与暂存区的差异添加到暂存区添加指定文件git add添加所有变更git add .提交到本地仓库git commit -m “提交说明”查看提交历史完整日志git log简洁单行显示git log --oneline分支管理查看分支git branch 列出本地分支带 * 为当前分支创建新分支git branch切换分支git checkout 或 Git 2.23 推荐的新命令 git switch创建并切换分支git checkout -b 或 git switch -c合并分支git merge 将指定分支合并到当前分支删除分支删除已合并分支git branch -d强制删除未合并分支git branch -D远程仓库操作查看远程仓库信息git remote -v获取远程更新不合并git fetch拉取并合并远程代码git pull推送本地代码到远程常规推送git push首次推送并建立上游关联git push -u origin删除远程分支git push origin --delete撤销与回退“后悔药”撤销工作区未提交的修改git restore 或旧命令 git checkout – 撤销已添加到暂存区的文件git restore --staged 或旧命令 git reset HEAD 修改最后一次提交信息或追加文件git commit --amend回退版本软回退保留代码仅撤销 commitgit reset --soft HEAD~1硬回退彻底抹除代码恢复到上个版本慎用git reset --hard HEAD~1撤销已推送到远程的提交git revert 生成一个新的提交来撤销之前的更改安全且不会重写历史记录代码暂存Stash当你正在开发功能突然需要去修复紧急 Bug但当前代码还没写完无法 commit 时暂存当前修改git stash查看暂存记录git stash list恢复最近一次暂存并删除记录git stash pop