【Linux】linux命令大全


 【注意】:命令【compgen -b】可以列出所有當前系統支持的命令。

109個Linux命令

目錄

1       文件管理... 5

1.1          basename. 5

1.2          cat 5

1.3          cd. 5

1.4          chgrp. 5

1.5          chmod. 6

1.6          chown. 7

1.7          comm.. 7

1.8          cp. 7

1.9          cut 8

1.10        dd. 8

1.11        diff 9

1.12        dir 10

1.13        dos2unix. 11

1.14        egrep. 11

1.15        fgrep. 11

1.16        file. 12

1.17        find. 12

1.18        grep. 14

1.19        head. 14

1.20        Less. 15

1.21        ln. 15

1.22        locate. 16

1.23        ls. 16

1.24        mkdir 17

1.25        more. 17

1.26        mv. 18

1.27        od. 18

1.28        pwd. 19

1.29        rename. 19

1.30        rm.. 20

1.31        rmdir 20

1.32        sed. 20

1.33        sort 21

1.34        tail 21

1.35        touch. 22

1.36        uniq. 22

1.37        unix2dos. 23

1.38        vdir 23

1.39        vi 23

1.40        wc. 26

2       磁盤管理... 27

2.1          dd. 27

2.2          df 29

2.3          du. 30

2.4          fdisk. 30

2.5          format 31

2.6          free. 31

2.7          mount 32

2.8          umount 35

3       壓縮管理... 37

3.1          bunzip2. 37

3.2          bzip2. 37

3.3          cpio. 38

3.4          gunzip. 39

3.5          gzip. 39

3.6          split 40

3.7          tar 40

3.8          unzip. 42

3.9          zgrep. 43

3.10        zip. 43

4       進程管理... 45

4.1          crontab. 45

4.2          kill 45

4.3          nohup. 45

4.4          ps. 46

4.5          renice. 47

4.6          top. 48

4.7          who. 48

5       網絡管理... 49

5.1          Curl 49

5.2          finger 51

5.3          ftp. 51

5.4          ifconfig. 51

5.5          ip. 52

5.6          netstat 55

5.7          nslookup. 56

5.8          ping. 57

5.9          rcp. 57

5.10        route. 57

5.11        tcpdump. 58

5.12        telnet 59

5.13        traceroute. 59

6       系統管理... 61

6.1          cal 61

6.2          cat 61

6.3          chsh. 61

6.4          clear 62

6.5          date. 62

6.6          echo. 63

6.7          ethtool 63

6.8          free. 65

6.9          getconf 65

6.10        groupadd. 66

6.11        groupdel 66

6.12        groupmod. 66

6.13        id. 67

6.14        init 67

6.15        ipcs. 68

6.16        mesg. 68

6.17        passwd. 69

6.18        rpm.. 69

6.19        service. 71

6.20        setup. 71

6.21        shutdown. 72

6.22        su. 72

6.23        sync. 72

6.24        uname. 73

6.25        uptime. 73

6.26        useradd. 73

6.27        userdel 74

6.28        usermod. 74

6.29        vmstat 75

6.30        wall 76

6.31        write. 76

7       更多參考... 77

 

1       文件管理

1.1     basename

1.1.1     功能說明

從文件名中去掉路徑和擴展名  

例:basename include/stdio.h .h

Output "stdio".

1.1.2     選項

--help     顯示此幫助信息並離開

--version  顯示版本信息並離開

1.2     cat

1.2.1     功能說明

把檔案串連接后傳到基本輸出(屏幕或加 > filename 到另一個檔案)

1.2.2     語  法

cat [-AbeEnstTuv] [--help] [--version] filename

1.2.3     參數

-n 或 --number 由 1 開始對所有輸出的行數編號

-b 或 --number-nonblank 和 -n 相似,只不過對於空白行不編號

-s 或 --squeeze-blank 當遇到有連續兩行以上的空白行,就代換為一行的空白行

-v 或 --show-nonprinting

范例:

cat -n textfile1 > textfile2 把 textfile1 的檔案內容加上行號后輸入 textfile2 這個檔案里

cat -b textfile1 textfile2 >> textfile3 把 textfile1 和 textfile2 的檔案內容加上行號(空白行不加)之后將內容附加到 textfile3 里。

1.3     cd

1.3.1     功能說明

切換目錄。

1.3.2     語法

cd [目的目錄]

1.3.3     補充說明

cd指令可讓用戶在不同的目錄間切換,但該用戶必須擁有足夠的權限進入目的目錄。

1.4     chgrp

1.4.1     功能說明

變更文件或目錄的所屬群組。

語法:

chgrp [-cfhRv][--help][--version][所屬群組][文件或目錄...] 

或 chgrp [-cfhRv][--help][--reference=<參考文件或目錄>][--version][文件或目錄...] 

1.4.2     補充說明

在UNIX系統家族里,文件或目錄權限的掌控以擁有者及所屬群組來管理。您可以使用chgrp指令去變更文件與目錄的所屬群組,設置方式采用群組名稱或群組識別碼皆可。 

 

1.4.3     參數

 -c或--changes  效果類似"-v"參數,但僅回報更改的部分。 

 -f或--quiet或--silent  不顯示錯誤信息。 

 -h或--no-dereference  只對符號連接的文件作修改,而不更動其他任何相關文件。 

 -R或--recursive  遞歸處理,將指定目錄下的所有文件及子目錄一並處理。 

 -v或--verbose  顯示指令執行過程。 

 --help  在線幫助。 

 --reference=<參考文件或目錄>  把指定文件或目錄的所屬群組全部設成和參考文件或目錄的所屬群組相同。 

 --version  顯示版本信息。

1.5     chmod

1.5.1     功能說明

變更文件或目錄的權限。

 

語法:

chmod [-cfRv][--help][--version][<權限范圍>+/-/=<權限設置...>][文件或目錄...] 

或 chmod [-cfRv][--help][--version][數字代號][文件或目錄...] 

或 chmod [-cfRv][--help][--reference=<參考文件或目錄>][--version][文件或目錄...] 

1.5.2     補充說明

在UNIX系統家族里,文件或目錄權限的控制分別以讀取,寫入,執行3種一般權限來區分,另有3種特殊權限可供運用,再搭配擁有者與所屬群組管理權限范圍。您可以使用chmod指令去變更文件與目錄的權限,設置方式采用文字或數字代號皆可。符號連接的權限無法變更,如果您對符號連接修改權限,其改變會作用在被連接的原始文件。權限范圍的表示法如下: 

 u:User,即文件或目錄的擁有者。 

 g:Group,即文件或目錄的所屬群組。 

 o:Other,除了文件或目錄擁有者或所屬群組之外,其他用戶皆屬於這個范圍。 

 a:All,即全部的用戶,包含擁有者,所屬群組以及其他用戶。 

 

 有關權限代號的部分,列表於下: 

 r:讀取權限,數字代號為"4"。 

 w:寫入權限,數字代號為"2"。 

 x:執行或切換權限,數字代號為"1"。 

 -:不具任何權限,數字代號為"0"。 

1.5.3     參數

 -c或--changes  效果類似"-v"參數,但僅回報更改的部分。 

 -f或--quiet或--silent  不顯示錯誤信息。 

 -R或--recursive  遞歸處理,將指定目錄下的所有文件及子目錄一並處理。 

 -v或--verbose  顯示指令執行過程。 

 --help  在線幫助。 

 --reference=<參考文件或目錄>  把指定文件或目錄的權限全部設成和參考文件或目錄的權限相同 

 --version  顯示版本信息。 

 <權限范圍>+<權限設置>  開啟權限范圍的文件或目錄的該項權限設置。 

 <權限范圍>-<權限設置>  關閉權限范圍的文件或目錄的該項權限設置。 

 <權限范圍>=<權限設置>  指定權限范圍的文件或目錄的該項權限設置。

1.6     chown

1.6.1     功能說明

變更文件或目錄的擁有者或所屬群組。

1.6.2     語法

chown [-cfhRv][--dereference][--help][--version][擁有者.<所屬群組>][文件或目錄..] 

或chown [-chfRv][--dereference][--help][--version][.所屬群組][文件或目錄... ...] 

或chown [-cfhRv][--dereference][--help][--reference=<參考文件或目錄>][--version][文件或目錄...] 

1.6.3     補充說明

在UNIX系統家族里,文件或目錄權限的掌控以擁有者及所屬群組來管理。您可以使用chown指令去變更文件與目錄的擁有者或所屬群組,設置方式采用用戶名稱或用戶識別碼皆可,設置群組則用群組名稱或群組識別碼。 

1.6.4     參數

 -c或--changes  效果類似"-v"參數,但僅回報更改的部分。 

 -f或--quite或--silent  不顯示錯誤信息。 

 -h或--no-dereference  之對符號連接的文件作修改,而不更動其他任何相關文件。 

 -R或--recursive  遞歸處理,將指定目錄下的所有文件及子目錄一並處理。 

 -v或--version  顯示指令執行過程。 

 --dereference  效果和"-h"參數相同。 

 --help  在線幫助。 

 --reference=<參考文件或目錄>  把指定文件或目錄的擁有者與所屬群組全部設成和參考文件或目 錄的擁有者與所屬群組相同。 

 --version  顯示版本信息。

1.7     comm

1.7.1     功能說明

比較兩個已排過序的文件。

1.7.2     語法

comm [-123][--help][--version][第1個文件][第2個文件]

1.7.3     補充說明

這項指令會一列列地比較兩個已排序文件的差異,並將其結果顯示出來,如果沒有指定任何參數,則會把結果分成3行顯示:第1行僅是在第1個文件中出現過的列,第2行是僅在第2個文件中出現過的列,第3行則是在第1與第2個文件里都出現過的列。若給予的文件名稱為"-",則comm指令會從標准輸入設備讀取數據。

1.7.4     參數

  -1   不顯示只在第1個文件里出現過的列。

  -2   不顯示只在第2個文件里出現過的列。

  -3   不顯示只在第1和第2個文件里出現過的列。

  --help   在線幫助。

  --version   顯示版本信息。

1.8     cp

1.8.1     功能說明

復制文件或目錄。 

1.8.2     語法

cp [-abdfilpPrRsuvx][-S <備份字尾字符串>][-V <備份方式>][--help][--spares=<使用時機>][--version][源文件或目錄][目標文件或目錄] [目的目錄] 

1.8.3     補充說明

cp指令用在復制文件或目錄,如同時指定兩個以上的文件或目錄,且最后的目的地是一個已經存在的目錄,則它會把前面指定的所有文件或目錄復制到該目錄中。若同時指定多個文件或目錄,而最后的目的地並非是一個已存在的目錄,則會出現錯誤信息。

1.8.4     參數

 -a或--archive  此參數的效果和同時指定"-dpR"參數相同。 

 -b或--backup  刪除,覆蓋目標文件之前的備份,備份文件會在字尾加上一個備份字符串。 

 -d或--no-dereference  當復制符號連接時,把目標文件或目錄也建立為符號連接,並指向與源文件或目錄連接的原始文件或目錄。 

 -f或--force  強行復制文件或目錄,不論目標文件或目錄是否已存在。 

 -i或--interactive  覆蓋既有文件之前先詢問用戶。 

 -l或--link  對源文件建立硬連接,而非復制文件。 

 -p或--preserve  保留源文件或目錄的屬性。 

 -P或--parents  保留源文件或目錄的路徑。 

 -r  遞歸處理,將指定目錄下的文件與子目錄一並處理。 

 -R或--recursive  遞歸處理,將指定目錄下的所有文件與子目錄一並處理。 

 -s或--symbolic-link  對源文件建立符號連接,而非復制文件。 

 -S<備份字尾字符串>或--suffix=<備份字尾字符串>  用"-b"參數備份目標文件后,備份文件的字尾會被加上一個備份字符串,預設的備份字尾字符串是符號"~"。 

 -u或--update  使用這項參數后只會在源文件的更改時間較目標文件更新時或是 名稱相互對應的目標文件並不存在,才復制文件。 

 -v或--verbose  顯示指令執行過程。 

 -V<備份方式>或--version-control=<備份方式>  用"-b"參數備份目標文件后,備份文件的字尾會被加上一個備份字符串,這字符串不僅可用"-S"參數變更,當使用"-V"參數指定不同備份方式時,也會產生不同字尾的備份字串。  

 -x或--one-file-system  復制的文件或目錄存放的文件系統,必須與cp指令執行時所處的文件系統相同,否則不予復制。 

 --help  在線幫助。 

 --sparse=<使用時機>  設置保存稀疏文件的時機。 

 --version  顯示版本信息。

1.9     cut

1.9.1     功能說明

顯示每行從開頭算起 num1 到 num2 的文字。

1.9.2     語法

cut -cnum1-num2 filename

1.9.3     舉例

        shell>> cat example

        test2

        this is test1

        shell>> cut -c0-6 example       ## print 開頭算起前 6 個字元

        test2

        this i

1.10        dd

1.10.1  功能說明

讀取,轉換並輸出數據。

1.10.2  語法

dd [bs=<字節數>][cbs=<字節數>][conv=<關鍵字>][count=<區塊數>][ibs=<字節數>][if=<文件>][obs=<字節數>][of=<文件>][seek=<區塊數>][skip=<區塊數>][--help][--version]

1.10.3  補充說明

dd可從標准輸入或文件讀取數據,依指定的格式來轉換數據,再輸出到文件,設備或標准輸出。

1.10.4  參數

  bs=<字節數>   將ibs( 輸入)與obs(輸出)設成指定的字節數。

  cbs=<字節數>   轉換時,每次只轉換指定的字節數。

  conv=<關鍵字>   指定文件轉換的方式。

  count=<區塊數>   僅讀取指定的區塊數。

  ibs=<字節數>   每次讀取的字節數。

  if=<文件>   從文件讀取。

  obs=<字節數>   每次輸出的字節數。

  of=<文件>   輸出到文件。

  seek=<區塊數>   一開始輸出時,跳過指定的區塊數。

  skip=<區塊數>   一開始讀取時,跳過指定的區塊數。

  --help   幫助。

  --version   顯示版本信息。

1.11        diff

1.11.1  功能說明

比較文件的差異。 

1.11.2  語法

diff [-abBcdefHilnNpPqrstTuvwy][-<行數>][-C <行數>][-D <巨集名稱>][-I <字符或字符串>][-S <文件>][-W <寬度>][-x <文件或目錄>][-X <文件>][--help][--left-column][--suppress-common-line][文件或目錄1][文件或目錄2] 

1.11.3  補充說明

diff以逐行的方式,比較文本文件的異同處。所是指定要比較目錄,則diff會比較目錄中相同文件名的文件,但不會比較其中子目錄。

1.11.4  參數

 -<行數>  指定要顯示多少行的文本。此參數必須與-c或-u參數一並使用。 

 -a或--text  diff預設只會逐行比較文本文件。

 -b或--ignore-space-change  不檢查空格字符的不同。 

 -B或--ignore-blank-lines  不檢查空白行。 

 -c  顯示全部內文,並標出不同之處。 

 -C<行數>或--context<行數>  與執行"-c-<行數>"指令相同。 

 -d或--minimal  使用不同的演算法,以較小的單位來做比較。 

 -D<巨集名稱>或ifdef<巨集名稱>  此參數的輸出格式可用於前置處理器巨集。 

 -e或--ed  此參數的輸出格式可用於ed的script文件。 

 -f或-forward-ed  輸出的格式類似ed的script文件,但按照原來文件的順序來顯示不同處。 

 -H或--speed-large-files  比較大文件時,可加快速度。 

 -l<字符或字符串>或--ignore-matching-lines<字符或字符串>  若兩個文件在某幾行有所不同,而這幾行同時都包含了選項中指定的字符或字符串,則不顯示這兩個文件的差異。 

 -i或--ignore-case  不檢查大小寫的不同。 

 -l或--paginate  將結果交由pr程序來分頁。 

 -n或--rcs  將比較結果以RCS的格式來顯示。 

 -N或--new-file  在比較目錄時,若文件A僅出現在某個目錄中,預設會顯示:

Only in目錄:文件A若使用-N參數,則diff會將文件A與一個空白的文件比較。  

 -p  若比較的文件為C語言的程序碼文件時,顯示差異所在的函數名稱。 

 -P或--unidirectional-new-file  與-N類似,但只有當第二個目錄包含了一個第一個目錄所沒有的文件時,才會將這個文件與空白的文件做比較。 

 -q或--brief  僅顯示有無差異,不顯示詳細的信息。 

 -r或--recursive  比較子目錄中的文件。 

 -s或--report-identical-files  若沒有發現任何差異,仍然顯示信息。 

 -S<文件>或--starting-file<文件>  在比較目錄時,從指定的文件開始比較。 

 -t或--expand-tabs  在輸出時,將tab字符展開。 

 -T或--initial-tab  在每行前面加上tab字符以便對齊。 

 -u,-U<列數>或--unified=<列數>  以合並的方式來顯示文件內容的不同。 

 -v或--version  顯示版本信息。 

 -w或--ignore-all-space  忽略全部的空格字符。 

 -W<寬度>或--width<寬度>  在使用-y參數時,指定欄寬。 

 -x<文件名或目錄>或--exclude<文件名或目錄>  不比較選項中所指定的文件或目錄。 

 -X<文件>或--exclude-from<文件>  您可以將文件或目錄類型存成文本文件,然后在=<文件>中指定此文本文件。 

 -y或--side-by-side  以並列的方式顯示文件的異同之處。 

 --help  顯示幫助。 

 --left-column  在使用-y參數時,若兩個文件某一行內容相同,則僅在左側的欄位顯示該行內容。

 --suppress-common-lines  在使用-y參數時,僅顯示不同之處。

1.12        dir

1.12.1  功能說明

列出<文件>的信息 (默認為目前的目錄)。

1.12.2  語法

dir [選項]... [文件]...

1.12.3  參數

如果不指定 - cftuSUX 或 --sort 任何一個選項,則根據字母大小排序。

  -a, --a--ll                  不隱藏任何以 . 字符開始的項目

  -A, --almost-all                列出除了 . 及 .. 以外的任何項目

     --author                  印出每個文件著作者

  -b, --escape                  以八進制溢出序列表示不可打印的字符

      --block-size=大小         塊以指定<大小>的字節為單位

  -B, --ignore-backups            不列出任何以 ~ 字符結束的項目

  -c                         配合 -lt:根據 ctime 排序及顯示 ctime (文件

                               狀態最后更改的時間)

                               配合 -l:顯示 ctime 但根據名稱排序

                               否則:根據 ctime 排序

  -C                         按列列舉。

  -f                         不進行排序,-aU 選項生效,-lst 選項失效

  -F, --classify                   加上文件類型的指示符號 (*/=@| 其中一個)

  -i, --inode                    印出每個文件的 inode 號

  -I, --ignore=樣式               不印出任何符合 shell 萬用字符<樣式>的項目

  -k                         即 --block-size=1K

  -l                         使用較長格式列出信息

  -L, --dereference               當顯示符號鏈接的文件信息時,顯示符號鏈接所指示

                               的對象而並非符號鏈接本身的信息

  -m                         所有項目以逗號分隔,並填滿整行行寬

  -n, --numeric-uid-gid            類似 -l,但列出 UID 及 GID 號

  -N, --literal                    印出未經處理的項目名稱 (例如不特別處理控制字符)

  -o                         類似 -l,但不列出有關組的信息

  -p, --file-type                  加上文件類型的指示符號 (/=@| 其中一個)

  -q, --hide-control-chars                     以 ? 字符代替無法打印的字符

      --show-control-chars       直接顯示無法打印的字符 (這是默認方式,除非調用

                               的程序名稱是‘ls’而且是在終端機畫面輸出結果)

  -Q, --quote-name           將項目名稱括上雙引號

      --quoting-style=方式       使用指定的 quoting <方式>顯示項目的名稱:

                               literal、locale、shell、shell-always、c、escape

  -r, --reverse                   依相反次序排列

  -R, --recursive                 同時列出所有子目錄層

  -s, --size                     以塊大小為單位列出所有文件的大小

  -S                         按文件大小排序。

  -t                         按修改時間排序

  -u                         配合 -lt:顯示訪問時間而且依訪問時間排序

                               配合 -l:顯示訪問時間但根據名稱排序

                               否則:根據訪問時間排序

  -U                         不進行排序;依文件系統原有的次序列出項目

  -v                         根據版本進行排序

  -w, --width=COLS             自行指定螢幕寬度而不使用目前的數值

  -x                         逐行列出項目而不是逐欄列出

  -X                         根據擴展名排序

  -1                         每行只列出一個文件

      --help     顯示此幫助信息並離開

      --version  顯示版本信息並離開

1.13        dos2unix

1.13.1  功能說明

將一個DOS格式的文件轉換為UNIX格式的文件。主要差別在換行符。

語法:

dos2unix [-hkqV] [-c convmode] [-o file ...] [-n infile outfile ...]

參數

 -h --help                       幫助

 -k --keepdate                   保留文件輸出日期

 -q --quiet                      安靜模式,屏蔽所有警告。

 -V --version                     顯示版本。

 -c --convmode                 轉換模式,可以是ASCII, 7bit, ISO, Mac, 默認為 ASCII

 -l --newline                     增加一行。

 -o --oldfile                      寫到原始文件中

 file ...                          轉換為舊文件的模式

 -n --newfile                    寫入新文件

 infile                         輸入文件名

 outfile                        輸出文件名

1.14        egrep

1.14.1  功能說明

在文件內查找指定的字符串。

egrep執行效果如grep -E,使用的語法及參數可參照grep指令,與grep不同點在於解讀字符串的方法,egrep是用extended regular expression語法來解讀,而grep則用basic regular expression語法,extended regular expression比basic regular expression有更完整的表達規范。

1.15        fgrep

1.15.1  功能說明

查找文件里符合條件的字符串。本指令相當於執行grep指令加上參數"-F",詳見grep指令說明。

 

1.15.2  語法

fgrep [范本樣式][文件或目錄...]

1.16        file

1.16.1  功能說明

辨識文件類型。 

 

1.16.2  語法

file [-beLvz][-f <名稱文件>][-m <魔法數字文件>...][文件或目錄...]  

 

1.16.3  補充說明

通過file指令,我們得以辨識該文件的類型。 

 

