如何在您的Linux系统上挖掘配置细节与getconf

在您的Linux系统上查找配置细节并不难。困难之处在于,你需要思考有多少可用的方法,以及它们能告诉你什么。

浮动3d抽象数字
思想库

Linux系统可以报告比您有可能知道的更多配置细节。诀窍是使用的getconf指挥和知道你在寻找什么。不过小心。您可能会发现有这么多的设置可用,这让您有点不知所措。

首先,让我们看看一些您可能希望看到的设置,以回答一些重要的问题。

对于初学者,文件名可以多长时间?

您可以通过查看NAME_MAX长的环境。

$ getconf name_max x 255

上述命令结束时的“x”似乎有必要避免错误(不确定为什么)。您还可以使用下面显示的命令来查看该值。这——一个原因getconf显示所有设置和grep然后,命令选择以“name_max”开头的任何设置。

$ getconf -a |grep ^ name_max name_max 255

您的系统是32-或64位系统吗?

$ getconf long_bit 64

用户可以一次运行多少进程?

$ getconf -a |grep child child_max 23581 _posix_child_max 23581

这是每个用户ID允许的最大同时流程数。该进程在同时可以同时使用CPU,但这是可以处于活动状态的数字。

用户名可以多长时间?

$ getconf login_name_max 256

注意检查一下吗?如果您创建了如下所示的非常长的用户名,则不会遇到任何问题。

$ ls /home bugfarm gijoe lost+found nemo snakey bell gino monsterfromthedeepbluesea newuser sysimage dorothy jadep myacct shark tadpole eel Lola myself SHS . $ ls /home bugfarm gijoe lost+found nemo snakey bell gino monsterfromthedeepbluesea newuser sysimage dorothy jadep myacct shark tadpole eel Lola myself SHS

我无法想象任何愿意在256个字符附近键入的人来登录。仍然,如果您需要它们,则可以很长时间脱节。

列出所有设置

如果要列出所有可用的配置详细信息,请准备好。它包括320个设置。

$ getconf -a |WC -L 320.

下面是列表的开始部分,简要解释了一些设置:

$ getconf -a | head -20 LINK_MAX 127 <==最大的名字一个文件可以有_POSIX_LINK_MAX 127 <==限制输入字符的数量MAX_CANON 255 <==最大的文本输入行时,输入编辑是
启用_posix_max_canon 255 <==文件名最大max_input 255 _posix_max_input 255 name_max 255 _posix_name_max 255 path_max 4096 <==整个文件名的长度的限制(如果有的话)
(包括path) _POSIX_PATH_MAX 4096 PIPE_BUF 4096 _POSIX_PIPE_BUF 4096 SOCK_MAXBUF _POSIX_ASYNC_IO _POSIX_CHOWN_RESTRICTED 1 _POSIX_NO_TRUNC 1 _POSIX_PRIO_IO _POSIX_SYNC_IO _POSIX_VDISABLE 0 ARG_MAX 2097152 <==新进程的最大参数长度

比较简单的方式开始getconf从列表中选择设置是否使用grep。以下是包含名称中包含“名称”的所有设置:

$ getconf -a |grep name name_max 255 _posix_name_max 255 logname_max 256 tty_name_max 32 tzname_max _posix_tzname_max chamlass_name_max 2048 host_name_max 64 login_name_max 256

一些可能与Linux用户最相关的设置是为各种东西定义的最大长度,比如文件名最大长度。考虑到这些设置,我不知道是否有人曾在回家的路上抱怨他不能创建一个名字超过255个字符的文件。如果你超过了这个限制,系统会告诉你吗?当然会。这是一个测试:

$ touch 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
901456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123455.
$ touch 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
9012345678901234567890123456789012345678901234567890123456789012345678901234567890123456联系:不能碰“1234567890123456789012345678901234567890123456789012345678901234567
8901234567890123456789012345678901234567890123456789012345678901234567890123456789012345
6789012345678901234567890123456789012345678901234567890123456789012345678901234567890123
4567890123456':文件名太长了<==哎呀!

一个额外的字符让我们在第二个字符中超过了限制触摸上面显示命令。

马克斯设置

要在其名称中列出“MAX”的所有设置,请运行这样的命令:

