Shell中的工作常用命令總結

Shell中的常用命令

1.cat命令不僅可以讀取文件、拼接數據,還能夠從標準輸入中讀取

echo "sss" | cat - out.txt

“-”被作爲stdin文本的文件名

2.壓縮相鄰的空白行

cat -s 1.txt

3.用cat命令的-T選項能夠將製表符標記成^T

cat -T 1.txt

4.find命令的工作方式如下:沿着文件層次結構向下遍歷,匹配符合條件的文件,執行相應的操作。默認打印出文件和目錄

find . -print

.指定當前目錄”. . “指定父目錄。print選項使用\n(換行符)分隔輸出每一個文件或目錄名。而-print0使用空字符‘\0’來分隔。

5.根據文件名或正則表達式進行搜索

find a/a -name '*.txt' -print

6.find命令支持邏輯操作符。-a-and選項可以執行邏輯與操作,-o-or可以執行邏輯或操作。

7.否定參數

find . ! -name "*.txt" -print

8.根據文件類型搜索
只列出所有的目錄(包括子目錄)

find . -type d -print

列出普通文件

find . -type f -print

9.根據文件的時間戳進行搜索,Unix/Linux文件系統中的每一個文件都有3種時間戳。
訪問時間(-atime):用戶最近一次訪問文件的時間。
修改時間(-mtime):文件內容最後一次被修改的時間。
變化時間(-ctime):文件元數據(例如權限或所有權)最後一次改變的時間

打印出在最近7天內被訪問過的所有文件。

find . -type f -atime -7 -print 

打印出恰好在7天前被訪問過的所有文件。

find . -type f -atime 7 -print 

打印出訪問時間超過7天的所有文件。

find . -type f -atime +7 -print

10.–newer選項可以指定一個用於比較修改時間的參考文件,然後找出比參考文件更新的(更近的修改時間)所有文件。

找出比1.txt修改時間更近的所有文件

find . -type f -newer 1.txt -print

11.基於文件權限和所有權,打印出權限爲644的文件

find . -type f -perm 755 -print

12.刪除匹配的文件

find命令的-delete選項可以刪除所匹配的文件。

find . -type f -name "*.session" -delete

13.xargs,將多行輸入轉換成多行輸出

cat 1.txt | xargs

14.xargs的-n選項可以限制每次調用命令時用到的參數個數。

cat 1.txt | xargs -n 3

分隔多行,每行3個元素。

15.統計程序文件的行數。

find -type f -name "*.sh" -print0 | xargs -0 wc -l

16.要將輸入中的字符由大寫轉換成小寫

echo "DDFFRGVD df" | tr 'A-Z' 'a-z'

17.在tr中利用集合的概念,可以輕鬆地將字符從一個集合映射到另一個集合中。

echo 12345 | tr '0-9' '9876543210'

——87654 #已加密

18.tr命令可以用來加密。

echo ge pnzr, ge fnj, ge pbadhrerq. | tr 'a-zA-Z' 'n-za-mN-ZA-M'

19.tr有一個選項-d,可以通過指定需要被刪除的字符集合,將出現在stdin中的特定字符清除掉:

echo "Hello 123 world" | tr -d '0-9'

——Hello world
20.將不在0-9字符替換成空格

echo hello 1 char 2 next 4 | tr -c '0-9' ' '

—— 1 2 4

21.壓縮字符,tr命令能夠完成很多文本處理任務。例如,它可以刪除字符串中重複出現的字符。基本實現形式如下

echo "a   ddd  re ?cd d0" | tr -s ' '

——a ddd re ?cd d0

23.校驗和程序用來從文件中生成相對較小的唯一密鑰。

24.按照數字順序排序

sort -n 1.txt

按照逆序排序:

sort -r 1.txt

25.有時文本中可能會包含一些像空格之類的多餘字符。如果需要忽略標點符號並以字典排序,可以使用:

sort -bd unsorted.txt 

其中,選項-b用於忽略文件中的前導空白行,選項-d用於指明以字典序進行排序。

26.uniq命令可以從給定輸入中找出唯一的行,報告或刪除那些重複的行,只能用於排過序的數據。

uniq sorted 1.txt
sort 1.txt | uniq

27.只顯示唯一的行(在輸入文件中沒有重複出現過的行)

uniq -u 1.txt

28.統計各行在文件中出現的次數

sort 1.txt | uniq -c

29.找出重複的行

sort 1.txt | uniq -d

30.通過指定分割大小,可以將100KB的文件分成一系列10KB的小文件。在split命令中,除了k(KB),我們還可以使用M(MB)、G(GB)、c(byte)和w(word)。

split -b 2k timing.log

31.藉助%操作符可以從name.extension這種格式中提取name部分。

file_jpg="sample.jpg" 
name=${file_jpg%.*} 
echo File name is: $name

——File name is: sample

32.#操作符可以提取出擴展名

extension=${file_jpg#*.} 
echo Extension is: jpg

——Extension is: jpg

33.匹配:m// (可以省略m,直接寫成/regexp/)
替換:s///
轉化:tr///

34.將後綴修改:

rename -n 's/png/PNG/' *.png

將大寫改爲小寫

rename 'y/A-Z/a-z/'

去掉文件後綴名:

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