1.16.4  參數

 -b  列出辨識結果時,不顯示文件名稱。 

 -c  詳細顯示指令執行過程,便於排錯或分析程序執行的情形。 

 -f<名稱文件>  指定名稱文件,其內容有一個或多個文件名稱呢感,讓file依序辨識這些文件,格式為每列一個文件名稱。  

 -L  直接顯示符號連接所指向的文件的類別。 

 -m<魔法數字文件>  指定魔法數字文件。 

 -v  顯示版本信息。 

 -z  嘗試去解讀壓縮文件的內容。

1.17        find

1.17.1  功能說明

查找文件或目錄。

1.17.2  語法

find [目錄...][-amin <分鍾>][-anewer <參考文件或目錄>][-atime <24小時數>][-cmin <分鍾>]

[-cnewer <參考文件或目錄>][-ctime <24小時數>][-daystart][-depyh][-empty][-exec <執行指令>]

[-false][-fls <列表文件>][-follow][-fprint <列表文件>][-fprint0 <列表文件>]

[-fprintf <列表文件><輸出格式>][-fstype <文件系統類型>][-gid <群組識別碼>]

[-group <群組名稱>][-help][-ilname <范本樣式>][-iname <范本樣式>]

[-inum <inode編號>][-ipath <范本樣式>][-iregex <范本樣式>][-links <連接數目>]

[-lname <范本樣式>][-ls][-maxdepth <目錄層級>][-mindepth <目錄層級>][-mmin <分鍾>][-mount] 

[-mtime <24小時數>][-name <范本樣式>][-newer <參考文件或目錄>]

[-nogroup][noleaf] [-nouser][-ok <執行指令>][-path <范本樣式>][-perm <權限數值>]

[-print][-print0][-printf <輸出格式>][-prune][-regex <范本樣式>][-size <文件大小>]

[-true][-type <文件類型>][-uid <用戶識別碼>][-used <日數>][-user <擁有者名稱>]

[-version][-xdev][-xtype <文件類型>]

 

1.17.3  補充說明

find指令用於查找符合條件的文件。任何位於參數之前的字符串都將被視為欲查找的目錄。

 

1.17.4  參數

 -amin<分鍾>  查找在指定時間曾被存取過的文件或目錄,單位以分鍾計算。 

 -anewer<參考文件或目錄>  查找其存取時間較指定文件或目錄的存取時間更接近現在的文件或目錄。 

 -atime<24小時數>  查找在指定時間曾被存取過的文件或目錄,單位以24小時計算。 

 -cmin<分鍾>  查找在指定時間之時被更改的文件或目錄。 

 -cnewer<參考文件或目錄>  查找其更改時間較指定文件或目錄的更改時間更接近現在的文件或目錄。 

 -ctime<24小時數>  查找在指定時間之時被更改的文件或目錄,單位以24小時計算。 

 -daystart  從本日開始計算時間。 

 -depth  從指定目錄下最深層的子目錄開始查找。 

 -expty  尋找文件大小為0 Byte的文件,或目錄下沒有任何子目錄或文件的空目錄。 

 -exec<執行指令>  假設find指令的回傳值為True,就執行該指令。 

 -false  將find指令的回傳值皆設為False。 

 -fls<列表文件>  此參數的效果和指定"-ls"參數類似,但會把結果保存為指定的列表文件。 

 -follow  排除符號連接。 

 -fprint<列表文件>  此參數的效果和指定"-print"參數類似,但會把結果保存成指定的列表文件。 

 -fprint0<列表文件>  此參數的效果和指定"-print0"參數類似,但會把結果保存成指定的列表文件。 

 -fprintf<列表文件><輸出格式>  此參數的效果和指定"-printf"參數類似,但會把結果保存成指定的列表文件。 

 -fstype<文件系統類型>  只尋找該文件系統類型下的文件或目錄。 

 -gid<群組識別碼>  查找符合指定之群組識別碼的文件或目錄。 

 -group<群組名稱>  查找符合指定之群組名稱的文件或目錄。 

 -help或--help  在線幫助。 

 -ilname<范本樣式>  此參數的效果和指定"-lname"參數類似,但忽略字符大小寫的差別。 

 -iname<范本樣式>  此參數的效果和指定"-name"參數類似,但忽略字符大小寫的差別。 

 -inum<inode編號>  查找符合指定的inode編號的文件或目錄。 

 -ipath<范本樣式>  此參數的效果和指定"-ipath"參數類似,但忽略字符大小寫的差別。 

 -iregex<范本樣式>  此參數的效果和指定"-regexe"參數類似,但忽略字符大小寫的差別。 

 -links<連接數目>  查找符合指定的硬連接數目的文件或目錄。 

 -iname<范本樣式>  指定字符串作為尋找符號連接的范本樣式。 

 -ls  假設find指令的回傳值為True,就將文件或目錄名稱列出到標准輸出。 

 -maxdepth<目錄層級>  設置最大目錄層級。 

 -mindepth<目錄層級>  設置最小目錄層級。 

 -mmin<分鍾>  查找在指定時間曾被更改過的文件或目錄,單位以分鍾計算。 

 -mount  此參數的效果和指定"-xdev"相同。 

 -mtime<24小時數>  查找在指定時間曾被更改過的文件或目錄,單位以24小時計算。 

 -name<范本樣式>  指定字符串作為尋找文件或目錄的范本樣式。 

 -newer<參考文件或目錄>  查找其更改時間較指定文件或目錄的更改時間更接近現在的文件或目錄。 

 -nogroup  找出不屬於本地主機群組識別碼的文件或目錄。 

 -noleaf  不去考慮目錄至少需擁有兩個硬連接存在。 

 -nouser  找出不屬於本地主機用戶識別碼的文件或目錄。 

 -ok<執行指令>  此參數的效果和指定"-exec"參數類似,但在執行指令之前會先詢問用戶,若回答"y"或"Y",則放棄執行指令。 

 -path<范本樣式>  指定字符串作為尋找目錄的范本樣式。 

 -perm<權限數值>  查找符合指定的權限數值的文件或目錄。 

 -print  假設find指令的回傳值為True,就將文件或目錄名稱列出到標准輸出。格式為每列一個名稱,每個名稱之前皆有"./"字符串。 

 -print0  假設find指令的回傳值為True,就將文件或目錄名稱列出到標准輸出。格式為全部的名稱皆在同一行。 

 -printf<輸出格式>  假設find指令的回傳值為True,就將文件或目錄名稱列出到標准輸出。格式可以自行指定。 

 -prune  不尋找字符串作為尋找文件或目錄的范本樣式。 

 -regex<范本樣式>  指定字符串作為尋找文件或目錄的范本樣式。 

 -size<文件大小>  查找符合指定的文件大小的文件。 

 -true  將find指令的回傳值皆設為True。 

 -typ<文件類型>  只尋找符合指定的文件類型的文件。 

 -uid<用戶識別碼>  查找符合指定的用戶識別碼的文件或目錄。 

 -used<日數>  查找文件或目錄被更改之后在指定時間曾被存取過的文件或目錄,單位以日計算。 

 -user<擁有者名稱>  查找符合指定的擁有者名稱的文件或目錄。 

 -version或--version  顯示版本信息。 

 -xdev  將范圍局限在先行的文件系統中。 

 -xtype<文件類型>  此參數的效果和指定"-type"參數類似,差別在於它針對符號連接檢查。

1.18        grep

1.18.1  功能說明

查找文件里符合條件的字符串。

 

1.18.2  語法

grep [-abcEFGhHilLnqrsvVwxy][-A<顯示列數>][-B<顯示列數>][-C<顯示列數>][-d<進行動作>][-e<范本樣式>][-f<范本文件>][--help][范本樣式][文件或目錄...]

1.18.3  補充說明

grep指令用於查找內容包含指定的范本樣式的文件,如果發現某文件的內容符合所指定的范本樣式,預設grep指令會把含有范本樣式的那一列顯示出來。若不指定任何文件名稱,或是所給予的文件名為“-”,則grep指令會從標准輸入設備讀取數據。

1.18.4  參數

  -a或--text   不要忽略二進制的數據。

  -A<顯示列數>或--after-context=<顯示列數>   除了顯示符合范本樣式的那一列之外,並顯示該列之后的內容。

  -b或--byte-offset   在顯示符合范本樣式的那一列之前,標示出該列第一個字符的位編號。

  -B<顯示列數>或--before-context=<顯示列數>   除了顯示符合范本樣式的那一列之外,並顯示該列之前的內容。

  -c或--count   計算符合范本樣式的列數。

  -C<顯示列數>或--context=<顯示列數>或-<顯示列數>   除了顯示符合范本樣式的那一列之外,並顯示該列之前后的內容。

  -d<進行動作>或--directories=<進行動作>   當指定要查找的是目錄而非文件時,必須使用這項參數,否則grep指令將回報信息並停止動作。

  -e<范本樣式>或--regexp=<范本樣式>   指定字符串做為查找文件內容的范本樣式。

  -E或--extended-regexp   將范本樣式為延伸的普通表示法來使用。

  -f<范本文件>或--file=<范本文件>   指定范本文件,其內容含有一個或多個范本樣式,讓grep查找符合范本條件的文件內容,格式為每列一個范本樣式。

  -F或--fixed-regexp   將范本樣式視為固定字符串的列表。

  -G或--basic-regexp   將范本樣式視為普通的表示法來使用。

  -h或--no-filename   在顯示符合范本樣式的那一列之前,不標示該列所屬的文件名稱。

  -H或--with-filename   在顯示符合范本樣式的那一列之前,表示該列所屬的文件名稱。

  -i或--ignore-case   忽略字符大小寫的差別。

  -l或--file-with-matches   列出文件內容符合指定的范本樣式的文件名稱。

  -L或--files-without-match   列出文件內容不符合指定的范本樣式的文件名稱。

  -n或--line-number   在顯示符合范本樣式的那一列之前,標示出該列的列數編號。

  -q或--quiet或--silent   不顯示任何信息。

  -r或--recursive   此參數的效果和指定“-d recurse”參數相同。

  -s或--no-messages   不顯示錯誤信息。

  -v或--revert-match   反轉查找。

  -V或--version   顯示版本信息。

  -w或--word-regexp   只顯示全字符合的列。

  -x或--line-regexp   只顯示全列符合的列。

  -y   此參數的效果和指定“-i”參數相同。

  --help   在線幫助。

1.19        head

1.19.1  功能說明

先是文件的前幾行(默認10行)。

1.19.2  語法

head [options] [files]

1.19.3  參數

  -c, --bytes=[-]N                  每個文件顯示前 N 字節;

  -n, --lines=[-]N                   每個文件顯示前 N行;

  -q, --quiet, --silent         不打印文件頭

  -v, --verbose           打印文件頭

  --help                            顯示此幫助信息並離開

  --version                          顯示版本信息並離開

1.19.4  例子

顯示文件 phone_list前20行

head -20 phone_list

顯示有202區號的前10個號碼

grep '(202)' phone_list | head

1.20        Less

1.20.1  功能說明

less 命令的功能幾乎和 more 命令一樣,也是用來按頁顯示文件,不同之處在於 less 命令在顯示文件時允許用戶既可以向前又可以向后翻閱文件。同時因為 less 並未在一開始就讀入整個檔案,因此在遇上大型檔案的開啟時,會比一般的文書編輯器(如 vi)來的快速。

1.20.2  語法

less [options] [filename]

1.21        ln

1.21.1  功能說明

連接文件或目錄。 

1.21.2  語法

ln [-bdfinsv][-S <字尾備份字符串>][-V <備份方式>][--help][--version][源文件或目錄][目標文件或目錄] 

或 ln [-bdfinsv][-S <字尾備份字符串>][-V <備份方式>][--help][--version][源文件或目錄...][目的目錄] 

1.21.3  補充說明

ln指令用在連接文件或目錄,如同時指定兩個以上的文件或目錄,且最后的目的地是一個已經存在的目錄,則會把前面指定的所有文件或目錄復制到該目錄中。若同時指定多個文件或目錄,且最后的目的地並非是一個已存在的目錄,則會出現錯誤信息。 

1.21.4  參數

 -b或--backup  刪除,覆蓋目標文件之前的備份。 

 -d或-F或--directory  建立目錄的硬連接。 

 -f或--force  強行建立文件或目錄的連接,不論文件或目錄是否存在。 

 -i或--interactive  覆蓋既有文件之前先詢問用戶。 

 -n或--no-dereference  把符號連接的目的目錄視為一般文件。 

 -s或--symbolic  對源文件建立符號連接,而非硬連接。 

 -S<字尾備份字符串>或--suffix=<字尾備份字符串>  用"-b"參數備份目標文件后,備份文件的字尾會被加上一個備份字符串,預設的字尾備份字符串是符號"~",您可通過"-S"參數來改變它。 

 -v或--verbose  顯示指令執行過程。 

 -V<備份方式>或--version-control=<備份方式>  用"-b"參數備份目標文件后,備份文件的字尾會被加上一個備份字符串,這個字符串不僅可用"-S"參數變更,當使用"-V"參數<備份方式>指定不同備份方式時,也會產生不同字尾的備份字符串。 

 --help  在線幫助。 

 --version  顯示版本信息。

1.22        locate

1.22.1  功能說明

查找文件。 

1.22.2  語法

locate [-d <數據庫文件>][--help][--version][范本樣式...]

1.22.3  補充說明

locate指令用於查找符合條件的文件,它會去保存文件與目錄名稱的數據庫內,查找合乎范本樣式條件的文件或目錄。 

1.22.4  參數

 -d<數據庫文件>或--database=<數據庫文件>  設置locate指令使用的數據庫。locate指令預設的數據庫位於/var/lib/slocate目錄里,文件名為slocate.db,您可使用這個參數另行指定。 

 --help  在線幫助。 

 --version  顯示版本信息。

1.23        ls

1.23.1  功能說明

列出目錄內容。

1.23.2  語法

ls [-1aAbBcCdDfFgGhHiklLmnNopqQrRsStuUvxX][-I <范本樣式>][-T <跳格字數>][-w <每列字符數>][--block-size=<區塊大小>][--color=<使用時機>][--format=<列表格式>][--full-time][--help][--indicator-style=<標注樣式>][--quoting-style=<引號樣式>][--show-control-chars][--sort=<排序方式>][--time=<時間戳記>][--version][文件或目錄...]

1.23.3  補充說明

執行ls指令可列出目錄的內容,包括文件和子目錄的名稱。

1.23.4  參數

  -1   每列僅顯示一個文件或目錄名稱。

  -a或--all   下所有文件和目錄。

  -A或--almost-all   顯示所有文件和目錄,但不顯示現行目錄和上層目錄。

  -b或--escape   顯示脫離字符。

  -B或--ignore-backups   忽略備份文件和目錄。

  -c   以更改時間排序,顯示文件和目錄。

  -C   以又上至下,從左到右的直行方式顯示文件和目錄名稱。

  -d或--directory   顯示目錄名稱而非其內容。

  -D或--dired   用Emacs的模式產生文件和目錄列表。

  -f   此參數的效果和同時指定"aU"參數相同,並關閉"lst"參數的效果。

  -F或--classify   在執行文件,目錄,Socket,符號連接,管道名稱后面,各自加上"*","/","=","@","|"號。

  -g   次參數將忽略不予處理。

  -G或--no-group   不顯示群組名稱。

  -h或--human-readable   用"K","M","G"來顯示文件和目錄的大小。

  -H或--si   此參數的效果和指定"-h"參數類似,但計算單位是1000Bytes而非1024Bytes。

  -i或--inode   顯示文件和目錄的inode編號。

  -I<范本樣式>或--ignore=<范本樣式>   不顯示符合范本樣式的文件或目錄名稱。

  -k或--kilobytes   此參數的效果和指定"block-size=1024"參數相同。

  -l   使用詳細格式列表。

  -L或--dereference   如遇到性質為符號連接的文件或目錄,直接列出該連接所指向的原始文件或目錄。

  -m   用","號區隔每個文件和目錄的名稱。

  -n或--numeric-uid-gid   以用戶識別碼和群組識別碼替代其名稱。

  -N或--literal   直接列出文件和目錄名稱,包括控制字符。

  -o   此參數的效果和指定"-l" 參數類似,但不列出群組名稱或識別碼。

  -p或--file-type   此參數的效果和指定"-F"參數類似,但不會在執行文件名稱后面加上"*"號。

  -q或--hide-control-chars   用"?"號取代控制字符,列出文件和目錄名稱。

  -Q或--quote-name   把文件和目錄名稱以""號標示起來。

  -r或--reverse   反向排序。

  -R或--recursive   遞歸處理,將指定目錄下的所有文件及子目錄一並處理。

  -s或--size   顯示文件和目錄的大小,以區塊為單位。

  -S   用文件和目錄的大小排序。

  -t   用文件和目錄的更改時間排序。

  -T<跳格字符>或--tabsize=<跳格字數>   設置跳格字符所對應的空白字符數。

  -u   以最后存取時間排序,顯示文件和目錄。

  -U   列出文件和目錄名稱時不予排序。

  -v   文件和目錄的名稱列表以版本進行排序。

  -w<每列字符數>或--width=<每列字符數>   設置每列的最大字符數。

  -x   以從左到右,由上至下的橫列方式顯示文件和目錄名稱。

  -X   以文件和目錄的最后一個擴展名排序。

  --block-size=<區塊大小>   指定存放文件的區塊大小。

  --color=<列表格式>   培植文件和目錄的列表格式。

  --full-time   列出完整的日期與時間。

  --help   在線幫助。

  --indicator-style=<標注樣式>   在文件和目錄等名稱后面加上標注,易於辨識該名稱所屬的類型。

  --quoting-syte=<引號樣式>   把文件和目錄名稱以指定的引號樣式標示起來。

  --show-control-chars   在文件和目錄列表時,使用控制字符。

  --sort=<排序方式>   配置文件和目錄列表的排序方式。

  --time=<時間戳記>   用指定的時間戳記取代更改時間。

  --version   顯示版本信息。

1.24        mkdir

1.24.1  功能說明

建立目錄

1.24.2  語法

mkdir [-p][--help][--version][-m <目錄屬性>][目錄名稱]

1.24.3  補充說明

mkdir可建立目錄並同時設置目錄的權限。

1.24.4  參數

  -m<目錄屬性>或--mode<目錄屬性>   建立目錄時同時設置目錄的權限。

  -p或--parents   若所要建立目錄的上層目錄目前尚未建立,則會一並建立上層目錄。

  --help   顯示幫助。

  --verbose   執行時顯示詳細的信息。

  --version   顯示版本信息。

1.25        more

1.25.1  功能說明

類似 cat ,不過會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示,而且還有搜尋字串的功能(與 vi 相似),使用中的說明文件,請按 h 。

1.25.2  語法

more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..] 

1.25.3  參數

    -num 一次顯示的行數

  -d 提示使用者,在畫面下方顯示 [Press space to continue, 'q' to quit.] ,如果使用者按錯鍵,則會顯示 [Press 'h' for instructions.] 而不是 '嗶' 聲

  -l 取消遇見特殊字元 ^L(送紙字元)時會暫停的功能

  -f 計算行數時,以實際上的行數,而非自動換行過后的行數(有些單行字數太長的會被擴展為兩行或兩行以上)

  -p 不以卷動的方式顯示每一頁,而是先清除螢幕后再顯示內容

  -c 跟 -p 相似,不同的是先顯示內容再清除其他舊資料

  -s 當遇到有連續兩行以上的空白行,就代換為一行的空白行

  -u 不顯示下引號 (根據環境變數 TERM 指定的 terminal 而有所不同)

  +/ 在每個檔案顯示前搜尋該字串(pattern),然后從該字串之后開始顯示

  +num 從第 num 行開始顯示

fileNames 欲顯示內容的檔案,可為復數個數

1.25.4  例子

more -s testfile 逐頁顯示 testfile 之檔案內容,如有連續兩行以上空白行則以一行空白行顯示。

  more +20 testfile 從第 20 行開始顯示 testfile 之檔案內容。

1.26        mv

1.26.1  功能說明

移動或更名現有的文件或目錄。

1.26.2  語法

mv [-bfiuv][--help][--version][-S <附加字尾>][-V <方法>][源文件或目錄][目標文件或目錄]

1.26.3  補充說明

mv可移動文件或目錄,或是更改文件或目錄的名稱。

1.26.4  參數

 -b或--backup  若需覆蓋文件,則覆蓋前先行備份。 

 -f或--force  若目標文件或目錄與現有的文件或目錄重復,則直接覆蓋現有的文 件或目錄。 

 -i或--interactive  覆蓋前先行詢問用戶。 

 -S<附加字尾>或

 --suffix=<附加字尾>  與-b參數一並使用,可指定備份文件的所要附加的字尾。 

 -u或--update  在移動或更改文件名時,若目標文件已存在,且其文件日期比源文件新,則不覆蓋目標文件。 

 -v或--verbose  執行時顯示詳細的信息。 

 -V=<方法>或

 --version-control=<方法>  與-b參數一並使用,可指定備份的方法。 

 --help  顯示幫助。 

 --version  顯示版本信息。

1.27        od

1.27.1  功能說明

輸出文件內容。

1.27.2  語法

od [-abcdfhilovx][-A <字碼基數>][-j <字符數目>][-N <字符數目>][-s <字符串字符數>][-t <輸出格式>][-w <每列字符數>][--help][--version][文件...]

1.27.3  補充說明

od指令會讀取所給予的文件的內容,並將其內容以八進制字碼呈現出來。

1.27.4  參數

 -a  此參數的效果和同時指定"-ta"參數相同。 

 -A<字碼基數>  選擇要以何種基數計算字碼。 

 -b  此參數的效果和同時指定"-toC"參數相同。 

 -c  此參數的效果和同時指定"-tC"參數相同。 

 -d  此參數的效果和同時指定"-tu2"參數相同。 

 -f  此參數的效果和同時指定"-tfF"參數相同。 

 -h  此參數的效果和同時指定"-tx2"參數相同。 

 -i  此參數的效果和同時指定"-td2"參數相同。 

 -j<字符數目>或--skip-bytes=<字符數目>  略過設置的字符數目。 

 -l  此參數的效果和同時指定"-td4"參數相同。 

 -N<字符數目>或--read-bytes=<字符數目>  到設置的字符數目為止。 

 -o  此參數的效果和同時指定"-to2"參數相同。 

 -s<字符串字符數>或--strings=<字符串字符數>  只顯示符合指定的字符數目的字符串。 

 -t<輸出格式>或--format=<輸出格式>  設置輸出格式。 

 -v或--output-duplicates  輸出時不省略重復的數據。 

 -w<每列字符數>或--width=<每列字符數>  設置每列的最大字符數。 

 -x  此參數的效果和同時指定"-h"參數相同。 

 --help  在線幫助。 

 --version  顯示版本信息。

