运行时修改内核参数
命令语法格式
sysctl [options] [variable[=value]] […]
sysctl -p [file or regexp] […]
命令描述
命令sysctl用于在运行时修改内核参数。可用的参数是/proc/sys/下列出的参数。 在Linux中,支持sysctl需要proc文件系统。 您可以使用sysctl来读取和写入sysctl数据。
命令参数
variable
要读取的key的名称。例如:kernel.ostype。 也可以接受’/’分隔符,代替’.’,比如kernel.ostype。
variable=value
要设置的key及value,请使用variable=value,其中variable是键,value是要将其设置为的值。如果值包含由Shell解析的引号或字符,则可能需要将值括在双引号中。
-a, –all
显示当前可用的所有值。
–deprecated
包含已弃用的参数到–all值列表。
-n, –values
在打印值时,禁用键名的打印。
-N, –names
仅打印键名。对于具有可编程完成的Shell可能很有用。
-e, –ignore
使用此选项可忽略有关未知key的错误。
-q, –quiet
不要将设置的值显示到标准中。
-w, –write
当所有参数都规定要设置的键时,请使用此选项。
-p[FILE], –load[=FILE]
从指定的文件或/etc/sysctl.conf(如果没有给出)加载sysctl设置。使用“-”作为FILE表示从标准输入读取数据。 使用此选项意味着sysctl的参数是文件,它们按照指定的顺序读取。参数FILE可以指定为正则表达式。
–system
从所有系统配置文件中加载设置。 从上到下按给定顺序,从以下列表中的目录中读取文件:
/etc/sysctl.d/*.conf
/usr/local/lib/sysctl.d/*.conf
/usr/lib/sysctl.d/*.conf
/lib/sysctl.d/*.conf
/etc/sysctl.conf
加载给定文件名的文件后,将忽略后续目录中的任何同名文件。
-r, –pattern pattern
仅应用与pattern匹配的设置。该模式使用扩展正则表达式(ERE)语法。
-b, –binary
打印没有换行的值。
其他选项
-A
等同于-a
-d
等同于-h
-f
等同于-p
-X
等同于-a
-o
什么都不做,为了保持与BSD的兼容。
-x
什么都不做,为了保持与BSD的兼容。
-h, –help
显示帮助信息并退出。
-V, –version
显示版本信息并退出。
注意事项
已经弃用的参数
不推荐使用base_reachable_time和retrans_time参数。 命令sysctl不允许更改这些参数的值。坚持使用已弃用的内核接口的用户应该通过:
等其他方式将值设置到/proc文件系统。
相关文件
/proc/sys
内核参数的保存位置。
/etc/sysctl.conf
可修改的配置文件。
使用示例
显示当前可用的所有值:
打印kernel.hostname的值时,但是禁用键名的打印:
临时更改某个值:
从/etc/sysctl.conf中加载配置:
打印所包含forward的key及其值:
打印所有以forward结尾的key及其值:
打印eth0和wlan0的arp设置:
打印net.ipv6的全部设置:
如上示例。
相关手册
sysctl.conf(5) regex(7)
参考文献
- man 8 sysctl, Version 23.3.15-2
更新日志
- 07/29/2017 创建文章
- 10/03/2018 修改文章内容