find命令
find命令用來在指定目錄下查找文件。任何位於參數之前的字符串都將被視為欲查找的目錄名。如果使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄與文件。並且將查找到的子目錄和文件全部進行顯示。
語法
find [搜索范圍][匹配條件]
實例
$find /etc -name init(在目錄/etc中查找文件init)
$find /etc -name *init*(在目錄/etc中查找包含init的文件)
$find /etc -iname init(在目錄/etc中查找文件init或INIT)
$find / -size +204800(在根目錄下查找大於100MB的文件,+n大於,-n小於,n等於)
$find /home -user bbb(在根目錄下查找所有者為bbb的文件,-group根據所屬組查找)
$dind /etc -cmin -5(在/etc下查找5分鍾內被修改過屬性的文件和目錄,-amin訪問世家你access,-cmin文件屬性change,-mmin文件內容modify)
$find /etc -size +163840 -a -size -204800(在/etc下查找大於80MB小於100MB的文件,-a表示兩個條件同時滿足,-o表示兩個條件滿足任意一個即可)
$find /etc -name inittab -exec ls -l {}\;(在/etc下查找inittab文件並顯示其詳細信息)
locate/slocate命令
locate命令和slocate命令都用來查找文件或目錄。
locate命令其實是find -name
的另一種寫法,但是要比后者快得多,原因在於它不搜索具體目錄,而是搜索一個數據庫/var/lib/locatedb
,這個數據庫中含有本地所有文件信息。Linux系統自動創建這個數據庫,並且每天自動更新一次,所以使用locate命令查不到最新變動過的文件。為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新數據庫。
語法
locate/slocate(選項)(參數)
選項
-d<目錄>或--database=<目錄>:指定數據庫所在的目錄;
-u:更新slocate數據庫;
--help:顯示幫助;
--version:顯示版本信息。
參數
查找字符串:要查找的文件名中含有的字符串。
實例
搜索etc目錄下所有以sh開頭的文件:
locate /etc/sh
搜索用戶主目錄下,所有以m開頭的文件:
locate ~/m
搜索用戶主目錄下,所有以m開頭的文件,並且忽略大小寫:
locate -i ~/m
which命令
which命令用於查找並顯示給定命令的絕對路徑,環境變量PATH中保存了查找命令時需要遍歷的目錄。which指令會在環境變量$PATH設置的目錄里查找符合條件的文件。也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令。
語法
which(選項)(參數)
選項
-n<文件名長度>:制定文件名長度,指定的長度必須大於或等於所有文件中最長的文件名;
-p<文件名長度>:與-n參數相同,但此處的<文件名長度>包含了文件的路徑;
-w:指定輸出時欄位的寬度;
-V:顯示版本信息。
參數
指令名:指令名列表。
實例
查找文件、顯示命令路徑:
[root@localhost ~]# which pwd
/bin/pwd
[root@localhost ~]# which adduser
/usr/sbin/adduser
說明:which是根據使用者所配置的 PATH 變量內的目錄去搜尋可運行檔的!所以,不同的 PATH 配置內容所找到的命令當然不一樣的!
whereis命令
whereis命令用來定位指令的二進制程序、源代碼文件和man手冊頁等相關文件的路徑。
whereis命令只能用於程序名的搜索,而且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。如果省略參數,則返回所有信息。
和find相比,whereis查找的速度非常快,這是因為linux系統會將 系統內的所有文件都記錄在一個數據庫文件中,當使用whereis和下面即將介紹的locate時,會從數據庫中查找數據,而不是像find命令那樣,通 過遍歷硬盤來查找,效率自然會很高。 但是該數據庫文件並不是實時更新,默認情況下時一星期更新一次,因此,我們在用whereis和locate 查找文件時,有時會找到已經被刪除的數據,或者剛剛建立文件,卻無法查找到,原因就是因為數據庫文件沒有被更新。
語法
whereis(選項)(參數)
選項
-b:只查找二進制文件; -B<目錄>:只在設置的目錄下查找二進制文件; -f:不顯示文件名前的路徑名稱; -m:只查找說明文件; -M<目錄>:只在設置的目錄下查找說明文件; -s:只查找原始代碼文件; -S<目錄>只在設置的目錄下查找原始代碼文件; -u:查找不包含指定類型的文件。
參數
指令名:要查找的二進制程序、源文件和man手冊頁的指令名。
實例
將相關的文件都查找出來
[root@localhost ~]# whereis tomcat tomcat: [root@localhost ~]# whereis svn svn: /usr/bin/svn /usr/local/svn /usr/share/man/man1/svn.1.gz
說明:tomcat沒安裝,找不出來,svn安裝找出了很多相關文件
只將二進制文件查找出來
[root@localhost ~]# whereis -b svn svn: /usr/bin/svn /usr/local/svn [root@localhost ~]# whereis -m svn svn: /usr/share/man/man1/svn.1.gz [root@localhost ~]# whereis -s svn svn:
說明:whereis -m svn
查出說明文檔路徑,whereis -s svn
找source源文件。
grep命令
grep(global search regular expression(RE) and print out the line,全面搜索正則表達式並把行打印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。
grep命令常見用法
在文件中搜索一個單詞,命令會返回一個包含“match_pattern”的文本行:
grep match_pattern file_name grep "match_pattern" file_name
man命令
man命令是Linux下的幫助指令,通過man指令可以查看Linux中的指令幫助、配置文件幫助和編程幫助等信息。
語法
man(選項)(參數)
選項
-a:在所有的man幫助手冊中搜索;
-f:等價於whatis指令,顯示給定關鍵字的簡短描述信息;
-P:指定內容時使用分頁程序;
-M:指定man手冊搜索的路徑。
參數
- 數字:指定從哪本man手冊中搜索幫助;
- 關鍵字:指定要搜索幫助的關鍵字。
實例
我們輸入man ls
,它會在最左上角顯示“LS(1)”,在這里,“LS”表示手冊名稱,而“(1)”表示該手冊位於第一節章,同樣,我們輸man ifconfig
它會在最左上角顯示“IFCONFIG(8)”。也可以這樣輸入命令:“man [章節號] 手冊名稱”。
man是按照手冊的章節號的順序進行搜索的,比如:
man sleep
只會顯示sleep命令的手冊,如果想查看庫函數sleep,就要輸入:
man 3 sleep
help命令
help命令用於顯示shell內部命令的幫助信息。help命令只能顯示shell內部的命令幫助信息。而對於外部命令的幫助信息只能使用man或者info命令查看。
語法
help(選項)(參數)
選項
-s:輸出短格式的幫助信息。僅包括命令格式。
參數
內部命令:指定需要顯示幫助信息的shell內部命令。
實例
使用help命令顯示shell內部shopt命令的幫助信息,輸入如下命令:
help shopt #獲取shopt命令的幫助信息
shopt: shopt [-pqsu] [-o long-option] optname [optname...]
Toggle the values of variables controlling optional behavior.
The -s flag means to enable (set) each OPTNAME; the -u flag unsets each OPTNAME. The -q flag suppresses output; the exit status indicates whether each OPTNAME is set or unset. The -o option restricts the OPTNAMEs to those defined for use with `set -o'. With no options, or with the -p option, a list of all settable options is displayed, with an indication of whether or not each is set.
useradd命令
useradd命令用於Linux中創建的新的系統用戶。useradd可用來建立用戶帳號。帳號建好之后,再用passwd設定帳號的密碼.而可用userdel刪除帳號。使用useradd指令所建立的帳號,實際上是保存在/etc/passwd
文本文件中。
在Slackware中,adduser指令是個script程序,利用交談的方式取得輸入的用戶帳號資料,然后再交由真正建立帳號的useradd命令建立新用戶,如此可方便管理員建立用戶帳號。在Red Hat Linux中,adduser命令則是useradd命令的符號連接,兩者實際上是同一個指令。
語法
useradd(選項)(參數)
選項
-c<備注>:加上備注文字。備注文字會保存在passwd的備注欄位中;
-d<登入目錄>:指定用戶登入時的啟始目錄;
-D:變更預設值;
-e<有效期限>:指定帳號的有效期限;
-f<緩沖天數>:指定在密碼過期后多少天即關閉該帳號;
-g<群組>:指定用戶所屬的群組;
-G<群組>:指定用戶所屬的附加群組;
-m:自動建立用戶的登入目錄;
-M:不要自動建立用戶的登入目錄;
-n:取消建立以用戶名稱為名的群組;
-r:建立系統帳號;
-s<shell>:指定用戶登入后所使用的shell;
-u<uid>:指定用戶id。
參數
用戶名:要創建的用戶名。
實例
新建用戶加入組:
useradd –g sales jack –G company,employees //-g:加入主要組、-G:加入次要組
建立一個新用戶賬戶,並設置ID:
useradd caojh -u 544
需要說明的是,設定ID值時盡量要大於500,以免沖突。因為Linux安裝后會建立一些特殊用戶,一般0到499之間的值留給bin、mail這樣的系統賬號。
passwd命令
passwd命令用於設置用戶的認證信息,包括用戶密碼、密碼過期時間等。系統管理者則能用它管理系統用戶的密碼。只有管理者可以指定用戶名稱,一般用戶只能變更自己的密碼。
語法
passwd(選項)(參數)
選項
-d:刪除密碼,僅有系統管理者才能使用; -f:強制執行; -k:設置只有在密碼過期失效后,方能更新; -l:鎖住密碼; -s:列出密碼的相關信息,僅有系統管理者才能使用; -u:解開已上鎖的帳號。
參數
用戶名:需要設置密碼的用戶名。
知識擴展
與用戶、組賬戶信息相關的文件
存放用戶信息:
/etc/passwd /etc/shadow
存放組信息:
/etc/group /etc/gshadow
用戶信息文件分析(每項用:
隔開)
例如:jack:X:503:504:::/home/jack/:/bin/bash
jack //用戶名
X //口令、密碼
503 //用戶id(0代表root、普通新建用戶從500開始)
504 //所在組
: //描述
/home/jack/ //用戶主目錄
/bin/bash //用戶缺省Shell
組信息文件分析
例如:jack:$!$:???:13801:0:99999:7:*:*: jack //組名 $!$ //被加密的口令 13801 //創建日期與今天相隔的天數 0 //口令最短位數 99999 //用戶口令 7 //到7天時提醒 * //禁用天數 * //過期天數
實例
如果是普通用戶執行passwd只能修改自己的密碼。如果新建用戶后,要為新用戶創建密碼,則用passwd用戶名,注意要以root用戶的權限來創建。
[root@localhost ~]# passwd linuxde //更改或創建linuxde用戶的密碼; Changing password for user linuxde. New UNIX password: //請輸入新密碼; Retype new UNIX password: //再輸入一次; passwd: all authentication tokens updated successfully. //成功;
普通用戶如果想更改自己的密碼,直接運行passwd即可,比如當前操作的用戶是linuxde。
[linuxde@localhost ~]$ passwd Changing password for user linuxde. //更改linuxde用戶的密碼; (current) UNIX password: //請輸入當前密碼; New UNIX password: //請輸入新密碼; Retype new UNIX password: //確認新密碼; passwd: all authentication tokens updated successfully. //更改成功;
比如我們讓某個用戶不能修改密碼,可以用-l
選項來鎖定:
[root@localhost ~]# passwd -l linuxde //鎖定用戶linuxde不能更改密碼;
Locking password for user linuxde.
passwd: Success //鎖定成功;
[linuxde@localhost ~]# su linuxde //通過su切換到linuxde用戶;
[linuxde@localhost ~]$ passwd //linuxde來更改密碼;
Changing password for user linuxde.
Changing password for linuxde
(current) UNIX password: //輸入linuxde的當前密碼;
passwd: Authentication token manipulation error //失敗,不能更改密碼;
再來一例:
[root@localhost ~]# passwd -d linuxde //清除linuxde用戶密碼; Removing password for user linuxde. passwd: Success //清除成功; [root@localhost ~]# passwd -S linuxde //查詢linuxde用戶密碼狀態; Empty password. //空密碼,也就是沒有密碼;
注意:當我們清除一個用戶的密碼時,登錄時就無需密碼,這一點要加以注意。
who命令
who命令是顯示目前登錄系統的用戶信息。執行who命令可得知目前有那些用戶登入系統,單獨執行who命令會列出登入帳號,使用的終端機,登入時間以及從何處登入或正在使用哪個X顯示器。
語法
who(選項)(參數)
選項
-H或--heading:顯示各欄位的標題信息列;
-i或-u或--idle:顯示閑置時間,若該用戶在前一分鍾之內有進行任何動作,將標示成"."號,如果該用戶已超過24小時沒有任何動作,則標示出"old"字符串;
-m:此參數的效果和指定"am i"字符串相同;
-q或--count:只顯示登入系統的帳號名稱和總人數;
-s:此參數將忽略不予處理,僅負責解決who指令其他版本的兼容性問題;
-w或-T或--mesg或--message或--writable:顯示用戶的信息狀態欄; --help:在線幫助; --version:顯示版本信息。
參數
文件:指定查詢文件。
實例
[root@localhost ~]# who
root pts/0 2013-08-19 15:04 (192.168.0.134)
root pts/1 2013-12-20 10:37 (180.111.155.40)
[root@localhost ~]# who -q
root root
# users=2
[root@localhost ~]# who -H
NAME LINE time COMMENT root pts/0 2013-08-19 15:04 (192.168.0.134) root pts/1 2013-12-20 10:37 (180.111.155.40) [root@localhost ~]# who -w root + pts/0 2013-08-19 15:04 (192.168.0.134) root + pts/1 2013-12-20 10:37 (180.111.155.40)
uptime命令
uptime命令能夠打印系統總共運行了多長時間和系統的平均負載。uptime命令可以顯示的信息顯示依次為:現在時間、系統已經運行了多長時間、目前有多少登陸用戶、系統在過去的1分鍾、5分鍾和15分鍾內的平均負載。
語法
uptime(選項)
選項
-V:顯示指令的版本信息。
實例
使用uptime命令查看系統負載:
[root@LinServ-1 ~]# uptime -V #顯示uptime命令版本信息 procps version 3.2.7 [root@LinServ-1 ~]# uptime 15:31:30 up 127 days, 3:00, 1 user, load average: 0.00, 0.00, 0.00
顯示內容說明:
15:31:30 //系統當前時間 up 127 days, 3:00 //主機已運行時間,時間越大,說明你的機器越穩定。 1 user //用戶連接數,是總連接數而不是用戶數 load average: 0.00, 0.00, 0.00 // 系統平均負載,統計最近1,5,15分鍾的系統平均負載
那么什么是系統平均負載呢? 系統平均負載是指在特定時間間隔內運行隊列中的平均進程數。
如果每個CPU內核的當前活動進程數不大於3的話,那么系統的性能是良好的。如果每個CPU內核的任務數大於5,那么這台機器的性能有嚴重問題。
如果你的linux主機是1個雙核CPU的話,當Load Average 為6的時候說明機器已經被充分使用了。
w命令
w命令用於顯示已經登陸系統的用戶列表,並顯示用戶正在執行的指令。執行這個命令可得知目前登入系統的用戶有那些人,以及他們正在執行的程序。單獨執行w命令會顯示所有的用戶,您也可指定用戶名稱,僅顯示某位用戶的相關信息。
gzip命令
gzip命令用來壓縮文件。gzip是個使用廣泛的壓縮程序,文件經它壓縮過后,其名稱后面會多處“.gz”擴展名。
gzip是在Linux系統中經常使用的一個對文件進行壓縮和解壓縮的命令,既方便又好用。gzip不僅可以用來壓縮大的、較少使用的文件以節省磁盤空間,還可以和tar命令一起構成Linux操作系統中比較流行的壓縮文件格式。據統計,gzip命令對文本文件有60%~70%的壓縮率。減少文件大小有兩個明顯的好處,一是可以減少存儲空間,二是通過網絡傳輸文件時,可以減少傳輸的時間。
語法
gzip(選項)(參數)
選項
-a或——ascii:使用ASCII文字模式;
-d或--decompress或----uncompress:解開壓縮文件;
-f或——force:強行壓縮文件。不理會文件名稱或硬連接是否存在以及該文件是否為符號連接;
-h或——help:在線幫助; -l或——list:列出壓縮文件的相關信息; -L或——license:顯示版本與版權信息; -n或--no-name:壓縮文件時,不保存原來的文件名稱及時間戳記; -N或——name:壓縮文件時,保存原來的文件名稱及時間戳記; -q或——quiet:不顯示警告信息; -r或——recursive:遞歸處理,將指定目錄下的所有文件及子目錄一並處理; -S或<壓縮字尾字符串>或----suffix<壓縮字尾字符串>:更改壓縮字尾字符串; -t或——test:測試壓縮文件是否正確無誤; -v或——verbose:顯示指令執行過程; -V或——version:顯示版本信息; -<壓縮效率>:壓縮效率是一個介於1~9的數值,預設值為“6”,指定愈大的數值,壓縮效率就會愈高; --best:此參數的效果和指定“-9”參數相同; --fast:此參數的效果和指定“-1”參數相同。
參數
文件列表:指定要壓縮的文件列表。
實例
把test6目錄下的每個文件壓縮成.gz文件
gzip *
把上例中每個壓縮的文件解壓,並列出詳細的信息
gzip -dv *
詳細顯示例1中每個壓縮的文件的信息,並不解壓
gzip -l *
壓縮一個tar備份文件,此時壓縮文件的擴展名為.tar.gz
gzip -r log.tar
遞歸的壓縮目錄
gzip -rv test6
這樣,所有test下面的文件都變成了*.gz,目錄依然存在只是目錄里面的文件相應變成了*.gz.這就是壓縮,和打包不同。因為是對目錄操作,所以需要加上-r選項,這樣也可以對子目錄進行遞歸了。
遞歸地解壓目錄
gzip -dr test6
gunzip命令
gunzip命令用來解壓縮文件。gunzip是個使用廣泛的解壓縮程序,它用於解開被gzip壓縮過的文件,這些壓縮文件預設最后的擴展名為.gz。事實上gunzip就是gzip的硬連接,因此不論是壓縮或解壓縮,都可通過gzip指令單獨完成。
語法
gunzip(選項)(參數)
選項
-a或——ascii:使用ASCII文字模式;
-c或--stdout或--to-stdout:把解壓后的文件輸出到標准輸出設備;
-f或-force:強行解開壓縮文件,不理會文件名稱或硬連接是否存在以及該文件是否為符號連接;
-h或——help:在線幫助;
-l或——list:列出壓縮文件的相關信息;
-L或——license:顯示版本與版權信息;
-n或--no-name:解壓縮時,若壓縮文件內含有原來的文件名稱及時間戳記,則將其忽略不予處理;
-N或——name:解壓縮時,若壓縮文件內含有原來的文件名稱及時間戳記,則將其回存到解開的文件上;
-q或——quiet:不顯示警告信息;
-r或——recursive:遞歸處理,將指定目錄下的所有文件及子目錄一並處理;
-S或<壓縮字尾字符串>或----suffix<壓縮字尾字符串>:更改壓縮字尾字符串;
-t或——test:測試壓縮文件是否正確無誤; -v或——verbose:顯示指令執行過程; -V或——version:顯示版本信息;
參數
文件列表:指定要解壓縮的壓縮包。
實例
首先將/etc
目錄下的所有文件以及子目錄進行壓縮,備份壓縮包etc.zip到/opt
目錄,然后對etc.zip文件進行gzip壓縮,設置gzip的壓縮級別為9。
zip –r /opt/etc.zip /etc gzip -9v /opt/etc.zip
查看上述etc.zip.gz文件的壓縮信息。
gzip -l /opt/etc.zip.gz compressed uncompressed ratio uncompressed_name 11938745 12767265 6.5% /opt/etc.zip
解壓上述etc.zip.gz文件到當前目錄。
[root@mylinux ~]#gzip –d /opt/etc.zip.gz 或者執行 [root@mylinux ~]#gunzip /opt/etc.zip.gz
通過上面的示例可以知道gzip –d
等價於gunzip
命令。
tar命令
tar命令可以為linux的文件和目錄創建檔案。利用tar,可以為某一特定文件創建檔案(備份文件),也可以在檔案中改變文件,或者向檔案中加入新的文件。tar最初被用來在磁帶上創建檔案,現在,用戶可以在任何設備上創建檔案。利用tar命令,可以把一大堆的文件和目錄全部打包成一個文件,這對於備份文件或將幾個文件組合成為一個文件以便於網絡傳輸是非常有用的。
首先要弄清兩個概念:打包和壓縮。打包是指將一大堆文件或目錄變成一個總的文件;壓縮則是將一個大的文件通過一些壓縮算法變成一個小文件。
為什么要區分這兩個概念呢?這源於Linux中很多壓縮程序只能針對一個文件進行壓縮,這樣當你想要壓縮一大堆文件時,你得先將這一大堆文件先打成一個包(tar命令),然后再用壓縮程序進行壓縮(gzip bzip2命令)。
語法
tar(選項)(參數)
選項
-A或--catenate:新增文件到以存在的備份文件;
-B:設置區塊大小;
-c或--create:建立新的備份文件;
-C <目錄>:這個選項用在解壓縮,若要在特定目錄解壓縮,可以使用這個選項。
-d:記錄文件的差別;
-x或--extract或--get:從備份文件中還原文件;
-t或--list:列出備份文件的內容;
-z或--gzip或--ungzip:通過gzip指令處理備份文件;
-Z或--compress或--uncompress:通過compress指令處理備份文件; -f<備份文件>或--file=<備份文件>:指定備份文件; -v或--verbose:顯示指令執行過程; -r:添加文件到已經壓縮的文件; -u:添加改變了和現有的文件到已經存在的壓縮文件; -j:支持bzip2解壓文件; -v:顯示操作過程; -l:文件系統邊界設置; -k:保留原有文件不覆蓋; -m:保留文件不被覆蓋; -w:確認壓縮文件的正確性; -p或--same-permissions:用原來的文件權限還原文件; -P或--absolute-names:文件名使用絕對名稱,不移除文件名稱前的“/”號; -N <日期格式> 或 --newer=<日期時間>:只將較指定日期更新的文件保存到備份文件里; --exclude=<范本樣式>:排除符合范本樣式的文件。
參數
文件或目錄:指定要打包的文件或目錄列表。
實例
將文件全部打包成tar包:
tar -cvf log.tar log2012.log 僅打包,不壓縮! tar -zcvf log.tar.gz log2012.log 打包后,以 gzip 壓縮 tar -jcvf log.tar.bz2 log2012.log 打包后,以 bzip2 壓縮
在選項f
之后的文件檔名是自己取的,我們習慣上都用 .tar 來作為辨識。 如果加z
選項,則以.tar.gz或.tgz來代表gzip壓縮過的tar包;如果加j
選項,則以.tar.bz2來作為tar包名。
查閱上述tar包內有哪些文件:
tar -ztvf log.tar.gz
由於我們使用 gzip 壓縮的log.tar.gz,所以要查閱log.tar.gz包內的文件時,就得要加上z
這個選項了。
將tar包解壓縮:
tar -zxvf /opt/soft/test/log.tar.gz
在預設的情況下,我們可以將壓縮檔在任何地方解開的
只將tar內的部分文件解壓出來:
tar -zxvf /opt/soft/test/log30.tar.gz log2013.log
我可以透過tar -ztvf
來查閱 tar 包內的文件名稱,如果單只要一個文件,就可以透過這個方式來解壓部分文件!
文件備份下來,並且保存其權限:
tar -zcvpf log31.tar.gz log2014.log log2015.log log2016.log
這個-p
的屬性是很重要的,尤其是當您要保留原本文件的屬性時。
在文件夾當中,比某個日期新的文件才備份:
tar -N "2012/11/13" -zcvf log17.tar.gz test
備份文件夾內容是排除部分文件:
tar --exclude scf/service -zcvf scf.tar.gz scf/*
其實最簡單的使用 tar 就只要記憶底下的方式即可:
壓 縮:tar -jcv -f filename.tar.bz2 要被壓縮的文件或目錄名稱 查 詢:tar -jtv -f filename.tar.bz2 解壓縮:tar -jxv -f filename.tar.bz2 -C 欲解壓縮的目錄
zip命令
zip命令可以用來解壓縮文件,或者對文件進行打包操作。zip是個使用廣泛的壓縮程序,文件經它壓縮后會另外產生具有“.zip”擴展名的壓縮文件。
語法
zip(選項)(參數)
選項
-A:調整可執行的自動解壓縮文件;
-b<工作目錄>:指定暫時存放文件的目錄;
-c:替每個被壓縮的文件加上注釋;
-d:從壓縮文件內刪除指定的文件;
-D:壓縮文件內不建立目錄名稱;
-f:此參數的效果和指定“-u”參數類似,但不僅更新既有文件,如果某些文件原本不存在於壓縮文件內,使用本參數會一並將其加入壓縮文件中;
-F:嘗試修復已損壞的壓縮文件;
-g:將文件壓縮后附加在已有的壓縮文件之后,而非另行建立新的壓縮文件;
-h:在線幫助;
-i<范本樣式>:只壓縮符合條件的文件;
-j:只保存文件名稱及其內容,而不存放任何目錄名稱;
-J:刪除壓縮文件前面不必要的數據;
-k:使用MS-DOS兼容格式的文件名稱;
-l:壓縮文件時,把LF字符置換成LF+CR字符;
-ll:壓縮文件時,把LF+cp字符置換成LF字符;
-L:顯示版權信息;
-m:將文件壓縮並加入壓縮文件后,刪除原始文件,即把文件移到壓縮文件中;
-n<字尾字符串>:不壓縮具有特定字尾字符串的文件;
-o:以壓縮文件內擁有最新更改時間的文件為准,將壓縮文件的更改時間設成和該文件相同;
-q:不顯示指令執行過程;
-r:遞歸處理,將指定目錄下的所有文件和子目錄一並處理;
-S:包含系統和隱藏文件;
-t<日期時間>:把壓縮文件的日期設成指定的日期;
-T:檢查備份文件內的每個文件是否正確無誤;
-u:更換較新的文件到壓縮文件內;
-v:顯示指令執行過程或顯示版本信息;
-V:保存VMS操作系統的文件屬性;
-w:在文件名稱里假如版本編號,本參數僅在VMS操作系統下有效; -x<范本樣式>:壓縮時排除符合條件的文件; -X:不保存額外的文件屬性; -y:直接保存符號連接,而非該鏈接所指向的文件,本參數僅在UNIX之類的系統下有效; -z:替壓縮文件加上注釋; -$:保存第一個被壓縮文件所在磁盤的卷冊名稱; -<壓縮效率>:壓縮效率是一個介於1~9的數值。
參數
- zip壓縮包:指定要創建的zip壓縮包;
- 文件列表:指定要壓縮的文件列表。
實例
將/home/Blinux/html/
這個目錄下所有文件和文件夾打包為當前目錄下的html.zip:
zip -q -r html.zip /home/Blinux/html
上面的命令操作是將絕對地址的文件及文件夾進行壓縮,以下給出壓縮相對路徑目錄,比如目前在Bliux這個目錄下,執行以下操作可以達到以上同樣的效果:
zip -q -r html.zip html
比如現在我的html目錄下,我操作的zip壓縮命令是:
zip -q -r html.zip *
unzip命令
unzip命令用於解壓縮由zip命令壓縮的“.zip”壓縮包。
語法
unzip(選項)(參數)
選項
-c:將解壓縮的結果顯示到屏幕上,並對字符做適當的轉換;
-f:更新現有的文件;
-l:顯示壓縮文件內所包含的文件;
-p:與-c參數類似,會將解壓縮的結果顯示到屏幕上,但不會執行任何的轉換;
-t:檢查壓縮文件是否正確;
-u:與-f參數類似,但是除了更新現有的文件外,也會將壓縮文件中的其他文件解壓縮到目錄中;
-v:執行時顯示詳細的信息;
-z:僅顯示壓縮文件的備注文字;
-a:對文本文件進行必要的字符轉換;
-b:不要對文本文件進行字符轉換;
-C:壓縮文件中的文件名稱區分大小寫;
-j:不處理壓縮文件中原有的目錄路徑;
-L:將壓縮文件中的全部文件名改為小寫;
-M:將輸出結果送到more程序處理;
-n:解壓縮時不要覆蓋原有的文件;
-o:不必先詢問用戶,unzip執行后覆蓋原有的文件;
-P<密碼>:使用zip的密碼選項;
-q:執行時不顯示任何信息;
-s:將文件名中的空白字符轉換為底線字符;
-V:保留VMS的文件版本信息;
-X:解壓縮時同時回存文件原來的UID/GID;
-d<目錄>:指定文件解壓縮后所要存儲的目錄;
-x<文件>:指定不要處理.zip壓縮文件中的哪些文件;
-Z:unzip-Z等於執行zipinfo指令。
參數
壓縮包:指定要解壓的“.zip”壓縮包。
實例
將壓縮文件text.zip在當前目錄下解壓縮。
unzip test.zip
將壓縮文件text.zip在指定目錄/tmp
下解壓縮,如果已有相同的文件存在,要求unzip命令不覆蓋原先的文件。
unzip -n test.zip -d /tmp
查看壓縮文件目錄,但不解壓。
unzip -v test.zip
將壓縮文件test.zip在指定目錄/tmp
下解壓縮,如果已有相同的文件存在,要求unzip命令覆蓋原先的文件。
unzip -o test.zip -d tmp/