sort命令和crontab命令
阿新 • • 發佈:2018-11-22
一、sort,以行為單位對多行資料進行排序
常用的引數及作用
引數 | 作用 |
---|---|
-n | 數值排序 |
-r | 降序 |
-t | 欄位分隔符 |
-k | 以哪個欄位為關鍵字進行排序 |
-u | 排序後相同的行只顯示一次 |
-f | 排序時忽略字元大小寫 |
sort練習:
(sort原理:sort將檔案的每一行作為一個單位,相互比較,比較原則是從首字元向後,依次按ASCII碼值進行比較,最後將他們按升序輸出。)
1、建立一個檔案b1,在檔案b1裡面輸入任意數值(打亂輸入),利用引數-u來進行升序排序。
2、對剛才建立的檔案b1進行降序排序(-r)
直接-r之後的排序
注意:在圖中8比67小但排在了前面,出現這種情況是由於排序程式將這些數字按字元來排序了,排序程式會先比較8和6,顯然6小,所以就將8放在67前面。這也是sort的一貫作風。
所以要改變這種現狀,就要使用-n選項,來告訴sort,“要以數值來排序”!
3、-u 在排序後輸出時去掉重複行
eg:建立一個檔案b2 在裡面輸入內容,檢視並輸出
4、-f 忽略大小寫
5、-k 和 -t 的用法
eg:建立一個檔案b3,在b3裡面輸入如下內容
按照第二列的數值來進行排序
6、由於sort預設是把結果輸出到標準輸出,需要用重定向才能將結果寫入檔案另一個檔案中。(eg:sort -f b2 > b4)
但是要想將排序後的結果輸入到原始檔中,則需要 需要用-o 引數 把排序結果輸出到原檔案中
7 其他的sort常用選項
-c會檢查檔案是否已排好序,如果亂序,則輸出第一個亂序的行的相關資訊,最後返回1
-C會檢查檔案是否已排好序,如果亂序,不輸出內容,僅返回1
-M會以月份來排序,比如JAN小於FEB等等
-b會忽略每一行前面的所有空白部分,從第一個可見字元開始比較。
二、crontab 命令
- Linux系統下一個自動執行指定任務的程式(計劃任務),使用Crontab命令來新增任務
- crontab 配置檔案(more /etc/crontab)
- 常用引數
引數 | 描述 |
---|---|
-u user | 用來設定某個使用者的crontab服務 |
-l | 顯示某個使用者的crontab檔案內容,如果不指定使用者,則表示顯示當前使用者的crontab檔案內容 |
-e | 編輯某個使用者的crontab檔案內容。如果不指定使用者,則表示編輯當前使用者的crontab檔案 |
-i | 在刪除使用者的crontab檔案時給確認提示 |
-r | 從/var/spool/cron目錄中刪除某個使用者的crontab檔案,如果不指定使用者,則預設刪除當前使用者的crontab檔案 |
crontab練習:
1、 每1分鐘執行一次對/etc目錄的備份,備份至/backup目錄中,儲存檔名格式為bak_etc_2018-01-01
1.1、建立指令碼檔案(yy.sh)並編輯
1.2、給 yy.sh 指令碼檔案可執行許可權
(chmod u+x yy.sh)
1.3、執行指令碼檔案並檢視
1.4、設定crontab (crontab -e)
1.5、再檢視目錄/backup 對比一下時間
2. 每1分鐘取當前系統/proc/meminfo檔案中的所有以S開頭的資訊至/backup/memory檔案中
2.1建立指令碼檔案(tt.sh)並編輯
2.2 給 tt.sh 指令碼檔案可執行許可權
(chmod u+x tt.sh)
2.3執行指令碼檔案並檢視
2.4設定crontab (crontab -e)
2.5再檢視檔案/backup/memory 對比一下
檔案/backup/memory 裡的內容隨著時間不斷增加