1
運維工程師必會的 109 個 Linux 命令
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 裏。php
6
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=<參考文件或目錄> 把指定文件或目錄的所屬羣組所有設成和參考文件或目錄的所屬羣組html
7
相同。
--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 顯示指令執行過程。node
8
--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 顯示版本信息。linux
9
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 指令用在複製文件或目錄,如同時指定兩個以上的文件或目錄,且最後的目的地是一個已經存在的目錄,web
10
則它會把前面指定的全部文件或目錄複製到該目錄中。若同時指定多個文件或目錄,而最後的目的地並不是
是一個已存在的目錄,則會出現錯誤信息。
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 的文字。面試
11
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=<文件> 輸出到文件。正則表達式
12
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 不檢查大小寫的不一樣。
13
-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 [選項]... [文件]...算法
14
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 同時列出全部子目錄層
15
-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 輸出文件名
16
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 指令,咱們得以辨識該文件的類型。
17
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 <文件類型>]
18
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"參數相似,但忽略字符大小寫的差異。
19
-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"參數相似,差異在於它針對符號鏈接檢查。
20
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 將範本樣式視爲普通的表示法來使用。
21
-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 行
22
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 強行創建文件或目錄的鏈接,不論文件或目錄是否存在。
23
-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 顯示版本信息。
24
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"參數相同。
25
-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 顯示版本信息。
26
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.] 而不是 '嗶' 聲
27
-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 在移動或更改文件名時,若目標文件已存在,且其文件日期比源文件新,則不覆蓋目標
28
文件。
-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=<字符串字符數> 只顯示符合指定的字符數目的字符串。
29
-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 源字符。
30
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 顯示版本信息。
31
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 來處理輸入的文本文件。
32
-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 顯示版本信息。
33
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
34
參數-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][輸入文件][輸出文件]
35
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 ... 轉換爲舊文件的模式
36
-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 兼容模式
37
-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 窗體垂直分割。shell
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][文件或設備]
45
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][目錄或文件]
46
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 <分區編號>]
47
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 的文件系統)
48
或 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 爲單位顯示內存使用狀況。
49
-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)。
50
2.7.3 例子
2.7.3.1 製做並掛載光盤 ISO 文件
一、從光盤製做光盤鏡像文件。將光盤放入光驅,執行下面的命令。
cp /dev/cdrom /home/sunky/mydisk.iso 或
dd if=/dev/cdrom of=/home/sunky/mydisk.iso
注:執行上面的任何一條命令均可將當前光驅裏的光盤製做成光盤鏡像文件/home/sunky/mydisk.iso
二、將文件和目錄製做成光盤鏡像文件,執行下面的命令。
mkisofs -r -J -V mydisk -o /home/sunky/mydisk.iso /home/sunky/ mydir
注:這條命令將/home/sunky/mydir 目錄下全部的目錄和文件製做成光盤鏡像文件/home/sunky/mydisk.iso,
光盤卷標爲:mydisk
三、光盤鏡像文件的掛接(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)
51
/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
52
linux 系統下使用 fdisk 分區命令和 mkfs 文件系統建立命令能夠將移動硬盤的分區製做成 linux 系統所特有的
ext二、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:
53
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 服務端。
一、Solaris 系統 NFS 服務端配置方法以下:
(1)修改 /etc/dfs/dfstab, 增長共享目錄
share -F nfs -o rw /export/home/sunky
(2)啓動 nfs 服務數據庫
(3)NFS 服務啓動之後,也可使用下面的命令增長新的共享
share /export/home/sunky1
54
share /export/home/sunky2
注:/export/home/sunky 和/export/home/sunky1 是準備共享的目錄
二、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、sunky一、sunky2 是準備共享 的目錄,10.140.133.2三、、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 也能夠達到一樣的效果。
三、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 <文件系統類型>][文件系統]
55
2.8.3 補充說明
umount 可卸除目前掛在 Linux 目錄中的文件系統。
2.8.4 參數
-a 卸除/etc/mtab 中記錄的全部文件系統。
-h 顯示幫助。
-n 卸除時不要將信息存入/etc/mtab 文件中。
-r 若沒法成功卸除,則嘗試以只讀的方式從新掛入文件系統。
-t<文件系統類型> 僅卸除選項中所指定的文件系統。
-v 執行時顯示詳細的信息。
-V 顯示版本信息。
[文件系統] 除了直接指定文件系統外,也能夠用設備名稱或掛入點來表示文件系統。
56
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][- 壓縮等級][要壓縮的文件]
57
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][範本樣式...]
58
或 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 模式,略過備份步驟,直接將文件複製到目的目錄。
59
-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 指令單獨完成。
60
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 把壓縮後的文件輸出到標準輸出設備,不去更動原始文件。
61
-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 顯示幫助。
62
--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 文件。
63
-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 指令處理備份文件。
-<設備編號><存儲密度> 設置備份用的外圍設備編號及存放數據的密度。
64
--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=<編號文件> 使用指定文件內的編號取代預設的卷冊編號。
65
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 的文件版本信息。
66
-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<工做目錄> 指定暫時存放文件的目錄。
67
-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 的數值。
68
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 <信息編號>]
69
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 文件中。
70
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 欄位。
71
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"參數相同。
72
--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 <程序羣組名稱> 使用程序羣組名稱,修改全部隸屬於該程序羣組的程序的優先權。
73
-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][記錄文件]
74
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 顯示版本信息。
75
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
76
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
77
舉例說明
好比咱們有一個 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">;
78
<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 功能說明
設置文件系統相關功能。
79
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<網絡設備類型><硬件地址> 設置網絡設備的類型與硬件地址。
80
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] [動做與參數]
81
參數:
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
82
更改 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 <==觀察一下
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
84
看到上面的特殊字體了吧?多出了一行新的介面,且名稱是 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 ,亦便是與本裝置有關的直接連線。
85
再來看一下如何進行路由的增長與刪除吧!
範例二:增長路由,主要是本機直接可溝通的網域
[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 系統的網絡狀況。
86
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 地址
對應的域名。
87
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 會顯示對應的記錄。
88
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 詳細顯示指令的執行過程。
89
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:指定路由的網關。
90
[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 不將數據包編碼最佳化。
91
-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 濾除脫離字符。
92
-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 地址而非主機名稱。
93
-p<通訊端口> 設置 UDP 傳輸協議的通訊端口。
-r 忽略普通的 Routing Table,直接將數據包送到遠端主機上。
-s<來源地址> 設置本地主機送出數據包的 IP 地址。
-t<服務類型> 設置檢測數據包的 TOS 數值。
-v 詳細顯示指令的執行過程。
-w<超時秒數> 設置等待遠端主機回報的時間。
-x 開啓或關閉數據包的正確性檢驗。
94
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 的檔案內容加上行號(空白行不加)以後將內容
95
附加到 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]
96
或 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 在顯示時,插入新的一行。
97
%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 換行但光標仍舊停留在原來的位置;
98
\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:
99
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
100
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 功能說明
顯示內存狀態。
101
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 標誌調用,並寫入所有系統配置變量值到標準輸出。
102
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 [羣組名稱]
103
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 <新羣組名稱> 設置欲使用的羣組名稱。
104
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,若是運行失敗,系統的啓動也會失敗。
105
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 ipcs6.15.1 功能說明顯示進程間通訊信息。6.15.2 語法ipcs [ -asmq ] [ -tclup ]ipcs [ -smq ] -i idipcs –h1066.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 1076.16 mesg6.16.1 功能說明設置終端機的寫入權限。6.16.2 語法mesg [ny]6.16.3 補充說明將 mesg 設置 y 時,其餘用戶可利用 write 指令將信息直接顯示在您的屏幕上。6.16.4 參數n 不容許將信息直接顯示在你的屏幕上。y 容許將信息直接顯示在你的屏幕上。6.17 passwd6.17.1 功能說明設置密碼。6.17.2 語法passwd [-dklS][-u <-f>][用戶名稱]6.17.3 補充說明passwd 指令讓用戶能夠更改本身的密碼,而系統管理者則能用它管理系統用戶的密碼。只有管理者能夠指定用戶名稱,通常用戶只能變動本身的密碼。6.17.4 參數-d 刪除密碼。本參數僅有系統管理者才能使用。-f 強制執行。-k 設置只有在密碼過時失效後,方能更新。108-l 鎖住密碼。-s 列出密碼的相關信息。本參數僅有系統管理者才能使用。-u 解開已上鎖的賬號。6.18 rpm6.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"參數使用。109-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 安裝前不檢查磁盤空間是否足夠。110--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 直接略過指定完成階段的步驟。111--sign 產生 PGP 或 GPG 的簽名認證。--target=<安裝平臺>+ 設置產生的套件的安裝平臺。--test 僅做測試,並不真的安裝套件。--timecheck<檢查秒數> 設置檢查時間的計時秒數。--triggeredby<套件檔> 查詢該套件的包裝者。--triggers 展現套件檔內的包裝 Script。--verify 此參數的效果和指定"-q"參數相同。--version 顯示版本信息。--whatprovides<功能特性> 查詢該套件對指定的功能特性所提供的兼容度。--whatrequires<功能特性> 查詢該套件對指定的功能特性所須要的兼容度。6.19 service6.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 setup6.20.1 功能說明setup 是一個設置公用程序,提供圖形界面的操做方式。在 setup 中可設置 7 類的選項:1.登錄認證方式2.鍵盤組態設置3.鼠標組態設置4.開機時所要啓動的系統服務5.聲卡組態設置6.時區設置1127.X Windows 組態設置6.20.2 語法setup6.21 shutdown6.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 su6.22.1 功能說明變動用戶身份。1136.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 sync6.23.1 功能說明將內存緩衝區內的數據寫入磁盤。6.23.2 語法sync [--help][--version]6.23.3 補充說明在 Linux 系統中,當數據須要存入磁盤時,一般會先放到緩衝區內,等到適當的時刻再寫入磁盤,如此可提高系統的執行效率。6.23.4 參數--help 顯示幫助。114--version 顯示版本信息。6.24 uname6.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 uptime6.25.1 功能說明uptime 命令是用來查詢 linux 系統負載的,能夠顯示1 當前時間2 系統已運行時間。3 在線用戶數4 最近 1 分鐘、5 分鐘、15 分鐘系統的平均負載。1156.25.2 語法uptime [option] 6.25.3 Option-V 顯示版本信息。6.26 useradd6.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 取消創建以用戶名稱爲名的羣組.116-r 創建系統賬號。-s<shell> 指定用戶登入後所使用的 shell。-u<uid> 指定用戶 ID。6.27 userdel6.27.1 功能說明刪除用戶賬號。6.27.2 語法userdel [-r][用戶賬號]6.27.3 補充說明userdel 可刪除用戶賬號與相關的文件。若不加參數,則僅刪除用戶賬號,而不刪除相關文件。6.27.4 參數-f 刪除用戶登入目錄以及目錄中全部文件。6.28 usermod6.28.1 功能說明修改用戶賬號。6.28.2 語法usermod [-LU][-c <備註>][-d <登入目錄>][-e <有效期限>][-f <緩衝天數>][-g <羣組>][-G <羣組>][-l <賬號名稱>][-s <shell>][-u <uid>][用戶賬號]6.28.3 補充說明usermod 可用來修改用戶賬號的各項設定。1176.28.4 參數-c<備註> 修改用戶賬號的備註文字。-d 登入目錄> 修改用戶登入時的目錄。-e<有效期限> 修改賬號的有效期限。-f<緩衝天數> 修改在密碼過時後多少天即關閉該賬號。-g<羣組> 修改用戶所屬的羣組。-G<羣組> 修改用戶所屬的附加羣組。-l<賬號名稱> 修改用戶賬號名稱。-L 鎖定用戶密碼,使密碼無效。-s<shell> 修改用戶登入後所使用的 shell。-u<uid> 修改用戶 ID。-U 解除密碼鎖定。6.29 vmstat6.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 瓶頸了118bMemory swpd 正在使用的 swap 大小單位 Kfree 空閒的內存空間buff 已使用的 buff 大小,對塊設備的讀寫進行緩衝cache 已使用的 cache 大小,文件系統的 cacheinactactiveSwap 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 等待比較嚴重,這多是因爲磁盤大量做隨機訪問形成,也有多是磁盤的帶寬出現瓶頸(塊操做)。1196.30 wall6.30.1 功能說明傳送信息。6.30.2 語法wall [公告信息]6.30.3 補充說明經過 wall 指令可將信息發送給每位贊成接收公衆信息的終端機用戶,若不給予其信息內容,則 wall 指令會從標準輸入設備讀取數據,而後再把所獲得的數據傳送給全部終端機用戶。6.31 write6.31.1 功能說明傳送信息。6.31.2 語法write [用戶名稱][終端機編號]6.31.3 補充說明經過 write 指令可傳遞信息給另外一位登入系統的用戶,當輸入完畢後,鍵入 EOF 表示信息結束,write 指令就會將信息傳給對方。若是接收信息的用戶不僅登入本地主機一次,你能夠指定接收信息的終端機編號。120