Answers:
ulimit命令是一个内置命令,它使用man描述的C函数:它自己的帮助包含在Bash手册页中,可通过访问man bash
。
您可以使用列出所有可用的选项ulimit -h
,并查看它们的相应含义ulimit -a
,根据系统的不同,列出所有可用的限制类型及其当前值:
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 20
file size (blocks, -f) unlimited
pending signals (-i) 16382
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) unlimited
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
ulimit
必须是内置的Shell,因为它建立的限制适用于Shell本身以及启动的程序。唯一可移植的参数是-f
(文件大小限制,以512字节为单位)。大多数外壳程序都有更多选择,您需要查看外壳程序文档以确切了解它们是什么。对于bash和ksh之类的可移植外壳,即使外壳识别出相应的选项,某些unix变体也可能不支持限制。
我见过的每个shell都支持的选项:
-H
:与其他选项结合使用只能设置或显示硬限制。-S
:与其他选项结合使用只能设置或显示软限制。-c
:最大核心文件大小(512字节块)-d
:最大堆(数据段)大小(kB)-f
:最大文件大小(512字节块)-n
:文件描述符的最大数量-s
:最大堆栈大小(kB)-t
:最大CPU时间(秒)其他一些非常常见的选择:
-a
:显示所有限制。-m
:最大物理内存大小(kB)-v
:最大虚拟内存大小(kB)
ulimit -h
并非所有地方都支持该功能-至少在Bash 4.2.25中不支持。