您好,登錄后才能下訂單哦!
在Linux系統中對于文件的打包壓縮與解壓的方法,以及讓用戶能夠基于一個關鍵詞在文本文件中搜索匹配信息,與基于指定的名稱或屬性在整個文件系統中搜索匹配特定文件的超級實用命令。
tar命令用于對文件打包壓縮或解壓,格式為:“tar [選項] [文件]”。
Windows系統中最常見的壓縮格式是.rar與.zip吧,而Linux系統中常見的格式比較多,但主要使用的是.tar或.tar.gz或.tar.bz2格式,同學們不用擔心格式好多而記不住,其實這些大部分都是由tar命令來完成的,我來把最重要的幾個參數講給你們下,首先“-c”參數是用于創建壓縮文件的,“-x”參數是用于解壓文件的,因此這兩個不能同時放一起使用,其次“-z”參數是指定使用Gzip格式來壓縮解壓文件,“-j”參數是指定使用bzip2參數來壓縮解壓文件,解壓時候咱們則是根據文件的后綴來決定是何種格式參數,而有些打包操作要數個小時,屏幕沒有輸出的話你一定會懷疑電腦有沒有死機了,也不好判斷打包的進度情況,非常推薦使用“-v”參數來不斷顯示壓縮或解壓的過程給用戶,“-C”參數用于指定要解壓到的那個指定的目錄,而“-f”參數特別重要,它必須放到參數的最后一位,代表要壓縮或解壓的軟件包名稱。因此平時我會一般使用“tar -czvf 壓縮包名稱.tar.gz 要打包的目錄”命令來將指定的文件來打包,解壓的話則是“tar -xzvf 壓縮包名稱.tar.gz”命令,讓咱們來逐個演示下打包壓縮與解壓的操作吧。
使用tar命令將/etc目錄內文件通過gzip格式進行打包壓縮,并將文件命名為etc.tar.gz:
[root@linuxprobe ~]# tar czvf etc.tar.gz /etc tar: Removing leading `/' from member names /etc/ /etc/fstab /etc/crypttab /etc/mtab /etc/fonts/ /etc/fonts/conf.d/ /etc/fonts/conf.d/65-0-madan.conf /etc/fonts/conf.d/59-liberation-sans.conf /etc/fonts/conf.d/90-ttf-arphic-uming-embolden.conf /etc/fonts/conf.d/59-liberation-mono.conf /etc/fonts/conf.d/66-sil-nuosu.conf ………………省略部分壓縮過程………………
將剛剛打包的壓縮包文件指定解壓到/root/etc目錄中:
[root@linuxprobe ~]# mkdir /root/etc [root@linuxprobe ~]# tar xzvf etc.tar.gz -C /root/etc etc/ etc/fstab etc/crypttab etc/mtab etc/fonts/ etc/fonts/conf.d/ etc/fonts/conf.d/65-0-madan.conf etc/fonts/conf.d/59-liberation-sans.conf etc/fonts/conf.d/90-ttf-arphic-uming-embolden.conf etc/fonts/conf.d/59-liberation-mono.conf etc/fonts/conf.d/66-sil-nuosu.conf etc/fonts/conf.d/65-1-vlgothic-gothic.conf etc/fonts/conf.d/65-0-lohit-bengali.conf etc/fonts/conf.d/20-unhint-small-dejavu-sans.conf
find命令用于查找文件,格式為:“find [查找路徑] 尋找條件 操作”。
“Linux系統中的一切都是文件”。在Linux系統中的搜索工作一般都是通過find命令來完成的,它可以根據不同的文件特性來做為匹配項(如文件名、大小、修改時間、權限等信息),一旦匹配到了則會默認為用戶顯示到屏幕上來,基礎的匹配項目請見下表即可,我主要講解下“--exec”參數重要的作用,這個參數是用于將find命令搜索到的結果交由給后面的命令再進一步做處理,十分類似于咱們將在下一章中提到的管道符技術。
Linux系統中的配置文件根據FHS協議會被保存到/etc目錄中(第六章精講),如果咱們要想獲取到該目錄中所有以host開頭的文件就可以這樣做:
[root@linuxprobe ~]# find /etc -name "host*" -print /etc/avahi/hosts /etc/host.conf /etc/hosts /etc/hosts.allow /etc/hosts.deny /etc/selinux/targeted/modules/active/modules/hostname.pp /etc/hostname
想要在整個系統中搜索所有權限中包括SUID權限的文件,只需使用減號-4000即可:
[root@linuxprobe ~]# find / -perm -4000 -print /usr/bin/fusermount /usr/bin/su /usr/bin/umount /usr/bin/passwd /usr/sbin/userhelper /usr/sbin/usernetctl
拔高題目:在整個的文件系統中找出所有歸屬于linuxprobe用戶的文件并復制到/root/findresults目錄。
此題的重點是"-exec {} \;"其中的{}代表find命令搜索出的逐個文件,并且記得命令的結尾必須是\;
[root@linuxprobe ~]# find / -user linuxprobe -exec cp -arf {} /root/findresults/ \;
grep命令用于對文本內容進行關鍵詞的搜索匹配,格式為:“grep [選項] [文件]” (不是實時的噢)
可以把grep命令當作是用途最廣泛的文本搜索匹配工具,參數雖然很多但基本是用不到的,我用將近七年的工作和教學經驗提出本書籍核心“去掉不實用”的寫作理念絕對不是亂說,一名Linux講師如果寫書的水平只能停留在“技術的搬運工”而不成成為一名對真正優質技術知識的提煉者,那絕對會害了一大波學生,因此劉遄老師在這里只講兩個最常用的參數,只要會使用“-n”參數顯示搜索到信息的行號,使用“-v”參數用于反選信息(即沒有包含關鍵詞的所有信息行)就幾乎能完成你以后80%的工作需要,至于其他上百個參數,以后萬一工作遇到了,再來用“man grep”命令查一下也來得及。
Linux系統中的/etc/passwd文件是保存著所有用戶信息的文件,而一旦用戶的登陸終端被設置成“/sbin/nologin”則不再允許登陸系統,因此咱們可以通過使用grep命令來匹配出當前系統中所有不允許登陸系統的用戶信息:
[root@linuxprobe ~]# grep /sbin/nologin /etc/passwd bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。