一、linux常用命令速查
1. 文件与目录操作
| 命令 | 说明 | 示例 |
|---|---|---|
cp | 复制文件或目录 | cp file1.txt file2.txt |
mkdir | 创建目录 | mkdir /opt/modules |
rm | 删除文件或目录 | rm -rf dir |
cat | 查看文件内容 | cat app.log |
more | 分页查看文件 | more large.log |
vim | 编辑文件 | vim config.yml |
cd | 切换目录 | cd /opt |
pwd | 显示当前路径 | pwd |
ls | 列出目录内容 | ls -la |
mv | 移动或重命名文件 | mv old.txt new.txt |
2. 进程与系统管理
| 命令 | 说明 | 示例 |
|---|---|---|
ps -ef | 查看所有进程 | ps -ef | grep java |
kill | 终止进程 | kill -9 12345 |
top | 动态查看系统负载 | top |
netstat -nltp | 查看端口占用 | netstat -nltp | grep 8080 |
3. 文件压缩与解压
# 解压tar.gz包 tar -zxvf app.tar.gz # 压缩目录 tar -zcvf backup.tar.gz /opt/data
4. 文本处理与搜索
# 查看日志最后200行 tail -200f app.log # 查找文件 find / -name "*.log" # 搜索文件内容 grep "error" app.log
5. 远程拷贝(scp)
# 将本地文件拷贝到远程主机 scp springboot-water.jar root@192.168.10.92:/opt/modules/ # 从远程主机拉取文件 scp root@192.168.10.92:/opt/modules/app.jar ./
6. 磁盘与内存
# 查看磁盘使用情况 df -h # 查看内存使用情况 free -m
二、系统部署流程详解
1. 部署方式对比
| 方式 | 适用场景 | 特点 |
|---|---|---|
| 手工部署 | 测试环境、小规模应用 | 手动打包、上传、启动,适合快速验证 |
| 自动化部署(ci/cd) | 生产环境、频繁发布 | 通过jenkins、gitlab ci等工具实现流水线部署 |
2. 手工部署步骤
本地打包:使用maven/gradle构建jar/war包
上传服务器:通过scp或ftp工具上传
安装环境:安装jdk、mysql、redis等依赖
启动应用:
nohup java -jar app.jar > app.log 2>&1 &
验证部署:访问健康检查接口,查看日志确认启动成功
3. 自动化部署流程
代码提交 → 触发ci构建 → 单元测试 → 打包 → 上传制品库 → 部署到服务器 → 健康检查 → 发送通知
在实际工作中,测试环境部署常由开发负责,生产环境则由运维或sre团队执行。
三、进程管理:查看与终止
1. 查看java进程
# 方法一:jps(推荐) jps -l # 方法二:ps + grep ps -ef | grep java
2. 杀进程
# 正常终止(允许进程清理资源) kill 12345 # 强制终止(立即结束) kill -9 12345
kill与kill -9的区别
| 命令 | 信号 | 说明 |
|---|---|---|
kill | sigterm (15) | 温和终止,进程可捕获信号并执行清理操作(如关闭文件、释放资源) |
kill -9 | sigkill (9) | 强制终止,进程无法捕获,立即被系统回收,可能导致数据丢失或资源未释放 |
建议:优先使用kill,若进程无响应再使用kill -9。
四、端口占用排查
启动应用时若遇到端口被占用,可通过以下命令定位:
# 查看所有监听端口及对应进程 netstat -nltp # 过滤指定端口(如8080) netstat -nltp | grep 8080 # 使用lsof(需安装) lsof -i:8080
输出示例:
tcp6 0 0 :::8080 :::* listen 12345/java
此时可确认占用进程为pid 12345,根据情况决定是否终止。
五、后台运行与系统负载
1. 将程序放到后台运行
# 方法一:在命令末尾添加 & java -jar app.jar & # 方法二:使用nohup(断开终端仍运行) nohup java -jar app.jar > /dev/null 2>&1 &
nohup:忽略挂断信号(sighup),终端关闭后进程继续运行&:将进程放入后台执行
2. 查看系统负载
top
在top输出中关注:
- load average:1分钟、5分钟、15分钟的平均负载,一般不超过cpu核心数
- %cpu:进程cpu占用率
- %mem:进程内存占用率
- zombie:僵尸进程数量
六、系统故障排查思路
1. 核心原则
先恢复服务,再分析原因
当系统出现故障时,首要任务是让系统恢复可用,而非立即定位问题。但在重启或操作前,务必保留现场(日志、堆栈、状态等)。
2. 排查步骤
查看日志
tail -200f /var/log/app.log
检查系统资源
top # cpu、内存 df -h # 磁盘 free -m # 内存
检查网络与端口
ping <ip> netstat -nltp
查看进程状态
ps -ef | grep java
分析核心转储或堆栈(如有)
jstack <pid> > thread_dump.txt
3. 常见问题与应对
| 问题现象 | 可能原因 | 排查命令 |
|---|---|---|
| 应用响应慢 | cpu/内存不足、gc频繁 | top, jstat |
| 端口无法绑定 | 端口被占用 | netstat -nltp |
| 服务突然停止 | oom、进程被杀 | dmesg | grep -i kill |
| 磁盘写满 | 日志未清理 | df -h, du -sh * |
七、发行版与shell脚本
1. 常用linux发行版
在实际生产环境中,centos 7 是许多企业的首选,因其稳定性、社区支持及与rhel的兼容性。近年来,centos 8 已停止维护,企业逐步迁移至:
- rocky linux
- almalinux
- ubuntu server
2. shell脚本编写
shell脚本用于自动化任务,如日志清理、应用启动、备份等。
示例:清理7天前的日志
#!/bin/bash
log_dir="/var/log/app"
days=7
find $log_dir -name "*.log" -mtime +$days -exec rm -f {} \;
echo "logs older than $days days have been removed."
以上就是linux系统常用命令速查指南的详细内容,更多关于linux常用命令的资料请关注代码网其它相关文章!
发表评论