Linux必學的重要命令

我們把Linux命令按照在系統中的作用分成幾個部分分別予以介紹。但是,還有一些命令不好劃分,然而學習它們同樣是比較重要的。

   tar

   1.作用
   tar命令是Unix/Linux系統中備份文件的可靠方法,幾乎可以工作於任何環境中,它的使用權限是所有用戶。

   2.格式
   tar [主選項+輔選項] 文件或目錄

   3.主要參數
   使用該命令時,主選項是必須要有的,它告訴tar要做什麼事情,輔選項是輔助使用的,可以選用。

   主選項:
   -c 創建新的檔案文件。如果用戶想備份一個目錄或是一些文件,就要選擇這個選項。

   -r 把要存檔的文件追加到檔案文件的未尾。例如用戶已經做好備份文件,又發現還有一個目錄或是一些文件忘記備份了,這時可以使用該選項,將忘記的目錄或文件追加到備份文件中。
   -t 列出檔案文件的內容,查看已經備份了哪些文件。
   -u 更新文件。就是說,用新增的文件取代原備份文件,如果在備份文件中找不到要更新的文件,則把它追加到備份文件的最後。
   -x 從檔案文件中釋放文件。

輔助選項:
   -b 該選項是爲磁帶機設定的,其後跟一數字,用來說明區塊的大小,系統預設值爲20(20×512 bytes)。
   -f 使用檔案文件或設備,這個選項通常是必選的。
   -k 保存已經存在的文件。例如把某個文件還原,在還原的過程中遇到相同的文件,不會進行覆蓋。
   -m 在還原文件時,把所有文件的修改時間設定爲現在。
   -M 創建多卷的檔案文件,以便在幾個磁盤中存放。
   -v 詳細報告tar處理的文件信息。如無此選項,tar不報告文件信息。
   -w 每一步都要求確認。
   -z 用gzip來壓縮/解壓縮文件,加上該選項後可以將檔案文件進行壓縮,但還原時也一定要使用該選項進行解壓縮。

   4.應用說明
   tar是Tape Archive(磁帶歸檔)的縮寫,最初設計用於將文件打包到磁帶上。如果下載過Linux的源代碼,或許已經碰到過tar文件。tar是一個基於文件的命令,它本質上是連續地、首尾相連地堆放文件。使用tar可以打包整個目錄樹,這使得它特別適合用於備份。歸檔文件可以全部還原,或者從中展開單獨的文件和目錄。備份可以保存到基於文件的設備或磁帶設備上。文件可以在還原時重定向,以便將它們重新放到一個與最初保存它們的目錄(或系統)不同的目錄(或系統)。tar與文件系統無關,可以使用在ext2、ext3、JFS、Reiser和其它文件系統上。它支持各種備份介質,包括軟盤、光盤寫入器、可重寫的光盤、JazZip、磁帶、高端磁帶等。Linux中以.tar結尾的文件都是用tar創建的。它的使用超出了單純的備份,可用來把許多不同文件放到一起組成一個易於分開的文件。如果使用Linux源代碼安裝程序,一定使用過tar文件。這是一個基於文件的命令,它本質上是連續地、首尾相連地堆放文件。tar官方網址是http://www.gnu.
org/software/tar/tar.html。

   請注意,不要忘了Linux是區分大小寫的。例如,tar命令應該總是以小寫的形式執行。命令行開關可以是大寫、小寫或大小寫的混合。例如,-t和-T執行不同的功能。文件或目錄名稱可以混合使用大小寫,而且就像命令和命令行開關一樣是區分大小寫的。

   5.應用實例
   tar是一個命令行的工具,沒有圖形界面。使用Konsole打開一個終端窗口,接下來是一個簡單的備份命令(在 /temp目錄中創建一個back.tar的文件,/usr目錄中所有內容都包含在其中。):
   $tar cvf - /usr > /temp/back.tar

   另外,tar命令支持前面第三講中講過的crontab命令,可以用crontab工具設置成基於時間的有規律地運行。例如,每晚6點把/usr目錄備份到hda—第一個IDE接口的主驅動器
(總是位於第一個硬盤)中,只要將下面語句添加到root的crontab中即可:
   $00 06 * * * tar cvf /dev/hda1/usrfiles.tar - /usr

   一般情況下,以下這些目錄是需要備份的:
   ◆/etc 包含所有核心配置文件,其中包括網絡配置、系統名稱、防火牆規則、用戶、組,以及其它全局系誠睢?
   ◆ /var 包含系統守護進程(服務)所使用的信息,包括DNS配置、DHCP租期、郵件緩衝文件、HTTP服務器文件、dB2實例配置等。
   ◆/home 包含所有默認用戶的主目錄,包括個人設置、已下載的文件和用戶不希望失去的其它信息。
   ◆/root 根(root)用戶的主目錄。
   ◆/opt 是安裝許多非系統文件的地方。IBM軟件就安裝在這裏。OpenOffice、JDK和其它軟件在默認情況下也安裝在這裏。

   有些目錄是可以不備份的:
   ◆ /proc 應該永遠不要備份這個目錄。它不是一個真實的文件系統,而是運行內核和環境的虛擬化視圖,包括諸如/proc/kcore這樣的文件,這個文件是整個運行內存的虛擬視圖。備份這些文件只是在浪費資源。
   ◆/dev 包含硬件設備的文件表示。如果計劃還原到一個空白的系統,就可以備份/dev。然而,如果計劃還原到一個已安裝的Linux
