linux资源限制配置文件是/etc/security/limits.conf;限制用户进程的数量对于linux系统的稳定性非常重要。 limits.conf文件限制着用户可以使用的最大文件数,最大线程,最大内存等资源使用量。
[root@client ~]# vim /etc/security/limits.conf
#
#* soft core 0
#* hard rss 10000
#@student hard nproc 20
#@faculty soft nproc 20
#@faculty hard nproc 50
#ftp hard nproc 0
#@student - maxlogins 4
第一列表示用户和用户组(@开头)
第二列表示软限制还是硬限制。
hard和soft的区别: soft是一个警告值,而hard则是一个真正意义的阀值,超过就会报错,一般情况下都是设为同一个值。
第三列表示限制的资源类型。
core是内核文件,nfile是文件描述符,nproc是进程,一般情况下只限制文件描述符数和进程数就够了
第四列表示限制的最大值。
查看系统当前打开的文件描述符数量
[root@client ~]# cat /proc/sys/fs/file-nr
1280 0 95095
第一个数表示当前系统分配后已使用的文件描述符数,
第二个数表示分配后未使用的(内核2.6版本中这个值总是为0,这并不是一个错误,它意味着已经分配的文件描述符总会被使用),
第三个数等于最大值file-max。
查看某个进程打开的文件描述符数量
下载httpd:yum install httpd 启动:systemctl start httpd
yum install lsof -y
[root@client ~]# lsof -p 7919 |wc -l
123
(7919:ps -ef|grep httpd root 下一行的第一个数字)
标准输入:0
标准输出: 1
错误输出: 2
重定向:输入重定向 >
输出重定向 <
[root@client ~]# ll -T 2> file
[root@client ~]# ll -T 2>> file
[root@client ~]# ll > file
[root@client ~]# ll 1>> file
[root@client ~]# ll >>file 追加
[root@client ~]# cat < test.sh
#name=xuankui
echo $name
123
456
[root@client ~]# tar czvf etc.tar.gz /etc/ 1>file 2>error(标准输出错误输出都放在一个文件里)标准输出到文件 错误输出到屏幕(根据所给输出的1和2决定 所给的是哪个 哪个就输出到文件)
[root@client ~]# tar czvf etc.tar.gz /etc/ &>file(所有输出内容 都到该文件里去)
[root@client ~]# tar czvf etc.tar.gz /etc/ >file 2>&1(把错误输出重定向到标准输出。通过标准输出的通道打印到文件里)
[root@client ~]# ls;date >/dev/null 2>&1 (放入无底洞中)
[root@client ~]# dd if=/dev/zero of=/swapfile bs=1024 count=20(if 输入 of 输出 最后输出到swapfile )
[root@client ~]# dd </dev/zero>/file2 bs=1M count=10
(2)命令拼接
; 不存逻辑判断,即使前一个命令执行失败,后面的命令依然执行
[root@client ~]# ls -T;echo “123”
&& 存在逻辑判断,前一个命令执行成功,后一个命令才会执行
[root@client ~]# ls -T&&echo “123”
ls:选项需要一个参数 – T
Try ‘ls --help’ for more information.
[root@client ~]# ls -l&&echo “123”
[root@client ~]# echo “123” && ls -T
|| 存在逻辑判断,前一个命令执行不成功,后一个命令也会执行
[root@client ~]# ls -T || echo “123”
``: 解析shell命令
[root@client ~]# echo date
‘’: 强引用,所见即所得
“”: 弱引用,会解析变量
[root@client ~]# age=18
[root@client ~]# echo $age
18
[root@client ~]# class=‘xuankui $age’
[root@client ~]# echo $class
xuankui $age
[root@client ~]# echo $class
xuankui $age
[root@client ~]# class=“xuankui $age”
[root@client ~]# echo $class
xuankui 18
[root@client ~]# echo “现在时间是:date
”
现在时间是2020年 07月 08日 星期三 17:00:27 CST
[root@client ~]#
[root@client ~]#
[root@client ~]# echo ‘现在时间是date
’
现在时间是date
[root@client ~]# echo “现在时间是 date”
现在时间是 date
“echo 出入时对于转义不受强引弱引的限制,与echo的“-e”参数有关”
[root@client ~]# echo '你好!\n 现在时间是: date
’
你好!\n 现在时间是: date
[root@client ~]# echo "你好!\n 现在时间是: date
"
你好!\n 现在时间是: 2020年 07月 08日 星期三 17:03:06 CST
[root@client ~]# echo -e "你好!\n 现在时间是: date
"
你好!
现在时间是: 2020年 07月 08日 星期三 17:03:37 CST
[root@client ~]# echo -e '你好!\n 现在时间是: date
’
你好!
现在时间是: date
{}
[root@client ~]# cp ip.txt ip.txt.bak
[root@client ~]# cp ip.txt{,.baitao}
[root@client ~]# cp ip{.txt,.hehe}
- : 匹配任意长度的任意字符
[root@client bak]# ll |grep “[0-9]心号.txt”(心号之前表示数字 必须加数字才能过滤)
[root@client bak]# ll |grep “.*.txt”(过滤txt文件)
[root@client bak]# ll *.txt #匹配任意多个字符
[root@client bak]# ll ?.txt #匹配单个字符
[root@client bak]# ll [a-z,A-Z0-9_&%$.?].txt
[root@client bak]# ll [^_].txt
-
字母
小写字母:[a-z]或[[:lower:]]
非小写字母:[^ a-z]或[^ [:lower:] ]
大写字母:[A-Z]或[[:upper:]]
非大写字母:[^ A-Z]或[^ [:upper:] ]
所有字母:[[:alpha:]]
非字母:[^ [:alpha:] ] -
数字
一位数字:[0-9]
两位数字:[0-9][0-9]
三位、四位……以此类推
所有数字:[[:digit:]]
非数字:[^ 0-9]或[^ [:digit:] ] -
空白字符
一个空白字符:[[:space:]]
非空白字符:[^ [:space:] ] -
标点符号
所有标点符号:[[:punct:]]
非标点符号:[^ [:punct:] ]
举例:
1:显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现一位任意字符的文件或目录;
2:显示/etc目录下,以任意一位数字开头,且以非数字结尾的文件或目录;
3:显示/etc目录下,以非字母开头,后面跟一个字母及其它任意长度任意字符的文件或目录;
4:复制/etc目录下,所有以m开头,以非数字结尾的文件或目录至/tmp/magedu.com目录;
5:复制/usr/share/man目录下,所有以man开头,后跟一位数数字结尾的文件或目录至/tmp/man/目录下;
在这里插入图片描述
6:复制/etc目录下,所有以.conf结尾,且以m,n,r,p开头的文件或目录至/tmp/conf.d/目录下;
7.支持热键
(1)CTRL +l #清屏
(2)CTRL +c #终止当前进程
(3)CTRL +A #光标调到命令开头
(4)CTRL +E #光标调到命令结尾
(5)CTRL +U #删除光标所在位置之前的内容
(6)CTRL +K #删除光标所在位置之后的内容