linux param是Linux系统中参数的常用简称,根据使用场景不同,主要分为内核参数、进程参数、脚本参数三大类,不同类型的参数作用范围和操作方式存在明显差异。

一、内核参数
内核参数是Linux内核运行时可动态调整的配置项,主要用于控制内核的行为,比如网络栈配置、内存管理策略、文件系统参数等。这些参数大多存储在proc文件系统中,路径为/proc/sys/下的对应目录。
1. 查看内核参数
可以通过cat命令直接读取/proc/sys/下的文件查看参数值,也可以使用sysctl命令查看。示例如下:
# 查看网络相关内核参数,ip_forward表示是否开启IP转发 cat /proc/sys/net/ipv4/ip_forward # 使用sysctl命令查看所有内核参数 sysctl -a # 查看指定内核参数 sysctl net.ipv4.ip_forward
2. 修改内核参数
内核参数修改分为临时修改和永久修改两种方式,临时修改重启后会失效,永久修改需要写入配置文件。
# 临时修改ip_forward参数为1,开启IP转发 echo 1 > /proc/sys/net/ipv4/ip_forward # 使用sysctl命令临时修改 sysctl -w net.ipv4.ip_forward=1 # 永久修改需要编辑/etc/sysctl.conf文件,添加如下内容 # net.ipv4.ip_forward = 1 # 之后执行sysctl -p使配置生效
二、进程参数
进程参数指进程启动时传递给进程的命令行参数,比如在终端执行ls -l /home时,-l和/home就是传递给ls进程的param。进程可以通过特定的方式获取这些参数。
1. C程序获取进程参数
在C语言中,进程的命令行参数通过main函数的argc和argv参数获取,argc表示参数个数,argv是参数数组。
#include <stdio.h>
int main(int argc, char *argv[]) {
// 打印参数个数
printf("参数个数: %dn", argc);
// 遍历打印所有参数
for (int i = 0; i < argc; i++) {
printf("第%d个参数: %sn", i, argv[i]);
}
return 0;
}
2. Shell脚本获取进程参数
在Shell脚本中,通过$1、$2等变量获取对应位置的参数,$0表示脚本本身的名称,$#表示参数总个数。
#!/bin/bash # 打印脚本名称 echo "脚本名称: $0" # 打印第一个参数 echo "第一个参数: $1" # 打印参数总个数 echo "参数总个数: $#"
三、常见参数分类对比
为了更清晰区分不同类型的linux param,以下是三者的核心差异对比:
| 参数类型 | 作用范围 | 查看方式 | 修改方式 |
|---|---|---|---|
| 内核参数 | 整个系统内核行为 | cat /proc/sys/、sysctl命令 | 临时修改用echo或sysctl -w,永久修改编辑/etc/sysctl.conf |
| 进程参数 | 单个进程运行逻辑 | 进程内部通过argc/argv或$1等变量获取 | 启动时通过命令行传递,运行中无法直接修改 |
| 脚本参数 | 单个脚本执行逻辑 | 脚本内部通过位置变量获取 | 执行脚本时通过命令行传递 |
四、注意事项
- 修改内核参数前建议先备份原有配置,避免修改错误导致系统异常。
- 进程参数和脚本参数仅在进程或脚本启动时传递,运行中无法动态变更。
- 部分内核参数修改后需要重启相关服务才能生效,并非所有参数修改后立即全局生效。
linux_param内核参数系统配置proc文件系统修改时间:2026-07-03 05:42:19