在 Linux 系统中,以下是一些常用的命令,用于查看进程、资源、日志和文件:
1. 查看进程
`ps`
查看当前运行的进程。
常用选项:
- `ps aux`:查看所有进程的详细信息。
- `ps -ef`:以完整格式列出所有进程。
`top`
实时显示系统资源使用情况和进程信息。
- 按 `q` 退出。
- 按 `P` 按 CPU 使用率排序,按 `M` 按内存使用率排序。
`htop`
`top` 的增强版,支持交互式操作(需安装)。
- 使用方向键浏览进程,按 `F9` 杀死进程。
`pgrep`
根据进程名查找进程 ID。
示例:
bash
pgrep nginx
`pkill`
根据进程名杀死进程。
示例:
bash
pkill nginx
2. 查看系统资源
`free`
查看内存使用情况。
常用选项:
- `free -h`:以人类可读的格式显示。
`vmstat`
查看虚拟内存、CPU、磁盘 I/O 等系统资源使用情况。
示例:
bash
vmstat 1 # 每秒刷新一次
`iostat`
查看 CPU 和磁盘 I/O 统计信息。
示例:
bash
iostat 1 # 每秒刷新一次
`df`
查看磁盘空间使用情况。
常用选项:
- `df -h`:以人类可读的格式显示。
`du`
查看目录或文件的磁盘使用情况。
常用选项:
- `du -sh /path/to/dir`:查看目录的总大小。
`netstat`
查看网络连接、路由表、接口统计信息。
常用选项:
- `netstat -tuln`:查看监听中的端口。
`ss`
`netstat` 的替代工具,查看网络连接。
常用选项:
- `ss -tuln`:查看监听中的端口。
3. 查看日志
`journalctl`
查看系统日志(适用于使用 `systemd` 的系统)。
常用选项:
- `journalctl -xe`:查看最新日志并显示详细信息。
- `journalctl -u nginx`:查看指定服务的日志。
`tail`
查看日志文件的末尾内容。
常用选项:
- `tail -f /var/log/syslog`:实时查看日志文件。
`cat`
查看整个日志文件的内容。
示例:
bash
cat /var/log/syslog
`grep`
在日志文件中搜索特定内容。
示例:
bash
grep "error" /var/log/syslog
`less`
分页查看日志文件。
示例:
bash
less /var/log/syslog
4. 查找文件
`find`
根据条件查找文件。
常用示例:
- 按文件名查找:
bash
find /path/to/dir -name "*.log"
- 按文件大小查找:
bash
find /path/to/dir -size +100M
- 按修改时间查找:
bash
find /path/to/dir -mtime -7 # 查找 7 天内修改过的文件
`locate`
快速查找文件(基于数据库)。
示例:
bash
locate nginx.conf
`which`
查找可执行文件的路径。
示例:
bash
which nginx
`whereis`
查找二进制文件、源代码和手册页的位置。
示例:
bash
whereis nginx
`grep`
在文件中搜索内容。
示例:
bash
grep "error" /var/log/syslog
5. 其他常用命令
`lsof`
查看打开的文件和进程。
常用选项:
- `lsof -i :80`:查看占用 80 端口的进程。
`strace`
跟踪进程的系统调用和信号。
示例:
bash
strace -p <PID>
`watch`
定期执行命令并显示结果。
示例:
bash
watch -n 1 free -h # 每秒刷新一次内存使用情况
通过掌握这些命令,你可以高效地管理 Linux 系统中的进程、资源和文件,并快速排查问题。