在 Debian(以及其它使用 GNU C Library 的 Linux 发行版)中,getconf 命令用于查询系统配置变量,这些变量主要来自:
getconf -a
或(更完整):
getconf -a system
示例输出片段:
LINK_MAX
_POSIX_LINK_MAX
MAX_CANON
MAX_INPUT
NAME_MAX
PATH_MAX
PIPE_BUF
_POSIX_PATH_MAX
...
| 参数 | 含义 |
|---|---|
PATH_MAX |
路径最大长度 |
NAME_MAX |
文件名最大长度 |
LINK_MAX |
一个文件最多硬链接数 |
MAX_CANON |
终端规范输入最大长度 |
MAX_INPUT |
终端输入缓冲大小 |
示例:
getconf PATH_MAX /
getconf NAME_MAX /home
| 参数 | 说明 |
|---|---|
ARG_MAX |
exec 参数最大长度 |
CHILD_MAX |
最大子进程数 |
OPEN_MAX |
进程可打开文件数 |
STREAM_MAX |
标准流数量 |
NGROUPS_MAX |
用户最多所属组数 |
示例:
getconf ARG_MAX
getconf OPEN_MAX
| 参数 | 说明 |
|---|---|
_POSIX_VERSION |
POSIX 版本 |
_POSIX_C_SOURCE |
POSIX C 源码级别 |
_XOPEN_VERSION |
X/Open 标准版本 |
_POSIX_THREADS |
是否支持线程 |
_POSIX_SEMAPHORES |
是否支持信号量 |
示例:
getconf _POSIX_VERSION
getconf _POSIX_THREADS
| 参数 | 说明 |
|---|---|
LONG_BIT |
long 类型位数 |
WORD_BIT |
字长 |
CHAR_BIT |
char 位数(通常 8) |
示例:
getconf LONG_BIT
getconf GNU_LIBC_VERSION
getconf GNU_LIBC_VERSION /lib/x86_64-linux-gnu/libc.so.6
很多参数依赖文件系统类型:
getconf NAME_MAX /mnt/ext4
getconf PATH_MAX /tmp
不同文件系统(ext4 / tmpfs / nfs)返回值可能不同。
getconf NAME_MAX
如果返回空或报错,说明该系统不支持该变量。
# 查看最大参数长度(影响 xargs / exec)
getconf ARG_MAX
# 查看系统是否 64 位
getconf LONG_BIT
# 查看文件名长度限制
getconf NAME_MAX /
# 查看 glibc 版本
getconf GNU_LIBC_VERSION
getconf 实际调用的是:
sysconf()pathconf()confstr()如果你愿意,我可以:
你想看哪一个?