系統,那麼備份/dev是沒有必要的。

   unzip

   1.作用
   unzip命令位於/usr/bin目錄中,它們和MS DOS下的pkzip、pkunzip及MS
Windows中的Winzip軟件功能一樣,將文件壓縮成.zip文件,以節省硬盤空間,當需要的時候再將壓縮文件用unzip命令解開。該命令使用權限是所有用戶。

   2.格式
   unzip [-cflptuvz][-agCjLMnoqsVX][-P <密碼>][.zip文件][文件][-d <目錄>][-x <文件>]

   3.主要參數
   -c:將解壓縮的結果顯鏡狡聊簧希⒍宰址鍪實鋇淖弧?BR>    -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。
   [.zip文件]:指定.zip壓縮文件。
   [文件]:指定要處理.zip壓縮文件中的哪些文件。
   -d<目錄>:指定文件解壓縮後所要存儲的目錄。
   -x<文件>:指定不要處理.zip壓縮文件中的哪些文件。
   -Z unzip:-Z等於執行zipinfo指令。在Linux中,還提供了一個叫zipinfo的工具,能夠察看zip壓縮文件的詳細信息。unzip最新版本是5.50。

   gunzip

   1.作用
   gunzip命令作用是解壓文件,使用權限是所有用戶。

   2.格式
   gunzip [-acfhlLnNqrtvV][-s <壓縮字尾字符串>][文件...]
   或者
   gunzip [-acfhlLnNqrtvV][-s <壓縮字尾字符串>][目錄]

   3.主要參數
   -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:顯示版本信息。

   4.說明
   gunzip是個使用廣泛的解壓縮程序,它用於解開被gzip壓縮過的文件,這些壓縮文件預設最後的擴展名爲".gz"。事實上,gunzip就是gzip的硬連接,因此不論是壓縮或解壓縮,都可通過gzip指令單獨完成。gunzip最新版本是1.3.3

   unarj

   1.作用
   unarj解壓縮格式爲.arj格式的文件,使用權限是所有用戶。

   2.格式
   unarj [eltx][.arj壓縮文件]

   3.主要參數
   e:解壓縮.arj文件。
   l:顯示壓縮文件內所包含的文件。
   t:檢查壓縮文件是否正確。
   x:解壓縮時保留原有的路徑。

   4.說明
   帶有.arj擴展名的文件是由用於MS
