1. ps – 查看进程状态
-
用途:显示当前系统的进程状态。
-
语法:
ps [选项] -
常用选项:
aux:显示所有用户的进程(详细信息)。-ef:显示所有进程(完整格式)。-u 用户名:显示指定用户的进程。
-
输出字段:
PID:进程ID。USER:进程所有者。%CPU:CPU占用率。%MEM:内存占用率。COMMAND:启动进程的命令。
-
示例:
# 查看所有进程的详细信息 ps aux # 查找与Nginx相关的进程 ps aux | grep nginx
2. top/htop – 实时监控系统资源
-
用途:动态查看系统资源使用情况(CPU、内存、进程等)。
-
语法:
top htop # 需额外安装,功能更强大 -
常用操作:
P:按CPU使用率排序。M:按内存使用率排序。k:终止指定进程(输入PID)。q:退出。
-
示例:
# 启动top top # 安装htop(如未安装) sudo apt install htop # Ubuntu/Debian sudo yum install htop # CentOS/Red Hat # 启动htop htop
3. df – 查看磁盘空间
-
用途:显示文件系统的磁盘使用情况。
-
语法:
df [选项] -
常用选项:
-h:以易读格式显示(如1K、1G)。-T:显示文件系统类型。
-
输出字段:
Filesystem:文件系统名称。Size:总大小。Used:已用空间。Avail:可用空间。Use%:使用百分比。
-
示例:
# 查看磁盘使用情况(易读格式) df -h # 查看指定目录的磁盘使用情况 df -h /var/log
4. du – 查看目录占用空间
-
用途:统计目录或文件的磁盘使用情况。
-
语法:
du [选项] 目录或文件 -
常用选项:
-h:以易读格式显示。-s:仅显示总大小(不显示子目录)。--max-depth=1:限制显示层级。
-
示例:
# 查看当前目录的总大小 du -sh . # 查看/var/log下各子目录的大小 du -h --max-depth=1 /var/log
5. free – 查看内存使用
-
用途:显示系统内存使用情况(物理内存、交换分区)。
-
语法:
free [选项] -
常用选项:
-h:以易读格式显示。-m:以MB为单位显示。
-
输出字段:
total:总内存。used:已用内存。free:空闲内存。buff/cache:缓存和缓冲区内存。
-
示例:
# 查看内存使用情况(易读格式) free -h
6. systemctl – 管理服务
-
用途:启动、停止、重启系统服务(Systemd 系统)。
-
语法:
systemctl [操作] 服务名 -
常用操作:
start:启动服务。stop:停止服务。restart:重启服务。status:查看服务状态。enable:设置开机自启。disable:禁用开机自启。
-
示例:
# 启动Nginx服务 sudo systemctl start nginx # 查看Nginx状态 sudo systemctl status nginx # 设置Nginx开机自启 sudo systemctl enable nginx
7. journalctl – 查看系统日志
-
用途:查看和管理 Systemd 日志(适用于 Systemd 系统)。
-
语法:
journalctl [选项] -
常用选项:
-u 服务名:查看指定服务的日志。-f:实时跟踪日志(类似tail -f)。--since "2023-08-01":查看指定时间之后的日志。--until "2023-08-10":查看指定时间之前的日志。
-
示例:
# 查看SSH服务的日志 sudo journalctl -u sshd # 实时跟踪系统日志 sudo journalctl -f # 查看今天的所有日志 sudo journalctl --since today
8. crontab – 定时任务管理
-
用途:设置定时任务(如定期备份、清理日志)。
-
语法:
crontab [选项] -
常用操作:
-e:编辑当前用户的定时任务。-l:列出当前用户的定时任务。-r:删除当前用户的定时任务。
-
时间格式:
* * * * * 命令 | | | | | | | | | +-- 星期(0-7,0和7表示周日) | | | +---- 月份(1-12) | | +------ 日期(1-31) | +-------- 小时(0-23) +---------- 分钟(0-59) -
示例:
# 编辑定时任务 crontab -e # 每天凌晨2点执行备份脚本 0 2 * * * /home/user/backup.sh # 每5分钟清理一次临时文件 */5 * * * * rm -rf /tmp/*
实战案例:监控系统资源并自动报警
目标:当内存使用率超过90%时发送邮件报警
-
编写监控脚本(
monitor_memory.sh):#!/bin/bash MEMORY_THRESHOLD=90 CURRENT_MEMORY=$(free | grep Mem | awk '{print $3/$2 * 100.0}') if (( $(echo "$CURRENT_MEMORY > $MEMORY_THRESHOLD" | bc -l) )); then echo "内存使用率超过90%!当前使用率:${CURRENT_MEMORY}%" | mail -s "内存报警" admin@example.com fi -
设置定时任务:
crontab -e # 每5分钟执行一次监控脚本 */5 * * * * /path/to/monitor_memory.sh
小贴士:
- 性能瓶颈排查:
- 使用
top查看高CPU/内存进程。 - 使用
iostat查看磁盘I/O。 - 使用
netstat查看网络连接。
- 使用
- 日志轮转:
- 使用
logrotate定期压缩和清理日志文件。
- 使用
- 服务管理:
- 使用
systemctl list-unit-files查看所有服务状态。
- 使用

被折叠的 条评论
为什么被折叠?



