2.3 打包、壓縮命令和文本編輯器VI

1. 打包和壓縮命令

4WXD}{SP]0I9MW)R(2_7(SQ

隨着壓縮技術的發展,Linux環境下提供的壓縮指令和格式開始變多。爲了便於用戶區分不同壓縮文件使用的不同壓縮技術,進而使用合適的指令進行操作,一般使用後綴標識文件在壓縮或打包過程中所使用的壓縮技術。

*.Z // compress程序壓縮產生的文件(現在很少使用)

*.gz // gzip程序壓縮產生的文件

*.bz2 // bzip2程序壓縮產生的文件
*.zip // zip壓縮文件

*.tar // tar程序打包產生的文件

*.tar.gz // 由tar程序打包並由gzip程序壓縮產生的文件

*.tar.bz2 // 由tar程序打包並由bzip2程序壓縮產生的文件

1.1 gzip

gzip可以壓縮產生後綴爲 .gz 的壓縮文件,也可以用於解壓gzip、compress等程序壓縮產生的文件。不帶任何選項和參數使用gzip或只帶有參數 - 時,gzip從標準輸入讀取輸入,並在標準輸出輸出壓縮結果。

gzip的常用指令選項如下:  

基礎格式: gzip [Options] file1 file2 file3
指令選項:(默認功能爲壓縮)
-c //將輸出寫至標準輸出,並保持原文件不變
-d //進行解壓操作
-v //輸出壓縮/解壓的文件名和壓縮比等信息
-digit //digit部分爲數字(1-9),代表壓縮速度,digit越小,則壓縮速度越快,但壓縮效果越差,digit越大,則壓縮速度越慢,壓縮效果越好。默認爲6.

注意,使用 gzip 指令壓縮/解壓文件均會使得源文件消失,即源文件會被直接解壓/壓縮而不保留備份。若想要保留原文件可以使用 -c 參數結合數據流重定向操作(見下例)。

gzip exp1.txt exp2.txt //分別將exp1.txt和exp2.txt壓縮,且不保留原文件。注意對於多個文件參數是將多個文件分別進行壓縮,而不是壓縮在一起。參考下文 tar 指令。

gzip -dv exp1.gz //將exp1.gz解壓,並顯示壓縮比等信息。

gzip -cd exp1.gz > exp.1   //將exp1.gz解壓的結果放置在文件exp.1中,並且原壓縮文件exp1.gz不會消失

特別注意第三條實例, -d 指示解壓縮,-c 參數是將結果輸出至標準輸出,通過 > 符號,將原本輸出至標準輸出的解壓結果重定向至exp.1中,既解壓了文件,原壓縮文件也沒有消失。

  注:對應於 gzip,可以使用 gunzip 進行解壓操作,效果類似gzip -d xx,同時可以使用zcat讀取壓縮文件的內容並顯示在標準輸出,功能類似於 gzip -c xx.

1.2 bzip2

bzip2是採用更好壓縮算法的壓縮程序,一般可以提供較之gzip更好的壓縮效果。其具有與gzip相似的指令選項,壓縮產生 .bz2 後綴的壓縮文件。

bzip2的常用指令選項如下:

基礎格式: bzip2 [Options] file1 file2 file3

指令選項:(默認功能爲壓縮)

-c //將輸出寫至標準輸出

-d //進行解壓操作
-v //輸出壓縮/解壓的文件名和壓縮比等信息

-k //在壓縮/解壓過程中保留原文件
-digit //digit部分爲數字(1-9),代表壓縮速度,digit越小,則壓縮速度越快,但壓縮效果越差,digit越大,則壓縮速度越慢,壓縮效果越好。默認爲6.

bzip2 exp1.txt exp2.txt    //分別將exp1.txt和exp2.txt壓縮,且不保留原文件。

bzip2 -dv exp1.bz2 //將exp1.bz2解壓,並顯示壓縮比等信息。

bzip2 -kd exp1.bz2   //將exp1.bz2解壓,並且原壓縮文件exp1.bz2不會消失

  注:對應於 bzip2,可以使用 bunzip2 進行解壓操作,效果類似bunzip2 -d xx,同時可以使用bzcat讀取壓縮文件的內容並顯示在標準輸出,功能類似於 bzip2 -c xx.

1.3 tar命令

      功能說明:用來建立,還原備份文件的工具程序,它可以加入,解開備份文件內的文件

1.3.1 參數:

      -c: 建立壓縮檔案

      -x:解壓

      -t:查看內容

      -r:向壓縮歸檔文件末尾追加文件

     -u:更新原壓縮包中的文件

    這五個是獨立的命令,壓縮解壓都要用到其中一個,可以和別的命令連用但只能用其中一個。下面的參數是根據需要在壓縮或解壓檔案時可選的。

    -z:有gzip屬性的

    -j:有bz2屬性的

   -Z:有compress屬性的

   -v:顯示所有過程

   -O:將文件解開到標準輸出

  下面的參數-f是必須的

   -f: 使用檔案名字,切記,這個參數是最後一個參數,後面只能接檔案名。

1.3.2 壓縮

tar –cvf jpg.tar *.jpg //將目錄裏所有jpg文件打包成jpg.tar

tar –czf jpg.tar.gz *.jpg   //將目錄裏所有jpg文件打包成jpg.tar後,並且將其用gzip壓縮,生成一個gzip壓縮過的包,命名爲jpg.tar.gz

tar –cjf jpg.tar.bz2 *.jpg //將目錄裏所有jpg文件打包成jpg.tar後,並且將其用bzip2壓縮,生成一個bzip2壓縮過的包,命名爲jpg.tar.bz2

tar –cZf jpg.tar.Z *.jpg   //將目錄裏所有jpg文件打包成jpg.tar後,並且將其用compress壓縮,生成一個umcompress壓縮過的包,命名爲jpg.tar.Z

rar a jpg.rar *.jpg //rar格式的壓縮,需要先下載rar for linux

zip jpg.zip *.jpg //zip格式的壓縮,需要先下載zip for linux

1.3.3 解壓

tar –xvf file.tar //解壓 tar包

tar -xzvf file.tar.gz //解壓tar.gz

tar -xjvf file.tar.bz2   //解壓 tar.bz2

tar –xZvf file.tar.Z   //解壓tar.Z

unrar e file.rar //解壓rar

unzip file.zip //解壓zip

1.3.4 舉例說明

tar -cf all.tar *.jpg

這條命令是將所有.jpg的文件打成一個名爲all.tar的包。-c是表示產生新的包,-f指定包的文件名。

tar -rf all.tar *.gif

這條命令是將所有.gif的文件增加到all.tar的包裏面去。-r是表示增加文件的意思。

tar -uf all.tar logo.gif

這條命令是更新原來tar包all.tar中logo.gif文件,-u是表示更新文件的意思。

tar -tf all.tar

這條命令是列出all.tar包中所有文件,-t是列出文件的意思

tar -xf all.tar

這條命令是解出all.tar包中所有文件,-t是解開的意思

1.3.5 總結

1、*.tar 用 tar –xvf 解壓

2、*.gz 用 gzip -d或者gunzip 解壓

3、*.tar.gz和*.tgz 用 tar –xzf 解壓

4、*.bz2 用 bzip2 -d或者用bunzip2 解壓

5、*.tar.bz2用tar –xjf 解壓

6、*.Z 用 uncompress 解壓

7、*.tar.Z 用tar –xZf 解壓

8、*.rar 用 unrar e解壓

9、*.zip 用 unzip 解壓

2.文本編輯器vi

VI可能是在Linux中使用比較頻繁的文本編輯器,如果不能熟練使用VI,在一定程度上會影響工作效率,所以在這裏記錄一下VI的常用命令及操作方式,

Vi的基本工作模式:普通模式、編輯模式、命令行模式、末行模式

在[root@test ~]# vi carrie.txt ,進入vi的默認模式,在此模式下所有的用戶輸入都視爲命令,如果vi打開的文本不存在,則在打開的目錄下,自動新建一個文檔。

2.1 編輯模式

進入編輯模式

i 在光標的前面插入

a 在光標的後面插入

o 在光標的下面另起一行插入文件

I 移動到光標所在行的最前端

A 移動到光標所在行的最後端

O 移動到光標的上一行 esc   退出編輯,進入命令模式

2.2 vi命令模式

2.2.1 撤銷和重複

u     撤銷上一個動作

.      重複上一個動作

2.2.2 複製 粘貼 刪除(命令模式不顯示)

p 在光標所在位置粘貼複製的內容

shift+g 到文件末尾

x 刪除當前位置字符

dd 刪除刪除整行

2.2.3 複製 粘貼 刪除(命令模式顯示)

:set number 顯示行號      實際上這種模式是末行模式

:set nonu 取消顯示行號

:1,3y 複製第一行到第三行

:1,3d 刪除第一行到第三行

x 刪除單個字符

yy複製光標所在行

y3y複製包括光標所在行的3行

G 將光標移動到最後一行

gg將光標移動到第一行

6G將光標移動到第六行

r替換單個字符

R替換多個字符

2.3 退出VI

:q 退出vi

:q! 不保存退出

:wq 保存退出

w 保存    !  強制執行操作

資料來源:

https://www.cnblogs.com/carrie-chen/p/5869299.html

https://www.cnblogs.com/maybe2030/p/5325530.html

https://www.cnblogs.com/yhjoker/p/7568680.html

https://www.cnblogs.com/yolanda-lee/p/4544573.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章