目錄
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