常见linux命令释义(第七天)——ulimit 与变量内容的删除替代与替换。
linux是一个多用户多任务的系统,不同于windows的单人多任务操作系统。再linux上,在同一个时间点上,可以有多个人同时执行多个任务。
那么假若有10个用户,同时打开了100个100M的文件。你觉得你的linux能够吃的消吗。你能任由其他的用户肆意的占用你的linux运行内存吗?如果你能忍受,现在你的机子估计已经宕机了。接下来我们来看看如何来限制用户的某些系统资源,包括可以打开的文件数量、可以使用的CPU时间,可以使用的内存总数量,如何设置呢?
试试ulimit吧。这ulimit命令也十分好记忆。u代表user limit是限制的意思。组合起来就是用户限制。
ulimit -a 可以列出目前用户所有限制的数据值。如果数据值是0的话,就代表没有任何限制,可以随意使用。
那么这个a 代表的事什么意思。可以先man ulimit看一下。
这个a其实就代表 array的意思。意思是用一个数组将用户所有拥有的权限给显示出来。当然我认为如果能理解为access(权限)的话会更好记一点。大家各取自己记忆的方法就好。总之能够记住,会用就好。
我们来看一下。
比较一下,就会发现root用户的max user processes 与jack就不太一样。
我们可以设置用户可以创建文件的大小。ulimit -f num
如果普通用户使用ulimit -f 设置值只能往下调低,不能往上调高。
如果想要复原ulimit的设置值,可以注销后再登陆。exit出去就行了。更加的详细的内容我们后面再讲。
变量内容的删除、替代与替换
变量的内容可以删除、替代、替换基本上和PHP一样。来吧,我们来看下linux下如何进行这些步骤的吧。
鸟哥使用路径来演示这些内容,以后的生活中大多数也是这种操作,都是在路径上做改动。那我们来看看图吧,还是看图比较好。
下面我们再来看看另一种删除:
下面我们来看下上面一些符号的意思:
# 一个#号表示从从最前面开始删除,且删除最短的部分。(不开启贪婪模式)贪婪模式的概念是我自己理解,不知道对不对。
## 删除能够匹配到最长的部分。开启贪婪模式。
* 匹配任意字符。
我觉得用贪婪模式来描述这个可能更好更快的理解这个东西。
有过编程经历的可能知道正则表达式里面就有这个概念。贪婪模式和非贪婪模式。还是用通俗的话解释一下吧。不开启贪婪模式,只要找到第一个匹配结果,就结束匹配。开启贪婪模式,直到找到最后一个匹配结果,才结束匹配。
前面介绍的是从前往后匹配,linux竟然给出从后向前匹配的栗子,本着学习,我们还是来看一下。继续看图。
这个从后向前匹配删除前面介绍的从前删除是差不多的。原理是一样的,只是匹配符换了一样,由#换成%号了。
时间久了,可能会忘了,哪个是从前匹配的,那个是从后匹配的。这个不用记的。忘记的时候看看键盘,#号在%号的左边。
不知道有没有姑娘学习linux的。我上学的时候我们的老师龙哥就说了,女孩子不要学linux了。学linux对女孩子是一种摧残。我觉得没有那么夸张,linux挺好用的,当手指在键盘上跳着舞,打出一串串命令。会有一瞬间的错觉,这简直就是弹钢琴。无声的舞,无声的音乐、只能属于一个人的浪漫幻想。
不扯淡了,上面只是一个单身狗发的牢骚话。继续我们的学习,替换变量中内容。
替换的变量的格式:${TMP/原变量里需要替换的部分/你提供替换的内容}
一条斜线是默认不开启贪婪模式的,只匹配找到的第一个要替换的内容,然后停止匹配。
我们来看看全部替换。全部替换是两条//(斜线) 来吧,看图爽。
上面已经练习了变量的删除与变量的替换。
但是我们在实际的应用过程中,经常需要判断某些变量死否存在,如果变量存在就使用既有的设置,如果变量不存在就给予一个常用的设置。PHP里也经常这么干,特别是在载入首页的时候,如果get中有值,就按照get中的条件去载入首页,如果get中没有值,就载入预先设置好的默认值。继续看图。
原有的变量 - 如果为空需要赋给的值。关键是中间的符号 -
如果我们的myName=""一个空的字符串,那么用echo ${myName-rover} 还会输出空。这时候,我们要区分null与""字符串。用:(:号区分)区分。还是看图说话:
今天这些内容,就先看到这些吧。其实还有许多的用法,只是上面的更常用而已。
我如果有写的不对的地方,还请大家能够指出,谢谢了。