ulimit [ -HSa ] [ { -bcdfiklmnpqrsTtvwx | -N resource } [ limit ] ... ]
       Set  or  display  resource  limits  of  the  shell and the processes
       started by the shell.  The value of limit can be  a  number  in  the
       unit specified below or one of the values `unlimited', which removes
       the  limit  on the resource, or `hard', which uses the current value
       of the hard limit on the resource.

       By default, only soft limits are manipulated.  If  the  -H  flag  is
       given  use  hard  limits  instead of soft limits.  If the -S flag is
       given together with the -H flag set both hard and soft limits.

       If no options are used, the file size limit (-f) is assumed.

       If limit is omitted the current value of the specified resources are
       printed.  When more than one resource value is  printed,  the  limit
       name and unit is printed before each value.

       When  looping  over multiple resources, the shell will abort immedi-
       ately if it detects a badly formed argument.  However, if  it  fails
       to  set a limit for some other reason it will continue trying to set
       the remaining limits.

       Not all the following resources are supported on all systems.   Run-
       ning ulimit -a will show which are supported.

       -a     List all of the current resource limits.
       -b     Socket buffer size in bytes (N.B. not kilobytes)
       -c     512-byte blocks on the size of core dumps.
       -d     Kilobytes on the size of the data segment.
       -e     Maximum nice value.
       -f     512-byte blocks on the size of files written.
       -i     The number of pending signals.
       -k     The number of kqueues allocated.
       -l     Kilobytes on the size of locked-in memory.
       -m     Kilobytes on the size of physical memory.
       -n     Open file descriptors.
       -o     Maximum number of POSIX thread library objects.
       -p     The number of pseudo-terminals.
       -q     Bytes in POSIX message queues.
       -r     Maximum  real  time  priority.  On some systems where this is
              not available, such as NetBSD, this has the same effect as -T
              for compatibility with sh.
       -s     Kilobytes on the size of the stack.
       -T     The number of simultaneous threads available to the user.
       -t     CPU seconds to be used.
       -u     The number of processes available to the user.
       -v     Kilobytes on the size of virtual  memory.   On  some  systems
              this refers to the limit called `address space'.
       -w     Kilobytes on the size of swapped out memory.
       -x     The number of locks on files.
       -y     Maximum size of buffers for pipes/fifos.

       A  resource  may  also  be  specified by integer in the form `-N re-
       source', where resource corresponds to the integer defined  for  the
       resource  by the operating system.  This may be used to set the lim-
       its for resources known to the shell which do not correspond to  op-
       tion  letters.  Such limits will be shown by number in the output of
       `ulimit -a'.

       The number may alternatively be out of the range of limits  compiled
       into  the shell.  The shell will try to read or write the limit any-
       way, and will report an error if this fails.
