內容簡介
1、第四部分第一課:壓縮文件,解壓無壓力
2、第四部分第二課:SSH連接,安全快捷
壓縮文件,解壓無壓力
最近小編因為換工作,從南法搬到巴黎。折騰了很久。
網絡一直用的是公共的無線網,信號不行。無線上網的box盒子已經說通網了,但我覺得牆上的線有問題。反正就是用不了自己的告訴WiFI盒子。
而且還要繼續找房子,剛上班第一周,諸多事情,所以最近停更了很久。不好意思。
不過,現在又重新開始啦。木啊哈哈哈~
百足之蟲,死而不僵。。。
第四部分我們會講Linux網絡方面的一些知識點。既然講到網絡方面,首先我們可以介紹一下如何壓縮和解壓文件,因為我們在網絡上傳輸文件的時候,通常都會先將其壓縮。
說到壓縮文件,如果是Windows用戶,那應該對rar和zip兩種格式不陌生。一般在Windows下,我們會使用Winrar,7zip等壓縮解壓的軟件。這些軟件中有些是收費的,比如winrar。
在Linux下,我們有很多免費的壓縮解壓軟件可供選擇,比如gzip和bzip2。不過,gzip和bzip2,不能同時壓縮多個文件,一次只能壓縮一個文件。
不過,Linux這樣的開源社群可厲害了,他們還有一個軟件tar,算是Linux下用得挺多的程序了吧。tar可以同時壓縮多個文件。
當然了,Linux下也有解壓zip和rar格式的軟件。
這一課沒什么技術難點,不過有些概念還是比較重要的。
就當茶余飯后,休閑泡腳吧... 當然,之后千萬不要用洗腳水泡茶...
tar命令:將多個文件歸檔
首先,我們需要弄清楚兩個概念:打包和壓縮。
打包,是將多個文件變成一個總的文件,這個總的文件我們通常稱為archive,英語是《存檔,歸檔》的意思。
壓縮,是將一個大文件通過某些壓縮算法變成一個小文件。
所以,其實引言中所提到的tar命令,gzip和bzip2命令是這樣使用的:
用tar將多個文件歸檔為一個總的文件,稱為archive。
用gzip或bzip2命令將archive壓縮為更小的文件。
可以用下圖來描述此過程:
所以,我們會首先介紹tar命令,然后再學習gzip和bzip2命令。當然了,我們也會學習如何在Linux下解壓zip和rar格式的文件。
zip和rar格式是可以同時歸檔和壓縮的。
將多個文件合並為一個文件
我們來實際操作一下。
假設我現在創建了一個目錄,叫做compression,是英語“壓縮”的意思,然后在此文件夾中再創建一個目錄,叫做tutorial,是英語“教程”的意思。在tutorial目錄中,我放入三個C語言的源文件。如下圖所示:
我們就可以用tar命令對這三個文件進行歸檔。
-cvf:創建一個tar歸檔
我們可以這樣來創建一個tar歸檔:
tar -cvf tutorial.tar tutorial/
tar命令的三個選項參數分別表示:
c:c是create的縮寫,表示“創建”。
v:v是verbose的縮寫,表示“冗余”。會顯示操作的詳細。
f:f是file的縮寫,表示“文件”。指定歸檔文件。
執行以上的命令之后,可以從tutorial這個文件夾(里面包含ws.c,test.c,hanio.c三個文件)創建tutorial.tar這個歸檔。
因為加了v選項,所以列出了被歸檔的三個文件。
難道我們一定要先把三個文件都放到tutorial這樣的一個目錄,才能用tar歸檔嗎?
不是的,我們也可以直接對文件進行歸檔操作,不需要先把所有文件放到一個目錄里,如下:
tar -cvf archive.tar file1.txt file2.txt file3.txt
就會把file.txt,file2.txt,file3.txt歸檔為archive.tar。
-tf:顯示歸檔里的內容,並不解開歸檔
我們可以用tf選項參數來看一下我們剛生成的歸檔tutorial.tar中的內容。
tar -tf tutorial.tar
可以看到,tutorial.tar這個文件里,首先包含的是tutorial這個目錄,目錄里有三個文件:ws.c,test.c,hanio.c
一般,建立歸檔之前,最好把所有文件都先放置到一個目錄里。因為假如你拿到的歸檔文件是不包含目錄的(如上面 tar -cvf archive.tar file1.txt file2.txt file3.txt這樣),並且里面有好幾百個文件,你將其解開到你的家目錄,那會亂成一團的。
-rvf:追加文件到歸檔
例如:
tar -rvf archive.tar file_extra.txt
表示將file_extra.txt這個文件添加到archive.tar歸檔中。
-xvf:解開歸檔
算是-cvf的相反操作。將生成的歸檔解開。x是extract的縮寫,表示《提取,取出》。
tar -xvf tutorial.tar
gzip和bzip2命令:壓縮歸檔
現在我們已經學會用tar命令來創建一個歸檔了,接下來,我們就學習如何壓縮這個歸檔吧。
Linux中常用的壓縮命令是gzip和bzip2。功能類似。
gzip:比較常用。
bzip2:不是那么常用。bzip2的壓縮率比gzip更大,但是更耗時。
這兩個命令的用法也很簡單,只需傳入要壓縮的歸檔作為參數。經過壓縮,歸檔的后綴名也會改變。
.tar.gz:這是用gzip命令壓縮后的文件后綴名。
.tar.bz2:這是用bzip2命令壓縮后的文件后綴名。
兩個壓縮命令的用法如下:
gzip tutorial.tar
bzip2 tutorial.tar
就會分別生成tutorial.tar.gz和tutorial.tar.bz2兩個壓縮文件。
如果要對這兩個命令生成的壓縮文件分別進行解壓,可以使用gunzip和bunzip2兩個命令:
gunzip tutorial.tar.gz
bunzip2 tutorial.tar.bz2
用tar命令同時歸檔和壓縮
之前我們只介紹了tar命令的歸檔作用,其實我們可以用tar命令同時完成歸檔和壓縮的操作,一氣呵成。
當然了,也就是給tar命令多加一個選項參數,使之完成歸檔操作后,還是調用gzip或bzip2命令來完成壓縮操作。
-zcvf:歸檔,然后用gzip來壓縮歸檔
tar -zcvf tutorial.tar.gz tutorial/
一步到位,從tutorial目錄,歸檔、壓縮,生成tutorial.tar.gz文件。
要解壓,也可以一步到位:
tar -zxvf tutorial.tar.gz
相信常用Linux系統的用戶對這個命令應該很熟悉吧。
-jcvf:歸檔,然后用bzip2來壓縮歸檔
tar -jcvf tutorial.tar.bz2 tutorial/
一步到位,從tutorial目錄,歸檔、壓縮,生成tutorial.tar.bz2文件。
要解壓,也可以一步到位:
tar -jxvf tutorial.tar.bz2
zcat,zmore,zless:直接顯示用gzip壓縮的文件的內容
cat,more和less三個命令我們已經很熟悉了,是用於顯示文件內容。
如果是壓縮文件,比如我們上面生成的tutorial.tar.gz,如果直接用cat,more或less命令來顯示,是會顯示亂碼的。
cat tutorial.tar.gz
但是用zcat,zmore,zless命令就可以顯示用gzip命令壓縮的文件的內容了:
zcat tutorial.tar.gz
unzip和unrar命令:解壓zip和rar文件
盡管.tar.gz和.tar.bz2結尾的壓縮文件在Linux世界很常見,但是如果某個Windows用戶給您發送壓縮文件,大部分情況可能是.zip或.rar結尾的壓縮文件,那么在Linux下如何解壓這類來自Windows世界的外來物呢?
不必擔心,我們可以用unzip和unrar命令來分別解壓.zip和.rar格式的壓縮文件。
unzip:解壓.zip格式的壓縮文件
一般Linux發行版中默認沒有安裝這個程序,我們可以用以下命令來安裝:
sudo apt-get install unzip
安裝完之后,要解壓.zip格式的壓縮文件,可以這樣:
unzip archive.zip
很簡單吧。
如果不想解開.zip文件,只想看其中的內容的話,可以加上-l參數:
unzip -l archive.zip
在Linux中,雖然不常見,但是有時候我們也需要創建.zip格式的文件,我們可以安裝zip這個程序:
sudo apt-get install zip
想要生成.zip格式的壓縮文件,可以這樣:
zip -r archive.zip archive/
注意這里有一個-r參數,須要加上,如果不加,則只會壓縮空文件夾而已。加上-r參數,則會遞歸壓縮目錄和子目錄中的所有文件。
unrar:解壓.rar格式的壓縮文件
類似於unzip,安裝unrar的命令如下:
sudo apt-get install unrar
安裝完之后,要解壓.rar格式的壓縮文件,可以這樣:
unrar e archive.rar
可以看到,有些意外,因為e這個選項參數前面沒有-,人生總是有意外的不是嗎?unrar這個命令的作者顯然是不走尋常路。
如果不想解開.rar文件,只想看其中的內容的話,可以加上l參數(是的,也不加-):
unrar l archive.rar
那如果我想在Linux中創建.rar格式的壓縮文件呢?
不好意思,.rar格式的壓縮軟件並沒有公開,解壓的軟件是免費的。如果你要壓縮rar文件,那只能去買收費軟件。
Linux下也有rar這個軟件,你也可以下載安裝,但這是一個試用軟件,到了一定天數后,就會收費。不過,zip軟件是免費的。
第四部分第二課預告
今天的課就到這里,一起加油吧!
下一課我們學習:SSH連接,安全快捷