getconf 命令

用途

将系统配置变量值写入标准输出。 系统的默认参数,比如mkfs读取默认参数,并格式化,默认PAGESIZE是4096

语法

getconf [ -v specification ] [ SystemwideConfiguration | PathConfiguration PathName] [ DeviceVariable DeviceName ]

getconf -a

描述

用 SystemwideConfiguration 参数调用 getconf 命令,将 SystemwideConfiguration 参数所指定的变量值写到标准输出。

用 PathConfiguration 和 PathName 参数调用 getconf 命令,写入 PathConfiguration 参数为 PathName 参数指定路径指定的变量值,到标准输出。

getconf 命令,用 -a 标志调用,并写入全部系统配置变量值到标准输出。

getconf 命令,用 DeviceVariable 和 DeviceName 参数调用,写磁盘设备名或位置的值到标准输出,设备路径由 DeviceName 参数指定。

如果在系统中定义指定的变量且其值描述为可从 confstr 子例程得到,则指定变量的值按下列格式写入:

“%s\n”,< 值 >

否则,如果在系统中定义指定变量,其值按下列格式写入:

“%d\n”, < 值 >

如果指定变量是有效的但在系统中未定义,则将下列内容写入标准输出:

“undefined\n”

如果变量名无效或出现错误,就会有一个诊断消息写入标准错误。

标记

-a 规格 显示了指定规格及版本,其配置变量等待确定。如果该标志未被指定,返回值将响应一个实现缺省值 XBS5 的相应的编辑环境。
-v 将全部系统配置变量值写入标准输出。

参数

PathName 为 PathConfiguration 参数指定路径名。
SystemwideConfiguration 指定一个系统配置变量
PathConfiguration 指定一个系统路径配置变量
DeviceName 指定一个设备路径名。
DeviceVariable 指定一个设备变量。

当列入下列的表格中的第一列符号被用作 system_var 操作数时,getconf 将产生与用第二列的值调用 confstr 时相同的值:

注:
_CS_AIX_ARCHITECTURE 和 _CS_AIX_BOOTDEV 变量,用做 confstr 参数时,只对 root 用户可用。
system_var confstr 名称值
BOOT_DEVICE _CS_AIX_BOOTDEV
MACHINE_ARCHITECHTURE _CS_AIX_ARCHITECTURE
MODEL_CODE _CS_AIX_MODEL_CODE
PATH _CS_PATH
XBS5_ILP32_OFF32_CFLAGS _CS_XBS5_ILP32_OFF32_CFLAGS
XBS5_ILP32_OFF32_LDFLAGS _CS_XBS5_ILP32_OFF32_LDFLAGS
XBS5_ILP32_OFF32_LIBS _CS_XBS5_ILP32_OFF32_LIBS
XBS5_ILP32_OFF32_LINTFLAGS _CS_XBS5_ILP32_OFF32_LINTFLAGS
XBS5_ILP32_OFFBIG_CFLAGS _CS_XBS5_ILP32_OFFBIG_CFLAGS
XBS5_ILP32_OFFBIG_LDFLAGS _CS_XBS5_ILP32_OFFBIG_LDFLAGS
XBS5_ILP32_OFFBIG_LIBS _CS_XBS5_ILP32_OFFBIG_LIBS
XBS5_ILP32_OFFBIG_LINTFLAGS _CS_XBS5_ILPBIG_OFF32_LINTFLAGS
XBS5_LP64_OFF64_CFLAGS _CS_XBS5_LP64_OFF64_CFLAGS
XBS5_LP64_OFF64_LDFLAGS _CS_XBS5_LP64_OFF64_LDFLAGS
XBS5_LP64_OFF64_LIBS _CS_XBS5_LP64_OFF64_LIBS
XBS5_LP64_OFF64_LINTFLAGS _CS_XBS5_LP64_OFF64_LINTFLAGS
XBS5_LPBIG_OFFBIG_CFLAGS _CS_XBS5_LPBIG_OFFBIG_CFLAGS
XBS5_LPBIG_OFFBIG_LDFLAGS _CS_XBS5_LPBIG_OFFBIG_LDFLAGS
XBS5_LPBIG_OFFBIG_LIBS _CS_XBS5_LPBIG_OFFBIG_LIBS
XBS5_LPBIG_OFFBIG_LINTFLAGS _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS

