Files
2025-09-25 03:32:26 +08:00

44 lines
2.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
### 了解 Linux /proc 目录吗
**`/proc` 目录的主要作用**
`/proc` 目录主要用于以下几个方面:
1. **进程信息**:这是它最重要的功能。每个正在运行的进程都有一个以其**进程 ID (PID)** 命名的子目录。例如,PID 为 `1234` 的进程,其所有信息都存放在 `/proc/1234/` 目录下
2. **系统信息**:它提供了大量关于系统硬件和内核状态的信息
3. **内核参数调优**:通过修改 `/proc/sys/` 目录下的文件,你可以动态地调整内核参数,而无需重启系统
**常见的 `/proc` 子目录和文件**
下面详细介绍一些在应急响应和系统管理中特别常用的文件和目录
**1. 进程相关的目录:`/proc/<PID>/`**
- `/proc/<PID>/cmdline`: 存储进程的完整启动命令,包括所有参数。这对于识别可疑进程非常有用
- `/proc/<PID>/exe`: 一个指向进程可执行文件的符号链接。通过 `ls -l` 可以看到它实际指向的文件路径,比如 `/usr/bin/nginx`
- `/proc/<PID>/cwd`: 指向进程的当前工作目录
- `/proc/<PID>/fd/`: 存放了该进程所有打开的文件描述符的符号链接。我之前提到的 `ls -l /proc/<PID>/fd/` 命令就是在这里工作的。通过它你可以迅速定位进程打开了哪些文件和网络连接
- `/proc/<PID>/status`: 提供了更详细的进程状态信息,比如进程名、父进程ID、内存使用情况(`VmSize`)、进程权限(`Uid`
**2. 系统信息文件**
- `/proc/cpuinfo`: 包含CPU的详细信息,如型号、核心数、缓存大小等
- `/proc/meminfo`: 显示系统内存使用情况,包括总内存、可用内存、缓冲区和缓存
- `/proc/version`: 包含Linux内核版本信息
- `/proc/mounts`: 包含了当前系统中所有已挂载的文件系统,包括设备、挂载点、文件系统类型和挂载选项
**3. 内核参数文件:`/proc/sys/`**
这个目录允许你查看和修改内核的运行时参数
- `/proc/sys/net/ipv4/ip_forward`: 控制 IPv4 数据包转发功能。值为 `1` 表示开启路由,`0` 表示关闭
- `/proc/sys/fs/file-max`: 控制系统范围内可以打开的最大文件句柄数
- `/proc/sys/kernel/hostname`: 显示或设置系统主机名
你可以用 `echo` 命令来修改这些参数,例如:
```bash
echo 1 > /proc/sys/net/ipv4/ip_forward
```
**注意:** 这种修改是临时的,系统重启后会失效。如果需要永久生效,应该修改 `/etc/sysctl.conf` 文件