美元getconf——马克斯| | grep列LINK_MAX 127 _POSIX_NGROUPS_MAX 65536 _POSIX_LINK_MAX 127 _POSIX_OPEN_MAX 1024 MAX_CANON 255 _POSIX_SSIZE_MAX 32767 _POSIX_MAX_CANON 255 _POSIX_STREAM_MAX 16 MAX_INPUT 255 TIMER_MAX _POSIX_MAX_INPUT 255 _POSIX_TZNAME_MAX NAME_MAX长的255 _T_IOV_MAX _POSIX_NAME_MAX 255 BC_BASE_MAX 99 PATH_MAX 4096 BC_DIM_MAX 2048_posix_path_max 4096 bc_scale_max 99 sock_maxbuf bc_string_max 1000 arg_max 2097152 charclass_name_max 2048 atexit_max 2147483647 coll_weights_max 255 char_max 127 equiv_class_max child_max 23581 expr_nest_max 32 int_max 2147483647 line_max 2048 iov_max 1024 posix2_bc_base_max 99 logname_max 256 posix2_bc_dim_max 2048 mb_len_max 16Posix2_bc_scale_max 99 ngroups_max 65536 posix2_bc_string_max 1000 nl_argmax 4096 posix2_coll_weights_max 255 nl_langmax 2048 posix2_exp_nest_max 32 nl_msgmax 2147483647 _posix2_line_max 2048 nl_nmax 2147483647 posix2_line_max 2048 nl_setmax 2147483647 posix2_re_dup_max 32767 nl_textmax 2147483647 re_dup_max 32767 open_max 1024 symloop_maxPass_max 8192 stream_max 16 pthread_keys_max 1024 aio_listio_max pthread_thread_max aio_max schar_max 127 aio_prio_delta_max 20 shrt_max 32767 delaytimer_max 2147483647 ssize_max 32767 host_name_max 64 tty_name_max 32 login_name_max 256 tzname_max mq_open_max uchar_max 255 mq_prio_max 32768 uint_max 4294967295 rtsig_max 32 uio_maxiov 1024Sem_nsems_max ulong_max 18446744073709551615 sem_value_max 2147483647 ushrt_max 65535 sigqueue_max 23581 _posix_arg_max 2097152 posix_rec_max_xfer_size _posix_child_max 23581 symlink_max . sem_value_max 2147483647 ushrt_max 65535 sigqueue_max 23581 _posix_arg_max 2097152 posix_rec_max_xfer_size _posix_child_max 23581 symlink_max

靠近底部的那个非常大的底座,ULONG_MAX,是无符号长INT类型对象的最大值。

确定84个MAX设置实际上代表什么可能需要一些时间。其中一些在文件中描述,如limits.h.文件如下所示。

$ cat / susr/include/linux/limits.h / * spdx-license-identifier:gpl-2.0带linux-syscall-note * / #ifndef _linux_limits_h #define _linux_limits_h #define nr_open 1024 #define ngroups_max 65536 / *补充组ID可用* / #define arg_max 131072 / *#arces + Environ for exec()* / #define link_max 127 / * #links文件可能有* / #define max_canon 255 / *大小的规范输入队列* /#define max_input 255 / *大小的输入 - 前进缓冲区的大小* / #define name_max 255 / *#文件名中的文件名* / #define path_max 4096 / *#字符在路径名称中,包括nul * / #define pipe_buf 4096 /*在扩展属性名称* / #define XATTR_NAME_MAX 255 / *#字符中的原子字数* / #define XATTR_SIZE_MAX 65536 / *扩展属性值的大小(64K)* / #define XATTR_LIST_MAX 65536 / * SIZE扩展属性NameList(64K)* / #define RTSIG_MAX 32 #ENDIF

limits.h.文件是提供信息的,不能用于更改设置值。

总结

最有趣的事情之一getconf命令的输出显示大多数设置实际上是有多慷慨的,以及Linux系统上有多少件物限制。

加入网络世界社区有个足球雷竞技app脸谱网linkedin.对自己最关心的话题发表评论。
有关的:

版权所有©2021.Raybet2

了解IT领导者是如何建造网络统一的。参加CSO的网络安全和信托峰会 - 7 / 20-7 / 22