环境变量

下列的环境变量影响 getconf的执行:

LANG 为取消设置或空的国际化变量值提供一个缺省值。如果 LANG 被取消设置或空,则将使用来自依赖实现的 | 缺省语言环境的相应值。如果任何一个国际化变量包含一个无效设置,实用程序将象未定义变量义变量来运行。
LC_CALL 如果设置为一个非空字符串值,则所有其它国际化变量值会被覆盖。
LC_CTYPE 确定将文本数据字节序列解释为字符的语言环境(例如,在参数中,单字节字符与多字节字符相对)。
LC_MESSAGES 确定用以影响写入标准错误的诊断消息格式和内容的语言环境。
NLSPATH 决定处理 LC_MESSAGES 消息目录的位置。

系统范围配置变量

SystemwideConfiguration 参数指定系统配置变量,其值在整个系统中都可用。有两种系统配置变量:

系统范围配置变量

系统范围配置变量包含系统各部分中的最小值。下列的列表定义系统范围配置变量,这些变量与 getconf 命令一起使用:

_CS_PATH PATH 环境变量值,用以查找命令。
ARG_MAX 用于一个 exec 子例程的参数的最大长度(以字节为单位),包含环境数据。
BC_BASE_MAX bc 命令使用的 obase 变量允许的最大值。
BC_DIM_MAX bc 命令所允许的一个数组中的最大元素数。
BC_SCALE_MAX bc 命令使用的 scale 变量允许的最大值。
BC_STRING_MAX bc 命令可接受的字符串常量的最大长度。
CHARCLASS_NAME_MAX 字符类名中的最大字节数。
CHAR_BIT 类型 character 的位数。
CHAR_MAX 类型 character 的最大值。
CHAR_MIN 类型 character 的最小值。
CHILD_MAX 每个真实用户标识同时打开进程的最大数量。
CLK_TCK 由 time 子例程返回的每秒钟时钟计数。
COLL_WEIGHTS_MAX 配给在一个语言环境定义文件的 LC_COLLATE 语言环境节中条目的最大权重。
CS_PATH PATH 环境变量值,用以查找命令。
EXPR_NEST_MAX 圆括号内可嵌套的最大表达式数,用于 expr 命令。
INT_MAX 类型的最大值,类型为 int。
INT_MIN 类型的最小值,类型为 int。
LINE_MAX 当实用程序被描述成为处理文本文件时,命令输入行(标准输入或者是其它文件)的最大长度(以字节为单位)。长度包含换行字符的空间。
LONG_BIT 类型中的位数,类型为 long int。
LONG_MAX 类型的最大值,类型为 long int。
LONG_MIN 类型的最小值,类型为 long int。
MB_LEN_MAX 在所有支持的语言环境中一个字符的最大字节数。
NGROUPS_MAX 每个进程中同时补充的最大组标识数。
NL_ARGMAX 在 printf 和 scanf 子例程调用中的数字最大值。
NL_LANGMAX 在一个 LANG 名中最大字节数。
NL_MSGMAX 最大消息数。
NL_NMAX 一个从 N 到 1 整序映射中最大字节数。
NL_SETMAX 最大设置数。
NL_TEXTMAX 一个消息字符串中最大字节数。
NZERO 缺省进程优先级。
OPEN_MAX 在进程中可同时打开的最大文件数。
PATH 用以查找命令的以冒号相隔的路径前缀的序列。
RE_DUP_MAX 当使用间隔符号参数时允许正则表达式重复出现次数的最大值,正如 ed 命令使用的 m 和 n 参数。
SCHAR_MAX 类型的最大值,类型为 signed char。
SCHAR_MIN 类型的最小值,类型为 signed char。
SHRT_MAX 类型的最大值,类型为 short。
SHRT_MIN 类型的最小值,类型为 short。
SSIZE_MAX 一个类型为 ssize_t 的对象的最大值。
STREAM_MAX 一个进程可同时打开的流数。
TMP_MAX 由 tmpnam 子例程生成的唯一路径名的最小数量。一个应用程序可靠调用 tmpnam 子例程的最多次数。
TZNAME_MAX 一个时区名支持的最大字节数(非 TZ 环境变量的长度)。
UCHAR_MAX 类型的最大值,类型为 unsigned char。
UINT_MAX 类型的最大值,类型为 unsigned int。
ULONG_MAX 类型的最大值,类型为 unsigned long int。
USHRT_MAX 类型的最大值,类型为 unsigned short int。
WORD_BIT 字或类型 int 中的位数。
KERNEL_BITMODE 内核的位方式,32 位或 64 位.
REAL_MEMORY 真实内存大小。
HARDWARE_BITMODE 计算机硬件的位方式,32 位或 64 位。
MP_CAPABLE 计算机微处理器容量。

