通配符和正則的使用,計劃任務,清理臨時文件,進程優先級設置

通配符的使用

通配符——一般用於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是直接在開啓時變定義了優先級。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章