在 Debian(以及大多数 Linux 发行版)中,getconf 是一个用于查询系统配置变量的命令行工具,它来自 POSIX / C 库(glibc)。
getconf 支持的变量主要分为几类:
最直接的方法是:
getconf -a
这会列出当前系统支持的所有配置变量(非常多)。
也可以查看某个变量是否存在:
getconf VARIABLE
例如:
getconf LONG_BIT
| 变量 | 含义 |
|---|---|
LONG_BIT |
程序位数(32 / 64) |
WORD_BIT |
字长(通常 32) |
CHAR_BIT |
一个 char 的位数(通常 8) |
INT_MAX |
int 最大值 |
UINT_MAX |
unsigned int 最大值 |
示例:
getconf LONG_BIT
# 输出:64
| 变量 | 含义 |
|---|---|
NAME_MAX |
文件名最大长度 |
PATH_MAX |
路径最大长度 |
LINK_MAX |
硬链接最大数量 |
FILESIZEBITS |
支持的文件大小位数 |
SYMLINK_MAX |
符号链接最大长度 |
示例:
getconf NAME_MAX /
| 变量 | 含义 |
|---|---|
ARG_MAX |
exec 参数最大长度 |
CHILD_MAX |
用户最大进程数 |
OPEN_MAX |
进程最大打开文件数 |
STREAM_MAX |
最大流数 |
THREAD_DESTRUCTOR_ITERATIONS |
线程析构次数 |
THREAD_KEYS_MAX |
线程 key 最大数 |
TIMER_MAX |
定时器最大数 |
示例:
getconf OPEN_MAX
| 变量 | 含义 |
|---|---|
POSIX_VERSION |
POSIX 版本 |
POSIX_C_SOURCE |
C 标准版本 |
_POSIX_TIMERS |
是否支持定时器 |
_POSIX_THREADS |
是否支持线程 |
_POSIX_SEMAPHORES |
是否支持信号量 |
_POSIX_SHARED_MEMORY_OBJECTS |
是否支持共享内存 |
示例:
getconf _POSIX_VERSION
| 变量 | 含义 |
|---|---|
PAGESIZE |
内存页大小 |
PAGE_SIZE |
同上 |
_PHYS_PAGES |
物理内存页数 |
_AVPHYS_PAGES |
可用物理内存页数 |
示例:
getconf PAGESIZE
# 输出:4096
Debian 使用 glibc,因此支持一些 GNU 扩展:
getconf GNU_LIBC_VERSION
getconf GNU_LIBPTHREAD_VERSION
某些变量必须指定目录:
getconf NAME_MAX /
getconf PATH_MAX /tmp
getconf 本质调用的是:
sysconf(_SC_xxx)
pathconf(path, _PC_xxx)
confstr(_CS_xxx, ...)
对应变量名通常是:
_SC_* → sysconf_PC_* → pathconf_CS_* → confstr✅ Debian 的 getconf 支持:
如果你愿意,我可以:
你想看哪个?