系统标准配置变量

系统标准配置变量包含由一个特殊系统标准所要求的最小值。_POSIX_、POSIX2_ 和 _XOPEN_ 前缀显示变量包含分别由 POSIX 1003.1、POSIX 1003.2 和 X/Open 系统标准要求的系统特性最小值。系统标准是系统满足的用来支持特定系统标准的全系统最小值。实际配置值可能超出这些标准。用于getconf 命令的这些系统标准配置变量的定义如下:

_POSIX_ARG_MAX 用于 exec 子例程的参数的最大长度(以字节为长度),包含环境数据。
_POSIX_CHILD_MAX 每个真实用户标识同时打开进程的最大数量。
_POSIX_JOB_CONTROL 如果系统支持作业控制,则值为 1。
_POSIX_LINK_MAX 到单个文件的最大链接数。
_POSIX_MAX_CANON 在终端规范输入队列中的最大字节数。
_POSIX_MAX_INPUT 在终端输入队列中允许的最大字节数。
_POSIX_NAME_MAX 文件名中的最大字节数(不包含终止空字符)。
_POSIX_NGROUPS_MAX 每个进程中同时补充的最大组标识数。
_POSIX_OPEN_MAX 在进程中可同时打开的最大文件数。
_POSIX_PATH_MAX 路径名中的最大字节数。
_POSIX_PIPE_BUF 写入管道时保证成为原子的最大字节数。
_POSIX_SAVED_IDS 值为1。每个进程具有保存的 set-user-ID 和保存的 set-group-ID。
_POSIX_SSIZE_MAX 可存进一个类型为 ssize_t 对象的最大值。
_POSIX_STREAM_MAX 一个进程可同时打开的流数。
_POSIX_TZNAME_MAX 一个时区名支持的最大字节数(非 TZ 环境变量的长度)。
_POSIX_VERSION 操作系统遵守的 POSIX 1 标准(C 语言绑定)的版本。
_XOPEN_CRYPT 如果系统支持 X/Open 加密功能组则值为 1。
_XOPEN_ENH_I18N 如果系统支持 X/Open 增强国际化功能组则值为 1。
_XOPEN_SHM 如果系统支持 X/Open 共享内存功能组则值为 1。
_XOPEN_VERSION 操作系统所遵守的 X/Open 可移植性指南的版本。
_XOPEN_XCU_VERSION 操作系统所遵守的 X/Open 命令和实用程序规范的版本。
_XOPEN_XPG2 如果系统支持 1987 年 1 月卷 2 的 X/Open 可移植性指南,XVS 系统调用和库,则值为 1,否则为未定义。
_XOPEN_XPG3 如果系统支持 1992 年 2 月 的 X/Open 规范,系统接口和头第三版,则缺省值为 1,否则为未定义。
_XOPEN_XPG4 如果系统支持 1992 年 7 月 的 X/Open CAE 规范,系统接口和头第 4 版,则值为 1,否则为未定义。
POSIX2_BC_BASE_MAX 允许的最大值,用于 obase 变量并使用 bc 命令。
POSIX2_BC_DIM_MAX bc 命令允许数组中的最大元素数。
POSIX2_BC_SCALE_MAX 允许的最大值,用于 scale 变量,执行 bc 命令。
POSIX2_BC_STRING_MAX 可被 bc 命令接受的字符串常量的最大长度。
POSIX2_CHAR_TERM 系统支持至少一个终端类型则值为 1;否则值为 -1。
POSIX2_COLL_WEIGHTS_MAX 配给一个条目的最大权重数目,条目在一个语言环境定义文件中的 LC_COLLATE 语言环境变量中。
POSIX2_C_BIND 如果系统支持 POSIX 2 中的 C 语言绑定选项,则值为 1;否则,值为-1。
POSIX2_C_DEV 如果系统支持 POSIX 2 中的 C 语言开发实用程序则值为 1;否则,值为 -1。
POSIX2_C_VERSION 操作系统所遵守的 POSIX 2 标准(C 语言绑定)的版本。
POSIX2_EXPR_NEST_MAX 圆括号内可嵌套的最大表达式数,用于 expr 命令。
POSIX2_FORT_DEV 如果系统支持 POSIX 2 中的 FORTRAN 开发实用程序选项则值为 1;否则,值为 -1。
POSIX2_FORT_RUN 如果系统支持 POSIX 2 中的 FORTRAN 运行时实用程序选项则值为 1;否则,值为 -1。
POSIX2_LINE_MAX 当命令被描述成处理文本文件时,一个命令输入行(标准输入或其他文件)的最大字节长度。长度包含换行字符空间。
POSIX2_LOCALEDEF 如果系统支持由 localedef 命令创建语言环境,则值为 1;否则值未定义。
POSIX2_RE_DUP_MAX 当使用间隔计数参数时正则表达式所允许重复出现的最大值,例如带 m 和 n 参数使用 ed 命令。
POSIX2_SW_DEV 系统支持软件开发实用程序选项则值为 1;否则,值为 -1。
POSIX2_UPE 如果系统支持 POSIX 2 中用户可移植实用程序选项,则值为 1;否则,值为 -1。
POSIX2_VERSION 系统支持的 POSIX 2 标准的最新版本的批准日期。这个日期是一个六位数字,前四位数字表示年份后两位数字表示月份。POSIX 2 标准的不同版本由 IEEE 标准委员会定期批准,批准日期用于区分不同版本。

