想象一个状况:我的 Linux 主机里面同时登陆了十个人,这十个人不知怎么搞的, 同时开启了 100 个文件,每个文件的大小约 10MBytes ,请问一下, 我的 Linux 主机的内存要有多大才够? 10*100*10 = 10000 MBytes = 10GBytes ... 老天爷,这样,系统不挂点才有鬼哩!为了要预防这个情况的发生,所以我们的 bash 是可以『限制用户的某些系统资源』的,包括可以开启的文件数量, 可以使用的 CPU 时间,可以使用的内存总量等等。如何配置?用 ulimit 吧!

还记得我们在第八章 Linux 磁盘文件系统里面提到过,单一 filesystem 能够支持的单一文件大小与 block 的大小有关。例如 block size 为 1024 byte 时,单一文件可达 16GB 的容量。但是,我们可以用 ulimit 来限制使用者可以创建的文件大小喔! 利用 ulimit -f 就可以来配置了!例如上面的范例二,要注意单位喔!单位是 Kbytes。 若改天你一直无法创建一个大容量的文件,记得瞧一瞧 ulimit 的信息喔!

 
  
  1. Tips: 
  2. 想要复原 ulimit 的配置最简单的方法就是注销再登陆,否则就是得要重新以 ulimit 配置才行! 不过,要注意的是,一般身份使用者如果以 ulimit 配置了 -f 的文件大小, 那么他『只能继续减小文件容量,不能添加文件容量喔!』另外,若想要管控使用者的 ulimit 限值, 可以参考第十四章的 pam 的介绍。 

本文转自:http://vbird.dic.ksu.edu.tw/linux_basic/0320bash_2.php#variable_ulimit