通配符和正则的使用,计划任务,清理临时文件,进程优先级设置

通配符的使用

通配符——一般用于shell

[ ]——1个字符,如:周[一二三四五]了,中括号里任意一个字符(周一了,周二了,...)也可以这样使用:
[a-z],[A-Z],[0-9],
[^0-9]——除了0-9的所有文件...,^是除了**的意思 ,
[!0-9]——同[^0-9]效果一样
{str1,str2,…}——匹配sr1或str2(或更多)其一字符串
[a\-z]——\是转义符,就是让\后面的一个字符仅仅是本身的意思,没有任何作用,如这就是a,-,z三个字符,而并非是a-z的所有字符。
?——代表一个字符,一个问号代表一个字符,???代表3个字符,不能匹配表示隐藏文件的 . ,如果需要匹配隐藏文件 则 .??? :

在这里插入图片描述
在这里插入图片描述

正则的使用

一般我们在使用yum匹配需要用到时,建议在前面加个\,这样能提高搜索到的结果成功率。
在这里插入图片描述
因为yum这个命令是bash的子进程,所以当你执行任何命令的时候都要先经过bash,所以命令中如果有通配符的话,首先在bash里先解析,当前面目录里不存在vsftp开头的文件,所以*没有解析出来任何东西时则到yum里去解析这个*,但因为当前目录里有vsftpxxx,然后到yum里去找vsftpxxx,肯定找不到,加上\以后,此时在bash里不会去解析*,经过bash的时候\就被用到了,则直接到yum源里找vsftp*开头的文件。
在这里插入图片描述
正则表达式:
在这里插入图片描述
正则表达式就是为了处理大量的文本|字符串而定义的一套规则和方法
正则表达式应用非常广泛,存在于各种语言中,php perl grep sed awk 支持。ls * 通配符
但现在学的是Linux中的正则表达式,最常应用正则表达式的命令是grep(egrep),sed,awk。
正则表达式和通配符有本质区别
正则表达式用来找:【文件】内容,文本,字符串。一般只有三剑客(awk.sed.egrep)支持
通配符用来找:文件名,普通命令都支持
正则表达式引擎: OPTIONS:
–color=auto:对匹配到的文本着色后高亮显示
-i:ingorecase,忽略字符的大小写
-o:仅显示匹配到的字符串本身
-V:–invert-match:显示不能被模式匹配到的行;
-E:支持使用扩展的正则表达式元字符;
-q:-quiet,–silent:静默模式,即不输出任何信息
-A #:after,后#行
-B #:before,前#行
-C #:context前后各#行
在这里插入图片描述

简单举几个例:
^:行的开头,如……^root,筛选行的开头是root的语句:
在这里插入图片描述

\b:以单词开始或结尾,'\btom'(以tom开始),'tom\b'(以tom结尾),'\<或\>效果等同\b' ,egrep '\b**\b' 。精确筛选,只筛选\b中的内容:
在这里插入图片描述
在这里插入图片描述
+:它前面的字符出现1次或多次,不能是0次
在这里插入图片描述
如:要在若干数据里筛选出网址:www\..+\.com:
在这里插入图片描述

计划任务

at计划任务

只能执行一次;
如果没有这个命令:yum -y install at
atq / at -l:查看所有定时任务
在这里插入图片描述
atrm 序号 / at -d序号:删除定时任务
在这里插入图片描述
at 2019-11-11 :在2019-11-11号执行自定义脚本- ctrl+d 提交
at 17:10 2019-11-11:在2019年11月11日 17点10分执行自定义脚本 - ctrl+d 提交
在这里插入图片描述
执行时可能会遇到如下报错:
在这里插入图片描述
这种情况是因为at服务没有启动:只需要把at服务启动即可:systemctl start atd
在这里插入图片描述

at now+*minutes  #*分钟后执行...
at now+*hours:# *小时候执行...
at 04:00 + 4days #4天后执行...
at 04:00 +4weeks #4周后执行...

