在 Debian(以及其它使用 GNU C Library 的 Linux 发行版)中,getconf 并不是“自己定义参数”,而是查询系统配置变量,这些变量来自:
你可以用下面命令直接列出当前系统支持的所有参数名:
getconf -a
或在指定路径下查看:
getconf -a /tmp
ARG_MAX
CHILD_MAX
HOST_NAME_MAX
LOGIN_NAME_MAX
OPEN_MAX
PAGESIZE
CLK_TCK
PATH_MAX
NAME_MAX
LINK_MAX
MAX_CANON
MAX_INPUT
PIPE_BUF
示例:
getconf PATH_MAX /
getconf NAME_MAX /tmp
_GNU_LIBC_VERSION
_GNU_LIBPTHREAD_VERSION
LFS_CFLAGS
LFS_LDFLAGS
LFS_LIBS
例如:
getconf GNU_LIBC_VERSION
getconf LFS_CFLAGS
getconf LONG_BIT # 32 还是 64 位
getconf PAGESIZE # 内存页大小
getconf _NPROCESSORS_CONF # CPU 总数
getconf _NPROCESSORS_ONLN # 在线 CPU 数
⚠️ 注意:
_NPROCESSORS_CONF和_NPROCESSORS_ONLN是 GNU 扩展,不是 POSIX 标准。
最可靠的方法(推荐):
getconf -a
如果你只关心某一项是否存在:
getconf NAME_MAX 2>/dev/null && echo "supported"
man getconfman sysconfman pathconfunistd.h, limits.h如果你有具体使用场景(比如写脚本、判断系统能力、编译参数),可以告诉我,我可以给你更精确的推荐参数。