DOS和Windows的ARJ實用程序創建的。因爲ARJ是一種不能免費獲得源代碼的共享件程序,所以在Linux平臺上幾乎不存在與其功能匹配的工具,要解壓縮.arj文件,就要使用unarj實用程序。unarj比ARJ慢,能力也不如ARJ,但至少能夠順利地抽取大多數.arj文件。unarj只能將文件抽取到當前的工作目錄、列出檔案內容,或者測試檔案。從ARJ
Software的站點或攜帶所需Linux發行版的FTP服務器上可以下載unarj源碼。另外,unarj通常是基本Linux發行版的一部分,因此可以在主要發行版本的CD-ROM上找到它。如果需要可到所有Linux發行版鏈接的列表下載,ARJ軟件網址爲http://www.arjsoft.com,ARJ的下載頁面爲http://www.arjsoft.com/files.htm。unarj最新版本是2.65,注意unarj選項不是以減號(-)開頭的。

   mtools

   1.作用
   mtools實際上是一個命令集合,是DOS文件系統的工具程序,它可以模擬許多DOS命令,使用起來非常方便。使用權限是所有用戶。Linux系統提供了一組稱爲mtools的可移植工具,可以讓用戶輕鬆地從標準的DOS軟盤上讀、寫文件和目錄。它們對DOS和Linux環境之間交換文件非常有用。mtools的使用非常簡單,如果想把軟盤裏所有的文件都拷貝到硬盤上,那麼就可以執行以下命令:
   mcopy a:*.*

   也就是說,只需要在相應的DOS命令之前加上一個字母"m",就可以完成對應的功能了。一般Linux發行版本中都有這個軟件,可以使用下面命令檢查一下。
   rpm -qa|grep mtools

   如果沒有安裝,也沒有關係,可以從網上下載(http://mtools.linux.lu/)一個最新版本來安裝。目前可供下載的最新mtools版本是3.9.9,下載鏈接爲http://mtools.linux.lu/mtools-3.9.9-3.i386.rpm。下載後安裝一下即可。

   2.包括的命令
   mcd 目錄名:改變MS DOS下的目錄。
   mcopy 源文件 目標文件:在MS DOS和Unix之間複製文件。
   mdel 文件名:刪除MS DOS下的文件。
   mdir 目錄名:顯示MS DOS下的目錄。
   mformat 驅動器號:在低級格式化的軟盤上創建MS DOS文件系統。
   rnlabel 驅動器號:產生MS DOS下的卷標。
   mmd 目錄名:建立MS DOS下的目錄。
   mrd 目錄名:刪除MS DOS下的目錄。
   mren 源文件 目標文件:重新命名已存在的MS DOS文件。
   mtype 文件名:顯示MS DOS文件的內容。

   請注意,這些命令和對應的MS
DOS命令非常相似。在mtools命令中,"/"和"/"是可以混用的。因爲文件列表的是DOS系統下的文檔,對大小寫並不敏感,所以"CDE"和"cde"在這裏是一樣的。

   3.應用實例
   (1)如果把軟盤進行快速格式化,可以使用命令mformat:
   mformat A:

   mtools當初發展的目的是用來處理DOS文件系統的 ,所以只能用在FAT文件格式的分區上。需要注意的是,如果用mount命令來掛載了FAT16/32分區,那麼就不能使用mtools的指令來處理這些分區上的文件。這是因爲一旦FAT16/32分區掛到了Linux文件目錄下,Linux就會將其視爲文件系統本身的一部分,這時如果要對其操作就必須使用Linux本身所附帶的指令集。

   (2)將DOS盤上的文件htca.c複製到當前目錄下,並用ls命令進行驗證。

$ mcopy a:/htca.c
$ ls -l htca.c
-rw-r- -r- - 1 xxq xxq 27136 Jan 1 01:80 htca.c

man

   1.作用

man命令用來提供在線幫助,使用權限是所有用戶。在Linux系統中存儲着一部聯機使用的手冊,以供用戶在終端上查找。使用man命令可以調閱其中的幫助信息,非常方便和實用。

   2.格式
   man 命令名稱
   man [-acdfhkKtwW] [-m system] [-p string] [-C config_file] [-M
path] [-P pager] [-S section_list] [section] name ...

   3.參數
   -C config_file:指定設定文件man.conf,缺省值是/etc/man.conf。
   -M path:指定了聯機手冊的搜尋路徑, 如果沒有指定則使用環境變數MANPATH的設定;如果沒有使用MANPATH,
則會使用/usr/lib/man.conf內的設定;如果MANPATH是空字串,則表示使用缺省值。
   -P pager:指定使用何種pager.man會優先使用此選項設定,然後是依環境變數MANPAGER設定,然後是環境變數PAGER;man缺省使用/usr/bin/less
-is。
   -S section_list man:所搜尋的章節列表(以冒號分隔),此選項會覆蓋環境變數MANSECT的設定。
   -a man:缺省情況是在顯示第一個找到的手冊之後,就會停止搜尋,使用此選項會強迫man繼續顯示所有符合name的聯機手冊。
   -c:即使有最新的cat page,也繼續對聯機手冊重新作排版,本選項在屏幕的行列數改變時或已排版的聯機手冊損壞時特別有意義。
   -d:不要真的顯示聯機手冊,只顯示除錯訊息。
   -D:同時顯示聯機手冊與除錯訊息。
   -h:顯示求助訊息然後結束程式 。
   -K:對所有的聯機手冊搜尋所指定的字串。請注意,本功能迴應速度可能很慢,如果指定section(區域)會對速度有幫助。
   -m system:依所指定的system名稱而指定另一組的聯機手冊。
   man:是manual(手冊)的縮寫。在輸入命令有困難時,可以立刻得到這個文檔。例如, 如果使用ps命令時遇到困難,可以輸入man
ps得到幫助信息,此時會顯示出ps的手冊頁(man page)。

   由於手冊頁man page是用less程序來看的(可以方便地使屏幕上翻和下翻), 所以在man page裏可以使用less的所有選項。

   less中比較重要的功能鍵有:
   [q] 退出;
   [Enter] 一行行地下翻;
   [Space] 一頁頁地下翻;
   [b] 上翻一頁;
   [/] 後跟一個字符串和[Enter]來查找字符串;
   [n] 發現上一次查找的下一個匹配。

   4.閱讀手冊頁
   手冊頁在很少的空間裏提供了很多的信息,
這裏簡單介紹一下大多數手冊頁中都有的部分內容。Linux手冊頁主要有九個部分:用戶指令、系統調用、程序庫、設備說明、文件格式、遊戲、雜項、系統指令、內核,手冊頁快照見圖1所示。

圖1 ps命令手冊頁快照

   Linux手冊頁佈局見表1。

   5.應用實例
   Linux命令中有一些基礎的、重要的命令,例如ps、find、cat和ls等。下面來舉一個綜合應用的例子,由此可以看出man的地位在Linux中可謂至關重要。但是,man所顯示的信息卻不是普通的文本,如果直接將這些文字重定向到一個文本文件,就會發現在man中高亮顯示的文字就變成了兩個,而且有不計其數的製表符,使打印、編輯都變得非常不便。不過,使用下面這樣一條語句就能得到ps命令打印。
   # man ps | col -b | lpr

   這條命令同時運用了輸出重定向和管道兩種技巧,作用是將ps命令的幫助信息可以直接打印出來。更多的Man文件可以查看Linux Man
Pages簡體中文版主頁,其鏈接爲http://cmpp.linuxforum.net/

   unencode

   1.作用
   unencode命令可以把一個二進制文件表編碼爲一個文本文件,使用權限是所有用戶。

   2.格式
   uuencode [-hv] [源文件] 目標文件

   3.主要參數
   -h:列出指令使用格式(help) 。
   -v:列出版本信息。

   4.應用說明
   uuencode指令可以將二進制文件轉化成可使用電子郵件發送的ASCII編碼形式。uuencode編碼後的資料都以
begin開始,以end作爲結束,且通常其中的每一行的開始均爲"M",中間部分是編碼過的文件,編碼後的文件比源文件要大一些。

   uudecode

   1.作用
   uudecode命令用來將uuencode編碼後的檔案還原,uudecode只會將begin與end標記之間的編碼資料還原,程序會跳過標記以外的資料。它的使用權限爲所有用戶。

   2.格式
   uuencode [-hv] [file1 ...]

   3.主要參數
   -h:列出指令使用格式(help)。
   -v:列出版本信息。

   4.應用實例
   使用下面命令一次還原幾個文件:
   uuencode file1.uud file2.uud file3.uud

   動手練習

   1.在Linux命令行下發送郵件
   雖然Linux桌面應用發展很快,但是命令行(Shell)在Linux中依然有很強的生命力。如果能確認電子郵件服務器支持8bit的字節,就可以直接使用下面命令:
   cat <附件文件名> | mail <郵件地址>

   cat(cat是concatenate的縮寫)命令是將幾個文件處理成一個文件,並將這種處理的結果保存到一個單獨的輸出文件,這裏我們用它來合併郵件的文本。

   寫好郵件名稱,比如叫cjkmail,然後使用下面命令:
   $uuencode <附件文件名> <附件文件名> >>cjkmail

   這樣就可以用vi編輯器寫cjkmail文件,並在前面寫上信的正文,然後寄出。

   對方收到信後,把信中屬於cjkmail中的內容拷貝出來,存爲themail.uue。如果對方是在Windows下,就可以用WinRAR或WinZip解壓,這樣就可以看到附件。

   如果對方也使用Linux,可以用undecode命令還原:
   $ uudencode -o<附件文件名> themail.uue

   2.實現tar的分卷
   筆者想把一個378MB的文件壓縮成多個63MB的文件(筆者的USB爲64MB),使用下面命令:
   $tar czvf - dir | split -d -b 63m

   然後合併命令:
   $cat x* > dir.tgz

   以上例子實際是由三個命令組合完成的,即用tar打包,用split分割,用cat合併。"tar czvf -
dir"的意思是把dir目錄打包,並輸出到標準輸出(argv),這樣就可以直接用管道輸出給split。

   3.連續執行一個命令
   使用watch命令,可以反覆執行命令。如果和ls配合,可以達到觀察某文件大小變化的效果。
   $watch ls -l file.name

   4.用tar命令導出一個文件
   有一個tar格式的DVD文件GLvPro6.4_linux.tar,因爲該文件非常大(4.7GB),如果全部解壓比較麻煩,可以用下面命令先導出readme.txt看看。
   tar xvf GLvPro6.4_linux.tar readme.txt

   這樣readme.txt就單獨被導出了。

   5.用tar打包一個目錄時只備份其中的幾個子目錄
   tar cf --exclude home/cjh home/cao

   這樣home目錄下只有cjh和cao兩個子目錄備份。

   到此爲止,Linux必學的60個命令已經全部介紹完了。Linux的命令行方式功能強大,如果熟練掌握了Linux的常用命令,往往只需要通過各種技巧就可以組合構成一條複雜的命令,從而完成用戶任務。Linux系統中的命令實在是太多了,不可能像在MS
DOS中把所有的命令及參數都記住。Linux系統提供了一些方法,比如可以通過"help"和"man"來查詢名令。 

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