温馨提示×

ubuntu getconf支持哪些

小樊
35
2026-10-18 12:54:11
栏目: 智能运维

在 Ubuntu(以及其他 Linux 发行版)中,getconf 是一个用于查询系统配置变量的命令行工具,它主要依赖 POSIX / SUS(Single UNIX Specification) 以及 glibc 提供的配置信息。

下面按类别说明 getconf 支持的内容。


一、基本用法

getconf VARIABLE
getconf -a
getconf VARIABLE path

示例:

getconf LONG_BIT
getconf PATH_MAX /
getconf -a

二、getconf 支持的变量类型

1️⃣ 系统级配置变量(不依赖路径)

这些变量描述整个系统的限制和能力。

常见示例:

变量 含义
LONG_BIT 系统位数(32 / 64)
WORD_BIT 字长(位)
PAGE_SIZE 内存页大小
PHYS_PAGES 物理内存页数
NPROCESSORS_CONF 配置的 CPU 数
NPROCESSORS_ONLN 在线 CPU 数
HOST_NAME_MAX 主机名最大长度
CLK_TCK 系统时钟频率

示例:

getconf PAGE_SIZE
getconf NPROCESSORS_ONLN

2️⃣ 文件系统 / 路径相关限制(需要路径参数)

语法:

getconf VARIABLE /path

示例:

getconf NAME_MAX /
getconf PATH_MAX /home

常见变量:

变量 含义
NAME_MAX 文件名最大长度
PATH_MAX 路径最大长度
LINK_MAX 硬链接最大数
MAX_CANON 终端规范输入最大长度
PIPE_BUF 原子写管道大小

3️⃣ POSIX / 系统能力变量(POSIX 标准)

以 _POSIX_ 开头的变量非常多,用于判断系统是否支持某些 POSIX 功能。

示例:

getconf _POSIX_VERSION
getconf _POSIX_THREADS

常见变量:

变量 含义
_POSIX_VERSION POSIX 版本
_POSIX_THREADS 是否支持线程
_POSIX_SHELL 是否有 POSIX shell
_POSIX_CHOWN_RESTRICTED chown 是否受限
_POSIX_NO_TRUNC 文件名过长是否报错

4️⃣ glibc / GNU 扩展变量

Ubuntu 使用 glibc,因此还支持 GNU 扩展变量。

示例:

getconf GNU_LIBC_VERSION
getconf LFS_CFLAGS

常见变量:

变量 含义
GNU_LIBC_VERSION glibc 版本
LFS_CFLAGS 大文件支持编译参数
LFS_LDFLAGS 大文件链接参数

三、查看所有支持的变量

getconf -a

或(更详细):

getconf -a | less

四、典型使用场景

✅ 判断系统位数

getconf LONG_BIT

✅ 获取 CPU 数量

getconf _NPROCESSORS_ONLN

✅ 编译大文件程序

getconf LFS_CFLAGS

✅ Shell 脚本中做兼容性判断

if [ "$(getconf _POSIX_THREADS)" = "200809" ]; then
  echo "支持 POSIX 线程"
fi

五、底层原理(简要)

getconf 实际调用的是:

  • sysconf()
  • pathconf()
  • confstr()

因此它的输出和 C 程序中调用这些函数是一致的。


如果你愿意,我可以:

  • 给你 Ubuntu 上 getconf -a 的完整输出示例
  • 或按 开发 / 运维 / Shell 脚本 场景整理常用变量表

0 踩