系统路径配置变量

PathConfiguration 参数指定了系统路径配置变量,该变量值包含在系统中的路径和路径结构信息。下列的列表定义了这些变量:

_POSIX_CHOWN_RESTRICTED chown() 子例程以适当的特权限制在进程,并且将文件的组标识只更改为进程的有效组标识或辅助组标识之一。如果 PathName 参数引用目录,其返回值应用于除在目录中已存在的或可被创建的目录外的所有文件。
_POSIX_NO_TRUNC 路径名长于变量 NAME_MAX 指定的限定值就会产生错误。如果 PathName 参数引用目录,其返回值应用于目录中的文件名。
_POSIX_VDISABLE 终端特殊字符,定义在 termios.h 文件中,可使用这一字符值禁用。
LINK_MAX 链接一个文件的最大链接数。如果 PathName 参数引用目录,则返回值应用于该目录。
MAX_CANON 在终端规范输入行中的最大字节数。
MAX_INPUT 在终端输入队列有可用空间的最大字节数。
NAME_MAX 文件名中的最大字节数(不包含终止空字符)。如果 PathName 参数引用目录,返回值应用于目录内的文件名。
PATH_MAX 路径名中的最大字节数,包含终止空字符。如果 PathName 参数引用目录,返回值为当指定目录是工作目录时的相对路径名的最大长度。
PIPE_BUF 当写入管道时保证成为原子的最大字节数。如果这个 PathName 参数指向先进先出或是管道,其返回值应用于引用对象。如果 PathName 参数引用目录,返回值应用于任何已存在的或可在目录内创建的先进先出。
DISK_PARTITION 磁盘的物理分区大小。

注:
对于 DISK_PARTITION 路径配置变量,这个 PathName 参数必须指定为之查询信息的磁盘的完整路径。
DISK_SIZE 磁盘大小以兆字节为单位。

注:
对于 DISK_SIZE 路径配置变量,这个 PathName 参数必须指定为之查询信息的磁盘的完整路径。

设备变量

DeviceVariable 参数显示了这个 DeviceName 参数是一个设备路径,例如 /dev/hdisk0。给定一个磁盘的路径,则这个 getconf 命令显示这个磁盘的设备名或位置。

