文件命名規則
????????除了字符“/”之外,所以的字符都可以使用,但要注意,在目錄名或文件名中,不建議使用某些特殊字符,如:<、>、?、*等
如果一個文件名中包含了特殊字符,例如空格,那么在訪問這個文件時就需要使用引號將文件名括起來。
建議文件命名規則:
-
由于linux嚴格區分大小寫,所以盡量都用小寫字母
-
如果必須對文件名進行分割,建議使用"_",例如:file_bj_2020.log
文件創建
主要用touch創建文件
touch 文件名稱
創建多個文件
touch 文件名稱1 文件名稱2 文件名稱3
根據序號創建多個文件
touch 文件名稱{開始序號..結束序號}
文件刪除?
Linux當中一切都為文件
rm [選項]?文件或文件夾的名稱
其中選項為:
? ? ? ? -r:針對文件夾,代表遞歸刪除,先把目錄下的所有文件刪除,然后在刪除文件夾
? ? ? ? -f:強制刪除,不提示
rm:是否刪除普通空文件 '***.txt' [可以回復 y or n]
? ? ? ? y 代表確認刪除
? ? ? ? n?代表取消
?在Linux操作系統中,Ctrl+C不是復制,而是中斷某個操作
復制與剪切
?cp復制操作
cp [選項] 源文件或文件夾 目錄路徑 /新文件或文件夾的名稱
其中選項當中的-r 是主要針對文件夾?
?剪切/移動操作 ?
mv 源文件或文件夾 目標路徑
之所以不需要-r是因為:
? ? ? ? mv默認支持移動目錄及其內容,即使目錄非空也能直接操作
? ? ? ? cp則不同:復制目錄時必須加-r,否?則會報錯
?重命名操作
mv 源文件或文件夾名稱 新文件或文件夾的名稱
打包壓縮與解壓縮
打包壓縮
? ? ? ? ? ? ? ? 打包:默認情況下,Linux的壓縮概念一次只能壓縮一個文件。
? ? ? ? ? ? ? ? 針對多文件或文件夾無法進行直接壓縮。所以需要提前對多個文件或文件夾進行打包,這樣才可以進行壓縮操作。
tar [選項] 打包后的名稱.tat 多個文件或文件夾
選項說明:
? ? ? ? -c:打包
? ? ? ? -f:filename,打包后的文件名稱
? ? ? ? -v:顯示打包的進度
? ? ? ? -u:update縮寫,更新原打包文件中的文件
? ? ? ? -t:查看打包的文件內容
tar-tf
tar-uf 打包后的文件名稱
tar-uf
tar-uf 打包后的文件名稱
u=>> update,更新,如果還想往tar包中更新或追加內容都可以通過-u選項????????
? ? ? ? ? ? ? ? 壓縮:也是一個文件和目錄的集合,且這個集合也被存儲在一個文件中。
? ? ? ? ? ? ? ? 但它們不同之處在于,壓縮所占用的磁盤空間比集合中所有文件大小的總和要小
?tar [選項] 歸檔文件名 要處理的文件或目錄
選項說明:
?? ?-c:創建新的歸檔文件。
?? ?-x:從歸檔中解出文件。
?? ?-t:列出歸檔文件中的內容,用于查看已打包的文件列表。
?? ?-f:指定歸檔文件名。此選項在使用tar時幾乎是必須的,以明確操作的目標文件。
?? ?-v:顯示處理過程中的文件信息(可選)。
?? ?-z:通過gzip過濾歸檔,用于創建.tar.gz或.tgz文件。
?? ?-j:通過bzip2過濾歸檔,用于創建.tar.bz2文件。
?? ?-J:通過xz過濾歸檔,用于創建.tar.xz文件。
特性 | gzip | bzip2 | xz |
壓縮速度 | 最快 | 中等 | 最慢 |
壓縮率 | 較低 | 中等 | 最高 |
100m文件壓縮后大小 | 約90M | 約80M | 約70M |
對壓縮包進行解壓
解壓過程非常簡單,就是把壓縮的參數中的c換成x就可以實現解壓縮了
*.tar.gz格式的壓縮包
tar -zxf 名稱.tar.gz
*.tar.bz2格式的壓縮包
tar -jxf 名稱.tar.bz2
*.tar.xz格式的壓縮包
tar -Jxf 名稱.tar.xz
?zip壓縮與解壓縮
zip【選項】壓縮后的文件名稱.zip 文件或文件夾
選項說明:
?? ?-r :遞歸壓縮,主要針對的是文件夾
Linux下已經有了gzip、bzip2以及xz壓縮命令,之所以還需要使用zip壓縮,是因為zip格式在Windows以及Linux中都是可以正常使用的
unzip解壓縮
unzip 壓縮包名稱 ? =>> ?解壓到當前目錄
unzip 壓縮包名稱 -d 指定路徑 ? =>> ?解壓到指定路徑下
查看文件
cat
- 文件內容快速查看
cat [選項] 文件名
選項說明:
? ? ? ? -n:顯示行號(包括空行)
? ? ? ? -e:顯示行尾結束符($)
? ? ? ? -t:?顯示制表符(^I )
注意事項:
? ? ? ? 對大文件慎用(內存壓力)
? ? ? ? 禁止直接編輯文件(需配合>>追加)
more
- 分屏查看器
# 案例1:查看日志文件
more /var/log/messages ?# 按空格鍵下翻頁# 案例2:跳過前10行
more +10 /etc/passwd ?# 從第11行開始顯示
交互命令:
? ? ? ? 空格鍵:下一頁
? ? ? ? Enter:下一行
? ? ? ? q:退出
? ? ? ? :f 顯示當前位置
回車鍵 | 向下移動一行 |
d | 向下移動半頁 |
空格鍵 | 向下移動一頁 |
d | 向上移動一頁,后期引入功能,早期more只能前進不能后退 |
q | 退出 more |
less
- 高級分頁工具
核心優勢:
? ? ? ? 1.支持上下移動
? ? ? ? 2.搜索功能
# 案例1:實時追蹤日志
less +F /var/log/nginx/access.log ?# 按Ctrl+C退出# 案例2:搜索關鍵字
less /etc/ssh/sshd_config ?# 輸入 /Port 搜索
常用參數
? ? ? ? -s:禁用行換行
? ? ? ? -i:忽略搜索大小寫
? ? ? ? -N:顯示行號
回車鍵 | 向下移動一行 |
d | 向下移動半頁 |
空格鍵 | 向下移動一頁 |
b | 向上移動一頁 |
上下方向鍵 | 向上與向下移動,less命令特有功能鍵,鼠標滑輪 |
less -N 文件名稱 | 顯示行號 |
/ 字符串 | 搜索指定的字符串 |
q | 退出less |
n/N | 下一個/上一個 |
head
- 文件頭部查看
head [選項] 文件名
參數:
? ? ? ? -n 5:顯示前5行
? ? ? ? -c 100:顯示前100字節
tail
- 文件尾部追蹤
?tail [選項] 文件名
參數:
? ? ? ? -f:實時追蹤(Ctrl+c退出)
? ? ? ? -F:追蹤文件名變更(適用于日志輪轉)
? ? ? ? -n +5:?從第5行開始顯示
統計文件信息
wc
- 統計文件內容數量
命令:wc, wc = word count
作用:用于統計文件內容信息(包括行數、單詞數。字節數)
語法:
????????wc [參數選項] 文件名
參數:
? ? ? ? -l:表示lines,行數(以回車/換行符為標準)
? ? ? ? -w:表示words,單詞數 依照空格來判斷單詞數量
? ? ? ? -c:表示bytes, 字節數(空格,回車,換行)
?du?- 統計文件大小
命令:du
作用:查看文件或目錄(會遞歸顯示子目錄)占用磁盤空間大小
語法:
????????# du ?[參數選項] ?文件名或目錄名
常見參數:
????????-s :summaries,只顯示匯總的大小,統計文件夾的大小
???????? -h:表示以高可讀性的形式進行顯示,如果不寫-h,默認以KB的形式顯示文件大小
文本處理
find
- 文件搜索利器
搜索條件:
?-name "*.txt"
:按名稱匹配
?-mtime +7
:7天前修改
?-size +100k
:大于100KB
管道符
工作原理:將前一個命令的輸出作為后一個命令的輸入
性能優化:
????????避免無用輸出(如cat file | grep pattern
可簡化為grep pattern file
)
????????使用buffer
工具加速大數據流傳輸
命令 | 核心功能 | 最佳場景 | 性能特征 |
cat | 文件拼接/快速預覽 | 小文件(<100行) | 直接輸出 |
less | 高效分頁瀏覽 | 大文件(>1GB) | 智能加載 |
grep | 內容過濾 | 日志分析 | 正則支持 |
find | 文件檢索 | 系統級搜索 | 精準定位 |
grep
- 模式匹配神器
正則表達式:
?^root
:行首匹配
?\.conf$
:行尾匹配
?[0-9]{3}-[0-9]{4}
:匹配電話號碼格式
?基礎搜索參數
- -i
(忽略大小寫)
grep -i "hello" file.txt # 搜索 "hello"、"Hello"、"HELLO" 等
- -v
(反向匹配,顯示不包含模式的行)
grep -v "error" log.txt # 排除所有包含 "error" 的行
- -w
(全詞匹配,僅匹配完整單詞)
grep -w "cat" file.txt # 匹配 "cat",但不匹配 "category" 或 "cats"
- -n
(顯示匹配行的行號)
grep -n "TODO" code.py # 輸出格式:行號:匹配內容
- -l
(僅顯示包含匹配項的文件名,不顯示具體內容)
grep -l "success" *.log # 列出所有包含 "success" 的日志文件名
- -c
(統計匹配行的數量)
grep -c "404" access.log # 統計 "404" 出現的次數
?組合案例
1. 在單個文件中查找關鍵詞
場景:查看日志文件并搜索“error” ?
cat system.log | grep "error"
或更高效的方式(直接使用grep
): ?
grep "error" system.log
?作用:快速定位文件中的錯誤信息。
2. 在多個文件中查找關鍵詞
場景:搜索所有.txt
文件中的“hello”
cat *.txt | grep "hello"
注意:如果需知道結果來自哪個文件,直接使用grep
更合適:
grep "hello" *.txt
作用:跨文件搜索時,顯示文件名和匹配內容。
總結
命令 | 選項 | 描述 |
mldir | -p | 遞歸創建目錄,從左到右一級一級創建目錄 |
rmdir | -p | 同時刪除多級空目錄(從右向左一級一級刪除) |
touch | 無 | 創建一個或多個文件 |
rm | -r或-f | -r:遞歸刪除目錄;-f:強制刪除,不提示 |
命令 | 選項 | 描述 |
cp | -r | 遞歸復制,主要針對文件夾 |
mv | 無 | 移動或重命名文件/目錄 |
命令 | 選項 | 描述 |
tar | -c、-x、-t、-f、-v、-z、-j、-J | -c : 創建新的歸檔文件;-x : 從歸檔中解出文件;-t : 列出歸檔文件中的內容;-f : 指定歸檔文件名;-v : 顯示處理過程中的文件信息;-z : 使用gzip壓縮;-j : 使用bzip2壓縮;-J : 使用xz壓縮 |
zip | -r | 遞歸壓縮,主要針對的是文件夾 |
unzip | -d | 解壓到指定路徑 |