1.28        pwd

1.28.1  功能說明

顯示工作目錄。

1.28.2  語法

pwd [--help][--version]

1.28.3  補充說明

執行pwd指令可立刻得知您目前所在的工作目錄的絕對路徑名稱。

1.28.4  參數

  --help   在線幫助。

  --version   顯示版本信息。

1.29        rename

1.29.1  功能說明

文件批量改名。

1.29.2  語法

rename from to file

該命令的各選項含義如下:

 

from  源字符。

to      目標字符。

file    要改名的文件

1.29.3  例子

 rename .rm .rmvb *

// 把所有文件的后輟由rm改為rmvb

rename 'tr/A-Z/a-z/' *

// 把所有文件名中的大寫改為小寫

1.30        rm

1.30.1  功能說明

刪除文件或目錄。

1.30.2  語法

rm [-dfirv][--help][--version][文件或目錄...]

1.30.3  補充說明

執行rm指令可刪除文件或目錄,如欲刪除目錄必須加上參數"-r",否則預設僅會刪除文件。 

1.30.4  參數

 -d或--directory  直接把欲刪除的目錄的硬連接數據刪成0,刪除該目錄。 

 -f或--force  強制刪除文件或目錄。 

 -i或--interactive  刪除既有文件或目錄之前先詢問用戶。 

 -r或-R或--recursive  遞歸處理,將指定目錄下的所有文件及子目錄一並處理。 

 -v或--verbose  顯示指令執行過程。 

 --help  在線幫助。 

 --version  顯示版本信息。

1.31        rmdir

1.31.1  功能說明

刪除目錄。

1.31.2  語法

rmdir [-p][--help][--ignore-fail-on-non-empty][--verbose][--version][目錄...]

1.31.3  補充說明

當有空目錄要刪除時,可使用rmdir指令。

1.31.4  參數

  -p或--parents   刪除指定目錄后,若該目錄的上層目錄已變成空目錄,則將其一並刪除。

  --help   在線幫助。

  --ignore-fail-on-non-empty   忽略非空目錄的錯誤信息。

  --verbose   顯示指令執行過程。

  --version   顯示版本信息。

1.32        sed

1.32.1  功能說明

利用script來處理文本文件。

1.32.2  語法

sed [-hnV][-e<script>][-f<script文件>][文本文件]

1.32.3  補充說明

sed可依照script的指令,來處理、編輯文本文件。

1.32.4  參數

  -e<script>或--expression=<script>   以選項中指定的script來處理輸入的文本文件。

  -f<script文件>或--file=<script文件>  以選項中指定的script文件來處理輸入的文本文件。

  -h或--help   顯示幫助。

  -n或--quiet或--silent   僅顯示script處理后的結果。

  -V或--version   顯示版本信息。

1.33        sort

1.33.1  功能說明

將文本文件內容加以排序。

1.33.2  語法

sort [-bcdfimMnr][-o<輸出文件>][-t<分隔字符>][+<起始欄位>-<結束欄位>][--help][--verison][文件]

1.33.3  補充說明

sort可針對文本文件的內容,以行為單位來排序。

1.33.4  參數

  -b   忽略每行前面開始出的空格字符。

  -c   檢查文件是否已經按照順序排序。

  -d   排序時,處理英文字母、數字及空格字符外,忽略其他的字符。

  -f   排序時,將小寫字母視為大寫字母。

  -i   排序時,除了040至176之間的ASCII字符外,忽略其他的字符。

  -m   將幾個排序好的文件進行合並。

  -M   將前面3個字母依照月份的縮寫進行排序。

  -n   依照數值的大小排序。

  -o<輸出文件>   將排序后的結果存入指定的文件。

  -r   以相反的順序來排序。

  -t<分隔字符>   指定排序時所用的欄位分隔字符。

  +<起始欄位>-<結束欄位>   以指定的欄位來排序,范圍由起始欄位到結束欄位的前一欄位。

  --help   顯示幫助。

  --version   顯示版本信息。

1.34        tail

1.34.1  功能說明

查看文件的后N行,有實時監控的功能。

1.34.2  語法

tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]

或者

tail [ -r ] [ -n Number ] [ File ]

tail 命令從指定點開始將 File 參數指定的文件寫到標准輸出。如果沒有指定文件,則會使用標准輸入。 Number 變量<br />指定將多少單元寫入標准輸出。 Number 變量的值可以是正的或負的整數。如果值的前面有 +(加號),從文件開頭<br />指定的單元數開始將文件寫到標准輸出。如果值的前面有 -(減號),則從文件末尾指定的單元數開始將文件寫到<br />標准輸出。如果值前面沒有 +(加號)或 -(減號),那么從文件末尾指定的單元號開始讀取文件。

1.34.3  參數

-b Number 從 Number 變量表示的 512 字節塊位置開始讀取指定文件。

-c Number 從 Number 變量表示的字節位置開始讀取指定文件。

-f 如果輸入文件是常規文件或如果 File 參數指定 FIFO(先進先出),那么 tail 命令不會在復制了輸入文件的最后的指定單元后終止,而是繼續從輸入文件讀取和復制額外的單元(當這些單元可用時)。如果沒有指定 File 參數,並且標准輸入是管道,則會忽略 -f 標志。tail -f 命令可用於監視另一個進程正在寫入的文件的增長。

-k Number 從 Number 變量表示的 1KB 塊位置開始讀取指定文件。

-m Number 從 Number 變量表示的多字節字符位置開始讀取指定文件。使用該標志提供在單字節和雙字節字符代碼集環境中的一致結果。

-n Number 從首行或末行位置來讀取指定文件,位置由 Number 變量的符號(+ 或 - 或無)表示,並通過行號 Number 進行位移。

-r 從文件末尾以逆序方式顯示輸出。-r 標志的缺省值是以逆序方式顯示整個文件。如果文件大於 20,480 字節,那么-r標志只顯示最后的 20,480 字節。 -r 標志只有與 -n 標志一起時才有效。否則,就會將其忽略

1.34.4  例子

tail -f /var/log/messages

參數-f使tail不停地去讀最新的內容,這樣有實時監視的效果,用Ctrl+c來終止!

1.35        touch

1.35.1  功能說明

改變文件或目錄時間。

1.35.2  語法

touch [-acfm][-d <日期時間>][-r <參考文件或目錄>][-t <日期時間>][--help]   [--version][文件或目錄...] 或 touch [-acfm][--help][--version][日期時間][文件或目錄...] 

1.35.3  補充說明

使用touch指令可更改文件或目錄的日期時間,包括存取時間和更改時間。

1.35.4  參數

 -a或--time=atime或--time=access或--time=use  只更改存取時間。 

 -c或--no-create  不建立任何文件。 

 -d<時間日期>  使用指定的日期時間,而非現在的時間。 

 -f  此參數將忽略不予處理,僅負責解決BSD版本touch指令的兼容性問題。 

 -m或--time=mtime或--time=modify  只更改變動時間。 

 -r<參考文件或目錄>  把指定文件或目錄的日期時間,統統設成和參考文件或目錄的日期時間相同。 

 -t<日期時間>  使用指定的日期時間,而非現在的時間。 

 --help  在線幫助。 

 --version  顯示版本信息。

1.36        uniq

1.36.1  功能說明

檢查及刪除文本文件中重復出現的行列。

1.36.2  語法

uniq [-cdu][-f<欄位>][-s<字符位置>][-w<字符位置>][--help][--version][輸入文件][輸出文件]

1.36.3  補充說明

uniq可檢查文本文件中重復出現的行列。

1.36.4  參數

  -c或--count   在每列旁邊顯示該行重復出現的次數。

  -d或--repeated   僅顯示重復出現的行列。

  -f<欄位>或--skip-fields=<欄位>   忽略比較指定的欄位。

  -s<字符位置>或--skip-chars=<字符位置>   忽略比較指定的字符。

  -u或--unique   僅顯示出一次的行列。

  -w<字符位置>或--check-chars=<字符位置>   指定要比較的字符。

  --help   顯示幫助。

  --version   顯示版本信息。

  [輸入文件]   指定已排序好的文本文件。

  [輸出文件]   指定輸出的文件。

1.37        unix2dos

1.37.1  功能說明

將UNIX格式的文件轉化為DOS格式。

1.37.2  語法

unix2dos [-hkqV] [-o file ...] [-c convmode] [-n infile outfile ...]

1.37.3  參數

 -h --help        幫助。

 -k --keepdate    保留文件日期。

 -q --quiet       安靜模式,屏蔽所有警告。

 -V --version                     顯示版本。

 -c --convmode                 轉換模式,可以是ASCII, 7bit, ISO, Mac, 默認為 ASCII

 -l --newline                     增加一行。

 -o --oldfile                      寫到原始文件中

 file ...                          轉換為舊文件的模式

 -n --newfile                    寫入新文件

 infile                         輸入文件名

 outfile                        輸出文件名

1.38        vdir

vdir [options] [files]

列舉目錄內容,功能同 ls -lb

1.39        vi

1.39.1  功能說明

文本編輯。

1.39.2  語法

vim [參數] [文件 ..]       編輯指定的文件

   或:vim [參數] -               從標准輸入(stdin)讀取文本

   或:vim [參數] -t tag          編輯時使用指定的 tag

   或:vim [參數] -q [errorfile]  編輯時加載第一個錯誤

1.39.3  參數

   --                   只有在這之后的文件

   -v                            Vi 模式 (同 "vi")

   -e                            Ex 模式 (同 "ex")

   -s                            安靜 (batch) 模式 (只能與 "ex" 一起使用)

   -d                            Diff 模式 (同 "vimdiff", 可迅速比較兩文件不同處)

   -y                            簡易模式 (同 "evim", modeless)

   -R                            只讀模式 (同 "view")

   -Z                            限制模式 (同 "rvim")

   -m                           不可修改 (寫入文件)

   -M                           文本不可修改

   -b                            二進制模式

   -l                    Lisp 模式

   -C                            'compatible' 傳統 Vi 兼容模式

   -N                           'nocompatible' 不完全與傳統 Vi 兼容,可使用 Vim 加強能力

   -V[N]             Verbose 等級

   -D                            調試模式

   -n                            不使用交換文件, 只使用內存

   -r                   列出交換文件后退出

   -r (加文件名)           恢復上次崩潰的資料(Recover crashed session)

   -L                            與 -r 一樣

   -A                  按阿拉伯模式啟動

   -H                  按猶太模式啟動

   -F                            按波斯模式啟動

   -T <terminal>         設定終端為 <terminal>

   -u <vimrc>              使用 <vimrc> 替換任何 .vimrc

   --noplugin               不加載任何 plugin

   -o[N]             打開 N 個窗口 (預設是每個文件一個)

   -O[N]             同 -o 窗體垂直分割。

   +                    啟動后跳到文件結尾

   +<lnum>                 啟動后跳到第 <lnum> 行

   --cmd <command>          加載任何 vimrc 前執行 <command>

   -c <command>                加載第一個文件后執行 <command>

   -S <session>           加載第一個文件后載入 Session 文件<session>

   -s <scriptin>  從 <scriptin> 讀入一般模式命令

   -w <scriptout>        對文件 <scriptout> 附加(append)所有輸入的命令

   -W <scriptout>       對文件 <scriptout> 寫入所有輸入的命令

   -x                            編輯編碼過的文件

   -i <viminfo>            使用 <viminfo> 而非 .viminfo

   -h  or  --help       幫助。

   --version                 版本。

1.39.4  命令

1.39.4.1       進入輸入模式

新增 (append)

a :從光標所在位置後面開始新增資料,光標後的資料隨新增資料向後移動。

A:從光標所在列最後面的地方開始新增資料。

 

插入 (insert)

i:從光標所在位置前面開始插入資料,光標後的資料隨新增資料向後移動。

I :從光標所在列的第一個非空白字元前面開始插入資料。

 

開始 (open)

o :在光標所在列下新增一列並進入輸入模式。

O: 在光標所在列上方新增一列並進入輸入模式。

1.39.4.2       退出vi

在指令模式下鍵入:q,:q!,:wq或:x(注意:號),就會退出vi。其中:wq和:x是存盤退出,而:q是直接退出,如果文件已有新的變化,vi會提示你保存文件而:q命令也會失效,這時你可以用:w命令保存文件后再用:q 退出,或用:wq或:x命令退出,如果你不想保存改變后的文件,你就需要用:q!命令,這個命令將不保存文件而直接退出vi。

1.39.4.3       刪除與修改文件的命令:

x:刪除光標所在字符。

dd :刪除光標所在的列。

r :修改光標所在字元,r 後接著要修正的字符。

R:進入取替換狀態,新增文字會覆蓋原先文字,直到按 [ESC] 回到指令模式下為止。

s:刪除光標所在字元,並進入輸入模式。

S:刪除光標所在的列,並進入輸入模式。

1.39.4.4       屏幕翻滾類命令

Ctrl+u: 向文件首翻半屏

Ctrl+d: 向文件尾翻半屏

Ctrl+f: 向文件尾翻一屏

Ctrl+b: 向文件首翻一屏

nz: 將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部。

1.39.4.5       刪除命令

ndw或ndW: 刪除光標處開始及其后的n-1個字

do: 刪至行首

d$: 刪至行尾

ndd: 刪除當前行及其后n-1行

x或X: 刪除一個字符,x刪除光標后的,而X刪除光標前的

Ctrl+u: 刪除輸入方式下所輸入的文本

1.39.4.6       搜索及替換命令

/pattern: 從光標開始處向文件尾搜索pattern

?pattern: 從光標開始處向文件首搜索pattern

n: 在同一方向重復上一次搜索命令

N: 在反方向上重復上一次搜索命令

:s/p1/p2/g: 將當前行中所有p1均用p2替代

:n1,n2s/p1/p2/g: 將第n1至n2行中所有p1均用p2替代

:g/p1/s//p2/g: 將文件中所有p1均用p2替換

1.39.4.7       復制,黏貼

(1) 選定文本塊,使用v進入可視模式;移動光標鍵選定內容

(2) 復制選定塊到緩沖區,用y;復制整行,用yy

(3) 剪切選定塊到緩沖區,用d;剪切整行用dd

(4) 粘貼緩沖區中的內容,用p

1.39.4.8       其他

在同一編輯窗打開第二個文件,用:sp [filename]

在多個編輯文件之間切換,用Ctrl+w

1.40        wc

1.40.1  功能說明

計算字數。

1.40.2  語法

wc [-clw][--help][--version][文件...]

1.40.3  補充說明

利用wc指令我們可以計算文件的Byte數、字數、或是列數,若不指定文件名稱、或是所給予的文件名為“-”,則wc指令會從標准輸入設備讀取數據。

1.40.4  參數

  -c或--bytes或--chars   只顯示Bytes數。

  -l或--lines   只顯示列數。

  -w或--words   只顯示字數。

  --help   在線幫助。

  --version   顯示版本信息。

2       磁盤管理

2.1     dd

2.1.1     功能說明

讀取,轉換並輸出數據。

2.1.2     語法

dd [bs=<字節數>][cbs=<字節數>][conv=<關鍵字>][count=<區塊數>][ibs=<字節數>][if=<文件>][obs=<字節數>][of=<文件>][seek=<區塊數>][skip=<區塊數>][--help][--version]

2.1.3     補充說明

dd可從標准輸入或文件讀取數據,依指定的格式來轉換數據,再輸出到文件,設備或標准輸出。

2.1.4     參數

  bs=<字節數>   將ibs( 輸入)與obs(輸出)設成指定的字節數。

  cbs=<字節數>   轉換時,每次只轉換指定的字節數。

  conv=<關鍵字>   指定文件轉換的方式。

conv = ASCII 把EBCDIC碼轉換為ASCIl碼。

conv = ebcdic 把ASCIl碼轉換為EBCDIC碼。

conv = ibm 把ASCIl碼轉換為alternate EBCDIC碼。

conv = block 把變動位轉換成固定字符。

conv = ublock 把固定位轉換成變動位。

conv = ucase 把字母由小寫轉換為大寫。

conv = lcase 把字母由大寫轉換為小寫。

conv = notrunc 不截短輸出文件。

conv = swab 交換每一對輸入字節。

conv = noerror 出錯時不停止處理。

conv = sync 把每個輸入記錄的大小都調到ibs的大小(用NUL填充)。

  count=<區塊數>   僅讀取指定的區塊數。

  ibs=<字節數>   每次讀取的字節數。

  if=<文件>   從文件讀取。

  obs=<字節數>   每次輸出的字節數。

  of=<文件>   輸出到文件。

  seek=<區塊數>   一開始輸出時,跳過指定的區塊數。

  skip=<區塊數>   一開始讀取時,跳過指定的區塊數。

  --help   幫助。

  --version   顯示版本信息。

2.1.5     例子

1整盤數據備份與恢復

備份:

dd if=/dev/hdx of=/dev/hdy

將本地的/dev/hdx整盤備份到/dev/hdy

 

dd if=/dev/hdx of=/path/to/image

將/dev/hdx全盤數據備份到指定路徑的image文件

 

dd if=/dev/hdx | gzip >/path/to/image.gz

備份/dev/hdx全盤數據,並利用gzip工具進行壓縮,保存到指定路徑

 

恢復:

dd if=/path/to/image of=/dev/hdx

將備份文件恢復到指定盤

 

gzip -dc /path/to/image.gz | dd of=/dev/hdx

將壓縮的備份文件恢復到指定盤

 

2.利用netcat遠程備份

dd if=/dev/hda bs=16065b | netcat < targethost-IP > 1234

在源主機上執行此命令備份/dev/hda

 

netcat -l -p 1234 | dd of=/dev/hdc bs=16065b

在目的主機上執行此命令來接收數據並寫入/dev/hdc

 

netcat -l -p 1234 | bzip2 > partition.img

                netcat -l -p 1234 | gzip > partition.img

以上兩條指令是目的主機指令的變化分別采用bzip2  gzip對數據進行壓縮,並將備份文件保存在當前目錄。

 

3.備份MBR

備份:

dd if=/dev/hdx of=/path/to/image count=1 bs=512

備份磁盤開始的512Byte大小的MBR信息到指定文件

 

恢復:

dd if=/path/to/image of=/dev/hdx

將備份的MBR信息寫到磁盤開始部分

 

4.備份軟盤

dd if=/dev/fd0 of=disk.img count=1 bs=1440k

將軟驅數據備份到當前目錄的disk.img文件

 

5.拷貝內存資料到硬盤

dd if=/dev/mem of=/root/mem.bin bs=1024

將內存里的數據拷貝到root目錄下的mem.bin文件

 

6.從光盤拷貝iso鏡像

dd if=/dev/cdrom of=/root/cd.iso

拷貝光盤數據到root文件夾下,並保存為cd.iso文件     

 

7.增加Swap分區文件大小

dd if=/dev/zero of=/swapfile bs=1024 count=262144

創建一個足夠大的文件(此處為256M)

 

mkswap /swapfile

把這個文件變成swap文件

 

swapon /swapfile

啟用這個swap文件

 

/swapfile swap swap defaults 0 0

在每次開機的時候自動加載swap文件, 需要在 /etc/fstab 文件中增加一行

 

8.銷毀磁盤數據

dd if=/dev/urandom of=/dev/hda1

利用隨機的數據填充硬盤,在某些必要的場合可以用來銷毀數據。執行此操作以后,/dev/hda1將無法掛載,創建和拷貝操作無法執行。

 

9.得到最恰當的block size

dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file

dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file

dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file     

dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file

通過比較dd指令輸出中所顯示的命令執行時間,即可確定系統最佳的block size大小

               

10.測試硬盤讀寫速度

dd if=/root/1Gb.file bs=64k | dd of=/dev/null

dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000

通過上兩個命令輸出的執行時間,可以計算出測試硬盤的讀/寫速度     

 

11.修復硬盤

dd if=/dev/sda of=/dev/sda

當硬盤較長時間(比如1,2年)放置不使用后,磁盤上會產生magnetic flux point。當磁頭讀到這些區域時會遇到困難,並可能導致I/O錯誤。當這種情況影響到硬盤的第一個扇區時,可能導致硬盤報廢。上邊的命令有可能使這些數據起死回生。且這個過程是安全,高效的。

2.2     df

2.2.1     功能說明

顯示磁盤的相關信息。

2.2.2     語法

df [-ahHiklmPT][--block-size=<區塊大小>][-t <文件系統類型>][-x <文件系統類型>][--help][--no-sync][--sync][--version][文件或設備]

2.2.3     補充說明

df可顯示磁盤的文件系統與使用情形。

2.2.4     參數

  -a或--all   包含全部的文件系統。

  --block-size=<區塊大小>   以指定的區塊大小來顯示區塊數目。

  -h或--human-readable   以可讀性較高的方式來顯示信息。

  -H或--si   與-h參數相同,但在計算時是以1000 Bytes為換算單位而非1024 Bytes。

  -i或--inodes   顯示inode的信息。

  -k或--kilobytes   指定區塊大小為1024字節。

  -l或--local   僅顯示本地端的文件系統。

  -m或--megabytes   指定區塊大小為1048576字節。

  --no-sync   在取得磁盤使用信息前,不要執行sync指令,此為預設值。

  -P或--portability   使用POSIX的輸出格式。

  --sync   在取得磁盤使用信息前,先執行sync指令。

  -t<文件系統類型>或--type=<文件系統類型>   僅顯示指定文件系統類型的磁盤信息。

  -T或--print-type   顯示文件系統的類型。

  -x<文件系統類型>或--exclude-type=<文件系統類型>   不要顯示指定文件系統類型的磁盤信息。

  --help   顯示幫助。

  --version   顯示版本信息。

  [文件或設備]   指定磁盤設備。

2.3     du

2.3.1     功能說明

顯示目錄或文件的大小。

2.3.2     語法

du [-abcDhHklmsSx][-L <符號連接>][-X <文件>][--block-size][--exclude=<目錄或文件>][--max-depth=<目錄層數>][--help][--version][目錄或文件]

2.3.3     補充說明

du會顯示指定的目錄或文件所占用的磁盤空間。