如:1分钟后在root下创建test111111文件:
在这里插入图片描述
如果不想让某个用户添加定时任务,在root下编辑文件:vi /etc/at.deny ,把让不想让执行定时任务的用户名添加在里面即可,添加以后该用户如果创建定时任务则会提示报错:You do not have permission to use it.
如果想继续让该用户拥有新增定时任务则:在/etc/at.deny中把该用户删除即可。 也可以新建文件/etc/at.allow ,把该用户名添加到此目录亦可,因为allow优先级高于deny。

crontab计划任务

周期性的,可重复执行;
crontab -l:查看当前用户的计划任务
crontab -l -u 用户名:查看指定用户的计划用户
在这里插入图片描述
crontab -e:编辑当前计划任务
crontab -e -u 用户名:编辑指定用户的计划任务
crontab -r:删除计划任务
文件中格式如图:(注:可以同时存在多个定时计划)
在这里插入图片描述
crontab 计划任务存储位置:/var/spool/vron/root
crontab 按时间分类存放位置如图:
在这里插入图片描述
如果想写一个比较复杂计划认任务的时候,没必要太纠结如何表示,可以拆分成多个来写,如:每月最后一天执行/bin/aa.sh: (注:判断完是否闰年后,修改28的值编辑文件/var/spool/vron/root,在该文件中做替换)
在这里插入图片描述

清理临时文件

tmpwath也是清理文件的命令
tmpwatch -a 24 .: 当前目录中清除24小时以内没有访问过的文件
tmpwatch -a 10m .:当前目录中清楚10分钟以内没有访问过的文件
tmpwatch -a 10m . -f:-f 强制删除。
自动清理临时文件,这个服务的命令是:systemd-tmpfiles -create或-remove
systemd-tmpfiles要读取自己的配置文件才能知道要清理哪些临时文件,它需要读取的配置文件放在:
在这里插入图片描述
读取后缀为.conf的文件。
/usr/lib/tmpfiles.d装好rpm的时候,会自动产生的,系统自动维护,管理员不要动它。
/run/tmpfiles.d守护进程自己的管理,也不需要管理员来管理。
如果想要定义的话,则在/etc/tmpfiles.d里自定义即可。
/tmp里可能会产生太多的垃圾需要清除,另外/run这样的目录存在都是pid的信息,如果某个/run下的某个目录或者文件丢失了,可能导致某个服务无法启动。
自定义:/etc/tmpfiles.d目录中创建任意一个以.conf为后缀的文件以aa.conf为例:
在这里插入图片描述
systemd-tmpfiles --create:执行,如果/tmp里面没有aa,则自动创建。
systemd-tmpfiles --clean:自动读取3个配置文件,包括手动定义的文件,如果/tmp/aa存在,则把aa里面的所有内容清空。
systemd-tmpfiles --clean aa.conf:不读取所有文件,只读取aa.conf这一个文件;

进程优先级

数值越大 优先级越低:
在这里插入图片描述
如果让两个进程在同一个cpu上运行,有两种方法:
一:关闭其中的一个cpu(不建议关闭 会导致系统很卡)
二:配置cpu的亲和性:taskset -c 0(在第一颗cpu上运行),taskset -c 1(在第二颗cpu上运行):
在这里插入图片描述
ps / top -d 1 :查看当前运行状态

renice:修改已经存在的进程优先级
renice -n 优先级 pid:优先级越小,占用cpu越高 0默认,用cat开启2个后台进程后调整该进程的优先级示例:
在这里插入图片描述
在该界面按 r 键:
在这里插入图片描述
输入pid回车后输入优先级:
在这里插入图片描述
nice -n 优先级:直接定义优先级后执行某进程,如:
在这里插入图片描述
就是说 rnice和nice的区别就是,rnice调整的是 已经开启的进程优先级,而nice是直接在开启时变定义了优先级。

猜你喜欢

转载自blog.csdn.net/cuichongxin/article/details/105990592