Add files via upload
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
### 了解 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` 文件
|
||||
Reference in New Issue
Block a user