Linux進階第四天
35.tar命令
tar命令用於對文件進行打包壓縮或解壓,格式為“tar [選項] [文件]”
tar命令我們最常見的便是tar -czvf而其中具體含義是什麽呢?來分解一下,
-c 打包
-z 壓縮格式 gzip .tar.gz
-j 壓縮格式 bzip2 .tar.bz2
-v 顯示過程
-f 壓縮包名稱
下面用gzip方式來壓縮文件:
查看壓縮包格式:
接下來用bzip2方式來壓縮文件:
有個錯誤提示?
是的這是說系統中沒有安裝bzip2,我們下面安裝一下,
安裝成功,接下來我們再執行bzip壓縮文件:
此時便沒有報錯了,而且已經顯示壓縮成功,來查看下bzip2文件類型:
那麽說過了zip與bzip2的壓縮命令後,再來說一下解壓縮命令:
tar -x 解壓
tar -z 解壓格式為gzip
tar -v 解壓過程
tar -f 解壓包名稱
-C 指定解壓到的目錄
-j 用bzip2壓縮或解壓
註意:
首先,-c參數用於創建壓縮文件,-x參數用於解壓文件,因此這兩個參數不能同時使用。其次,-z參數指定使用Gzip格式來壓縮或解壓文件,-j參數指定使用bzip2格式來壓縮或解壓文件。用戶使用時則是根據文件的後綴來決定應使用何種格式參數進行解壓。在執行某些壓縮或解壓操作時,可能需要花費數個小時,如果屏幕一直沒有輸出,您一方面不好判斷打包的進度情況,另一方面也會懷疑電腦死機了,因此非常推薦使用-v參數向用戶不斷顯示壓縮或解壓的過程。-C參數用於指定要解壓到哪個指定的目錄。-f參數特別重要,它必須放到參數的最後一位,代表要壓縮或解壓的軟件包名稱
下面用兩種解壓方式分別將剛才用gzip、bzip2壓縮的文件解壓:
用zxvf參數將lgm.tar.gz通過-C參數解壓到root目錄下:
用jxvf參數將lgm.tar.bz2通過-C參數解壓到root目錄下:
解壓命令最為常見,也最為實用,所以我們更應該註重細節,區分兩種方式的不同之處。
36.grep命令
grep命令用於在文本中執行關鍵詞搜索,並顯示匹配的結果,格式為“grep [選項] [文件]”
grep命令也是我們常見的與查詢命令相關聯的命令,參數:
-b 將可執行文件(binary)當作文本文件(text)來搜索
-c 僅顯示找到的行數
-i 忽略大小寫
-n 顯示行號
-v 反向選擇—僅列出沒有“關鍵詞”的行
-n參數用來顯示搜索到信息的行號;
-v參數用於反選信息(即沒有包含關鍵詞的所有信息行)
舉個例子:
在Linux系統中,/etc/passwd文件是保存著所有的用戶信息,而一旦用戶的登錄終端被設置成/sbin/nologin,則不再允許登錄系統,因此可以使用grep命令來查找出當前系統中不允許登錄系統的所有用戶信息:
37.find命令
find命令用於按照指定條件來查找文件,格式為“find [查找路徑] 尋找條件 操作”
需要提一句:在Linux系統中的一切都是文件!
而在Linux系統中,搜索工作一般都是通過find命令來完成的,它可以使用不同的文件特性作為尋找條件(如文件名、大小、修改時間、權限等信息),一旦匹配成功則默認將信息顯示到屏幕上。
參數如下:
-name 匹配名稱
-perm 匹配權限(mode為完全匹配,-mode為包含即可)
-user 匹配所有者
-group 匹配所有組
-mtime -n +n 匹配修改內容的時間(-n指n天以內,+n指n天以前)
-atime -n +n 匹配訪問文件的時間(-n指n天以內,+n指n天以前)
-ctime -n +n 匹配修改文件權限的時間(-n指n天以內,+n指n天以前)
-nouser 匹配無所有者的文件
-nogroup 匹配無所有組的文件
-newer f1 !f2 匹配比文件f1新但比f2舊的文件
--type b/d/c/p/l/f 匹配文件類型(後面的字母參數依次表示塊設備、目錄、字符設備、管道、鏈接文件、文本文件)
-size 匹配文件的大小(+50KB為查找超過50KB的文件,而-50KB為查找小於50KB的文件)
-prune 忽略某個目錄
-exec …… {}\; 後面可跟用於進一步處理搜索結果的命令(下文會有演示)
這裏需要重點講解一下-exec參數重要的作用。這個參數用於把find命令搜索到的結果交由緊隨其後的命令作進一步處理,它十分類似於管道符技術,並且由於find命令對參數的特殊要求,因此雖然exec是長格式形式,但依然只需要一個減號(-)
Linux系統中的配置文件會保存在/etc目錄下,若想要獲得該目錄下所有以host開頭的文件列表,如下圖:
如果要在整個系統中搜索權限中包括SUID權限的所有文件(詳見第5章),只需使用-4000即可:
如果在系統中找到lgm用戶的所有文件,並把他們復制到/root/findlgm目錄裏:
要註意-exec參數的使用,-exec {} \; 其中{}表示find命令搜索出的每一個文件,並且命令的結尾必須是“\;”。
Linux進階第四天