目錄
grep命令
find命令
tar命令
head命令
tail命令
wc命令
tee命令
grep命令
作用:在文件中搜索匹配特定模式的文本行,并將結果輸出到標準輸出(通常是終端)。
基本用法:
grep [選項] 搜索模式 [文件名]
常用選項:
- -i:忽略大小寫,進行不區分大小寫的搜索。
- -v:反向搜索,輸出不匹配搜索模式的行。
- -n:在輸出中顯示匹配行的行號。
- -c:統計匹配行的數量,而不是輸出匹配的行。
- -l:只列出包含匹配行的文件名,而不是輸出匹配的行。
- -r 或 -R:遞歸搜索目錄中的所有文件。
- -w:僅匹配整詞,避免部分匹配。
- -e:指定多個搜索模式,可以多次使用 -e 來指定多個模式。
- -o:僅輸出匹配的部分,而不是整行。
例子:
#搜索目錄example中文件包含 "error" 或 "warning" 的行
grep -e "error" -e "warning" -r example/#搜索error所在的文件
grep -lr "error" example
find命令
作用:在目錄樹中查找文件和目錄。
基本用法:
find [路徑] [選項] [表達式]
- 路徑:指定查找的起始目錄,默認為當前目錄 (.)。
- 選項:控制find的行為。
- 表達式:定義查找條件。
常用選項:
1.按名稱查找
- -name:按文件名查找(區分大小寫)。
- -iname:按文件名查找(不區分大小寫)。
find /path/to/search -name "filename"
2.按類型查找
- -type f:查找文件。
- -type d:查找目錄。
find /path/to/search -type f
3.按大小查找
- -size +100M:查找大于 100MB 的文件。
- -size -100M:查找小于 100MB 的文件。
find /path/to/search -size +100M
4.按時間查找
- -mtime -7:查找過去 7 天內修改的文件。
- -mtime +7:查找 7 天前修改的文件。
- -atime:按訪問時間查找。
- -ctime:按狀態變更時間查找。
find /path/to/search -mtime -7
5.執行操作
- -exec:對查找到的文件執行命令,{}代表當前文件,\;表示命令結束。
find /path/to/search -name "*.log" -exec rm {} \;
6.組合條件
- -and:邏輯與(默認)。
- -or:邏輯或。
- -not:邏輯非。
find /path/to/search -name "*.txt" -and -size +1M
最常用的起始也就前面兩種用法。
tar命令
作用:用于文件打包和壓縮。
基本用法:
tar [選項] [輸出文件] [輸入文件或目錄]
- 選項:控制tar的行為(如創建、提取、壓縮等)。
- 輸出文件:生成的歸檔文件名(如.tar、.tar.gz等)。
- 輸入文件或目錄:需要打包的文件或目錄。
常用參數選項:
- -c --create:創建新的歸檔文件,即打包,打包的意思就是說把一堆文件打包成一個文件。
- -x --extract:解壓文件。
- -v --verbose:可視化,顯示詳細的tar處理的文件信息的過程。
- -f --file:要操作的文件名。
- -z:通過gzip來進行壓縮或解壓縮(.tar.gz或.tgz)。
- -j:通過bzip2來歸檔壓縮文件(.tar.bz2)。
- -J:使用xz壓縮工具壓縮成.xz文件(.tar.xz)。
- -t --list:列出歸檔文件中的內容。
- -r:向歸檔文件中追加文件。
- -C --directory=DIR:解壓文件至指定的目錄,如果是解壓到當前目錄,可以不加-C。
例子:
#解壓到指定目錄
tar -xzvf archive.tar.gz -C /path/to/directory#查看文件中的內容
tar -tzvf archive.tar.gz#追加文件
tar -rvf archive.tar newfile#打包并壓縮
tar -czvf archive.tar.gz file1 file2 dir1#解壓
tar -xzvf archive.tar.gz
常用壓縮格式對比
格式 | 命令選項 | 壓縮率 | 速度 | 文件擴展名 |
gzip | -z | 中等 | 較快 | .tar.gz |
bzip2 | -j | 較高 | 較慢 | .tar.bz2 |
xz | -J | 最高 | 最慢 | .tar.xz |
head命令
作用:顯示文件的開頭部分(默認顯示前 10 行)。它通常用于快速查看文件的內容,而不需要加載整個文件。
基本用法:
head [選項] [文件]
常用選項:
選項 | 說明 |
-n <行數> | 顯示文件的前 <行數>行(例如 -n 20)。 |
-c <字節數> | 顯示文件的前 <字節數>字節。 |
-q | 不顯示文件名(靜默模式)。 |
-v | 總是顯示文件名(默認行為)。 |
例子:
#顯示前十行
head filename.txt#顯示前N行
head -n N filename.txt#顯示前N個字節
head -c N filename.txt#顯示多個文件的前N行,并在每個文件內容前顯示文件名。
head -n N file1.txt file2.txt#靜默模式(不顯示文件名)
head -q -n N file1.txt file2.txt#從標準輸入讀取數據 通過管道將cat的輸出傳遞給head,顯示前10行。
cat filename.txt | head -n 10
tail命令
作用:用于顯示文件的末尾部分(默認顯示最后 10 行)。它通常用于查看日志文件或實時監控文件內容的變化。
基本用法:
tail [選項] [文件]
常用選項:
選項 | 說明 |
-n <行數> | 顯示文件的最后 <行數>行(例如 -n 20)。 |
-c <字節數> | 顯示文件的最后 <字節數>字節。 |
-f | 實時跟蹤文件內容的變化(常用于日志監控)。 |
-q | 不顯示文件名(靜默模式)。 |
-v | 總是顯示文件名(默認行為)。 |
例子:
#顯示文件的最后十行
tail filename.txt#實時顯示文件內容的變化
tail -f /var/log/syslog
wc命令
作用:主要用于統計文件的行數、單詞數和字節數等信息。默認會同時統計行數、單詞數和字節數。
基本用法:
wc [選項] 文件名
常用選項:
- -c:統計文件的字節數。
- -l:統計文件的行數。
- -w:統計文件的單詞數。
- -m:統計文件的字符數(包括換行符等)。
- -L:統計文件中最長行的長度。
tee命令
作用:將標準輸入(stdin)的內容同時輸出到標準輸出(stdout)和一個或多個文件中。它的名字來源于管道(pipeline)中的“T”型分叉,表示數據流的分流。
基本用法:
command | tee [選項] 文件名
常用選項:
- -a:追加模式(append)。如果不使用-a選項,tee默認會覆蓋文件內容。
- -i:忽略中斷信號(ignore interrupt signals)。即使接收到中斷信號(如 Ctrl+C),tee也會繼續運行。
例子:
#一個命令 ls -l,我們希望將它的輸出保存到文件 output.txt 中,同時在終端上顯示
ls -l | tee output.txt#如果希望將輸出追加到文件中,而不是覆蓋文件
ls -l | tee -a output.txt