DISK_DEVNAME 设备名或设备位置。

退出状态

此命令返回下列出口值:

0 这个指定变量是有效的并且其当前状态的信息已被成功写入。
>0 发生错误。
  1. 显示变量 ARG_MAX 的值,请输入:

    getconf ARG_MAX
  2. 显示所有系统配值变量值,输入:
     getconf -a
  3. 显示变量 NAME_MAX 的值,用于 /usr 目录,请输入:
    getconf NAME_MAX /usr
  4. 下列 shell 命令显示怎样处理未指定结果:
    if value=$(getconf PATH_MAX /usr)
    then if [ "$value" = "undefined" ]
    then
    echo
    The value of PATH_MAX in /usr is undefined.
    else The value of PATH_MAX in /usr is $value.
    fi
    else
    echo
    Error in the getconf command.
    fi

示例

  1. 显示变量 ARG_MAX 的值,请输入:

    getconf ARG_MAX
  2. 显示变量 NAME_MAX 的值,用于 /usr 目录,请输入:
    getconf NAME_MAX /usr
  3. 下列 shell 命令显示怎样处理未指定结果:
    if value=$(getconf PATH_MAX /usr)
    then if [ "$value" = "undefined" ]
    then
    echo
    The value of PATH_MAX in /usr is undefined.
    else
    echo
    The value of PATH_MAX in /usr is $value.
    fi
    else
    echo Error in the getconf command.
    fi
  4. 如果命令:
    getconf _XBS5_ILP32_OFF32 

    没有写入 -1\n 或 undefined\n 到标准输出,那么表单命令:

    getconf -v XBS5_ILP32_OFF32 ... 

    将确定相应于 XBS5_ILP32_OFF32 编译环境的配置变量值。编译环境指定于 c89,扩展描述。

  5. 如果命令:
    getconf _XBS5_ILP32_OFFBIG 

    没有写入 -1\n 或 undefined\n 到标准输出,那么表单命令:

    getconf -v XBS5_ILP32_OFFBIG ... 

    将确定相应于 XBS5_ILP32_OFFBIG 编译环境的配置变量值,编译环境值指定于 c89,扩展描述。

  6. 如果命令:
    getconf _XBS5_LP64_OFF64 

    没有写入 -1\n 或 undefined\n 到标准输出,那么表单命令:

    getconf -v XBS5_LP64_OFF64 ... 

    将确定相应于 XBS5_LP64_OFF64 编译环境的配置变量值,编译环境值指定于 c89,扩展描述。

  7. 如果命令:
    getconf _XBS5_LPBIG_OFFBIG 

    没有写入 -1\n 或 undefined\n 到标准输出,那么如下形式的命令:

    getconf -v _XBS5_LPBIG_OFFBIG 

    将确定相应于在 c89,扩展描述中指定的 XBS5_LPBIG_OFFBIG 编译环境的配值变量值。

  8. 确定磁盘 hdisk0 大小,若是 root 用户,则输入下列:
    getconf DISK_SIZE /dev/hdisk0
  9. 确定实际内存大小,输入下列:
    getconf REAL_MEMORY
  10. 确定是否机器硬件是 32 位或 64 位,则输入下列:
    getconf HARDWARE_BITMODE
  11. 确定是否内核是 32 位或 64 位,则输入下列:
    getconf KERNEL_BITMODE
  12. 确定磁盘 hdisk0 的设备名或位置,则输入下列:
    getconf DEVICE_NAME /dev/hdisk0

文件

/usr/bin/getconf 包含一个 getconf 命令。
/usr/include/limits.h 定义系统配置变量。
/usr/include/unistd.h 定义系统配置变量。

查看os系统数据块的大小

[oracle@skate-test ~]$ getconf PAGESIZE
4096

参考

http://blog.chinaunix.net/uid-23105261-id-109513.html
http://blog.chinaunix.net/uid-23105261-id-109513.html
http://blog.163.com/drachen@126/blog/static/162607494201271435333906/