2.3.4     參數

  -a或-all   顯示目錄中個別文件的大小。

  -b或-bytes   顯示目錄或文件大小時,以byte為單位。

  -c或--total   除了顯示個別目錄或文件的大小外,同時也顯示所有目錄或文件的總和。

  -D或--dereference-args   顯示指定符號連接的源文件大小。

  -h或--human-readable   以K,M,G為單位,提高信息的可讀性。

  -H或--si   與-h參數相同,但是K,M,G是以1000為換算單位。

  -k或--kilobytes   以1024 bytes為單位。

  -l或--count-links   重復計算硬件連接的文件。

  -L<符號連接>或--dereference<符號連接>   顯示選項中所指定符號連接的源文件大小。

  -m或--megabytes   以1MB為單位。

  -s或--summarize   僅顯示總計。

  -S或--separate-dirs   顯示個別目錄的大小時,並不含其子目錄的大小。

  -x或--one-file-xystem   以一開始處理時的文件系統為准,若遇上其它不同的文件系統目錄則略過。

  -X<文件>或--exclude-from=<文件>   在<文件>指定目錄或文件。

  --exclude=<目錄或文件>   略過指定的目錄或文件。

  --max-depth=<目錄層數>   超過指定層數的目錄后,予以忽略。

  --help   顯示幫助。

  --version   顯示版本信息。

2.4     fdisk

2.4.1     功能說明

磁盤分區。

2.4.2     語法

fdisk [-b <分區大小>][-uv][外圍設備代號] 或 fdisk [-l][-b <分區大小>][-uv][外圍設備代號...] 或 fdisk [-s <分區編號>]

 

2.4.3     補充說明

fdisk是用來磁盤分區的程序,它采用傳統的問答式界面,而非類似DOS fdisk的cfdisk互動式操作界面,因此在使用上較為不便,但功能卻絲毫不打折扣。

2.4.4     參數

  -b<分區大小>   指定每個分區的大小。

  -l   列出指定的外圍設備的分區表狀況。

  -s<分區編號>   將指定的分區大小輸出到標准輸出上,單位為區塊。

  -u   搭配"-l"參數列表,會用分區數目取代柱面數目,來表示每個分區的起始地址。

  -v   顯示版本信息。

2.5     format

2.5.1     功能說明

格式化磁盤。最好是對未格式過化的磁盤使用。

2.5.2     語法

format [-n] device

-n 軟盤格式化后不作檢驗。

2.5.3     補充說明

DOS的FORMAT A: 實際上作了以下工作:

  (1)物理格式化磁盤;

  (2)建立 A: 這個目錄 (=Linux中的建立一個文件系統);

  (3)使這個磁盤能被使用者使用(=Linux中的mount一個驅動器)。

這三步在 Linux 中是分開的,在 Linux中可以建立和使用MS-DOS格式的磁盤,還可用其它格式的(例如最常用的ext2),以下是做一張可用的磁盤方法:

  (1)先 su 為 root

  (2)格式化一張1.44M的軟盤(A:)

  # fdformat /dev/fd0H1440

  (3)建立一個文件系統:

  # mkfs -t ext2 -c /dev/fd0H1440(建立一個ext2的文件系統)

  或 # mformat a:(建立一個 MS-DOS 的文件系統)

在使用這張磁盤前,需要先將這個磁盤連通驅動器mount,mount 一個驅動器:

  # mount -t ext2 /dev/fd0 /mnt

或 # mount -t msdos /dev/fd0 /mnt

現在可以使用這張磁盤了,當要拿出磁盤前,一定要umount!

  # umount /mnt

現在可以把磁盤拿出來了。

fdformat和mkfs最好只對未格式過化的磁盤用、已作過的就不需要用這兩條命令了。

