前言
作为一名后端开发者,我们不仅要和代码打交道,更离不开服务器的运维与排查。在阿里云ECS或者公司内网服务器上,熟练掌握Linux命令能让我们的工作效率事半功倍。
很多初学者面对浩如烟海的Linux命令感到头大,但实际上,日常开发中高频使用的核心命令并不多。本文将结合实际开发场景,盘点最常用的10个Linux命令,助你快速上手服务器运维。
1. ls —— 查看文件列表
最基础但也最强大的命令。除了简单的列出文件,我们需要掌握几个高频参数。
- 常用场景: 查看当前目录下有哪些文件,文件大小、权限和修改时间。
- 代码示例:
Bash
# 列出所有文件(包含隐藏文件),并显示详细信息(权限、大小、时间) ls -al # 按修改时间倒序排列(最近修改的文件在最上面),常用于找最新的日志文件 ls -lt
2. cd —— 切换目录
你可能觉得这个太简单了,但有两个“快捷键”是老手最爱用的。
- 常用场景: 在深层目录之间快速跳转。
- 代码示例:
Bash
# 回到用户的主目录(/home/xxx) cd ~ # 【神器】回到上一次所在的目录(在两个深层目录间反复横跳时非常有用) cd -
3. tail —— 实时查看日志
对于后端开发来说,这是最重要的命令,没有之一。当服务出现Bug时,我们需要实时盯着日志看报错信息。
- 常用场景: 监控生产环境正在输出的日志文件(如Spring Boot的
catalina.out或app.log)。 - 代码示例:
Bash
# 实时滚动显示 log.txt 文件的最后10行及其后续更新 tail -f log.txt # 显示最后100行并实时滚动 tail -100f app.log
4. grep —— 文本搜索神器
当日志文件有几百兆时,肉眼看是不可能的。grep可以帮我们在海量文本中快速定位关键词(如 "Exception" 或 "Error")。
- 常用场景: 查找日志中的报错堆栈,或者查找某个配置项。
- 代码示例:
Bash
# 在 catalina.out 中查找包含 "Exception" 的行,并显示匹配行的后10行(-A 10) grep -A 10 "Exception" catalina.out # 配合 ps 命令查找进程(见下文) ps -ef | grep java
5. ps —— 查看进程状态
服务起没起来?是不是挂了?有没有僵尸进程?全靠它。
- 常用场景: 确认Java应用是否在运行,获取进程PID以便重启。
- 代码示例:
Bash
# 查看系统所有进程 ps -ef # 【常用】查找名字中包含 "java" 的所有进程 ps -ef | grep java
6. netstat —— 网络端口监听
有时候服务启动了,但外部访问不到,通常是端口问题。
- 常用场景: 查看8080端口是否被占用,或者服务是否成功监听了端口。
- 代码示例:
Bash
# 查看所有TCP端口的监听情况,并显示进程PID netstat -ntlp # 查看 8080 端口被哪个进程占用了 netstat -ntlp | grep 8080
(注:如果系统中没有netstat,可以使用ss -lntp代替)
7. top —— 系统资源监控
服务器突然变慢、CPU飙升100%,这时候就需要top出场了,它相当于Windows的任务管理器。
- 常用场景: 排查性能瓶颈,看是哪个进程吃光了CPU或内存。
- 代码示例:
Bash
# 进入实时监控界面(按 'q' 退出,按 'P' 依CPU排序,按 'M' 依内存排序) top
8. kill —— 结束进程
当服务卡死或者需要重启更新时,我们需要根据PID结束进程。
- 常用场景: 停止服务。
- 代码示例:
Bash
# 优雅地关闭进程(发送SIGTERM信号,让程序有机会处理收尾工作) kill 12345 # 强制杀死进程(慎用,相当于直接拔电源) kill -9 12345
9. chmod —— 修改文件权限
脚本写好了却运行不了?通常是权限不够。
- 常用场景: 给Shell脚本添加可执行权限。
- 代码示例:
Bash
# 给 start.sh 脚本添加可执行权限 chmod +x start.sh # 赋予所有权限(读、写、执行),通常用于测试环境解决权限问题 chmod 777 file.txt
10. tar —— 压缩与解压
Linux上最常用的压缩格式是 .tar.gz。
- 常用场景: 解压JDK安装包,或者打包日志文件下载到本地分析。
- 代码示例:
Bash
# 解压 demo.tar.gz 到当前目录 tar -zxvf demo.tar.gz # 将 logs 目录打包并压缩成 logs.tar.gz tar -czvf logs.tar.gz logs/
结语
以上这10个命令涵盖了文件操作、日志查看、进程管理、网络排查等后端开发的核心场景。熟练掌握它们,基本上能解决90%的日常服务器运维问题。
互动话题:除了这些,你日常工作中还离不开哪个Linux命令?欢迎在评论区补充!