getconf 命令的更多相关文章

  1. 灵活使用getconf命令来获取系统信息

    http://blog.chinaunix.net/uid-23105261-id-109513.html 灵活使用getconf命令来获取系统信息 我们时常需要查询系统相关的信息,比如页面大小,整数 ...

  2. getconf命令【一天一个命令】

    我们时常需要查询系统相关的信息,比如页面大小,整数大小之类,如果编写程序去计算会比较繁琐,这里有一个很有用的命令,可以用来获取系统相关信息.它就是getconf.   $ getconf PAGE_S ...

  3. Linux命令——getconf

    转自:灵活使用getconf命令来获取系统信息 简介 getconf本身是个ELF可执行文件,用于获取系统信息 用法 getconf -a可以获取全部系统信息 对于这个命令,记住几个常用的信息获取方法 ...

  4. 运维工程师必会的109个Linux命令

    运维工程师必会的109个Linux命令 版本1.0 崔存新 更新于2009-12-26 目录 1 文件管理 6 1.1 basename 6 1.2 cat 6 1.3 cd 7 1.4 chgrp ...

  5. 查看Linux系统架构类型的5条常用命令

    导读 很多时候我们都需要查看当前 Linux 系统是 32 位还是 64 位系统架构类型,本文中我将向大家推荐 5 条常用命令.无论你使用的是桌面版或是只装了文本界面的 Linux 环境,以下命令几乎 ...

  6. getconf

    用途 将系统配置变量值写入标准输出. 语法 getconf [ -v specification ] [ SystemwideConfiguration | PathConfiguration Pat ...

  7. 【Linux】linux命令大全

    [注意]:命令[compgen -b]可以列出所有当前系统支持的命令. 109个Linux命令 目录 1       文件管理... 5 1.1          basename. 5 1.2    ...

  8. linux学习(1):linux命令大全

    Linux命令 目录 1       文件管理... 5 1.1          basename. 5 1.2          cat 5 1.3          cd. 5 1.4      ...

  9. Linux基础命令汇总109条

    1       文件管理 1.1     basename 1.1.1     功能说明 从文件名中去掉路径和扩展名 例:basename include/stdio.h .h Output &quo ...

随机推荐

  1. 2. MySQL

    安装: apt-get install mysql-server   配置: mysql_install_db mysql_secure_installation   另有两处需要修改 [mysqld ...

  2. nginx支持flv MP4 扩展nginx_mod_h264_streaming,nginx-rtmp-module-master,yamdi

    ./configure \ --prefix=/usr/local/nginx \ --sbin-path=/usr/local/nginx/sbin/nginx \ --conf-path=/usr ...

  3. ORA-01791: 不是 SELECTed 表达式

    Oracle 9i数据库,执行下面语句出现错误“ORA-01791: 不是 SELECTed 表达式”:select distinct t.name from auth_employee t orde ...

  4. 每天学点GDB 15

    本节重点描述两个gdb集成测试环境 有没有办法在一边调试的时候,一边显示对应的源码呢?有没有一种工具能够将gdb集成到ide中呢,本文就试图回答这些问题. emacs gdb 在linux的世界里,e ...

  5. spring mvc和spring配置扫描包问题

    spring mvc和spring俩配置文件,其中都要配置扫描包. <context:component-scan base-package="com.controller" ...

  6. Yii源码阅读笔记(二)

    接下来阅读BaseYii.php vendor/yiisoft/yii2/BaseYii.php—— namespace yii; use yii\base\InvalidConfigExceptio ...

  7. FloodLight使用感受

    一个使用java语言编写的基于Openflow协议的SDN控制器. 基本架构同webserver一样,有一个维护交换机连接信息的底层模块,当有交换机同控制器连接时,floodlight会将此连接保存到 ...

  8. PIVOT 用于将列值旋转为列名

    PIVOT 用于将列值旋转为列名(即行转列),在 SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT 的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )A ...

  9. 【nodejs】使用Node.js实现REST Client调用REST API

    最近在产品中开发基于REST的API接口,结合自己最近对Node.js的研究,想基于它开发一个REST Client做测试之用. 通过初步研究,Node.js开发HTTP Client还是挺方便的. ...

  10. There is no tracking information for the current branch

    There is no tracking information for the current branch. Please specify which branch you want to mer ...