如要使用B驅動器,用fd1H1440 和 fd1 替換前文中的fd0H1440和fd0。這樣,以前對A:,B:的工作現在都移轉對/mnt操作了,例如:

  DOS Linux

  C:GUIDO>dir a: $ ls /mnt

  C:GUIDO>copy a:*.* docs emp $ cp /mnt/* /docs/temp

  C:GUIDO>copy *.zip a:zip $ cp *.zip /mnt/zip

  C:GUIDO>a: $ cd /mnt

  A:> /mnt$

使用硬盤的方法類似於軟盤,例如可以 mount一個硬盤或光驅,稍微變一下 /dev 下的 device,例如mount一個光驅:# mount -t iso9660 /dev/cdrom /cdrom

2.6     free

2.6.1     功能說明

顯示內存狀態。

2.6.2     語法

 free [-bkmotV][-s <間隔秒數>]

2.6.3     補充說明

free指令會顯示內存的使用情況,包括實體內存,虛擬的交換文件內存,共享內存區段,以及系統核心使用的緩沖區等。

2.6.4     參數

 -b  以Byte為單位顯示內存使用情況。 

 -k  以KB為單位顯示內存使用情況。 

 -m  以MB為單位顯示內存使用情況。 

 -o  不顯示緩沖區調節列。 

 -s<間隔秒數>  持續觀察內存使用狀況。 

 -t  顯示內存總和列。 

 -V  顯示版本信息。

2.7     mount

2.7.1     功能說明

掛載文件系統。

2.7.2     語法

mount [-t vfstype] [-o options] device dir

 

其中:

1.-t vfstype 指定文件系統的類型,通常不必指定。mount 會自動選擇正確的類型。常用類型有:

光盤或光盤鏡像:iso9660

DOS fat16文件系統:msdos

Windows 9x fat32文件系統:vfat

Windows NT ntfs文件系統:ntfs

Mount Windows文件網絡共享:smbfs

UNIX(LINUX) 文件網絡共享:nfs

 

2.-o options 主要用來描述設備或檔案的掛接方式。常用的參數有:

loop:用來把一個文件當成硬盤分區掛接上系統

ro:采用只讀方式掛接設備

rw:采用讀寫方式掛接設備

iocharset:指定訪問文件系統所用字符集

3.device 要掛接(mount)的設備。

4.dir設備在系統上的掛接點(mount point)。

2.7.3     例子

2.7.3.1           制作並掛載光盤ISO文件

1、從光盤制作光盤鏡像文件。將光盤放入光驅,執行下面的命令。

#cp /dev/cdrom /home/sunky/mydisk.iso 或

#dd if=/dev/cdrom of=/home/sunky/mydisk.iso

注:執行上面的任何一條命令都可將當前光驅里的光盤制作成光盤鏡像文件/home/sunky/mydisk.iso

 

2、將文件和目錄制作成光盤鏡像文件,執行下面的命令。

#mkisofs -r -J -V mydisk -o /home/sunky/mydisk.iso /home/sunky/ mydir

注:這條命令將/home/sunky/mydir目錄下所有的目錄和文件制作成光盤鏡像文件/home/sunky/mydisk.iso,光盤卷標為:mydisk

 

3、光盤鏡像文件的掛接(mount)

#mkdir /mnt/vcdrom

注:建立一個目錄用來作掛接點(mount point)

#mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom

注:使用/mnt/vcdrom就可以訪問盤鏡像文件mydisk.iso里的所有文件了。

 

2.7.3.2           掛載移動硬盤

對linux系統而言,USB接口的移動硬盤是當作SCSI設備對待的。插入移動硬盤之前,應先用fdisk –l 或 more /proc/partitions查看系統的硬盤和硬盤分區情況。

 

[root at pldyrouter /]# fdisk -l

Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes

255 heads, 63 sectors/track, 8924 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/sda1 1 4 32098+ de Dell Utility

/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS

/dev/sda3 2555 7904 42973875 83 Linux

/dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)

/dev/sda5 7905 8924 8193118+ 82 Linux swap

在這里可以清楚地看到系統有一塊SCSI硬盤/dev/sda和它的四個磁盤分區/dev /sda1 -- /dev/sda4, /dev/sda5是分區/dev/sda4的邏輯分區。接好移動硬盤后,再用fdisk –l 或 more /proc/partitions查看系統的硬盤和硬盤分區情況

[root at pldyrouter /]# fdisk -l

 

Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes

255 heads, 63 sectors/track, 8924 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/sda1 1 4 32098+ de Dell Utility

/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS

/dev/sda3 2555 7904 42973875 83 Linux

/dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)

/dev/sda5 7905 8924 8193118+ 82 Linux swap

Disk /dev/sdc: 40.0 GB, 40007761920 bytes

255 heads, 63 sectors/track, 4864 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/sdc1 1 510 4096543+ 7 HPFS/NTFS

/dev/sdc2 511 4864 34973505 f Win95 Ext'd (LBA)

/dev/sdc5 511 4864 34973473+ b Win95 FAT32

 

大家應該可以發現多了一個SCSI硬盤/dev/sdc和它的兩個磁盤分區/dev/sdc1?、/dev/sdc2,其中/dev/sdc5是/dev/sdc2分區的邏輯分區。我們可以使用下面的命令掛接/dev/sdc1和/dev/sdc5。

#mkdir -p /mnt/usbhd1

#mkdir -p /mnt/usbhd2

注:建立目錄用來作掛接點(mount point)

#mount -t ntfs /dev/sdc1 /mnt/usbhd1

#mount -t vfat /dev/sdc5 /mnt/usbhd2

注:對ntfs格式的磁盤分區應使用-t ntfs 參數,對fat32格式的磁盤分區應使用-t vfat參數。若漢字文件名顯示為亂碼或不顯示,可以使用下面的命令格式。

#mount -t ntfs -o iocharset=cp936 /dev/sdc1 /mnt/usbhd1

#mount -t vfat -o iocharset=cp936 /dev/sdc5 /mnt/usbhd2

 

linux系統下使用fdisk分區命令和mkfs文件系統創建命令可以將移動硬盤的分區制作成linux系統所特有的ext2、ext3格式。這樣,在linux下使用就更方便了。使用下面的命令直接掛接即可。

#mount /dev/sdc1 /mnt/usbhd1

2.7.3.3           掛接U盤

和USB接口的移動硬盤一樣對linux系統而言U盤也是當作SCSI設備對待的。使用方法和移動硬盤完全一樣。插入U盤之前,應先用fdisk –l 或 more /proc/partitions查看系統的硬盤和硬盤分區情況。

[root at pldyrouter root]# fdisk -l

Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes

255 heads, 63 sectors/track, 8924 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/sda1 1 4 32098+ de Dell Utility

/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS

/dev/sda3 2555 7904 42973875 83 Linux

/dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)

/dev/sda5 7905 8924 8193118+ 82 Linux swap

 

插入U盤后,再用fdisk –l 或 more /proc/partitions查看系統的硬盤和硬盤分區情況。

[root at pldyrouter root]# fdisk -l

Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes

255 heads, 63 sectors/track, 8924 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/sda1 1 4 32098+ de Dell Utility

/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS

/dev/sda3 2555 7904 42973875 83 Linux

/dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)

/dev/sda5 7905 8924 8193118+ 82 Linux swap

Disk /dev/sdd: 131 MB, 131072000 bytes

9 heads, 32 sectors/track, 888 cylinders

Units = cylinders of 288 * 512 = 147456 bytes

Device Boot Start End Blocks Id System

/dev/sdd1 * 1 889 127983+ b Win95 FAT32

Partition 1 has different physical/logical endings:

phys=(1000, 8, 32) logical=(888, 7, 31)

 

系統多了一個SCSI硬盤/dev/sdd和一個磁盤分區/dev/sdd1,/dev/sdd1就是我們要掛接的U盤。

#mkdir -p /mnt/usb

注:建立一個目錄用來作掛接點(mount point)

#mount -t vfat /dev/sdd1 /mnt/usb

注:現在可以通過/mnt/usb來訪問U盤了, 若漢字文件名顯示為亂碼或不顯示,可以使用下面的命令。

#mount -t vfat -o iocharset=cp936 /dev/sdd1 /mnt/usb

2.7.3.4           掛接Windows文件共享

Windows網絡共享的核心是SMB/CIFS,在linux下要掛接 (mount)windows的磁盤共享,就必須安裝和使用samba軟件包。現在流行的linux發行版絕大多數已經包含了samba軟件包,如果安裝 linux系統時未安裝samba請首先安裝samba。當然也可以到www.samba.org網站下載......新的版本是3.0.10版。

 

當windows系統共享設置好以后,就可以在linux客戶端掛接(mount)了,具體操作如下:

# mkdir –p /mnt/samba

注:建立一個目錄用來作掛接點(mount point)

# mount -t smbfs -o username=administrator,password=pldy123 //10.140.133.23/c$ /mnt/samba

注:administrator 和 pldy123 是ip地址為10.140.133.23 windows計算機的一個用戶名和密碼,c$是這台計算機的一個磁盤共享。如此就可以在linux系統上通過/mnt/samba來訪問windows系統磁盤上的文件了。

2.7.3.5           掛接UNIX系統NFS文件共享

類似於windows的網絡共享,UNIX(Linux)系統也有自己的網絡共享,那就是NFS(網絡文件系統),下面我們就以SUN Solaris2.8和REDHAT as server 3 為例簡單介紹一下在linux下如何mount nfs網絡共享。

 

在linux客戶端掛接(mount)NFS磁盤共享之前,必須先配置好NFS服務端。

 

1、Solaris系統NFS服務端配置方法如下:

(1)修改 /etc/dfs/dfstab, 增加共享目錄

share -F nfs -o rw /export/home/sunky

(2)啟動nfs服務

# /etc/init.d/nfs.server start

(3)NFS服務啟動以后,也可以使用下面的命令增加新的共享

# share /export/home/sunky1

# share /export/home/sunky2

注:/export/home/sunky和/export/home/sunky1是准備共享的目錄

 

2、linux系統NFS服務端配置方法如下:

(1)修改 /etc/exports,增加共享目錄

/export/home/sunky 10.140.133.23(rw)

/export/home/sunky1 *(rw)

/export/home/sunky2 linux-client(rw)

注:/export/home/目錄下的sunky、sunky1、sunky2是准備共享 的目錄,10.140.133.23、*、linux- client是被允許掛接此共享linux客戶機的IP地址或主機名。如果要使用主機名linux-client必須在服務端主機/etc/hosts文 件里增加linux-client主機ip定義。格式如下:

10.140.133.23 linux-client

(2)啟動與停止NFS服務

/etc/rc.d/init.d/portmap start (在REDHAT中PORTMAP是默認啟動的)

/etc/rc.d/init.d/nfs start 啟動NFS服務

/etc/rc.d/init.d/nfs stop 停止NFS服務

注:若修改/etc/export文件增加新的共享,應先停止NFS服務,再啟動NFS服務方能使新增加的共享起作用。使用命令exportfs -rv也可以達到同樣的效果。

3、linux客戶端掛接(mount)其他linux系統或UNIX系統的NFS共享

# mkdir –p /mnt/nfs

注:建立一個目錄用來作掛接點(mount point)

#mount -t nfs -o rw 10.140.133.9:/export/home/sunky /mnt/nfs

注:這里我們假設10.140.133.9是NFS服務端的主機IP地址,當然這里也可以使用主機名,但必須在本機/etc/hosts文件里增加服務端ip定義。/export/home/sunky為服務端共享的目錄。

2.8     umount

2.8.1     功能說明

卸除文件系統。

 

2.8.2     語法

umount [-ahnrvV][-t <文件系統類型>][文件系統]

 

2.8.3     補充說明

umount可卸除目前掛在Linux目錄中的文件系統。

2.8.4     參數

  -a   卸除/etc/mtab中記錄的所有文件系統。

  -h   顯示幫助。

  -n   卸除時不要將信息存入/etc/mtab文件中。

  -r   若無法成功卸除,則嘗試以只讀的方式重新掛入文件系統。

  -t<文件系統類型>   僅卸除選項中所指定的文件系統。

  -v   執行時顯示詳細的信息。

  -V   顯示版本信息。

  [文件系統]   除了直接指定文件系統外,也可以用設備名稱或掛入點來表示文件系統。

3       壓縮管理

3.1     bunzip2

3.1.1     功能說明

.bz2文件的解壓縮程序。

3.1.2     語法

bunzip2 [-fkLsvV][.bz2壓縮文件]

3.1.3     補充說明

bunzip2可解壓縮.bz2格式的壓縮文件。bunzip2實際上是bzip2的符號連接,執行bunzip2與bzip2 -d的效果相同。

3.1.4     參數

 -f或--force  解壓縮時,若輸出的文件與現有文件同名時,預設不會覆蓋現有的文件。若要覆蓋,請使用此參數。 

 -k或--keep  在解壓縮后,預設會刪除原來的壓縮文件。若要保留壓縮文件,請使用此參數。 

 -s或--small  降低程序執行時,內存的使用量。 

 -v或--verbose  解壓縮文件時,顯示詳細的信息。 

 -l,--license,-V或--version  顯示版本信息。

3.2     bzip2

3.2.1     功能說明

.bz2文件的壓縮程序。

3.2.2     語法

bzip2 [-cdfhkLstvVz][--repetitive-best][--repetitive-fast][- 壓縮等級][要壓縮的文件]

3.2.3     補充說明

bzip2采用新的壓縮演算法,壓縮效果比傳統的LZ77/LZ78壓縮演算法來得好。若沒有加上任何參數,bzip2壓縮完文件后會產生.bz2的壓縮文件,並刪除原始的文件。

3.2.4     參數

 -c或--stdout  將壓縮與解壓縮的結果送到標准輸出。 

 -d或--decompress  執行解壓縮。 

 -f或--force  bzip2在壓縮或解壓縮時,若輸出文件與現有文件同名,預設不會覆蓋現有文件。若要覆蓋,請使用此參數。 

 -h或--help  顯示幫助。 

 -k或--keep  bzip2在壓縮或解壓縮后,會刪除原始的文件。若要保留原始文件,請使用此參數。 

 -s或--small  降低程序執行時內存的使用量。 

 -t或--test  測試.bz2壓縮文件的完整性。 

 -v或--verbose  壓縮或解壓縮文件時,顯示詳細的信息。 

 -z或--compress  強制執行壓縮。 

 -L,--license,

 -V或--version  顯示版本信息。 

 --repetitive-best  若文件中有重復出現的資料時,可利用此參數提高壓縮效果。 

 --repetitive-fast  若文件中有重復出現的資料時,可利用此參數加快執行速度。 

 -壓縮等級  壓縮時的區塊大小。

3.3     cpio

3.3.1     功能說明

備份文件。

3.3.2     語法

cpio [-0aABckLovV][-C <輸入/輸出大小>][-F <備份檔>][-H <備份格式>][-O <備份檔>][--block-size=<區塊大小>][--force-local][--help][--quiet][--version] 

或 cpio [-bBcdfikmnrsStuvV][-C <輸入/輸出大小>][-E <范本文件>][-F <備份檔>][-H <備份格式>][-I <備份檔>][-M <回傳信息>][-R <擁有者><:/.><所屬群組>][--block-size=<區塊大小>][--force-local][--help][--no-absolute-filenames][--no-preserve-owner][--only-verify-crc][--quiet][--sparse] [--version][范本樣式...] 

或 cpio [-0adkiLmpuvV][-R <擁有者><:/.><所屬群組>][--help][--no-preserve-owner][--quiet] [--sparse][--version][目的目]

3.3.3     補充說明

cpio是用來建立,還原備份檔的工具程序,它可以加入,解開cpio或tra備份檔內的文件。

3.3.4     參數

 -0或--null  接受新增列控制字符,通常配合find指令的"-print0"參數使用。 

 -a或--reset-access-time  重新設置文件的存取時間。 

 -A或--append  附加到已存在的備份檔中,且這個備份檔必須存放在磁盤上,而不能放置於磁帶機里。 

 -b或--swap  此參數的效果和同時指定"-sS"參數相同。 

 -B  將輸入/輸出的區塊大小改成5210 Bytes。 

 -c  使用舊ASCII備份格式。 

 -C<區塊大小>或--io-size=<區塊大小>  設置輸入/輸出的區塊大小,單位是Byte。 

 -d或--make-directories  如有需要cpio會自行建立目錄。 

 -E<范本文件>或--pattern-file=<范本文件>  指定范本文件,其內含有一個或多個范本樣式,讓cpio解開符合范本條件的文件,格式為每列一個范本樣式。 

 -f或--nonmatching  讓cpio解開所有不符合范本條件的文件。 

 -F<備份檔>或--file=<備份檔>  指定備份檔的名稱,用來取代標准輸入或輸出,也能借此通過網絡使用另一台主機的保存設備存取備份檔。 

 -H<備份格式>  指定備份時欲使用的文件格式。 

 -i或--extract  執行copy-in模式,還原備份檔。 

 -l<備份檔>  指定備份檔的名稱,用來取代標准輸入,也能借此通過網絡使用另一台主機的保存設備讀取備份檔。 

 -k  此參數將忽略不予處理,僅負責解決cpio不同版本間的兼容性問題。 

 -l或--link  以硬連接的方式取代復制文件,可在copy-pass模式下運用。 

 -L或--dereference  不建立符號連接,直接復制該連接所指向的原始文件。 

 -m或preserve-modification-time  不去更換文件的更改時間。 

 -M<回傳信息>或--message=<回傳信息>  設置更換保存媒體的信息。 

 -n或--numeric-uid-gid  使用"-tv"參數列出備份檔的內容時,若再加上參數"-n",則會以用戶識別碼和群組識別碼替代擁有者和群組名稱列出文件清單。 

 -o或--create  執行copy-out模式,建立備份檔。 

 -O<備份檔>  指定備份檔的名稱,用來取代標准輸出,也能借此通過網絡 使用另一台主機的保存設備存放備份檔。 

 -p或--pass-through  執行copy-pass模式,略過備份步驟,直接將文件復制到目的目錄。 

 -r或--rename  當有文件名稱需要更動時,采用互動模式。 

 -R<擁有者><:/.><所屬群組>或

 ----owner<擁有者><:/.><所屬群組>  在copy-in模式還原備份檔,或copy-pass模式復制文件時,可指定這些備份,復制的文件的擁有者與所屬群組。 

 -s或--swap-bytes  交換每對字節的內容。 

 -S或--swap-halfwords  交換每半個字節的內容。 

 -t或--list  將輸入的內容呈現出來。 

 -u或--unconditional  置換所有文件,不論日期時間的新舊與否,皆不予詢問而直接覆蓋。 

 -v或--verbose  詳細顯示指令的執行過程。 

 -V或--dot  執行指令時,在每個文件的執行程序前面加上"."號 

 --block-size=<區塊大小>  設置輸入/輸出的區塊大小,假如設置數值為5,則區塊大小為2500,若設置成10,則區塊大小為5120,依次類推。 

 --force-local  強制將備份檔存放在本地主機。 

 --help  在線幫助。 

 --no-absolute-filenames  使用相對路徑建立文件名稱。 

 --no-preserve-owner  不保留文件的擁有者,誰解開了備份檔,那些文件就歸誰所有。 

 -only-verify-crc  當備份檔采用CRC備份格式時,可使用這項參數檢查備份檔內的每個文件是否正確無誤。 

 --quiet  不顯示復制了多少區塊。 

 --sparse  倘若一個文件內含大量的連續0字節,則將此文件存成稀疏文件。 

 --version  顯示版本信息。

3.4     gunzip

3.4.1     功能說明

解壓文件。

3.4.2     語法

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

3.4.3     補充說明

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

3.4.4     參數

 -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 顯示版本信息。

3.5     gzip

3.5.1     功能說明

壓縮文件。

3.5.2     語法

gzip [-acdfhlLnNqrtvV][-S <壓縮字尾字符串>][-<壓縮效率>][--best/fast][文件...] 或 gzip [-acdfhlLnNqrtvV][-S <壓縮字尾字符串>][-<壓縮效率>][--best/fast][目錄]

3.5.3     補充說明

gzip是個使用廣泛的壓縮程序,文件經它壓縮過后,其名稱后面會多出".gz"的擴展名。

 

3.5.4     參數

 -a或--ascii  使用ASCII文字模式。 

 -c或--stdout或--to-stdout  把壓縮后的文件輸出到標准輸出設備,不去更動原始文件。 

 -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"參數相同。

3.6     split

3.6.1     功能說明

切割文件。

3.6.2     語法

split [--help][--version][-<行數>][-b <字節>][-C <字節>][-l <行數>][要切割的文件][輸出文件名]

3.6.3     補充說明

split可將文件切成較小的文件,預設每1000行會切成一個小文件。

3.6.4     參數

 -<行數>或-l<行數>  指定每多少行就要切成一個小文件。 

 -b<字節>  指定每多少字就要切成一個小文件。 

 -C<字節>  與-b參數類似,但切割時盡量維持每行的完整性。 

 --help  顯示幫助。 

 --version  顯示版本信息。 

 [輸出文件名]  設置切割后文件的前置文件名,split會自動在前置文件名后再加上編號。

3.7     tar

3.7.1     功能說明

備份文件。

3.7.2     語法

tar [-ABcdgGhiklmMoOpPrRsStuUvwWxzZ][-b <區塊數目>][-C <目的目錄>][-f <備份文件>][-F <Script文件>] [-K <文件>][-L <媒體容量>][-N <日期時間>][-T <范本文件>][-V <卷冊名稱>][-X <范本文件>]

[-<設備編號><存儲密度>][--after-date=<日期時間>] [--atime-preserve]

[--backuup=<備份方式>] [--checkpoint][--concatenate][--confirmation][--delete]

[--exclude=<范本樣式>] [--force-local][--group=<群組名稱>]

[--help][--ignore-failed-read][--new-volume-script=<Script文件>]

[--newer-mtime][--no-recursion][--null][--numeric-owner][--owner=<用戶名稱>]

[--posix][--erve][--preserve-order][--preserve-permissions][--record-size=<區塊數目>]

[--recursive-unlink][--remove-files][--rsh-command=<執行指令>]

[--same-owner][--suffix=<備份字尾字符串>][--totals][--use-compress-program=<執行指令>]

[--version][--volno-file=<編號文件>][文件或目錄...]

3.7.3     補充說明

tar是用來建立,還原備份文件的工具程序,它可以加入,解開備份文件內的文件。

3.7.4     參數

  -A或--catenate   新增溫暖件到已存在的備份文件。

  -b<區塊數目>或--blocking-factor=<區塊數目>   設置每筆記錄的區塊數目,每個區塊大小為12Bytes。

  -B或--read-full-records   讀取數據時重設區塊大小。

  -c或--create   建立新的備份文件。

  -C<目的目錄>或--directory=<目的目錄>   切換到指定的目錄。

  -d或--diff或--compare   對比備份文件內和文件系統上的文件的差異。

  -f<備份文件>或--file=<備份文件>   指定備份文件。

  -F<Script文件>或--info-script=<Script文件>   每次更換磁帶時,就執行指定的Script文件。

  -g或--listed-incremental   處理GNU格式的大量備份。

  -G或--incremental   處理舊的GNU格式的大量備份。

  -h或--dereference   不建立符號連接,直接復制該連接所指向的原始文件。

  -i或--ignore-zeros   忽略備份文件中的0 Byte區塊,也就是EOF。

  -k或--keep-old-files   解開備份文件時,不覆蓋已有的文件。

  -K<文件>或--starting-file=<文件>   從指定的文件開始還原。

  -l或--one-file-system   復制的文件或目錄存放的文件系統,必須與tar指令執行時所處的文件系統相同,否則不予復制。

  -L<媒體容量>或-tape-length=<媒體容量>   設置存放每體的容量,單位以1024 Bytes計算。

  -m或--modification-time   還原文件時,不變更文件的更改時間。

  -M或--multi-volume   在建立,還原備份文件或列出其中的內容時,采用多卷冊模式。

  -N<日期格式>或--newer=<日期時間>   只將較指定日期更新的文件保存到備份文件里。

  -o或--old-archive或--portability   將資料寫入備份文件時使用V7格式。

  -O或--stdout   把從備份文件里還原的文件輸出到標准輸出設備。

  -p或--same-permissions   用原來的文件權限還原文件。

  -P或--absolute-names   文件名使用絕對名稱,不移除文件名稱前的"/"號。

  -r或--append   新增文件到已存在的備份文件的結尾部分。

  -R或--block-number   列出每個信息在備份文件中的區塊編號。

  -s或--same-order   還原文件的順序和備份文件內的存放順序相同。

  -S或--sparse   倘若一個文件內含大量的連續0字節,則將此文件存成稀疏文件。

  -t或--list   列出備份文件的內容。

  -T<范本文件>或--files-from=<范本文件>   指定范本文件,其內含有一個或多個范本樣式,讓tar解開或建立符合設置條件的文件。

  -u或--update   僅置換較備份文件內的文件更新的文件。

  -U或--unlink-first   解開壓縮文件還原文件之前,先解除文件的連接。

  -v或--verbose   顯示指令執行過程。

  -V<卷冊名稱>或--label=<卷冊名稱>   建立使用指定的卷冊名稱的備份文件。

  -w或--interactive   遭遇問題時先詢問用戶。

  -W或--verify   寫入備份文件后,確認文件正確無誤。

  -x或--extract或--get  從備份文件中還原文件。

  -X<范本文件>或--exclude-from=<范本文件>  指定范本文件,其內含有一個或多個范本樣式,讓ar排除符合設置條件的文件。

  -z或--gzip或--ungzip   通過gzip指令處理備份文件。

  -Z或--compress或--uncompress   通過compress指令處理備份文件。

  -<設備編號><存儲密度>   設置備份用的外圍設備編號及存放數據的密度。

  --after-date=<日期時間>   此參數的效果和指定"-N"參數相同。

  --atime-preserve   不變更文件的存取時間。

  --backup=<備份方式>或--backup   移除文件前先進行備份。

  --checkpoint   讀取備份文件時列出目錄名稱。

  --concatenate   此參數的效果和指定"-A"參數相同。

  --confirmation   此參數的效果和指定"-w"參數相同。

  --delete   從備份文件中刪除指定的文件。

  --exclude=<范本樣式>   排除符合范本樣式的問家。

  --group=<群組名稱>   把加入設備文件中的文件的所屬群組設成指定的群組。

  --help   在線幫助。

  --ignore-failed-read   忽略數據讀取錯誤,不中斷程序的執行。

  --new-volume-script=<Script文件>   此參數的效果和指定"-F"參數相同。

  --newer-mtime   只保存更改過的文件。

  --no-recursion   不做遞歸處理,也就是指定目錄下的所有文件及子目錄不予處理。

  --null   從null設備讀取文件名稱。

  --numeric-owner   以用戶識別碼及群組識別碼取代用戶名稱和群組名稱。

  --owner=<用戶名稱>   把加入備份文件中的文件的擁有者設成指定的用戶。

  --posix   將數據寫入備份文件時使用POSIX格式。

  --preserve      此參數的效果和指定"-ps"參數相同。

  --preserve-order      此參數的效果和指定"-A"參數相同。

  --preserve-permissions      此參數的效果和指定"-p"參數相同。

  --record-size=<區塊數目>      此參數的效果和指定"-b"參數相同。

  --recursive-unlink   解開壓縮文件還原目錄之前,先解除整個目錄下所有文件的連接。

  --remove-files   文件加入備份文件后,就將其刪除。

  --rsh-command=<執行指令>   設置要在遠端主機上執行的指令,以取代rsh指令。

  --same-owner   嘗試以相同的文件擁有者還原問家你。

  --suffix=<備份字尾字符串>   移除文件前先行備份。

  --totals   備份文件建立后,列出文件大小。

  --use-compress-program=<執行指令>   通過指定的指令處理備份文件。

  --version   顯示版本信息。

  --volno-file=<編號文件>   使用指定文件內的編號取代預設的卷冊編號。

3.8     unzip

3.8.1     功能說明

解壓縮zip文件

3.8.2     語法

unzip [-cflptuvz][-agCjLMnoqsVX][-P <密碼>][.zip文件][文件][-d <目錄>][-x <文件>] 或 unzip [-Z]

 

3.8.3     補充說明

unzip為.zip壓縮文件的解壓縮程序。

3.8.4     參數

  -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。

  [.zip文件]   指定.zip壓縮文件。

  [文件]   指定要處理.zip壓縮文件中的哪些文件。

  -d<目錄>   指定文件解壓縮后所要存儲的目錄。

  -x<文件>   指定不要處理.zip壓縮文件中的哪些文件。

  -Z   unzip -Z等於執行zipinfo指令。

3.9     zgrep

3.9.1     功能說明

這個命令的功能是在壓縮文件中尋找匹配的正則表達式,用法和grep命令相同,只不過操作的對象是壓縮文件。如果用戶想看看在某個壓縮文件中有沒有某一句話,便可用zgrep命令。

3.9.2     語法

zgrep [options] [files]

[options]同grep對應選項。

3.10        zip

3.10.1  功能說明

壓縮文件。

3.10.2  語法

zip [-options][-b <工作目錄>][-ll][-n <字尾字符串>][-t <日期時間>][-<壓縮效率>][壓縮文件][文件...][-i <范本樣式>][-x <范本樣式>]

3.10.3  補充說明

zip是個使用廣泛的壓縮程序,文件經它壓縮后會另外產生具有".zip"擴展名的壓縮文件。

3.10.4  參數

  -A   調整可執行的自動解壓縮文件。

  -b<工作目錄>   指定暫時存放文件的目錄。

  -c   替每個被壓縮的文件加上注釋。

  -d   從壓縮文件內刪除指定的文件。

  -D   壓縮文件內不建立目錄名稱。

  -f   此參數的效果和指定"-u"參數類似,但不僅更新既有文件,如果某些文件原本不存在於壓縮文件內,使用本參數會一並將其加入壓縮文件中。

  -F   嘗試修復已損壞的壓縮文件。

  -g   將文件壓縮后附加在既有的壓縮文件之后,而非另行建立新的壓縮文件。

  -h   在線幫助。

  -i<范本樣式>   只壓縮符合條件的文件。

  -j   只保存文件名稱及其內容,而不存放任何目錄名稱。

  -J   刪除壓縮文件前面不必要的數據。

  -k   使用MS-DOS兼容格式的文件名稱。

  -l   壓縮文件時,把LF字符置換成LF+CR字符。

  -ll   壓縮文件時,把LF+CR字符置換成LF字符。

  -L   顯示版權信息。

  -m   將文件壓縮並加入壓縮文件后,刪除原始文件,即把文件移到壓縮文件中。

  -n<字尾字符串>   不壓縮具有特定字尾字符串的文件。

  -o   以壓縮文件內擁有最新更改時間的文件為准,將壓縮文件的更改時間設成和該文件相同。

  -q   不顯示指令執行過程。

  -r   遞歸處理,將指定目錄下的所有文件和子目錄一並處理。

  -S   包含系統和隱藏文件。

  -t<日期時間>   把壓縮文件的日期設成指定的日期。

  -T   檢查備份文件內的每個文件是否正確無誤。

  -u   更換較新的文件到壓縮文件內。

  -v   顯示指令執行過程或顯示版本信息。

  -V   保存VMS操作系統的文件屬性。

  -w   在文件名稱里假如版本編號,本參數僅在VMS操作系統下有效。

  -x<范本樣式>   壓縮時排除符合條件的文件。

  -X   不保存額外的文件屬性。

  -y   直接保存符號連接,而非該連接所指向的文件,本參數僅在UNIX之類的系統下有效。

  -z   替壓縮文件加上注釋。

  -$   保存第一個被壓縮文件所在磁盤的卷冊名稱。

  -<壓縮效率>   壓縮效率是一個介於1-9的數值。

4       進程管理

4.1     crontab

4.1.1     功能說明

設置計時器。

4.1.2     語法

crontab [-u <用戶名稱>][配置文件] 或 crontab [-u <用戶名稱>][-elr]

4.1.3     補充說明

cron是一個常駐服務,它提供計時器的功能,讓用戶在特定的時間得以執行預設的指令或程序。只要用戶會編輯計時器的配置文件,就可以使用計時器的功能。其配置文件格式如下:

  Minute Hour Day Month DayOFWeek Command 

4.1.4     參數 

 -e  編輯該用戶的計時器設置。 

 -l  列出該用戶的計時器設置。 

 -r  刪除該用戶的計時器設置。 

 -u<用戶名稱>  指定要設定計時器的用戶名稱。

4.2     kill

4.2.1     功能說明

刪除執行中的程序或工作。

4.2.2     語法

kill [-s <信息名稱或編號>][程序] 或 kill [-l <信息編號>]

4.2.3     補充說明

kill可將指定的信息送至程序。預設的信息為SIGTERM(15),可將指定程序終止。若仍無法終止該程序,可使用SIGKILL(9)信息嘗試強制刪除程序。程序或工作的編號可利用ps指令或jobs指令查看。 

4.2.4     參數

 -l <信息編號>  若不加<信息編號>選項,則-l參數會列出全部的信息名稱。 

 -s <信息名稱或編號>  指定要送出的信息。 

 [程序]  [程序]可以是程序的PID或是PGID,也可以是工作編號。

4.3     nohup

4.3.1     功能說明

不掛斷地運行命令。該命令可以在你退出帳戶/關閉終端之后繼續運行相應的進程。

4.3.2     語法

nohup Command [ Arg ... ] [ & ]

 

nohup 命令運行由 Command 參數和任何相關的 Arg 參數指定的命令,忽略所有掛斷(SIGHUP)信號。在注銷后使用 nohup 命令運行后台中的程序。要運行后台中的 nohup 命令,添加&( 表示“and”的符號)到命令的尾部。

  無論是否將 nohup 命令的輸出復位向到終端,輸出都將附加到當前目錄的 nohup.out 文件中。如果當前目錄的 nohup.out 文件不可寫,輸出復位向到 $HOME/nohup.out 文件中。如果沒有文件能創建或打開以用於追加,那么 Command 參數指定的命令不可調用。如果標准錯誤是一個終端,那么把指定的命令寫給標准錯誤的所有輸出作為標准輸出復位向到相同的文件描述符。

  

退出狀態:該命令返回下列出口值:

   126 可以查找但不能調用 Command 參數指定的命令。

     127 nohup 命令發生錯誤或不能查找由 Command 參數指定的命令。

   否則,nohup 命令的退出狀態是 Command 參數指定命令的退出狀態。

 

如果使用nohup命令提交作業,那么在缺省情況下該作業的所有輸出都被復位向到一個名為nohup.out的文件中,除非另外指定了輸出文件:

nohup command > myout.file 2>&1 &在上面的例子中,輸出被復位向到myout.file文件中。

4.3.3     例子

我們有個test.php需要在后台運行,並且希望在后台能夠定期運行,那么就使用nohup:

nohup /root/test.php &

(nohup sh make.sh &)

4.4     ps

4.4.1     功能說明

報告程序狀況。

4.4.2     語法

ps [-aAcdefHjlmNVwy][acefghLnrsSTuvxX][-C <指令名稱>][-g <群組名稱>][-G <群組識別碼>][-p <程序識別碼>][p <程序識別碼>][-s <階段作業>][-t <終端機編號>][t <終端機編號>][-u <用戶識別碼>][-U <用戶識別碼>][U <用戶名稱>][-<程序識別碼>][--cols <每列字符數>][--columns <每列字符數>][--cumulative][--deselect][--forest][--headers][--help][--info][--lines <顯示列數>][--no-headers][--group <群組名稱>][-Group <群組識別碼>][--pid <程序識別碼>][--rows <顯示列數>][--sid <階段作業>][--tty <終端機編號>][--user <用戶名稱>][--User <用戶識別碼>][--version][--width <每列字符數>]

4.4.3     補充說明

ps是用來報告程序執行狀況的指令,您可以搭配kill指令隨時中斷,刪除不必要的程序。

4.4.4     參數

 -a  顯示所有終端機下執行的程序,除了階段作業領導者之外。 

 a  顯示現行終端機下的所有程序,包括其他用戶的程序。 

 -A  顯示所有程序。 

 -c  顯示CLS和PRI欄位。 

 c  列出程序時,顯示每個程序真正的指令名稱,而不包含路徑,參數或常駐服務的標示。 

 -C<指令名稱>  指定執行指令的名稱,並列出該指令的程序的狀況。 

 -d  顯示所有程序,但不包括階段作業領導者的程序。 

 -e  此參數的效果和指定"A"參數相同。 

 e  列出程序時,顯示每個程序所使用的環境變量。 

 -f  顯示UID,PPIP,C與STIME欄位。 

 f  用ASCII字符顯示樹狀結構,表達程序間的相互關系。 

 -g<群組名稱>  此參數的效果和指定"-G"參數相同,當亦能使用階段作業領導者的名稱來指定。 

 g  顯示現行終端機下的所有程序,包括群組領導者的程序。 

 -G<群組識別碼>  列出屬於該群組的程序的狀況,也可使用群組名稱來指定。 

 h  不顯示標題列。 

 -H  顯示樹狀結構,表示程序間的相互關系。 

 -j或j  采用工作控制的格式顯示程序狀況。 

 -l或l  采用詳細的格式來顯示程序狀況。 

 L  列出欄位的相關信息。 

 -m或m  顯示所有的執行緒。 

 n  以數字來表示USER和WCHAN欄位。 

 -N  顯示所有的程序,除了執行ps指令終端機下的程序之外。 

 -p<程序識別碼>  指定程序識別碼,並列出該程序的狀況。 

 p<程序識別碼>  此參數的效果和指定"-p"參數相同,只在列表格式方面稍有差異。 

 r  只列出現行終端機正在執行中的程序。 

 -s<階段作業>  指定階段作業的程序識別碼,並列出隸屬該階段作業的程序的狀況。 

 s  采用程序信號的格式顯示程序狀況。 

 S  列出程序時,包括已中斷的子程序資料。 

 -t<終端機編號>  指定終端機編號,並列出屬於該終端機的程序的狀況。 

 t<終端機編號>  此參數的效果和指定"-t"參數相同,只在列表格式方面稍有差異。 

 -T  顯示現行終端機下的所有程序。 

 -u<用戶識別碼>  此參數的效果和指定"-U"參數相同。 

 u  以用戶為主的格式來顯示程序狀況。 

 -U<用戶識別碼>  列出屬於該用戶的程序的狀況,也可使用用戶名稱來指定。 

 U<用戶名稱>  列出屬於該用戶的程序的狀況。 

 v  采用虛擬內存的格式顯示程序狀況。 

 -V或V  顯示版本信息。 

 -w或w  采用寬闊的格式來顯示程序狀況。  

 x  顯示所有程序,不以終端機來區分。 

 X  采用舊式的Linux i386登陸格式顯示程序狀況。 

 -y  配合參數"-l"使用時,不顯示F(flag)欄位,並以RSS欄位取代ADDR欄位 。 

 -<程序識別碼>  此參數的效果和指定"p"參數相同。 

 --cols<每列字符數>  設置每列的最大字符數。 

 --columns<每列字符數>  此參數的效果和指定"--cols"參數相同。 

 --cumulative  此參數的效果和指定"S"參數相同。 

 --deselect  此參數的效果和指定"-N"參數相同。 

 --forest  此參數的效果和指定"f"參數相同。 

 --headers  重復顯示標題列。 

 --help  在線幫助。 

 --info  顯示排錯信息。 

 --lines<顯示列數>  設置顯示畫面的列數。 

 --no-headers  此參數的效果和指定"h"參數相同,只在列表格式方面稍有差異。 

 --group<群組名稱>  此參數的效果和指定"-G"參數相同。 

 --Group<群組識別碼>  此參數的效果和指定"-G"參數相同。 

 --pid<程序識別碼>  此參數的效果和指定"-p"參數相同。 

 --rows<顯示列數>  此參數的效果和指定"--lines"參數相同。 

 --sid<階段作業>  此參數的效果和指定"-s"參數相同。 

 --tty<終端機編號>  此參數的效果和指定"-t"參數相同。 

 --user<用戶名稱>  此參數的效果和指定"-U"參數相同。 

 --User<用戶識別碼>  此參數的效果和指定"-U"參數相同。 

 --version  此參數的效果和指定"-V"參數相同。 

 --widty<每列字符數>  此參數的效果和指定"-cols"參數相同。

4.5     renice

4.5.1     功能說明

調整優先權。

4.5.2     語法

renice [優先等級][-g <程序群組名稱>...][-p <程序識別碼>...][-u <用戶名稱>...]

4.5.3     補充說明

renice指令可重新調整程序執行的優先權等級。預設是以程序識別碼指定程序調整其優先權,您亦可以指定程序群組或用戶名稱調整優先權等級,並修改所有隸屬於該程序群組或用戶的程序的優先權。等級范圍從-20--19,只有系統管理者可以改變其他用戶程序的優先權,也僅有系統管理者可以設置負數等級。

4.5.4     參數

 -g <程序群組名稱>  使用程序群組名稱,修改所有隸屬於該程序群組的程序的優先權。 

 -p <程序識別碼>  改變該程序的優先權等級,此參數為預設值。 

 -u <用戶名稱>  指定用戶名稱,修改所有隸屬於該用戶的程序的優先權。

4.6     top

4.6.1     功能說明

顯示,管理執行中的程序。

4.6.2     語法

top [bciqsS][d <間隔秒數>][n <執行次數>]

4.6.3     補充說明

執行top指令可顯示目前正在系統中執行的程序,並通過它所提供的互動式界面,用熱鍵加以管理。

4.6.4     參數

 b  使用批處理模式。 

 c  列出程序時,顯示每個程序的完整指令,包括指令名稱,路徑和參數等相關信息。 

 d<間隔秒數>  設置top監控程序執行狀況的間隔時間,單位以秒計算。 

 i  執行top指令時,忽略閑置或是已成為Zombie的程序。 

 n<執行次數>  設置監控信息的更新次數。 

 q  持續監控程序執行的狀況。 

 s  使用保密模式,消除互動模式下的潛在危機。 

 S  使用累計模式,其效果類似ps指令的"-S"參數。

4.7     who

4.7.1     功能說明

顯示目前登入系統的用戶信息。

4.7.2     語法

who [-Himqsw][--help][--version][am i][記錄文件]

4.7.3     補充說明

執行這項指令可得知目前有那些用戶登入系統,單獨執行who指令會列出登入帳號,使用的 

終端機,登入時間以及從何處登入或正在使用哪個X顯示器。

4.7.4     參數

 -H或--heading  顯示各欄位的標題信息列。 

 -i或-u或--idle  顯示閑置時間,若該用戶在前一分鍾之內有進行任何動作,將標示成"."號,如果該用戶已超過24小時沒有任何動作,則標示出"old"字符串。 

 -m  此參數的效果和指定"am i"字符串相同。 

 -q或--count  只顯示登入系統的帳號名稱和總人數。 

 -s  此參數將忽略不予處理,僅負責解決who指令其他版本的兼容性問題。 

 -w或-T或--mesg或--message或--writable  顯示用戶的信息狀態欄。 

 --help  在線幫助。 

 --version  顯示版本信息。

5       網絡管理

5.1     Curl

Curl是Linux下一個很強大的http命令行工具,其功能十分強大。

 

5.1.1     讀取網頁

$ curl http://www.linuxidc.com

5.1.2     保存網頁

$ curl http://www.linuxidc.com > page.html

$ curl -o page.html http://www.linuxidc.com

5.1.3     使用的proxy服務器及其端口: -x

$ curl -x 123.45.67.89:1080 -o page.html http://www.linuxidc.com

5.1.4     使用cookie來記錄session信息

$ curl -x 123.45.67.89:1080 -o page.html -D cookie0001.txt http://www.linuxidc.com

這個option: -D 是把http的response里面的cookie信息存到一個特別的文件中去,

這樣,當頁面被存到page.html的同時,cookie信息也被存到了cookie0001.txt里面了

5.1.5     下一次訪問的時候,繼續使用上次留下的cookie信息

使用option來把上次的cookie信息追加到http request里面去: -b

$ curl -x 123.45.67.89:1080 -o page1.html -D cookie0002.txt -b cookie0001.txt http://www.linuxidc.com

5.1.6     瀏覽器信息

$ curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45.67.89:1080 -o page.html -D cookie0001.txt http://www.linuxidc.com

5.1.7     referer

$ curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45.67.89:1080 -e "mail.linuxidc.com" -o page.html -D cookie0001.txt http://www.linuxidc.com

這樣就可以騙對方的服務器,你是從mail.linuxidc.com點擊某個鏈接過來的

5.1.8     下載文件

$ curl -o 1.jpg http://cgi2.tky.3web.ne.jp/~zzh/screen1.JPG

$ curl -O http://cgi2.tky.3web.ne.jp/~zzh/screen1.JPG

-O 可以按照服務器上的文件名,自動存在本地

$ curl -O http://cgi2.tky.3web.ne.jp/~zzh/screen[1-10].JPG

5.1.9     批量下載

$ curl -O http://cgi2.tky.3web.ne.jp/~{zzh,nick}/[001-201].JPG

 

這樣產生的下載,就是

~zzh/001.JPG

~zzh/002.JPG

...

~zzh/201.JPG

~nick/001.JPG

~nick/002.JPG

...

~nick/201.JPG

5.1.10  自定義文件名的下載

curl -o #2_#1.jpg http://cgi2.tky.3web.ne.jp/~{zzh,nick}/[001-201].JPG

這樣,自定義出來下載下來的文件名,就變成了這樣:

原來: ~zzh/001.JPG —-> 下載后: 001-zzh.JPG 原來: ~nick/001.JPG —-> 下載后: 001-nick.JPG

這樣一來就不怕文件重名啦

5.1.11  斷點續傳

$ curl -c -O http://cgi2.tky.3wb.ne.jp/~zzh/screen1.JPG

分塊下載,我們使用這個option就可以了: -r

舉例說明

比如我們有一個http://cgi2.tky.3web.ne.jp/~zzh/zhao1.MP3 要下載(趙老師的電話朗誦 :D )我們就可以用這樣的命令:

$ curl -r 0-10240 -o "zhao.part1" http:/cgi2.tky.3web.ne.jp/~zzh/zhao1.MP3 &\

$ curl -r 10241-20480 -o "zhao.part1" http:/cgi2.tky.3web.ne.jp/~zzh/zhao1.MP3 &\

$ curl -r 20481-40960 -o "zhao.part1" http:/cgi2.tky.3web.ne.jp/~zzh/zhao1.MP3 &\

$ curl -r 40961- -o "zhao.part1" http:/cgi2.tky.3web.ne.jp/~zzh/zhao1.MP3

這樣就可以分塊下載啦。不過你需要自己把這些破碎的文件合並起來如果你用UNIX或蘋果,用 cat zhao.part* > zhao.MP3就可以如果用的是Windows,用copy /b 來解決吧,呵呵

5.1.12  瀏覽FTP

$ curl -u name:passwd ftp://ip:port/path/file

或者大家熟悉的

$ curl ftp://name:passwd@ip:port/path/file

 

5.1.13  FTP上傳

上傳的option是 -T

比如我們向ftp傳一個文件:

$ curl -T localfile -u name:passwd ftp://upload_site:port/path/

5.1.14  HTTP上傳

$ curl -T localfile http://cgi2.tky.3web.ne.jp/~zzh/abc.cgi

注意,這時候,使用的協議是HTTP的PUT method

5.1.15  POST模式讀取網頁

POST模式的option則是 -d

比如,

$ curl -d "user=nickwolfe&password=12345" http://www.linuxidc.com/login.cgi

 

5.1.16  POST模式下的文件上傳

比如

<form method="POST" enctype="multipar/form-data" action="http://cgi2.tky.3web.ne.jp/~zzh/up_file.cgi">

<input type=file name=upload>

<input type=submit name=nick value="go">

</form>

這樣一個HTTP表單,我們要用curl進行模擬,就該是這樣的語法:

$ curl -F upload=@localfile -F nick=go http://cgi2.tky.3web.ne.jp/~zzh/up_file.cgi

5.2     finger

5.2.1     功能說明

查找並顯示用戶信息。

5.2.2     語法

finger [-lmsp][帳號名稱...]

5.2.3     補充說明

finger指令會去查找,並顯示指定帳號的用戶相關信息,包括本地與遠端主機的用戶皆可,帳號名稱沒有大小寫的差別。單獨執行finger指令,它會顯示本地主機現在所有的用戶的登陸信息,包括帳號名稱,真實姓名,登入終端機,閑置時間,登入時間以及地址和電話。

5.2.4     參數

  -l  列出該用戶的帳號名稱,真實姓名,用戶專屬目錄,登入所用的Shell,登入時間,轉信地址,電子郵件狀態,還有計划文件和方案文件內容。 

  -m  排除查找用戶的真實姓名。

  -s  列出該用戶的帳號名稱,真實姓名,登入終端機,閑置時間,登入時間以及地址和電話。 

  -p  列出該用戶的帳號名稱,真實姓名,用戶專屬目錄,登入所用的Shell,登入時間,轉信地址,電子郵件狀態,但不顯示該用戶的計划文件和方案文件內容。

5.3     ftp

5.3.1     功能說明

設置文件系統相關功能。

5.3.2     語法

ftp [-dignv][主機名稱或IP地址]

5.3.3     補充說明

FTP是ARPANet的標准文件傳輸協議,該網絡就是現今Internet的前身。

5.3.4     參數

  -d   詳細顯示指令執行過程,便於排錯或分析程序執行的情形。

  -i   關閉互動模式,不詢問任何問題。

  -g   關閉本地主機文件名稱支持特殊字符的擴充特性。

  -n   不使用自動登陸。

  -v   顯示指令執行過程。

5.4     ifconfig

5.4.1     功能說明

顯示或設置網絡設備。

5.4.2     語法

ifconfig [網絡設備][down up -allmulti -arp -promisc][add<地址>][del<地址>][<hw<網絡設備類型><硬件地址>][io_addr<I/O地址>][irq<IRQ地址>][media<網絡媒介類型>][mem_start<內存地址>][metric<數目>][mtu<字節>][netmask<子網掩碼>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址]

5.4.3     補充說明

ifconfig可設置網絡設備的狀態,或是顯示目前的設置。

如果提示找不到命令,可用/sbin/ifconfig

5.4.4     參數

  add<地址>   設置網絡設備IPv6的IP地址。

  del<地址>   刪除網絡設備IPv6的IP地址。

  down   關閉指定的網絡設備。

  <hw<網絡設備類型><硬件地址>   設置網絡設備的類型與硬件地址。

  io_addr<I/O地址>   設置網絡設備的I/O地址。

  irq<IRQ地址>   設置網絡設備的IRQ。

  media<網絡媒介類型>   設置網絡設備的媒介類型。

  mem_start<內存地址>   設置網絡設備在主內存所占用的起始地址。

  metric<數目>   指定在計算數據包的轉送次數時,所要加上的數目。

  mtu<字節>   設置網絡設備的MTU。

  netmask<子網掩碼>   設置網絡設備的子網掩碼。

  tunnel<地址>   建立IPv4與IPv6之間的隧道通信地址。

  up   啟動指定的網絡設備。

  -broadcast<地址>   將要送往指定地址的數據包當成廣播數據包來處理。

  -pointopoint<地址>   與指定地址的網絡設備建立直接連線,此模式具有保密功能。

  -promisc   關閉或啟動指定網絡設備的promiscuous模式。

  [IP地址]   指定網絡設備的IP地址。

  [網絡設備]   指定網絡設備的名稱。

5.5     ip

5.5.1     功能說明

ip是iproute2軟件包里面的一個強大的網絡配置工具,它能夠替代一些傳統的網絡管理工具。例如:ifconfig、route等。

5.5.2     語法

ip [選項] [動作] [指令]

5.5.3     參數

動作 := { link | addr | route | rule | neigh | tunnel | maddr | mroute | monitor }

選項 := { -V[ersion] | -s[tatistics] | -r[esolve] |-f[amily] { inet | inet6 | ipx | dnet | link } | -o[neline] }

5.5.4     裝置介面 (device) 的相關設定: ip link

ip link 可以設定與裝置 (device) 有關的相關設定,包括 MTU 以及該網路介面的 MAC 等等, 當然也可以啟動 (up) 或關閉 (down) 某個網路介面啦!整個語法是這樣的:

[root@linux ~]# ip [-s] link show <== 單純的查閱該裝置相關的資訊

[root@linux ~]# ip link set [device] [動作與參數]

參數:

show:僅顯示出這個裝置的相關內容,如果加上 -s 會顯示更多統計數據;

set :可以開始設定項目, device 指的是 eth0, eth1 等等介面代號;

動作與參數:包括有底下的這些動作:

   up|down :啟動 (up) 或關閉 (down) 某個介面,其他參數使用預設的乙太網路;

   address :如果這個裝置可以更改 MAC 的話,用這個參數修改!

   name     :給予這個裝置一個特殊的名字;

   mtu      :就是最大傳輸單元啊!

 

范例一:顯示出所有的介面資訊

[root@linux ~]# ip link show

1: lo: <LOOPBACK,UP,10000> mtu 16436 qdisc noqueue

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

2: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000

    link/ether 00:50:fc:22:9a:cb brd ff:ff:ff:ff:ff:ff

3: sit0: <NOARP> mtu 1480 qdisc noop

    link/sit 0.0.0.0 brd 0.0.0.0

[root@linux ~]# ip -s link show eth0

2: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000

    link/ether 00:50:fc:22:9a:cb brd ff:ff:ff:ff:ff:ff

    RX: bytes packets errors dropped overrun mcast

    484011792 2247372 0       0       0       0

    TX: bytes packets errors dropped carrier collsns

    2914104290 2867753 0       0       0       0

使用 ip link show 可以顯示出整個裝置介面的硬體相關資訊,如上所示,包括網卡位址(MAC)、MTU等等, 比較有趣的應該是那個 sit0 的介面了,那個 sit0 的介面是用在 IPv4 及 IPv6 的封包轉換上的, 對於我們僅使用 IPv4 的網路是沒有作用的。 lo 及 sit0 都是主機內部所自行設定的。 而如果加上 -s 的參數後,則這個網路卡的相關統計資訊就會被列出來, 包括接收 (RX) 及傳送 (TX) 的封包數量等等,詳細的內容與 ifconfig 所輸出的結果相同的。

范例二:啟動、關閉與設定裝置的相關資訊

[root@linux ~]# ip link set eth0 up

# 啟動 eth0 這個裝置介面;

[root@linux ~]# ip link set eth0 down

# 阿就關閉啊!簡單的要命~

[root@linux ~]# ip link set eth0 mtu 1000

# 更改 MTU 的值,達到 1000 bytes,單位就是 bytes 啊!

更新網路卡的 MTU 使用 ifconfig 也可以達成啊!沒啥了不起,不過,如果是要更改『網路卡代號、 MAC 位址的資訊』的話,那可就得使用 ip 羅~不過,設定前得要先關閉該網路卡,否則會不成功。 如下所示:

范例三:修改網路卡代號、MAC 等參數

[root@linux ~]# ip link set eth0 name vbird

SIOCSIFNAME: Device or resource busy

# 因為該裝置目前是啟動的,所以不能這樣做設定。你應該要這樣做:

[root@linux ~]# ip link set eth0 down       <==關閉介面

[root@linux ~]# ip link set eth0 name vbird <==重新設定

[root@linux ~]# ip link show                <==觀察一下

2. vbird: <BROADCAST,MILTICASE> mtu 900 qdisc pfifo_fast qlen 1000

    link/ehter 00:40:d0:13:c3:46 brd ff:ff:ff:ff:ff:ff

# 怕了吧!連網路卡代號都可以改變!不過,玩玩後記得改回來啊!

# 因為我們的 ifcfg-eth0 還是使用原本的裝置代號!避免有問題,要改回來

[root@linux ~]# ip link set vbird name eth0 <==介面改回來

[root@linux ~]# ip link set eth0 address aa:aa:aa:aa:aa:aa

[root@linux ~]# ip link show eth0

# 如果你的網路卡支援硬體位址 (MAC) 可以更改的話,

# 那么上面這個動作就可以更改你的網路卡位址了!厲害吧!

# 不過,還是那句老話,測試完之後請立刻改回來啊!

在這個裝置的硬體相關資訊設定上面,包括 MTU, MAC 以及傳輸的模式等等,都可以在這里設定。 有趣的是那個 address 的項目,那個項目後面接的可是硬體位址 (MAC) 而不是 IP 喔! 很容易搞錯啊!切記切記!更多的硬體參數可以使用 man ip 查閱一下與 ip link 有關的設定。

5.5.5     關於額外的 IP 相關設定: ip address

如果說 ip link 是與 OSI 七層協定 的第二層資料連階層有關的話,那么 ip address (ip addr) 就是與第三層網路層有關的參數啦! 主要是在設定與 IP 有關的各項參數,包括 netmask, broadcast 等等。

[root@linux ~]# ip address show   <==就是查閱 IP 參數啊!

[root@linux ~]# ip address [add|del] [IP參數] [dev 裝置名] [相關參數]

參數:

show    :單純的顯示出介面的 IP 資訊啊;

add|del :進行相關參數的增加 (add) 或刪除 (del) 設定,主要有:

    IP 參數:主要就是網域的設定,例如 192.168.100.100/24 之類的設定喔;

    dev    :這個 IP 參數所要設定的介面,例如 eth0, eth1 等等;

    相關參數:主要有底下這些:

        broadcast:設定廣播位址,如果設定值是 + 表示『讓系統自動計算』

        label    :亦即是這個裝置的別名,例如 eth0:0 就是了!

        scope    :這個介面的領域,通常是這幾個大類:

                   global :允許來自所有來源的連線;

                   site   :僅支援 IPv6 ,僅允許本主機的連線;

                   link   :僅允許本裝置自我連線;

                   host   :僅允許本主機內部的連線;

                   所以當然是使用 global 羅!預設也是 global 啦!

 

范例一:顯示出所有的介面之 IP 參數:

[root@linux ~]# ip address show

1: lo: <LOOPBACK,UP,10000> mtu 16436 qdisc noqueue

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000

    link/ether 00:50:fc:22:9a:cb brd ff:ff:ff:ff:ff:ff

    inet 192.168.1.2/24 brd 192.168.1.255 scope global eth0

    inet6 fe80::250:fcff:fe22:9acb/64 scope link

       valid_lft forever preferred_lft forever

3: sit0: <NOARP> mtu 1480 qdisc noop

    link/sit 0.0.0.0 brd 0.0.0.0

看到上面那個特殊的字體嗎?沒錯!那就是 IP 參數啦!也是 ip address 最主要的功能。 底下我們進一步來新增虛擬的網路介面試看看:

范例二:新增一個介面,名稱假設為 eth0:vbird

[root@linux ~]# ip address add 192.168.50.50/24 broadcast + \

> dev eth0 label eth0:vbird

[root@linux ~]# ip address show eth0

2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000

    link/ether 00:40:d0:13:c3:46 brd ff:ff:ff:ff:ff:ff

    inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0

    inet 192.168.50.50/24 brd 192.168.50.255 scope global eth0:vbird

    inet6 fe80::240:d0ff:fe13:c346/64 scope link

       valid_lft forever preferred_lft forever

# 看到上面的特殊字體了吧?多出了一行新的介面,且名稱是 eth0:vbird

# 至於那個 broadcast + 也可以寫成 broadcast 192.168.50.255 啦!

[root@linux ~]# ifconfig

eth0:vbir Link encap:Ethernet HWaddr 00:40:D0:13:C3:46

          inet addr:192.168.50.50 Bcast:192.168.50.255 Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

          Interrupt:5 Base address:0x3e00

# 如果使用 ifconfig 就能夠看到這個怪東西了!

范例三:將剛剛的介面刪除

[root@linux ~]# ip address del 192.168.50.50/24 dev eth0

 

5.5.6     關於路由的相關設定: ip route

ip route 的功能幾乎與 route 這個指令差不多,但是,他還可以進行額外的參數設計,例如 MTU 的規划等等,相當的強悍啊!

[root@linux ~]# ip route show <==單純的顯示出路由的設定而已

[root@linux ~]# ip route [add|del] [IP或網域] [via gateway] [dev 裝置]

參數:

show :單純的顯示出路由表,也可以使用 list ;

add|del :增加 (add) 或刪除 (del) 路由的意思。

    IP或網域:可使用 192.168.50.0/24 之類的網域或者是單純的 IP ;

    via     :從那個 gateway 出去,不一定需要;

    dev     :由那個裝置連出去,這就需要了!

    mtu     :可以額外的設定 MTU 的數值喔!

 

范例一:顯示出目前的路由資料

[root@linux ~]# ip route show

192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.2

169.254.0.0/16 dev eth1 scope link

default via 192.168.1.254 dev eth1

如上表所示,最簡單的功能就是顯示出目前的路由資訊,其實跟 route 這個指令相同啦! 指示必須要注意幾個小東西:

proto:此路由的路由協定,主要有 redirect, kernel, boot, static, ra 等, 其中 kernel 指的是直接由核心判斷自動設定。

scope:路由的范圍,主要是 link ,亦即是與本裝置有關的直接連線。

再來看一下如何進行路由的增加與刪除吧!

范例二:增加路由,主要是本機直接可溝通的網域

[root@linux ~]# ip route add 192.168.5.0/24 dev eth0

# 針對本機直接溝通的網域設定好路由,不需要透過外部的路由器

[root@linux ~]# ip route show

192.168.5.0/24 dev eth0 scope link

....以下省略....

范例三:增加可以通往外部的路由,需透過 router 喔!

[root@linux ~]# ip route add 192.168.10.0/24 via 192.168.5.100 dev eth0

[root@linux ~]# ip route show

192.168.5.0/24 dev eth0 scope link

....其他省略....

192.168.10.0/24 via 192.168.5.100 dev eth0

# 仔細看喔,因為我有 192.168.5.0/24 的路由存在 (我的網卡直接聯系),

# 所以才可以將 192.168.10.0/24 的路由丟給 192.168.5.100

# 那部主機來幫忙傳遞喔!與之前提到的 route 指令是一樣的限制!

范例四:增加預設路由

[root@linux ~]# ip route add default via 192.168.1.2 dev eth0

# 那個 192.168.1.2 就是我的預設路由器 (gateway) 的意思啊! ^_^

# 真的記得,只要一個預設路由就 OK !

范例五:刪除路由

[root@linux ~]# ip route del 192.168.10.0/24

[root@linux ~]# ip route del 192.168.5.0/24

5.6     netstat

5.6.1     功能說明

顯示網絡狀態。

5.6.2     語法

netstat [-acCeFghilMnNoprstuvVwx][-A<網絡類型>][--ip]

5.6.3     補充說明

利用netstat指令可讓你得知整個Linux系統的網絡情況。

5.6.4     參數

  -a或--all   顯示所有連線中的Socket。

  -A<網絡類型>或--<網絡類型>   列出該網絡類型連線中的相關地址。

  -c或--continuous   持續列出網絡狀態。

  -C或--cache   顯示路由器配置的快取信息。

  -e或--extend   顯示網絡其他相關信息。

  -F或--fib   顯示FIB。

  -g或--groups   顯示多重廣播功能群組組員名單。

  -h或--help   在線幫助。

  -i或--interfaces   顯示網絡界面信息表單。

  -l或--listening   顯示監控中的服務器的Socket。

  -M或--masquerade   顯示偽裝的網絡連線。

  -n或--numeric   直接使用IP地址,而不通過域名服務器。

  -N或--netlink或--symbolic   顯示網絡硬件外圍設備的符號連接名稱。

  -o或--timers   顯示計時器。

  -p或--programs   顯示正在使用Socket的程序識別碼和程序名稱。

  -r或--route   顯示Routing Table。

  -s或--statistice   顯示網絡工作信息統計表。

  -t或--tcp   顯示TCP傳輸協議的連線狀況。

  -u或--udp   顯示UDP傳輸協議的連線狀況。

  -v或--verbose   顯示指令執行過程。

  -V或--version   顯示版本信息。

  -w或--raw   顯示RAW傳輸協議的連線狀況。

  -x或--unix   此參數的效果和指定"-A unix"參數相同。

  --ip或--inet   此參數的效果和指定"-A inet"參數相同。

5.7     nslookup

5.7.1     功能說明

nslookup命令的功能是查詢一台機器的IP地址和其對應的域名。使用權限所有用戶。它通常需要一台域名服務器來提供域名服務。如果用戶已經設置好域名服務器,就可以用這個命令查看不同主機的IP地址對應的域名。

5.7.2     語法

nslookup [IP地址/域名]

5.7.3     例子

1)在本地計算機上使用nslookup命令

$ nslookup

Default Server: name.cao.com.cn

Address: 192.168.1.9

在符號“>”后面輸入要查詢的IP地址域名,並回車即可。如果要退出該命令,輸入“exit”,並回車即可。

 

2)使用nslookup命令測試named

輸入下面命令:

nslookup

然后就進入交換式nslookup環境。如果named正常啟動,則nslookup會顯示當前DNS服務器的地址和域名,否則表示named沒能正常啟動。

 

下面簡單介紹一些基本的DNS診斷。

◆ 檢查正向DNS解析,在nslookup提示符下輸入帶域名的主機名,如hp712.my.com,nslookup應能顯示該主機名對應的IP地址。如果只輸入hp712,nslookup會根據/etc/resolv.conf的定義,自動添加my.com域名,並回答對應的IP地址。

◆檢查反向DNS解析,在nslookup提示符下輸入某個IP地址,如192.22.33.20,nslookup應能回答該IP地址所對應的主機名。

◆檢查MX郵件地址記錄在nslookup提示符下輸入:

set q=mx

然后輸入某個域名,輸入my.com和mail.my.com,nslookup應能夠回答對應的郵件服務器地址,即

support.my.com和support2.my.com。

◆檢查TXT記錄:

set type=txt

然后輸入某個域名,nslookup會顯示對應的記錄。

5.8     ping

5.8.1     功能說明

檢測主機。

5.8.2     語法

ping [-dfnqrRv][-c<完成次數>][-i<間隔秒數>][-I<網絡界面>][-l<前置載入>][-p<范本樣式>][-s<數據包大小>][-t<存活數值>][主機名稱或IP地址]

5.8.3     補充說明

執行ping指令會使用ICMP傳輸協議,發出要求回應的信息,若遠端主機的網絡功能沒有問題,就會回應該信息,因而得知該主機運作正常。

5.8.4     參數

  -d   使用Socket的SO_DEBUG功能。

  -c<完成次數>   設置完成要求回應的次數。

  -f   極限檢測。

  -i<間隔秒數>   指定收發信息的間隔時間。

  -I<網絡界面>   使用指定的網絡界面送出數據包。

  -l<前置載入>   設置在送出要求信息之前,先行發出的數據包。

  -n   只輸出數值。

  -p<范本樣式>   設置填滿數據包的范本樣式。

  -q   不顯示指令執行過程,開頭和結尾的相關信息除外。

  -r   忽略普通的Routing Table,直接將數據包送到遠端主機上。

  -R   記錄路由過程。

  -s<數據包大小>   設置數據包的大小。

  -t<存活數值>   設置存活數值TTL的大小。

  -v   詳細顯示指令的執行過程。

5.9     rcp

5.9.1     功能說明

遠端復制文件或目錄。

5.9.2     語法

rcp [-pr][源文件或目錄][目標文件或目錄] 或 rcp [-pr][源文件或目錄...][目標文件] 

5.9.3     補充說明

rcp指令用在遠端復制文件或目錄,如同時指定兩個以上的文件或目錄,且最后的目的地是一個已經存在的目錄,則它灰把前面指定的所有文件或目錄復制到該目錄中。

5.9.4     參數

  -p  保留源文件或目錄的屬性,包括擁有者,所屬群組,權限與時間。 

  -r  遞歸處理,將指定目錄下的文件與子目錄一並處理。

5.10        route

5.10.1  功能說明

route表示手工產生、修改和查看路由表。

5.10.2  語法

#route [-add][-net|-host] targetaddress [-netmask Nm][dev]If]

#route [-delete][-net|-host] targetaddress [gw Gw] [-netmask Nm] [dev]If]

5.10.3  參數

-add:增加路由。

-delete:刪除路由。

-net:路由到達的是一個網絡,而不是一台主機。

-host:路由到達的是一台主機。

-netmask Nm:指定路由的子網掩碼。

gw:指定路由的網關。

[dev]If:強迫路由鏈指定接口。

5.10.4  例子

route add -net 202.96.96.0 -netmask 255.255.255.0 gw 192.168.1.10 dev eth0

表示到202.96.96.0/255.255.255.0這個網絡的信息通過你的第一塊網卡發送, 默認網關的地址是192.168.1.10

5.11        tcpdump

5.11.1  功能說明

傾倒網絡傳輸數據。

5.11.2  語法

tcpdump [-adeflnNOpqStvx][-c<數據包數目>][-dd][-ddd][-F<表達文件>][-i<網絡界面>][-r<數據包文件>][-s<數據包大小>][-tt][-T<數據包類型>][-vv][-w<數據包文件>][輸出數據欄位]

5.11.3  補充說明

執行tcpdump指令可列出經過指定網絡界面的數據包文件頭,在Linux操作系統中,你必須是系統管理員。

5.11.4  參數

  -a   嘗試將網絡和廣播地址轉換成名稱。

  -c<數據包數目>   收到指定的數據包數目后,就停止進行傾倒操作。

  -d   把編譯過的數據包編碼轉換成可閱讀的格式,並傾倒到標准輸出。

  -dd   把編譯過的數據包編碼轉換成C語言的格式,並傾倒到標准輸出。

  -ddd   把編譯過的數據包編碼轉換成十進制數字的格式,並傾倒到標准輸出。

  -e   在每列傾倒資料上顯示連接層級的文件頭。

  -f   用數字顯示網際網絡地址。

  -F<表達文件>   指定內含表達方式的文件。

  -i<網絡界面>   使用指定的網絡截面送出數據包。

  -l   使用標准輸出列的緩沖區。

  -n   不把主機的網絡地址轉換成名字。

  -N   不列出域名。

  -O   不將數據包編碼最佳化。

  -p   不讓網絡界面進入混雜模式。

  -q   快速輸出,僅列出少數的傳輸協議信息。

  -r<數據包文件>   從指定的文件讀取數據包數據。

  -s<數據包大小>   設置每個數據包的大小。

  -S   用絕對而非相對數值列出TCP關聯數。

  -t   在每列傾倒資料上不顯示時間戳記。

  -tt   在每列傾倒資料上顯示未經格式化的時間戳記。

  -T<數據包類型>   強制將表達方式所指定的數據包轉譯成設置的數據包類型。

  -v   詳細顯示指令執行過程。

  -vv   更詳細顯示指令執行過程。

  -x   用十六進制字碼列出數據包資料。

  -w<數據包文件>   把數據包數據寫入指定的文件。

5.12        telnet

5.12.1  功能說明

遠端登入。

5.12.2  語法

telnet [-8acdEfFKLrx][-b<主機別名>][-e<脫離字符>][-k<域名>][-l<用戶名稱>][-n<記錄文件>][-S<服務類型>][-X<認證形態>][主機名稱或IP地址<通信端口>]

5.12.3  補充說明

執行telnet指令開啟終端機階段作業,並登入遠端主機。

5.12.4  參數

  -8   允許使用8位字符資料,包括輸入與輸出。

  -a   嘗試自動登入遠端系統。

  -b<主機別名>   使用別名指定遠端主機名稱。

  -c   不讀取用戶專屬目錄里的.telnetrc文件。

  -d   啟動排錯模式。

  -e<脫離字符>   設置脫離字符。

  -E   濾除脫離字符。

  -f   此參數的效果和指定"-F"參數相同。

  -F   使用Kerberos V5認證時,加上此參數可把本地主機的認證數據上傳到遠端主機。

  -k<域名>   使用Kerberos認證時,加上此參數讓遠端主機采用指定的領域名,而非該主機的域名。

  -K   不自動登入遠端主機。

  -l<用戶名稱>   指定要登入遠端主機的用戶名稱。

  -L   允許輸出8位字符資料。

  -n<記錄文件>   指定文件記錄相關信息。

  -r   使用類似rlogin指令的用戶界面。

  -S<服務類型>   設置telnet連線所需的IP TOS信息。

  -x   假設主機有支持數據加密的功能,就使用它。

  -X<認證形態>   關閉指定的認證形態。

5.13        traceroute

5.13.1  功能說明

顯示數據包到主機間的路徑。

5.13.2  語法

traceroute [-dFlnrvx][-f<存活數值>][-g<網關>...][-i<網絡界面>][-m<存活數 值>][-p<通信端口>][-s<來源地址>][-t<服務類型>][-w<超時秒數>][主 機名稱或IP地址][數據包大小]

5.13.3  補充說明

traceroute指令讓你追蹤網絡數據包的路由途徑,預設數據包大小是40Bytes,用戶可另行設置。

5.13.4  參數

-d 使用Socket層級的排錯功能。

-f<存活數值> 設置第一個檢測數據包的存活數值TTL的大小。

-F 設置勿離斷位。

-g<網關> 設置來源路由網關,最多可設置8個。

-i<網絡界面> 使用指定的網絡界面送出數據包。

-I 使用ICMP回應取代UDP資料信息。

-m<存活數值> 設置檢測數據包的最大存活數值TTL的大小。

-n 直接使用IP地址而非主機名稱。

-p<通信端口> 設置UDP傳輸協議的通信端口。

-r 忽略普通的Routing Table,直接將數據包送到遠端主機上。

-s<來源地址> 設置本地主機送出數據包的IP地址。

-t<服務類型> 設置檢測數據包的TOS數值。

-v 詳細顯示指令的執行過程。

-w<超時秒數> 設置等待遠端主機回報的時間。

-x 開啟或關閉數據包的正確性檢驗。

6       系統管理

6.1     cal

6.1.1     功能說明

日歷命令,可以顯示當月日歷、當年日歷、指定月份年份的日歷等。

6.1.2     語法

cal [options] [[month] year]

6.1.3     參數

-j

以一月一日起的天數顯示本月的月歷。

-m

以星期一為每周的第一天方式,顯示本月的月歷。

-y

顯示全年日歷

-jy

以一月一日起的天數顯示全年日歷。

6.2     cat

使用方式:cat [-AbeEnstTuv] [--help] [--version] filename

說明:把檔案串連接后傳到基本輸出(屏幕或加 > filename 到另一個檔案)

參數:

-n 或 --number 由 1 開始對所有輸出的行數編號

-b 或 --number-nonblank 和 -n 相似,只不過對於空白行不編號

-s 或 --squeeze-blank 當遇到有連續兩行以上的空白行,就代換為一行的空白行

-v 或 --show-nonprinting

范例:

cat -n textfile1 > textfile2 把 textfile1 的檔案內容加上行號后輸入 textfile2 這個檔案里

cat -b textfile1 textfile2 >> textfile3 把 textfile1 和 textfile2 的檔案內容加上行號(空白行不加)之后將內容附加到 textfile3 里。

6.3     chsh

6.3.1     功能說明

更換登入系統時使用的shell。

6.3.2     語法

chsh [-luv][-s <shell 名稱>][用戶名稱]

 

6.3.3     補充說明

每位用戶在登入系統時,都會擁有預設的shell環境,這個指令可更改其預設值。若不指定

任何參數與用戶名稱,則chsh會以應答的方式進行設置。

6.3.4     參數

 -s<shell 名稱>或--shell<shell 名稱>  更改系統預設的shell環境。 

 -l或--list-shells  列出目前系統可用的shell清單。 

 -u或--help  在線幫助。 

 -v或-version  顯示版本信息。

6.4     clear

清除終端顯示,與按Ctrl-L效果相同。

6.5     date

6.5.1     功能說明

顯示或設置系統時間與日期。

6.5.2     語法

date [-d <字符串>][-u][+%H%I%K%l%M%P%r%s%S%T%X%Z%a%A%b%B%c%d%D%j%m%U%w%x%y%Y%n%t] 

或date [-s <字符串>][-u][MMDDhhmmCCYYss] 或 date [--help][--version]

6.5.3     補充說明

第一種語法可用來顯示系統日期或時間,以%為開頭的參數為格式參數,可指定日期或時間的顯示格式。

第二種語法可用來設置系統日期與時間。只有管理員才有設置日期與時間的權限。若不加任何參數,data會顯示目前的日期與時間。

6.5.4     參數

 %H  小時(以00-23來表示)。 

 %I  小時(以01-12來表示)。 

 %K  小時(以0-23來表示)。 

 %l  小時(以0-12來表示)。 

 %M  分鍾(以00-59來表示)。 

 %P  AM或PM。 

 %r  時間(含時分秒,小時以12小時AM/PM來表示)。 

 %s  總秒數。起算時間為1970-01-01 00:00:00 UTC。 

 %S  秒(以本地的慣用法來表示)。 

 %T  時間(含時分秒,小時以24小時制來表示)。 

 %X  時間(以本地的慣用法來表示)。 

 %Z  市區。 

 %a  星期的縮寫。 

 %A  星期的完整名稱。 

 %b  月份英文名的縮寫。 

 %B  月份的完整英文名稱。 

 %c  日期與時間。只輸入date指令也會顯示同樣的結果。 

 %d  日期(以01-31來表示)。 

 %D  日期(含年月日)。 

 %j  該年中的第幾天。 

 %m  月份(以01-12來表示)。 

 %U  該年中的周數。 

 %w  該周的天數,0代表周日,1代表周一,異詞類推。 

 %x  日期(以本地的慣用法來表示)。 

 %y  年份(以00-99來表示)。 

 %Y  年份(以四位數來表示)。 

 %n  在顯示時,插入新的一行。 

 %t  在顯示時,插入tab。 

 MM  月份(必要)。 

 DD  日期(必要)。 

 hh  小時(必要)。 

 mm  分鍾(必要)。 

 CC  年份的前兩位數(選擇性)。 

 YY  年份的后兩位數(選擇性)。 

 ss  秒(選擇性)。 

 -d<字符串>  顯示字符串所指的日期與時間。字符串前后必須加上雙引號。 

 -s<字符串>  根據字符串來設置日期與時間。字符串前后必須加上雙引號。 

 -u  顯示GMT。 

 --help  在線幫助。 

 --version  顯示版本信息。

6.6     echo

6.6.1     功能說明

顯示文字。

6.6.2     語法

echo [-ne][字符串]或 echo [--help][--version]

6.6.3     補充說明

echo會將輸入的字符串送往標准輸出。輸出的字符串間以空白字符隔開, 並在最后加上換行號。

6.6.4     參數

-n 不要在最后自動換行

-e 若字符串中出現以下字符,則特別加以處理,而不會將它當成一般

文字輸出:

   \a 發出警告聲;

   \b 刪除前一個字符;

   \c 最后不加上換行符號;

   \f 換行但光標仍舊停留在原來的位置;

   \n 換行且光標移至行首;

   \r 光標移至行首,但不換行;

   \t 插入tab;

   \v 與\f相同;

   \\ 插入\字符;

   \nnn 插入nnn(八進制)所代表的ASCII字符;

–help 顯示幫助

–version 顯示版本信息

6.7     ethtool

6.7.1     功能說明

ethtool是用於查詢及設置網卡參數的命令。

6.7.2     概要

ethtool ethX      //查詢ethX網口基本設置

ethtool –h        //顯示ethtool的命令幫助(help)

ethtool –i ethX    //查詢ethX網口的相關信息

ethtool –d ethX    //查詢ethX網口注冊性信息

ethtool –r ethX    //重置ethX網口到自適應模式

ethtool –S ethX    //查詢ethX網口收發包統計

ethtool –s ethX [speed 10|100|1000]\         //設置網口速率10/100/1000M

[duplex half|full]\           //設置網口半/全雙工

[autoneg on|off]\            //設置網口是否自協商

[port tp|aui|bnc|mii]\         //設置網口類型

[phyad N]\               

[xcvr internal|exteral]\

[wol p|u|m|b|a|g|s|d...]\

[sopass xx:yy:zz:aa:bb:cc]\

[msglvl N]

6.7.3     舉例

1)[root@linux /]# ethtool eth1

  Settings for eth1:

       Supported ports: [ TP ]

       Supported link modes:   10baseT/Half 10baseT/Full

                               100baseT/Half 100baseT/Full

                               1000baseT/Full

       Supports auto-negotiation: Yes

       Advertised link modes:  10baseT/Half 10baseT/Full

                               100baseT/Half 100baseT/Full

                               1000baseT/Full

       Advertised auto-negotiation: Yes

       Speed: 1000Mb/s

       Duplex: Full

       Port: Twisted Pair

       PHYAD: 0

       Transceiver: internal

       Auto-negotiation: on

       Supports Wake-on: umbg

       Wake-on: d

       Link detected: yes

2)[root@linux /]# ethtool -i eth1

  driver: e1000

  version: 5.0.43-k1

  firmware-version: N/A

  bus-info: 06:08.1

3)[root@linux /]# ethtool -S eth1

  NIC statistics:

    rx_packets: 58068300

    tx_packets: 87124083

    rx_bytes: 1589713008

    tx_bytes: 2165825901

    rx_errors: 0

    tx_errors: 0

    rx_dropped: 0

    tx_dropped: 0

    multicast: 0

    collisions: 0

    rx_length_errors: 0

    rx_over_errors: 0

    rx_crc_errors: 0

    rx_frame_errors: 0

    rx_fifo_errors: 0

    rx_missed_errors: 0

    tx_aborted_errors: 0

    tx_carrier_errors: 0

    tx_fifo_errors: 0

    tx_heartbeat_errors: 0

    tx_window_errors: 0

4)[root@linux /]# ethtool -s eth1 autoneg off speed 100 duplex full

 

6.7.4     相關

1)[root@linux /]# which ethtool

   /sbin/ethtool

2)[root@linux /]# rpm -qf /sbin/ethtool

  ethtool-1.6-5

3)怎樣使ethtool設置永久保存在網絡設備中?

解決方法一:

   ethtool設置可通過/etc/sysconfig/network-scripts/ifcfg-ethX文件保存,從而在設備下次啟動時激活選項。

例如:ethtool -s eth0 speed 100 duplex full autoneg off

此指令將eth0設備設置為全雙工自適應,速度為100Mbs。若要eth0啟動時設置這些參數, 修改文件/etc/sysconfig/network-scripts/ifcfg-eth0 ,添加如下一行:

ETHTOOL_OPTS="speed 100 duplex full autoneg off"

解決方法二:

將ethtool設置寫入/etc/rc.d/rc.local之中。

6.8     free

6.8.1     功能說明

顯示內存狀態。

6.8.2     語法

 free [-bkmotV][-s <間隔秒數>]

6.8.3     補充說明

free指令會顯示內存的使用情況,包括實體內存,虛擬的交換文件內存,共享內存區段,以及系統核心使用的緩沖區等。

6.8.4     參數

 -b  以Byte為單位顯示內存使用情況。 

 -k  以KB為單位顯示內存使用情況。 

 -m  以MB為單位顯示內存使用情況。 

 -o  不顯示緩沖區調節列。 

 -s<間隔秒數>  持續觀察內存使用狀況。 

 -t  顯示內存總和列。 

 -V  顯示版本信息。

6.9     getconf

6.9.1     功能說明

將系統配置變量值寫入標准輸出。

6.9.2     語法

getconf [ -v specification ] [ SystemwideConfiguration | PathConfiguration Pathname] [ DeviceVariable Devicename ]

或getconf -a

6.9.3     描述

用 SystemwideConfiguration 參數調用 getconf 命令,將 SystemwideConfiguration 參數所指定的變量值寫到標准輸出。

用 PathConfiguration 和 Pathname 參數調用 getconf 命令,寫入 PathConfiguration 參數為 Pathname 參數指定路徑指定的變量值,到標准輸出。

getconf 命令,用 -a 標志調用,並寫入全部系統配置變量值到標准輸出。

getconf 命令,用 DeviceVariable 和 Devicename 參數調用,寫磁盤設備名或位置的值到標准輸出,設備路徑由 Devicename 參數指定。

如果在系統中定義指定的變量且其值描述為可從 confstr 子例程得到,則指定變量的值按以下格式寫入:

“%s\n”,< 值 >

否則,如果在系統中定義指定變量,其值按以下格式寫入:

“%d\n”, < 值 >

如果指定變量是有效的但在系統中未定義,則將以下內容寫入標准輸出:

“undefined\n”

如果變量名無效或出現錯誤,就會有一個診斷消息寫入標准錯誤。

標記 -a specification顯示了指定規格及版本,其配置變量等待確定。如果該標志未被指定,返回值將響應一個實現缺省值 XBS5 的相應的編輯環境。

-v 將全部系統配置變量值寫入標准輸出。

6.9.4     參數

Pathname 為 PathConfiguration 參數指定路徑名。

SystemwideConfiguration指定一個系統配置變量。

PathConfiguration指定一個系統路徑配置變量。

Devicename指定一個設備路徑名。

DeviceVariable指定一個設備變量。

 

當列入以下的表格中的第一列符號被用作 system_var 操作數時,getconf 將產生與用第二列的值調用 confstr 時相同的值。

6.10        groupadd

6.10.1  功能說明

添加群組。

6.10.2  語法

groupadd [群組名稱]

6.11        groupdel

6.11.1  功能說明

刪除群組。

6.11.2  語法

groupdel [群組名稱]

6.11.3  補充說明

需要從系統上刪除群組時,可用groupdel指令來完成這項工作。倘若該群組中仍包括某些用戶,則必須先刪除這些用戶后,方能刪除群組。

6.12        groupmod

6.12.1  功能說明

更改群組識別碼或名稱。

6.12.2  語法

groupmod [-g <群組識別碼> <-o>][-n <新群組名稱>][群組名稱]

6.12.3  補充說明

需要更改群組的識別碼或名稱時,可用groupmod指令來完成這項工作。

6.12.4  參數

 -g <群組識別碼>  設置欲使用的群組識別碼。 

 -o  重復使用群組識別碼。 

 -n <新群組名稱>  設置欲使用的群組名稱。

6.13        id

6.13.1  功能說明

顯示用戶的ID,以及所屬群組的ID。

6.13.2  語法

id [-gGnru][--help][--version][用戶名稱]

6.13.3  補充說明

id會顯示用戶以及所屬群組的實際與有效ID。若兩個ID相同,則僅顯示實際ID。若僅指定用戶名稱,則顯示目前用戶的ID。

6.13.4  參數

 -g或--group  顯示用戶所屬群組的ID。 

 -G或--groups  顯示用戶所屬附加群組的ID。 

 -n或--name  顯示用戶,所屬群組或附加群組的名稱。 

 -r或--real  顯示實際ID。 

 -u或--user  顯示用戶ID。 

 -help  顯示幫助。 

 -version  顯示版本信息。

6.14        init

6.14.1  功能說明

init是Linux系統操作中不可缺少的程序之一。

所謂的init進程,它是一個由內核啟動的用戶級進程。

   內核自行啟動(已經被載入內存,開始運行,並已初始化所有的設備驅動程序和數據結構等)之后,就通過啟動一個用戶級程序init的方式,完成引導進程。所以,init始終是第一個進程(其進程編號始終為1)。

   內核會在過去曾使用過init的幾個地方查找它,它的正確位置(對Linux系統來說)是/sbin/init。如果內核找不到init,它就會試着運行/bin/sh,如果運行失敗,系統的啟動也會失敗。

6.14.2  語法

init [bootflags] [runlevel]

6.14.3  參數

6.14.3.1       Boot flags

- s 切換到單用戶模式

q 重新加載 inittab 文件

a b c 只載入在 runlevel 中有 a b c 的程序。

u 重建自身,並保留狀態

6.14.3.2       Runlevels

(可以參考Red Hat Linux 里面的/etc/inittab)

# 0 - 停機(千萬不能把initdefault 設置為0 )

# 1 - 單用戶模式

# 2 - 多用戶,沒有 NFS

# 3 - 完全多用戶模式(標准的運行級)

# 4 - 沒有用到

# 5 - X11 (xwindow)

# 6 - 重新啟動 (千萬不要把initdefault 設置為6 )

6.15        ipcs

6.15.1  功能說明

顯示進程間通信信息。

6.15.2  語法

ipcs [ -asmq ] [ -tclup ]

ipcs [ -smq ] -i id

ipcs –h

6.15.3  參數

-m   顯示共享內存

-q    顯示消息隊列

-s    顯示信號燈

-a    顯示所有信息,默認為該選項

6.15.4  例子

$ipcs              #顯示所有信息,包括消息隊列、共享內存、信號燈,與命令ipcs –a等價

$ ipcs

------ Shared Memory Segments --------

key        shmid      owner      perms      bytes      nattch     status     

------ Semaphore Arrays --------

key        semid      owner      perms      nsems    

------ Message Queues --------

key        msqid      owner      perms      used-bytes   messages   

 

$ipcs -m                #顯示共享內存信息

$ ipcs -m

------ Shared Memory Segments --------

key        shmid      owner      perms      bytes      nattch     status     

 

$ipcs -s                 #顯示信號燈信息

$ ipcs -s

------ Semaphore Arrays --------

key        semid      owner      perms      nsems    

 

$ipcs -q                 #顯示消息隊列信息

$ ipcs -q

 

------ Message Queues --------

key        msqid      owner      perms      used-bytes   messages   

6.16        mesg

6.16.1  功能說明

設置終端機的寫入權限。

6.16.2  語法

mesg [ny]

6.16.3  補充說明

將mesg設置y時,其他用戶可利用write指令將信息直接顯示在您的屏幕上。

6.16.4  參數

  n   不允許將信息直接顯示在你的屏幕上。

  y   允許將信息直接顯示在你的屏幕上。

6.17        passwd

6.17.1  功能說明

設置密碼。

6.17.2  語法

passwd [-dklS][-u <-f>][用戶名稱]

6.17.3  補充說明

passwd指令讓用戶可以更改自己的密碼,而系統管理者則能用它管理系統用戶的密碼。只有管理者可以指定用戶名稱,一般用戶只能變更自己的密碼。

6.17.4  參數

  -d  刪除密碼。本參數僅有系統管理者才能使用。 

  -f  強制執行。 

  -k  設置只有在密碼過期失效后,方能更新。 

  -l  鎖住密碼。 

  -s  列出密碼的相關信息。本參數僅有系統管理者才能使用。 

  -u  解開已上鎖的帳號。

6.18        rpm

6.18.1  功能說明

管理套件。

6.18.2  語法

rpm [-acdhilqRsv][-b<完成階段><套間檔>+][-e<套件擋>][-f<文件>+][-i<套件檔>][-p<套件檔>+]

[-U<套件檔>][-vv][--addsign<套件檔>+][--allfiles][--allmatches][--badreloc][--buildroot<根目錄>]

[--changelog][--checksig<套件檔>+][--clean][--dbpath<數據庫目錄>][--dump][--excludedocs]

[--excludepath<排除目錄>][--force][--ftpproxy<主機名稱或IP地址>][--ftpport<通信端口>]

[--help][--httpproxy<主機名稱或IP地址>][--httpport<通信端口>][--ignorearch][--ignoreos]

[--ignoresize][--includedocs][--initdb][justdb][--nobulid][--nodeps][--nofiles][--nogpg][--nomd5][--nopgp]

[--noorder][--noscripts][--notriggers][--oldpackage][--percent][--pipe<執行指令>][--prefix<目的目錄>]

[--provides][--queryformat<檔頭格式>][--querytags][--rcfile<配置檔>][--rebulid<套件檔>][--rebuliddb]

[--recompile<套件檔>][--relocate<原目錄>=<新目錄>][--replacefiles][--replacepkgs][--requires]

[--resign<套件檔>+][--rmsource][--rmsource<文件>][--root<根目錄>][--scripts][--setperms][--setugids]

[--short-circuit][--sign][--target=<安裝平台>+][--test][--timecheck<檢查秒數>][--triggeredby<套件檔>]

[--triggers][--verify][--version][--whatprovides<功能特性>][--whatrequires<功能特性>]

6.18.3  補充說明

rmp原本是Red Hat Linux發行版專門用來管理Linux各項套件的程序,由於它遵循GPL規則且功能強大方便,因而廣受歡迎。逐漸受到其他發行版的采用。RPM套件管理方式的出現,讓Linux易於安裝,升級,間接提升了Linux的適用度。

6.18.4  參數

  -a  查詢所有套件。

  -b<完成階段><套件檔>+或-t <完成階段><套件檔>+  設置包裝套件的完成階段,並指定套件檔的文件名稱。

  -c  只列出組態配置文件,本參數需配合"-l"參數使用。 

  -d  只列出文本文件,本參數需配合"-l"參數使用。  

  -e<套件檔>或--erase<套件檔>  刪除指定的套件。

  -f<文件>+  查詢擁有指定文件的套件。 

  -h或--hash  套件安裝時列出標記。 

  -i  顯示套件的相關信息。 

  -i<套件檔>或--install<套件檔>  安裝指定的套件檔。 

  -l  顯示套件的文件列表。 

  -p<套件檔>+  查詢指定的RPM套件檔。 

  -q  使用詢問模式,當遇到任何問題時,rpm指令會先詢問用戶。 

  -R  顯示套件的關聯性信息。 

  -s  顯示文件狀態,本參數需配合"-l"參數使用。 

  -U<套件檔>或--upgrade<套件檔>   升級指定的套件檔。 

  -v  顯示指令執行過程。

  -vv  詳細顯示指令執行過程,便於排錯。 

  -addsign<套件檔>+  在指定的套件里加上新的簽名認證。 

  --allfiles  安裝所有文件。 

  --allmatches  刪除符合指定的套件所包含的文件。 

  --badreloc  發生錯誤時,重新配置文件。 

  --buildroot<根目錄>  設置產生套件時,欲當作根目錄的目錄。 

  --changelog  顯示套件的更改記錄。 

  --checksig<套件檔>+  檢驗該套件的簽名認證。 

  --clean  完成套件的包裝后,刪除包裝過程中所建立的目錄。 

  --dbpath<數據庫目錄>  設置欲存放RPM數據庫的目錄。 

  --dump  顯示每個文件的驗證信息。本參數需配合"-l"參數使用。 

  --excludedocs  安裝套件時,不要安裝文件。 

  --excludepath<排除目錄>  忽略在指定目錄里的所有文件。 

  --force  強行置換套件或文件。 

  --ftpproxy<主機名稱或IP地址>  指定FTP代理服務器。 

  --ftpport<通信端口>  設置FTP服務器或代理服務器使用的通信端口。 

  --help  在線幫助。 

  --httpproxy<主機名稱或IP地址>  指定HTTP代理服務器。 

  --httpport<通信端口>  設置HTTP服務器或代理服務器使用的通信端口。 

  --ignorearch  不驗證套件檔的結構正確性。 

  --ignoreos  不驗證套件檔的結構正確性。 

  --ignoresize  安裝前不檢查磁盤空間是否足夠。 

  --includedocs  安裝套件時,一並安裝文件。 

  --initdb  確認有正確的數據庫可以使用。 

  --justdb  更新數據庫,當不變動任何文件。 

  --nobulid  不執行任何完成階段。 

  --nodeps  不驗證套件檔的相互關聯性。 

  --nofiles  不驗證文件的屬性。 

  --nogpg  略過所有GPG的簽名認證。 

  --nomd5  不使用MD5編碼演算確認文件的大小與正確性。 

  --nopgp  略過所有PGP的簽名認證。 

  --noorder  不重新編排套件的安裝順序,以便滿足其彼此間的關聯性。 

  --noscripts  不執行任何安裝Script文件。 

  --notriggers  不執行該套件包裝內的任何Script文件。 

  --oldpackage  升級成舊版本的套件。 

  --percent  安裝套件時顯示完成度百分比。 

  --pipe<執行指令>  建立管道,把輸出結果轉為該執行指令的輸入數據。 

  --prefix<目的目錄>  若重新配置文件,就把文件放到指定的目錄下。 

  --provides  查詢該套件所提供的兼容度。 

  --queryformat<檔頭格式>  設置檔頭的表示方式。 

  --querytags  列出可用於檔頭格式的標簽。 

  --rcfile<配置文件>  使用指定的配置文件。 

  --rebulid<套件檔>  安裝原始代碼套件,重新產生二進制文件的套件。 

  --rebuliddb  以現有的數據庫為主,重建一份數據庫。 

  --recompile<套件檔>  此參數的效果和指定"--rebulid"參數類似,當不產生套件檔。 

  --relocate<原目錄>=<新目錄>  把本來會放到原目錄下的文件改放到新目錄。 

  --replacefiles  強行置換文件。 

  --replacepkgs  強行置換套件。 

  --requires  查詢該套件所需要的兼容度。 

  --resing<套件檔>+  刪除現有認證,重新產生簽名認證。 

  --rmsource  完成套件的包裝后,刪除原始代碼。 

  --rmsource<文件>  刪除原始代碼和指定的文件。 

  --root<根目錄>  設置欲當作根目錄的目錄。 

  --scripts  列出安裝套件的Script的變量。 

  --setperms  設置文件的權限。 

  --setugids  設置文件的擁有者和所屬群組。 

  --short-circuit  直接略過指定完成階段的步驟。

  --sign  產生PGP或GPG的簽名認證。 

  --target=<安裝平台>+  設置產生的套件的安裝平台。 

  --test  僅作測試,並不真的安裝套件。 

  --timecheck<檢查秒數>  設置檢查時間的計時秒數。 

  --triggeredby<套件檔>  查詢該套件的包裝者。 

  --triggers  展示套件檔內的包裝Script。 

  --verify  此參數的效果和指定"-q"參數相同。 

  --version  顯示版本信息。 

  --whatprovides<功能特性>  查詢該套件對指定的功能特性所提供的兼容度。 

  --whatrequires<功能特性>  查詢該套件對指定的功能特性所需要的兼容度。

6.19        service

6.19.1  功能說明

啟動、停止、重啟服務

6.19.2  語法

service [service name] [start|stop|restart]

6.19.3  參數說明

service name:這個服務名稱必須要實際存在 /etc/rc.d/init.d 這個目錄下才行

start|stop|restart:基本上,這個與 /etc/rc.d/init.d/service_name 所允許的啟動形式有關.

6.20        setup

6.20.1  功能說明

setup是一個設置公用程序,提供圖形界面的操作方式。在setup中可設置7類的選項:

 1.登陸認證方式 

 2.鍵盤組態設置 

 3.鼠標組態設置 

 4.開機時所要啟動的系統服務 

 5.聲卡組態設置 

 6.時區設置 

 7.X Windows組態設置

6.20.2  語法

setup

6.21        shutdown

6.21.1  功能說明

shutdown 可以用來進行關機程序,並且在關機以前傳送訊息給所有使用者正在執行的程序,shutdown 也可以用來重開機。

6.21.2  語法

shutdown [-t seconds] [-rkhncfF] time [message]

6.21.3  參數

    -t seconds : 設定在幾秒鍾之后進行關機程序

  -k : 並不會真的關機,只是將警告訊息傳送給所有只用者

  -r : 關機后重新開機

  -h : 關機后停機

  -n : 不采用正常程序來關機,用強迫的方式殺掉所有執行中的程序后自行關機

  -c : 取消目前已經進行中的關機動作

  -f : 關機時,不做 fcsk 動作(檢查 Linux 檔系統)

  -F : 關機時,強迫進行 fsck 動作

  time : 設定關機的時間

  message : 傳送給所有使用者的警告訊息

6.22        su

6.22.1  功能說明

變更用戶身份。

6.22.2  語法

su [-flmp][--help][--version][-][-c <指令>][-s <shell>][用戶帳號]

 

6.22.3  補充說明

su可讓用戶暫時變更登入的身份。變更時須輸入所要變更的用戶帳號與密碼。

6.22.4  參數

 -c<指令>或--command=<指令>  執行完指定的指令后,即恢復原來的身份。 

 -f或--fast  適用於csh與tsch,使shell不用去讀取啟動文件。 

 -.-l或--login  改變身份時,也同時變更工作目錄,以及HOME,SHELL,USER,LOGname。此外,也會變更PATH變量。  

 -m,-p或--preserve-environment  變更身份時,不要變更環境變量。 

 -s<shell>或--shell=<shell>  指定要執行的shell。 

 --help  顯示幫助。 

 --version  顯示版本信息。 

 [用戶帳號]  指定要變更的用戶。若不指定此參數,則預設變更為root。

6.23        sync

6.23.1  功能說明

將內存緩沖區內的數據寫入磁盤。

6.23.2  語法

sync [--help][--version]

6.23.3  補充說明

在Linux系統中,當數據需要存入磁盤時,通常會先放到緩沖區內,等到適當的時刻再寫入磁盤,如此可提高系統的執行效率。

6.23.4  參數

  --help   顯示幫助。

  --version   顯示版本信息。

6.24        uname

6.24.1  功能說明

顯示系統信息。

6.24.2  語法

uname [-amnrsv][--help][--version]

6.24.3  補充說明

uname可顯示電腦以及操作系統的相關信息。

6.24.4  參數

 -a或--all  顯示全部的信息。 

 -m或--machine  顯示電腦類型。 

 -n或-nodename  顯示在網絡上的主機名稱。 

 -r或--release  顯示操作系統的發行編號。 

 -s或--sysname  顯示操作系統名稱。 

 -v  顯示操作系統的版本。 

 --help  顯示幫助。 

 --version  顯示版本信息。

6.25        uptime

6.25.1  功能說明

uptime命令是用來查詢linux系統負載的,可以顯示

1 當前時間

2 系統已運行時間。

3 在線用戶數

4最近1分鍾、5分鍾、15分鍾系統的平均負載。

6.25.2  語法

uptime [option]

6.25.3          Option

-V

顯示版本信息。

6.26        useradd

6.26.1  功能說明

建立用戶帳號。

6.26.2  語法

useradd [-mMnr][-c <備注>][-d <登入目錄>][-e <有效期限>][-f <緩沖天數>][-g <群組>][-G <群組>][-s <shell>][-u <uid>][用戶帳號] 或 useradd -D [-b][-e <有效期限>][-f <緩沖天數>][-g <群組>][-G <群組>][-s <shell>]

6.26.3  補充說明

useradd可用來建立用戶帳號。帳號建好之后,再用passwd設定帳號的密碼.而可用userdel刪除帳號。使用useradd指令所建立的帳號,實際上是保存在/etc/passwd文本文件中。

6.26.4  參數

 -c<備注>  加上備注文字。備注文字會保存在passwd的備注欄位中。  

 -d<登入目錄>  指定用戶登入時的啟始目錄。 

 -D  變更預設值. 

 -e<有效期限>  指定帳號的有效期限。 

 -f<緩沖天數>  指定在密碼過期后多少天即關閉該帳號。 

 -g<群組>  指定用戶所屬的群組。 

 -G<群組>  指定用戶所屬的附加群組。 

 -m  自動建立用戶的登入目錄。 

 -M  不要自動建立用戶的登入目錄。 

 -n  取消建立以用戶名稱為名的群組. 

 -r  建立系統帳號。 

 -s<shell>   指定用戶登入后所使用的shell。 

 -u<uid>  指定用戶ID。

 

6.27        userdel

6.27.1  功能說明

刪除用戶帳號。

6.27.2  語法

userdel [-r][用戶帳號]

6.27.3  補充說明

userdel可刪除用戶帳號與相關的文件。若不加參數,則僅刪除用戶帳號,而不刪除相關文件。

6.27.4  參數

  -f  刪除用戶登入目錄以及目錄中所有文件。

6.28        usermod

6.28.1  功能說明

修改用戶帳號。

6.28.2  語法

usermod [-LU][-c <備注>][-d <登入目錄>][-e <有效期限>][-f <緩沖天數>][-g <群組>][-G <群組>][-l <帳號名稱>][-s <shell>][-u <uid>][用戶帳號]

6.28.3  補充說明

usermod可用來修改用戶帳號的各項設定。

6.28.4  參數

 -c<備注>  修改用戶帳號的備注文字。 

 -d登入目錄>  修改用戶登入時的目錄。 

 -e<有效期限>  修改帳號的有效期限。 

 -f<緩沖天數>  修改在密碼過期后多少天即關閉該帳號。 

 -g<群組>  修改用戶所屬的群組。 

 -G<群組>  修改用戶所屬的附加群組。 

 -l<帳號名稱>  修改用戶帳號名稱。 

 -L  鎖定用戶密碼,使密碼無效。 

 -s<shell>  修改用戶登入后所使用的shell。 

 -u<uid>  修改用戶ID。 

 -U  解除密碼鎖定。

6.29        vmstat

6.29.1  功能說明

vmstat是Virtual Meomory Statistics(虛擬內存統計)的縮寫,可對操作系統的虛擬內存、進程、CPU活動進行監視。它是對系統的整體情況進行統計,不足之處是無法對某個進程進行深入分析。

6.29.2  語法

vmstat [-V] [-n] [delay [count]]

6.29.3  參數

-V表示打印出版本信息;

-n表示在周期性循環輸出時,輸出的頭部信息僅顯示一次;

delay是兩次輸出之間的延遲時間;

count是指按照這個時間間隔統計的次數。

6.29.4  輸出信息

類別

項目

含義

說明

Procs

r

等待執行的任務數

展示了正在執行和等待CPU資源的任務個數。當這個值超過了CPU數目,就會出現CPU瓶頸了

 

b

 

 

Memory

swpd

正在使用的swap大小單位K

 

 

free

空閑的內存空間

 

 

buff

已使用的buff大小,對塊設備的讀寫進行緩沖

 

 

cache

已使用的cache大小,文件系統的cache

 

 

inact

 

 

 

active

 

 

Swap

si

交換內存使用,由磁盤調入內存

 

 

so

交換內存使用,由內存調入磁盤

 

IO

bi

從塊設備讀入的數據總量(讀磁盤) (KB/s),

 

 

bo

寫入到塊設備的數據總理(寫磁盤) (KB/s)

 

System

in

每秒產生的中斷次數

 

 

cs

每秒產生的上下文切換次數

上面這2個值越大,會看到由內核消耗的CPU時間會越多

CPU

us

用戶進程消耗的CPU時間百分比

us 的值比較高時,說明用戶進程消耗的CPU時間多,但是如果長期超過50% 的使用,那么我們就該考慮優化程序算法或者進行加速了

 

sy

內核進程消耗的CPU時間百分比

sy 的值高時,說明系統內核消耗的CPU資源多,這並不是良性的表現,我們應該檢查原因。

 

id

空閑

 

 

wa

IO等待消耗的CPU時間百分比

wa 的值高時,說明IO等待比較嚴重,這可能是由於磁盤大量作隨機訪問造成,也有可能是磁盤的帶寬出現瓶頸(塊操作)。

6.30        wall

6.30.1  功能說明

傳送信息。

6.30.2  語法

wall [公告信息]

6.30.3  補充說明

通過wall指令可將信息發送給每位同意接收公眾信息的終端機用戶,若不給予其信息內容,則wall指令會從標准輸入設備讀取數據,然后再把所得到的數據傳送給所有終端機用戶。

6.31        write

6.31.1  功能說明

傳送信息。

6.31.2  語法

write [用戶名稱][終端機編號]

6.31.3  補充說明

通過write指令可傳遞信息給另一位登入系統的用戶,當輸入完畢后,鍵入EOF表示信息結束,write指令就會將信息傳給對方。如果接收信息的用戶不只登入本地主機一次,你可以指定接收信息的終端機編號。

7       更多參考

《Linux in a Nutshell, 5th Edition》http://www.oreillynet.com/linux/cmd/

《Linux Command Reference》http://www.perpetualpc.net/srtd_commands_rev.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM