Linux學習手冊(轉)

PigBaby2007發表於2007-08-08
Linux學習手冊[@more@]

一、Linux命令

名稱: cd

使用許可權: 所有使用者

使用方式: cd [dirName]

說明: 變換工作目錄至dirName。其中dirName 表示法可為絕對路徑或相對路徑。若目錄名稱省略,則變換至使用者的home directory (也就是剛login 時所在的目錄)。

另外,"~" 也表示為home directory 的意思,"." 則是表示目前所在的目錄,".." 則表示目前目錄位置的上一層目錄。

範例: 跳到/usr/bin/ :

cd /usr/bin

跳到自己的home directory :

cd ..

跳到目前目錄的上上兩層:

cd ../

指令名稱: chmod

使用許可權: 所有使用者

使用方式: chmod [-cfvR] [--help] [--version] mode file...

說明: Linux/Unix 的檔案存取許可權分為三級: 檔案擁有者﹑群組﹑其它。利用chmod 可以藉以控制檔案如何被他人所存取。

引數:

mode : 許可權設定字串﹐格式如下: [ugoa...][[+-=][rwxX]...][,...],其中

u 表示該檔案的擁有者﹐g 表示與該檔案的擁有者屬於同一個群體(group)者﹐o 表示其它以外的人﹐a 表示這三者皆是。+ 表示增加許可權﹑- 表示取消許可權﹑= 表示唯一設定許可權。r 表示可讀取﹐w 表示可寫入﹐x 表示可執行﹐X 表示只有當該檔案是個子目錄或者該檔案已經被設定過為可執行。

-c : 若該檔案許可權確實已經更改﹐才顯示其更改動作-f : 若該檔案許可權無法被更改也不要顯示錯誤訊息-v : 顯示許可權變更的詳細資料-R : 對目前目錄下的所有檔案與子目錄進行相同的許可權變更(即以遞迴的方式逐個變更) --help : 顯示輔助說明--version : 顯示版本

範例:將檔案file1.txt 設為所有人皆可讀取:

chmod ugo+r file1.txt

將檔案file1.txt 設為所有人皆可讀取:

chmod a+r file1.txt

將檔案file1.txt 與file2.txt 設為該檔案擁有者,與其所屬同一個群體者可寫入﹐但其它以外的人則不可寫入:

chmod ug+w,o-w file1.txt file2.txt

將ex1.py 設定為只有該檔案擁有者可以執行:

chmod u+x ex1.py

將目前目錄下的所有檔案與子目錄皆設為任何人可讀取:

chmod -R a+r *

此外chmod也可以用數字來表示許可權如chmod 777 file

語法為:chmod abc file

其中a,b,c各為一個數字,分別表示User、Group、及Other的許可權。

r=4,w=2,x=1 若要rwx屬性則4+2+1=7; 若要rw-屬性則4+2=6; 若要r-x屬性則4+1=7。

範例:

chmod a=rwx file

chmod 777 file

效果相同

chmod ug=rwx,o=x file

chmod 771 file

名稱:locate 使用許可權:所有使用者使用方式: locate [-q] [-d ] [--database=< path>] locate [-r ] [--regexp=< regexp>] locate [-qv] [-o ] [--output=] locate [-e ] [-f ] ] [-c] locate [-Vh] [--version] [--help] 說明:

locate 讓使用者可以很快速的搜尋檔案系統內是否有指定的檔案。其方法是先建立一個包括系統內所有檔名稱及路徑的資料庫,之後當尋找時就只需查詢這個資料庫,而不必實際深入檔案系統之中了。

在一般的distribution 之中,資料庫的建立都被放在contab 中自動執行。一般使用者在使用時只要用

# locate your_file_name

的型式就可以了。引數:

-u -U 建立資料庫,-u 會由根目錄開始,-U 則可以指定開始的位置。

-e 排除在尋找的範圍之外。

-l 如果 是1.則啟用安全模式。在安全模式下,使用者不會看到許可權無法看到的檔案。這會始速度減慢,因為locate 必須至實際的檔案系統中取得檔案的許可權資料。

-f 將特定的檔案系統排除在外,例如我們沒有到理要把proc 檔案系統中的檔案放在資料庫中。

-q 安靜模式,不會顯示任何錯誤訊息。

-n 至多顯示 個輸出。

-r 使用正規表示式 做尋找的條件。

-o 指定資料庫存的名稱。

-d 指定資料庫的路徑

-h 顯示輔助訊息

-v 顯示更多的訊息

-V 顯示程式的版本訊息範例:

locate chdrv : 尋找所有叫chdrv 的檔案locate -n 100 a.out : 尋找所有叫a.out 的檔案,但最多隻顯示100 個locate -u : 建立資料庫

名稱: sync 使用許可權: 系統管理者使用方式: sync 說明: Linux 系統中欲寫入硬碟的資料有的時候會了效率起見,會寫到 filesystem buffer 中,這個buffer 是一塊記憶體空間,如果欲寫入硬碟的資料存於此buffer 中,而系統又突然斷電的話,那麼資料就會流失了,sync 指令會將存於buffer 中的資料強制寫入硬碟中。

名稱:adduser 使用許可權:系統管理員使用方式:adduser [-c comment] [-d home_dir] [-e expire_date] [-f inactive_time] [-g initial_group] [-G group[,...]] [-m [-k skeleton_dir] | -M] [-p passwd] [-s shell] [-u uid [ -o]] [-n] [-r] loginid 或adduser -D [- g default_group] [-b default_home] [-f default_inactive] [-e default_expire_date] [-s default_shell] 附註:adduser 與useradd 指令為同一指令(經由符號連結symbolic link) 說明:新增使用者帳號或更新預設的使用者資料引數: -c comment 新使用者位於密碼檔案(通常是/etc/passwd)的批註資料- d home_dir 設定使用者的家目錄為home_dir ,預設值為預設的home 後面加上使用者帳號loginid - e expire_date 設定此帳號的使用期限(格式為YYYY-MM-DD),預設值為永久有效-f inactive_time 範例:

adduser是增加使用者,相對的,也有刪除使用者的指令,userdel

語法:userdel [login ID]

名稱:su 使用許可權:所有使用者使用方式:su [-fmp] [-c command] [-s shell] [--help] [-- version] [-] [USER [ARG]] 說明:變更為其它使用者的身份,除root 外,需要鍵入該使用者的密碼引數: -f 或-- fast 不必讀啟用檔(如csh.cshrc 等),僅用於csh 或tcsh -m -p 或--preserve-environment 執行 su 時不改變環境變數-c command 或--command=command 變更為帳號為USER 的使用者並執行指令(command)後再變回原來使用者-s shell 或--shell=shell 指定要執行的shell (bash csh tcsh 等),預設值為 /etc/passwd 內的該使用者(USER) shell --help 顯示說明檔案--version 顯示版本資訊- -l 或-- login 這個引數加了之後,就好象是重新login 為該使用者一樣,大部份環境變數(HOME SHELL USER等等)都是以該使用者(USER)為主,並且工作目錄也會改變,如果沒有指定USER ,內定是root USER 欲變更的使用者帳號

ARG 傳入新的 shell 引數範例: su -c ls root 變更帳號為root 並在執行ls 指令後退出變回原使用者。su root -f 變更帳號為 root 並傳入-f 引數給新執行的shell。su - clsung 變更帳號為clsung 並改變工作目錄至clsung 的家目錄(home dir)。

名稱:sudo 使用許可權:在/etc/sudoers 中有出現的使用者使用方式:sudo -V sudo - h sudo -l sudo -v sudo -k sudo -s sudo -H sudo [ -b ] [ -p prompt ] [ -u username/#uid] -s sudo command 說明:以系統管理者的身份執行指令,也就是說,經由sudo 所執行的指令就好象是root 親自執行引數: -V 顯示版本編號-h 會顯示版本編號及指令的使用方式說明-l 顯示出自己(執行sudo 的使用者)的許可權-v 因為sudo 在第一次執行時或是在N 分鐘內沒有執行(N 預設為五)會問密碼,這個引數是重新做一次確認,如果超過N 分鐘,也會問密碼-k 將會強迫使用者在下一次執行sudo 時問密碼(不論有沒有超過N 分鐘) -b 將要執行的指令放在背景執行-p prompt 可以更改問密碼的提示語,其中%u 會代換為使用者的帳號名稱, % h 會顯示主機名稱-u username/#uid 不加此引數,代表要以root 的身份執行指令,而加了此引數,可以以username 的身份執行指令(#uid 為該username 的使用者號碼) -s 執行環境變數中的SHELL 所指定的shell ,或是/etc/passwd 裡所指定的shell -H 將環境變數中的HOME (家目錄)指定為要變更身份的使用者家目錄(如不加-u 引數就是系統管理者root ) command 要以系統管理者身份(或以-u 更改為其它人)執行的指令範例: sudo -l 列出目前的許可權sudo -V 列出sudo 的版本資訊

名稱:init 使用許可權:開機時使用方式:init [0123456Ss] 說明:init 是所有行程(process)的父行程(parent),開機時一定會先從這個指令開始(可以用ps -aux 看看第一個行程就是init),並參考/etc/inittab 檔來完成整個開機程式,共有八個執行層級(runlevel),而改變只能透過telinit 的指令來更改引數: 0 開機執行層級為0 ,用來關閉系統 1 開機執行層級為1 ,用來進行單一使用者模式(single user mode) 4 開機執行層級為4 ,表示進入X window 時的模式 6 開機執行層級為6 ,用來重新開機S 或s 不是直接使用的,配合開機執行層級1 時使用,當加上S 或s 表示開機後不參考 /etc/inittab 檔235 請參照/etc/inittab 檔案內容以及/etc/rc.d/rc2.d,/etc/rc.d/rc3.d, /etc/rc.d/rc5.d 等目錄範例: 由於這並不是讓使用者可以單獨下指令的執行檔案,請參照/etc/inittab

名稱: reboot 使用許可權:系統管理者使用方式:reboot [-n] [-w] [-d] [-f] [-i] 說明:若系統的runlevel 為 0 或6 ,則重新開機,否則以shutdown 指令(加上-r 引數)來取代引數: -n : 在重開機前不做將記憶體資料寫回硬碟的動作-w : 並不會真的重開機,只是把記錄寫到/var/log/wtmp 檔案裡-d : 不把記錄寫到/var/log/wtmp 檔案裡(-n 這個引數包含了- d) -f : 強迫重開機,不呼叫shutdown 這個指令-i : 在重開機之前先把所有網路相關的裝置先停止範例: reboot 重開機。 reboot -w 做個重開機的模擬(只有紀錄並不會真的重開機)。

名稱:halt 使用許可權:系統管理者使用方式:halt [-n] [-w] [-d] [-f] [-i] [-p] 說明:若系統的runlevel 為0 或6 ,則關閉系統,否則以shutdown 指令(加上-h 引數)來取代引數:

-n : 在關機前不做將記憶體資料寫回硬碟的動作-w : 並不會真的關機,只是把記錄寫到/var/log/wtmp 檔案裡-d : 不把記錄寫到 /var/log/wtmp 檔案裡(-n 這個引數包含了-d) -f : 強迫關機,不呼叫shutdown 這個指令-i : 在關機之前先把所有網路相關的裝置先停止-p : 當關機的時候,順便做關閉電源(poweroff)的動作範例: halt -p 關閉系統後關閉電源。halt -d 關閉系統,但不留下紀錄。

名稱: shutdown

使用許可權: 系統管理者

使用方式: shutdown [-t seconds] [-rkhncfF] time [message]

說明: shutdown 可以用來進行關機程式,並且在關機以前傳送訊息給所有使用者正在執行的程式,shutdown 也可以用來重開機。

引數:

-t seconds : 設定在幾秒鐘之後進行關機程式-k : 並不會真的關機,只是將警告訊息傳送給所有隻用者-r : 關機後重新開機-h : 關機後停機-n : 不採用正常程式來關機,用強迫的方式殺掉所有執行中的程式後自行關機-c : 取消目前已經進行中的關機動作-f : 關機時,不做fcsk 動作(檢查 Linux 檔案系統) -F : 關機時,強迫進行fsck 動作time : 設定關機的時間message : 傳送給所有使用者的警告訊息

名稱:mattrib 使用許可權:所有使用者使用方式: mattrib [-a|+a] [-h|+h] [-r|+r] [-s|+s] [-/] [-X] msdosfile [ msdosfiles ... ]說明:本程式可用來修改MS_DOS 檔案的屬性。引數: -a/+a 除去/設定備份屬性。-h/+h 除去/設定隱藏屬性。-r/+r 除去/設定只讀屬性。-s/+s 除去/設定系統屬性。-/ 遞迴的處理包含所有子目錄下的檔案。-X 以較短的格式輸出結果。

範例: mattrib a: 列出A 槽MSDOS 格式磁碟上所有檔案的屬性。mattrib -h -s -r a:msdos.sys 除去A 槽磁碟上msdos.sys 檔案的隱藏、系統與只讀屬性。mattrib -r -/ a: *.* 除去A 槽磁碟上包含子目錄下所有檔案的只讀屬性。

名稱:mcopy 使用許可權:所有使用者使用方式: mcopy [- b/ptnvmoQOsSrRA] sourcefile targetfile mcopy [-b/ptnvmoQOsSrRA] sourcefile [ sourcefiles... ] targetdirectory mcopy [-tnvm] MSDOSsourcefile 說明: 本程式可用來複制MSDOS 格式檔案到Linux 中,或是由Linux 中複製MSDOS 檔案到磁碟上。mcopy 可複製單一的檔案到所指定的檔名稱,或是複製數個檔案到所指定的目錄之中。來源與目的檔案可為MSDOS 或是Linux 檔案。引數: b 批次模式.這是為大量的檔案複製進行最佳化的選項,但是當在複製檔案過程中產生crash 時,會有安全性的問題產生。/ 遞迴的複製。包含目錄所含檔案與其下所有子目錄中的檔案。p 維持檔案原來的屬性。Q 當複製多個檔案產生錯誤時,儘快結束程式。t 複製純文字檔案。將carriage return/line feeds 轉換成 line feeds 字元。n 在覆蓋Linux 檔案時不會出現警示訊息。o 在覆蓋MSDOS 檔案時不會出現警示訊息。m 維持檔案原來的修改時間。當目的檔案已存在,且使用-n 選項時,mcopy 會詢問是否要覆蓋或是另存新檔。範例: mcopy a:autoexec.bat . 將 A 槽磁碟根目錄中的autoexec.bat 複製到目前工作目錄之下。

指令名稱: ln

使用許可權: 所有使用者

使用方式: ln [options] source dist,其中option 的格式為:

[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}] [--help] [--version] [--]

說明: Linux/Unix 檔案系統中﹐有所謂的連結(link)﹐我們可以將其視為檔案的別名﹐而連結又可分為兩種: 硬連結(hard link) 與軟連結(symbolic link)﹐硬連結的意思是一個檔案可以有多個名稱﹐而軟連結的方式則是產生一個特殊的檔案﹐該檔案的內容是指向另一個檔案的位置。硬連結是存在同一個檔案系統中﹐而軟連結卻可以跨越不同的檔案系統。

ln source dist 是產生一個連結(dist)到source﹐至於使用硬連結或軟連結則由引數決定。

不論是硬連結或軟連結都不會將原本的檔案複製一份﹐只會佔用非常少量的磁碟空間。

引數:

-f : 連結時先將與dist 同檔名的檔案刪除-d : 允許系統管理者硬連結自己的目錄-i : 在刪除與dist 同檔名的檔案時先進行詢問-n : 在進行軟連結時﹐將dist 視為一般的檔案-s : 進行軟連結(symbolic link)-v : 在連結之前顯示其檔名-b : 將在連結時會被覆寫或刪除的檔案進行備份-S SUFFIX : 將備份的檔案都加上SUFFIX 的字尾-V METHOD : 指定備份的方式--help : 顯示輔助說明--version : 顯示版本

範例:

將檔案yy 產生一個symbolic link : zz

ln -s yy zz

將檔案yy 產生一個hard link : zz

ln yy xx

名稱:mdel 使用許可權:所有使用者使用方式: mdel [-v] msdosfile [ msdosfiles ... ] 說明: 本程式可用來刪除MSDOS 格式的檔案。在刪除只讀檔案之前會先有提示訊息產生。引數: -v 顯示更多的訊息。範例: mdel a: autoexec.bat . 將A 槽磁碟根目錄中的autoexec.bat 刪除。

名稱:mdeltree 使用許可權:所有使用者使用方式: mdeltree [-v] msdosdirectory [msdosdirectories...] 說明: 本程式可用來刪除MSDOS 格式檔案及目錄。mdeltree 會將所指定的目錄與目錄之下的所有檔案與目錄都刪除掉。如果所指定的檔案或目錄不存在,則會傳回錯誤訊息。

引數: -v 顯示更多的訊息。範例: mcopy a:msdosdir . 將A 槽磁碟根目錄中的msdosdir 目錄以下的檔案與目錄都刪除掉。

名稱:mlabel 使用許可權:所有使用者使用方式: mlabel [-vcs] drive:[new_label] 說明: 本程式可設定磁碟的卷標 (Label)。如果磁碟上設定過卷標,mlabel 會將他顯示給使用者。如果沒有指定新卷標並且沒有指定c 或s 選項,mlabel 會提示使用者輸入新的卷標。如果直接按下Enter ,就會將原本的卷標刪除。引數: -v 更多的訊息。-c 清除原有的卷標,不出現提示訊息。-s 顯示目前的卷標,不出現提示訊息。範例: mlabel a:newlabel。將A 槽磁碟的卷標更改為newlabel。

名稱:mcd 使用許可權:所有使用者使用方式: mcd [msdosdirectory] 說明:可變更mtools 系列指令目前在MSDOS 磁碟上的工作目錄。與MSDOS 的CD 指令不同,mcd 亦可變更工作磁碟。引數: 沒有引數時會傳回目前的工作目錄。範例: mcd a: emp 變更目前工作目錄到a: temp 中。mcd 傳回目前工作目錄。

名稱: mkdir

使用許可權:於目前目錄有適當許可權的所有使用者

使用方式:mkdir [-p] dirName

說明:建立名稱為dirName 之子目錄。

引數:-p 確保目錄名稱存在,不存在的就建一個。

範例:

在工作目錄下,建立一個名為AAA 的子目錄:

mkdir AAA

在工作目錄下的BBB 目錄中,建立一個名為Test 的子目錄。若BBB 目錄原本不存在,則建立一個。(注:本例若不加-p,且原本BBB目錄不存在,則產生錯誤。)

mkdir -p BBB/Test

名稱:more 使用許可權:所有使用者使用方式:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..] 說明:類似cat ,不過會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空格鍵(space)就往下一頁顯示,按b 鍵就會往回(back)一頁顯示,而且還有搜尋字串的功能(與vi 相似),使用中的說明檔案,請按h 。引數:-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 欲顯示內容的檔案,可為複數個數範例: more -s testfile 逐頁顯示testfile 之檔案內容,如有連續兩行以上空白行則以一行空白行顯示。more +20 testfile 從第20 行開始顯示testfile 之檔案內容。

名稱:mv

使用許可權:所有使用者

使用方式:

mv [options] source dest mv [options] source... directory

說明:將一個檔案移至另一檔案,或將數個檔案移至另一目錄。

引數:-i 若目的地已有同名檔案,則先詢問是否覆蓋舊檔。

範例:

將檔案aaa 更名為bbb :

mv aaa bbb

將所有的C語言程式移至Finished 子目錄中:

mv -i *.c

名稱:rm

使用許可權:所有使用者

使用方式:rm [options] name...

說明:刪除檔案及目錄。

引數:

-i 刪除前逐一詢問確認。-f 即使原檔案屬性設為只讀,亦直接刪除,無需逐一確認。-r 將目錄及以下之檔案亦逐一刪除。

範例:

刪除所有C語言程式檔案;刪除前逐一詢問確認:

rm -i *.c

將Finished 子目錄及子目錄中所有檔案刪除:

rm -r Finished

名稱:rmdir

使用許可權:於目前目錄有適當許可權的所有使用者

使用方式: rmdir [-p] dirName

說明: 刪除空的目錄。

引數: -p 是當子目錄被刪除後使它也成為空目錄的話,則順便一併刪除。

範例:

將工作目錄下,名為AAA 的子目錄刪除:

rmdir AAA

在工作目錄下的BBB 目錄中,刪除名為Test 的子目錄。若Test 刪除後,BBB 目錄成為空目錄,則BBB 亦予刪除。

rmdir -p BBB/Test

名稱:split

使用許可權:所有使用者

使用方式:split [OPTION] [INPUT [PREFIX]]

說明:

將一個檔案分割成數個。而從INPUT 分割輸出成固定大小的檔案,其檔名依序為PREFIXaa, PREFIXab...;PREFIX 預設值為`x'。若沒有INPUT 檔或為`-',則從標準輸入讀進資料。

選項:

-b, --bytes=SIZE

SIZE 值為每一輸出檔案的大小,單位為byte。

-C, --line-bytes=SIZE

每一輸出檔中,單行的最大byte 數。

-l, --lines=NUMBER

NUMBER 值為每一輸出檔的列數大小。

-NUMBER

與-l NUMBER 相同。

--verbose

於每個輸出檔被開啟前,列印出偵錯資訊到標準錯誤輸出。

--help

顯示輔助資訊然後離開。

--version

列出版本資訊然後離開。

SIZE 可加入單位: b 代表512, k 代表1K, m 代表1 Meg。

範例:

PostgresSQL 大型資料庫備份與回存:

因Postgres 允許表格大過你係統檔案的最大容量,所以要將表格dump 到單一的檔案可能會有問題,使用split 來進行檔案分割。

% pg_dump dbname | split -b 1m - filename.dump.

重新載入

% createdb dbname % cat filename.dump.* | pgsql dbname

名稱:touch

使用許可權:所有使用者

使用方式: touch [-acfm] [-r reference-file] [--file=reference-file] [- t MMDDhhmm[[CC]YY][.ss]] [-d time] [--date=time] [--time={atime,access,use,mtime,modify}] [--no-create] [--help] [--version] file1 [file2 ...]

說明: touch 指令改變檔案的時間記錄。ls -l 可以顯示檔案的時間記錄。

引數: a 改變檔案的讀取時間記錄。m 改變檔案的修改時間記錄。c 假如目的檔案不存在﹐不會建立新的檔案。與--no-create 的效果一樣。 f 不使用﹐是為了與其它unix 系統的相容性而保留。r 使用參考檔案的時間記錄﹐與--file 的效果一樣。d 設定時間與日期﹐可以使用各種不同的格式。t 設定檔案的時間記錄﹐格式與date 指令相同。--no-create 不會建立新檔案。--help 列出指令格式。-- version 列出版本訊息。

範例:

最簡單的使用方式﹐將檔案的時候記錄改為現在的時間。若檔案不存在﹐系統會建立一個新的檔案。

touch file touch file1 file2

將file 的時間記錄改為5 月6 日18 點3 分﹐公元兩千年。時間的格式可以參考date 指令﹐至少需輸入MMDDHHmm ﹐就是月日時與分。

touch -c -t 05061803 file touch -c -t 050618032000 file

將file 的時間記錄改變成與referencefile 一樣。

touch -r referencefile file

將file 的時間記錄改成5 月6 日18 點3 分﹐公元兩千年。時間可以使用am, pm 或是24 小時的格式﹐日期可以使用其它格式如6 May 2000 。

touch -d "6:03pm" file touch -d "05/06/2000" file touch -d "6:03pm 05/06/2000" file

touch 也可以製造一個空檔(0 byte),例如DHCP Server 所需要的/etc.dbcpd.leases,dhcpd必須要有這個檔案才能運作正常。[root@/root]#touch /etc/dhcpd.leases [root@/root] #ls –l /etc/dhcpd.less -rw-r—r—l root root 0 Jul 3 05:50 /etc/dhcpd.leases

名稱: at

使用許可權: 所有使用者

使用方式: at -V [-q queue] [-f file] [-mldbv] TIME

說明: at 可以讓使用者指定在TIME 這個特定時刻執行某個程式或指令,TIME 的格式是HH:MM其中的HH 為小時,MM 為分鐘,甚至你也可以指定am, pm, midnight, noon, teatime(就是下午4 點鐘)等口語詞。

如果想要指定超過一天內的時間,則可以用MMDDYY 或者MM/DD/YY 的格式,其中MM 是分鐘,DD 是第幾日,YY 是指年份。另外,使用者甚至也可以使用像是now + 時間間隔來彈性指定時間,其中的時間間隔可以是minutes, hours, days, weeks。

另外,使用者也可指定today 或tomorrow 來表示今天或明天。當指定了時間並按下enter 之後,at 會進入交談模式並要求輸入指令或程式,當你輸入完後按下ctrl+D 即可完成所有動作,至於執行的結果將會寄回你的帳號中。

引數:

-V : 印出版本編號-q : 使用指定的佇列(Queue)來儲存,at 的資料是存放在所謂的queue 中,使用者可以同時使用多個queue,而 queue 的編號為a, b, c... z 以及A, B, ... Z 共52 個-m : 即使程式/指令執行完成後沒有輸出結果, 也要寄封信給使用者-f file : 讀入預先寫好的命令檔。使用者不一定要使用交談模式來輸入,可以先將所有的指定先寫入檔案後再一次讀入-l : 列出所有的指定(使用者也可以直接使用atq 而不用at -l) -d : 刪除指定(使用者也可以直接使用atrm 而不用at -d) -v : 列出所有已經完成但尚未刪除的指定

例子:

三天後的下午5 點鐘執行/bin/ls :

at 5pm + 3 days /bin/ls

三個星期後的下午5 點鐘執行/bin/ls :

t 5pm + 2 weeks /bin/ls

明天的17:20 執行/bin/date :

at 17:20 tomorrow /bin/date

1999 年的最後一天的最後一分鐘印出the end of world !

名稱: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 裡。

範例:

把textfile1 的檔案內容加上行號後輸入textfile2這個檔案裡

cat –n textfile1 > textfile2

把textfile1 和textfile2 的檔案內容加上行號(空白行不加)之後將內容附加到textfile3 裡

cat –b textfile1 textfile2 >>textfile3

名稱: crontab

使用許可權: 所有使用者

使用方式:

crontab [ -u user ] file

crontab [ -u user ] { -l | -r | -e }

說明:

crontab 是用來讓使用者在固定時間或固定間隔執行程式之用,換句話說,也就是類似使用者的時程表。-u user 是指設定指定user 的時程表,這個前提是你必須要有其許可權(比如說是root)才能夠指定他人的時程表。如果不使用-u user 的話,就是表示設定自己的時程表。

餐數:

-e : 執行文字編輯器來設定時程表,內定的文字編輯器是VI,如果你想用別的文字編輯器,則請先設定VISUAL 環境變數來指定使用那個文字編輯器(比如說setenv VISUAL joe) -r : 刪除目前的時程表-l : 列出目前的時程表

時程表的格式如下:

f1 f2 f3 f4 f5 program

其中f1 是表示分鐘,f2 表示小時,f3 表示一個月份中的第幾日,f4 表示月份,f5 表示一個星期中的第幾天。program 表示要執行的程式。

當 f1 為* 時表示每分鐘都要執行program,f2 為* 時表示每小時都要執行程式,其餘類推當f1 為a-b 時表示從第a 分鐘到第b 分鐘這段時間內要執行,f2 為a-b 時表示從第a 到第b 小時都要執行,其餘類推當f1 為*/n 時表示每n 分鐘個時間間隔執行一次,f2 為 */n 表示每n 小時個時間間隔執行一次,其餘類推當f1 為a, b, c,... 時表示第a, b, c,... 分鐘要執行,f2 為a, b, c,... 時表示第a, b, c...個小時要執行,其餘類推

使用者也可以將所有的設定先存放在檔案file 中,用crontab file 的方式來設定時程表。

例子:

每月每天每小時的第0 分鐘執行一次/bin/ls :

0 7 * * * /bin/ls

在12 月內, 每天的早上6 點到12 點中,每隔20 分鐘執行一次/usr/bin/backup :

0 6-12/3 * 12 * /usr/bin/backup

週一到週五每天下午5:00 寄一封信給alex@domain.name :

0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata

每月每天的午夜0 點20 分, 2 點20 分, 4 點20 分....執行echo "haha"

20 0-23/2 * * * echo "haha"

注意:

當程式在你所指定的時間執行後,系統會寄一封信給你,顯示該程式執行的內容,若是你不希望收到這樣的信,請在每一行空一格之後加上> /dev/null 2>&1 即可。

名稱: sleep

使用許可權: 所有使用者

使用方式: sleep [--help] [--version] number[smhd]

說明: sleep 可以用來將目前動作延遲一段時間

引數說明:

--help : 顯示輔助訊息--version : 顯示版本編號number : 時間長度,後面可接s、m、h 或d 其中s 為秒,m 為分鐘,h 為小時,d 為日數

例子:

顯示目前時間後延遲1 分鐘,之後再次顯示時間:

名稱: date

使用許可權: 所有使用者

使用方式:

date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]

說明:

date 可以用來顯示或設定系統的日期與時間,在顯示方面,使用者可以設定欲顯示的格式,格式設定為一個加號後接數個標記,其中可用的標記列表如下:

時間方面:

% : 印出% %n : 下一行%t : 跳格%H : 小時(00..23) %I : 小時(01..12) %k : 小時(0..23) %l : 小時(1..12) %M : 分鐘(00..59) %p : 顯示本地AM 或PM %r : 直接顯示時間(12 小時制,格式為hh:mm: ss [AP]M) %s : 從1970 年1 月1 日00:00:00 UTC 到目前為止的秒數

%S : 秒(00..61) %T : 直接顯示時間(24 小時制) %X : 相當於%H:%M:%S %Z : 顯示時區

日期方面:

%a : 星期幾(Sun..Sat) %A : 星期幾(Sunday..Saturday) %b : 月份(Jan..Dec) %B : 月份 (January..December) %c : 直接顯示日期與時間%d : 日(01..31) %D : 直接顯示日期(mm/dd/yy) % h : 同%b %j : 一年中的第幾天(001..366) %m : 月份(01..12) %U : 一年中的第幾周(00..53) (以 Sunday 為一週的第一天的情形) %w : 一週中的第幾天(0..6) %W : 一年中的第幾周(00..53) (以Monday 為一週的第一天的情形) %x : 直接顯示日期(mm/dd/yy) %y : 年份的最後兩位數字(00.99) %Y : 完整年份(0000.. 9999)

若是不以加號作為開頭,則表示要設定時間,而時間格式為MMDDhhmm[[CC]YY][.ss],其中MM 為月份,DD 為日,hh 為小時,mm 為分鐘,CC 為年份前兩位數字,YY 為年份後兩位數字,ss 為秒數

引數:

-d datestr : 顯示datestr 中所設定的時間(非系統時間) --help : 顯示輔助訊息-s datestr : 將系統時間設為datestr 中所設定的時間-u : 顯示目前的格林威治時間--version : 顯示版本編號

例子:

顯示時間後跳行,再顯示目前日期:

date '+%T%n%D'

顯示月份與日數:

date '+%B %d'

顯示日期與設定時間(12:34:56) :

date --date '12:34:56'

注意:

當你不希望出現無意義的0 時(比如說1999/03/07),則可以在標記中插入- 符號,比如說date '+%-H:%-M:%-S' 會把時分秒中無意義的0 給去掉,像是原本的08:09:04 會變為8:9:4。另外,只有取得許可權者(比如說root)才能設定系統時間。

當你以root 身分更改了系統時間之後﹐請記得以clock -w 來將系統時間寫入CMOS 中﹐這樣下次重新開機時系統時間才會持續抱持最新的正確值。

名稱: time

使用許可權: 所有使用者

使用方式: time [options] COMMAND [arguments]

說明: time 指令的用途,在於量測特定指令執行時所需消耗的時間及系統資源等資訊。例如CPU 時間、記憶體、輸入輸出等等。需要特別注意的是,部分資訊在Linux 上顯示不出來。這是因為在Linux 上部分資源的分配函式與time 指令所預設的方式並不相同,以致於time 指令無法取得這些資料。

引數:

-o or --output=FILE 設定結果輸出檔。這個選項會將time 的輸出寫入所指定的檔案中。如果檔案已經存在,系統將覆寫其內容。

-a or --append 配合-o 使用,會將結果寫到檔案的末端,而不會覆蓋掉原來的內容。

-f FORMAT or --format=FORMAT 以FORMAT 字串設定顯示方式。當這個選項沒有被設定的時候,會用系統預設的格式。不過你可以用環境變數time 來設定這個格式,如此一來就不必每次登入系統都要設定一次。一般設定上,你可以用

' '

表示跳欄,或者是用

'

'

表示換行。每一項資料要用% 做為前導。如果要在字串中使用百分比符號,就用。(學過C 語言的人大概會覺得很熟悉) time 指令可以顯示的資源有四大項,分別是: Time resources Memory resources IO resources Command info 詳細的內容如下:

o Time Resources

E 執行指令所花費的時間,格式是:[hour]:minute:second。請注意這個數字並不代表實際的CPU 時間。

e 執行指令所花費的時間,單位是秒。請注意這個數字並不代表實際的CPU 時間。

S 指令執行時在核心模式(kernel mode)所花費的時間,單位是秒。

U 指令執行時在使用者模式(user mode)所花費的時間,單位是秒。

P 執行指令時CPU 的佔用比例。其實這個數字就是核心模式加上使用者模式的CPU 時間除以總時間。

o Memory Resources

M 執行時所佔用的實體記憶體的最大值。單位是KB

t 執行時所佔用的實體記憶體的平均值,單位是KB

K 執行程式所佔用的記憶體總量(stack+data+text)的平均大小,單位是KB

D 執行程式的自有資料區(unshared data area)的平均大小,單位是KB

p 執行程式的自有堆疊(unshared stack)的平均大小,單位是KB

X 執行程式間共享內容(shared text)的平均值,單位是KB

Z 系統記憶體頁的大小,單位是byte。對同一個系統來說這是個常數

o IO Resources

F 此程式的主要記憶體頁錯誤發生次數。所謂的主要記憶體頁錯誤是指某一記憶體頁已經置換到置換檔(swap file)中,而且已經分配給其它程式。此時該頁的內容必須從置換檔裡再讀出來。

R 此程式的次要記憶體頁錯誤發生次數。所謂的次要記憶體頁錯誤是指某一記憶體頁雖然已經置換到置換檔中,但尚未分配給其它程式。此時該頁的內容並未被破壞,不必從置換檔裡讀出來

W 此程式被交換到置換檔的次數

c 此程式被強迫中斷(像是分配到的CPU 時間耗盡)的次數

w 此程式自願中斷(像是在等待某一個I/O 執行完畢,像是磁碟讀取等等)的次數

I 此程式所輸入的檔案數

O 此程式所輸出的檔案數

r 此程式所收到的Socket Message

s 此程式所送出的Socket Message

k 此程式所收到的訊號( Signal 數量

o Command Info

C 執行時的引數以及指令名稱

x 指令的結束程式碼( Exit Status

-p or --portability 這個選項會自動把顯示格式設定成為: real %e user %U sys %S 這麼做的目的是為了與POSIX 規格相容。

-v or --verbose 這個選項會把所有程式中用到的資源通通列出來,不但如一般英文語句,還有說明。對不想花時間去熟習格式設定或是剛剛開始接觸這個指令的人相當有用。

範例:

利用下面的指令

time -v ps -aux

我們可以獲得執行ps -aux 的結果和所花費的系統資源。如下面所列的資料:

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.4 1096 472 ? S Apr19 0:04 init root 2 0.0 0.0 0 0 ? SW Apr19 0:00 [kflushd] root 3 0.0 0.0 0 0 ? SW Apr19 0:00 [kpiod] ...... root 24269 0.0 1.0 2692 996 pts/3 R 12:16 0:00 ps -aux Command being timed: "ps -aux" User time (seconds): 0.05 System time (seconds): 0.06 Percent of CPU this job got: 68% Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.16 Average shared text size (kbytes): 0 Average unshared data size (kbytes): 0 Average stack size (kbytes): 0 Average total size (kbytes): 0 Maximum resident set size (kbytes): 0 Average resident set size (kbytes): 0 Major (requiring I/O) page faults: 238 Minor (reclaiming a frame) page faults: 46 Voluntary context switches: 0 Involuntary context switches: 0 Swaps: 0 File system inputs: 0 File system outputs: 0

Socket messages sent: 0 Socket messages received: 0 Signals delivered: 0 Page size (bytes): 4096 Exit status: 0

名稱: uptime 使用許可權: 所有使用者使用方式: uptime [-V] 說明: uptime 提供使用者下面的資訊,不需其它引數:

1. 現在的時間

2. 系統開機運轉到現在經過的時間

3. 聯機的使用者數量

4. 最近一分鐘,五分鐘和十五分鐘的系統負載

引數: -V 顯示版本資訊。範例: uptime 其結果為: 10:41am up 5 days, 10 min, 1 users, load average: 0.00, 0.00, 1.99

指令名稱: chown

使用許可權: root

使用方式: chmod [-cfhvR] [--help] [--version] user[:group] file...

說明: Linux/Unix 是多人多工作業系統﹐所有的檔案皆有擁有者。利用chown 可以將檔案的擁有者加以改變。一般來說﹐這個指令只有是由系統管理者(root)所使用﹐一般使用者沒有許可權可以改變別人的檔案擁有者﹐也沒有許可權可以自己的檔案擁有者改設為別人。只有系統管理者(root)才有這樣的許可權。

引數:

user : 新的檔案擁有者的使用者IDgroup : 新的檔案擁有者的使用者群體(group)-c : 若該檔案擁有者確實已經更改﹐才顯示其更改動作-f : 若該檔案擁有者無法被更改也不要顯示錯誤訊息-h : 只對於連結(link)進行變更﹐而非該 link 真正指向的檔案-v : 顯示擁有者變更的詳細資料-R : 對目前目錄下的所有檔案與子目錄進行相同的擁有者變更(即以遞迴的方式逐個變更) --help : 顯示輔助說明--version : 顯示版本

範例:

將檔案file1.txt 的擁有者設為users 群體的使用者jessie :

chown jessie:users file1.txt

將目前目錄下的所有檔案與子目錄的擁有者皆設為users 群體的使用者lamport :

chmod -R lamport:users *

名稱:chfn

使用許可權:所有使用者

用法:shell>> chfn

說明:提供使用者更改個人資訊,用於finger and mail username

範例:

shell>> chfn

Changing finger information for user

Password: [del]

Name[]:Johnney Huang ### 提供finger 時的資料

Office[]:NCCU

Office Phone[]: [del]

Home Phone[]: [del]

名稱:chsh

使用許可權:所有使用者

用法:shell>> chsh

說明:更改使用者shell 設定

範例:

shell>> chsh

Changing fihanging shell for user1

Password: [del]

New shell [/bin/tcsh]: ### [是目前使用的shell]

[del]

shell>> chsh -l ### 展示/etc/shells 檔案內容

/bin/bash

/bin/sh

/bin/ash

/bin/bsh

/bin/tcsh

/bin/csh

名稱: finger

使用許可權: 所有使用者

使用方式: finger [options] user[@address]

說明:finger 可以讓使用者查詢一些其它使用者的資料。會列出來的資料有:

1. Login Name

2. User Name

3. Home directory

4. Shell

5. Login status

6. mail status

7. .plan

8. .project

9. .forward

其中.plan ,.project 和.forward 就是使用者在他的Home Directory 裡的.plan , .project 和. forward 等檔案裡的資料。如果沒有就沒有。finger 指令並不限定於在同一伺服器上查詢,也可以尋找某一個遠端伺服器上的使用者。只要給一個像是E-mail address 一般的地址即可。

引數:

-l 多行顯示。

-s 單行顯示。這個選項只顯示登入名稱,真實姓名,終端機名稱,閒置時間,登入時間,辦公室號碼及電話號碼。如果所查詢的使用者是遠端伺服器的使用者,這個選項無效。

範例:下列指令可以查詢本機管理員的資料:

finger root

其結果如下:

Login: root Name: root Directory: /root Shell: /bin/bash Never logged in. No mail. No Plan.

名稱:last

使用許可權:所有使用者

使用方式:shell>> last [options]

說明:顯示系統開機以來獲是從每月初登入者的訊息

引數:

-R 省略hostname 的欄位

-num 展示前num 個

username 展示username 的登入訊息

tty 限制登入訊息包含終端機代號

範例:

shell>> last -R -2

johnney pts/1 Mon Aug 14 20:42 still logged in

johnney pts/0 Mon Aug 14 19:59 still logged in

wtmp begins Tue Aug 1 09:01:10 2000 ### /var/log/wtmp

shell>> last -2 minery

minery pts/0 140.119.217.115 Mon Aug 14 18:37 - 18:40 (00:03)

minery pts/0 140.119.217.115 Mon Aug 14 17:22 - 17:24 (00:02)

wtmp begins Tue Aug 1 09:01:10 2000

名稱: who

使用權線: 所有使用者都可使用

使用方式: who - [husfV] [user]

說明: 顯示系統中有那些使用者正在上面,顯示的資料包含了使用者ID,使用的終端機,從那邊連上來的,上線時間,呆滯時間,CPU 使用量,動作等等。

引數:

-h : 不要顯示標題列-u : 不要顯示使用者的動作/工作-s : 使用簡短的格式來顯示-f : 不要顯示使用者的上線位置-V : 顯示程式版本

名稱:/etc/aliases 使用許可權:系統管理者使用方式: 請用newaliases 更新資料庫說明:

sendmail 會使用一個在/etc/aliases 中的檔案做使用者名稱轉換的動作。當sendmail 收到一個要送給xxx 的信時,它會依據aliases檔的內容送給另一個使用者。這個功能可以創造一個只有在信件系統內才有效的使用者。例如mailing list 就會用到這個功能,在 mailinglist 中,我們可能會創造一個叫redlinux@link.ece.uci.edu 的mailinglist,但實際上並沒有一個叫redlinux 的使用者。實際aliases 檔的內容是將送給這個使用者的信都收給mailing list 處理程式負責分送的工作。

/etc/aliases 是一個文字模式的檔案,sendmail 需要一個二進位制元格式的/etc/aliases.db。newaliases 的功能傳是將/etc/aliases 轉換成一個sendmail 所能瞭解的資料庫。範例:

# newaliases

下面命令會做相同的事,

# sendmail -bi

相關命令: mail, mailq, newaliases, sendmail

名稱:mail

使用許可權:所有使用者

使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]

說明: mail 不僅只是一個指令﹐ mail 還是一個電子郵件程式﹐不過利用mail 來讀信的人應該很少吧﹗對於系統管理者來說mail 就很有用﹐因為管理者可以用mail 寫成script ﹐定期寄一些備忘錄提醒系統的使用者。

引數: i 忽略tty 的中斷訊號。(interrupt) I 強迫設成互動模式。(Interactive) v 列印出訊息﹐例如送信的地點﹑狀態等等。(verbose) n 不讀入mail.rc 設定檔。s 郵件標題。c cc 郵件地址。b bcc 郵件地址。

範例:

將信件送給一個或以上的電子郵件地址﹐由於沒有加入其它的選項﹐使用者必須輸入標題與信件的內容等。而user2 沒有主機位置﹐就會送給郵件伺服器的user2 使用者。

mail user1@email.address mail user1@email.address user2

將mail.txt 的內容寄給user2 同時cc 給user1 。如果將這一行指令設成cronjob 就可以定時將備忘錄寄給系統使用者。

mail -s 標題-c user1 user2 < mail.txt

名稱:cp

使用許可權:所有使用者

使用方式:

cp [options] source dest cp [options] source... directory

說明:將一個檔案複製至另一檔案,或將數個檔案複製至另一目錄。

引數:

-a 儘可能將檔案狀態、許可權等資料都照原狀予以複製。-r 若source 中含有目錄名,則將目錄下之檔案亦皆依序複製至目的地。-f 若目的地已經有相同檔名的檔案存在,則在複製前先予以刪除再行復制。

指令:mesg

使用許可權: 所有使用者

使用方式: mesg [y|n]

說明: 決定是否允許其它人傳訊息到自己的終端機介面

引數:

y : 允許訊息傳到終端機介面上。n : 不允許訊息傳到終端機介面上。如果沒有設定,則訊息傳遞與否則由終端機介面目前狀態而定。

例子:

改變目前訊息設定,改成不允許訊息傳到終端機介面上:

mesg n

與mesg 相關的指令有: talk,write,wall。

名稱:/etc/aliases 使用許可權:系統管理者使用方式: newaliases 說明:

sendmail 會使用一個在/etc/aliases 中的檔案做使用者名稱轉換的動作。當sendmail 收到一個要送給xxx 的信時,它會依據aliases檔的內容送給另一個使用者。這個功能可以創造一個只有在信件系統內才有效的使用者。例如mailing list 就會用到這個功能,在 mailinglist 中,我們可能會創造一個叫redlinux@link.ece.uci.edu 的mailinglist,但實際上並沒有一個叫redlinux 的使用者。實際aliases 檔的內容是將送給這個使用者的信都收給mailing list 處理程式負責分送的工作。

/etc/aliases 是一個文字模式的檔案,sendmail 需要一個二進位制元格式的/etc/aliases.db。newaliases 的功能傳是將/etc/aliases 轉換成一個sendmail 所能瞭解的資料庫。

引數:沒有任何引數。範例:

# newaliases

下面命令會做相同的事,

# sendmail -bi

相關命令: mail, mailq, newaliases, sendmail

名稱: talk

使用許可權: 所有使用者

使用方式:

talk person [ttyname]

說明: 與其它使用者對談

引數:

person : 預備對談的使用者帳號,如果該使用者在其它機器上,則可輸入person@machine.name ttyname : 如果使用者同時有兩個以上的tty 聯機,可以自行選擇合適的tty 傳訊息

例子.1 :

與現在機器上的使用者Rollaend對談,此時Rollaend 只有一個聯機:

talk Rollaend

接下來就是等Rollaend響應,若Rollaend接受,則Rollaend輸入`talk jzlee`即可開始對談,結束請按ctrl+c

例子.2 :與linuxfab.cx上的使用者Rollaend對談,使用pts/2來對談:

talk Rollaend@linuxfab.cx pts/2

接下來就是等Rollaend響應,若Rollaend接受,則Rollaend輸入`talk jzlee@jzlee.home`即可開始對談,結束請按ctrl+c

注意: 若螢幕的字會出現不正常的字元,試著按ctrl+l 更新螢幕畫面。

名稱: wall

使用許可權: 所有使用者

使用方式:

wall [ message ]

使用說明:

wall 會將訊息傳給每一個mesg 設定為yes 的上線使用者。當使用終端機介面做為標準傳入時, 訊息結束時需加上EOF (通常用Ctrl+D)。

例子:

傳訊息"hi" 給每一個使用者:

wall hi

名稱: write

使用許可權: 所有使用者

使用方式:

write user [ttyname]

說明: 傳訊息給其它使用者

引數:

user : 預備傳訊息的使用者帳號ttyname : 如果使用者同時有兩個以上的tty 聯機,可以自行選擇合適的tty 傳訊息

例子.1 :

傳訊息給Rollaend,此時Rollaend 只有一個聯機:

write Rollaend

接下來就是將訊息打上去,結束請按ctrl+c

例子.2 :傳訊息給Rollaend,Rollaend 的聯機有pts/2,pts/3 :

write Rollaend pts/2

接下來就是將訊息打上去,結束請按ctrl+c

注意: 若對方設定mesg n,則此時訊席將無法傳給對方,

名稱:nice

使用許可權:所有使用者

使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command [arg...]]

說明:以更改過的優先序來執行程式, 如果未指定程式, 則會印出目前的排程優先序, 內定的adjustment 為10, 範圍為-20 (最高優先序) 到19 (最低優先序)

引數:

-n adjustment, -adjustment, --adjustment=adjustment 皆為將該原有優先序的增加adjustment --help 顯示求助訊息--version 顯示版本資訊

範例:

將ls 的優先序加1 並執行:

nice -n 1 ls

將ls 的優先序加10 並執行:

nice ls 將k的優先次序加10並執行

注意: 優先序(priority) 為作業系統用來決定CPU 分配的引數,Linux 使用『回合制(round-robin)』的演算法來做CPU 排程,優先序越高,所可能獲得的CPU時間就越多。

名稱:kill

使用許可權:所有使用者

使用方式:

kill [ -s signal | -p ] [ -a ] pid ... kill -l [ signal ]

說明:kill 送出一個特定的訊號(signal) 給行程id 為pid 的行程根據該訊號而做特定的動作, 若沒有指定, 預設是送出終止(TERM) 的訊號

引數:

-s (signal) : 其中可用的訊號有HUP (1), KILL (9), TERM (15), 分別代表著重跑, 砍掉, 結束; 詳細的訊號可以用kill -l -p : 印出pid , 並不送出訊號-l (signal) : 列出所有可用的訊號名稱

範例:

將pid 為323 的行程砍掉(kill) :

kill -9 323

將pid 為456 的行程重跑(restart) :

kill -HUP 456

名稱:ps 使用許可權:所有使用者使用方式:ps [options] [--help] 說明:顯示瞬間行程(process) 的動態引數: ps 的引數非常多, 在此僅列出幾個常用的引數並大略介紹含義-A 列出所有的行程-w 顯示加寬可以顯示較多的資訊-au 顯示較詳細的資訊-aux 顯示所有包含其它使用者的行程

au(x)輸出格式

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

USER: 行程擁有者

PID:pid

%CPU:佔用的cpu使用率

VSZ:佔用的記憶體使用率

RSS:佔用的虛擬記憶體大小

TTY:佔用的記憶體大小

STAT:該行程的狀態

D:不可中斷的靜止

R:正在執行中

S:靜止狀態

T:暫停執行

Z:不存在但暫時無法消除

W:沒有足夠的記憶體分頁可分配

N:低優先序的行程

L:有記憶體分頁分配並鎖在記憶體內

START:行程開始時間

COMMAND:所執行的指令。

名稱:cut

使用許可權:所有使用者

用法:cut -cnum1-num2 filename

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

範例:

shell>> cat example

test2

this is test1

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

test2

this i

名稱:pstree 使用許可權:所有使用者使用方式: pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user] pstree -V 說明:將所有行程以樹狀圖顯示, 樹狀圖將會以pid (如果有指定) 或是以init 這個基本行程為根(root) ,如果有指定使用者id , 則樹狀圖會只顯示該使用者所擁有的行程引數: -a 顯示該行程的完整指令及引數, 如果是被記憶體置換出去的行程則會加上括號-c 如果有重複的行程名, 則分開列出(預設值是會在前面加上* 範例:

pstree init-+-amd |-apmd

|-atd |-httpd---10*[httpd] %pstree -p init(1)-+-amd(447) |-apmd(105) |-atd(339) %pstree -c init-+-amd |-apmd |-atd |-httpd-+-httpd | |-httpd | |-httpd | |-httpd ....

名稱:skill

使用許可權:所有使用者

使用方式: skill [signal to send] [options] 選擇程式的規則

說明:

送個訊號給正在執行的程式,預設的訊息為TERM (中斷) , 較常使用的訊息為HUP , INT , KILL , STOP , CONT ,和0

訊息有三種寫法:分別為-9 , -SIGKILL , -KILL , 可以使用-l 或-L 已列出可使用的訊息。

一般引數:

-f 快速模式/尚未完成

-i 互動模式/ 每個動作將要被確認

-v 詳細輸出/ 列出所選擇程式的資訊

-w 智慧警告訊息/ 尚未完成

-n 沒有動作/ 顯示程式代號

引數:選擇程式的規則可以是, 終端機代號,使用者名稱,程式代號,命令名稱。

-t 終端機代號( tty 或pty

-u 使用者名稱

-p 程式代號( pid

-c 命令名稱可使用的訊號:

以下列出已知的訊號名稱,訊號代號,功能。

名稱(代號) 功能/ 描述

ALRM 14 離開

HUP 1 離開

INT 2 離開

KILL 9 離開/ 強迫關閉

PIPE 13 離開

POLL 離開

PROF 離開

TERM 15 離開

USR1 離開

USR2 離開

VTALRM 離開

STKFLT 離開/ 只適用於i386, m68k, arm 和ppc 硬體

UNUSED 離開/ 只適用於i386, m68k, arm 和ppc 硬體

TSTP 停止/產生與內容相關的行為

TTIN 停止/產生與內容相關的行為

TTOU 停止/產生與內容相關的行為

STOP 停止/強迫關閉

CONT 從新啟用/如果在停止狀態則從新啟用,否則忽略

PWR 忽略/在某些系統中會離開

WINCH 忽略

CHLD 忽略

ABRT 6 核心

FPE 8 核心

ILL 4 核心

QUIT 3 核心

SEGV 11 核心

TRAP 5 核心

SYS 核心/或許尚未實作

EMT 核心/或許尚未實作

BUS 核心/核心失敗

XCPU 核心/核心失敗

XFSZ 核心/核心失敗

範例:

停止所有在PTY 裝置上的程式

skill -KILL -v pts/*

停止三個使用者user1 , user2 , user3

skill -STOP user1 user2 user3

其它相關的命令: kill

名稱:renice

使用許可權:所有使用者

使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]

說明:重新指定一個或多個行程(Process)的優先序(一個或多個將根據所下的引數而定)

引數:

-p pid 重新指定行程的id 為pid 的行程的優先序-g pgrp 重新指定行程群組(process group)的id 為pgrp 的行程(一個或多個) 的優先序-u user 重新指定行程擁有者為user 的行程的優先序

範例:

將行程id 為987 及32 的行程與行程擁有者為daemon 及root 的優先序號碼加1 :

renice +1 987 -u daemon root -p 32

注意: 每一個行程(Process)都有一個唯一的(unique) id。

名稱:top

使用許可權:所有使用者

使用方式:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]

說明:實時顯示process 的動態

引數:

d : 改變顯示的更新速度,或是在交談式指令列( interactive command)按s q : 沒有任何延遲的顯示速度,如果使用者是有 superuser 的許可權,則top 將會以最高的優先序執行c : 切換顯示模式,共有兩種模式,一是隻顯示執行檔的名稱,另一種是顯示完整的路徑與名稱S : 累積模式,會將己完成或消失的子行程( dead child process 的CPU time 累積起來s : 安全模式,將交談式指令取消, 避免潛在的危機i : 不顯示任何閒置(idle) 或無用(zombie) 的行程n : 更新的次數,完成後將會退出top b : 批次檔案模式,搭配"n" 引數一起使用,可以用來將top 的結果輸出到檔案內

範例:

顯示更新十次後退出;

top -n 10

使用者將不能利用交談式指令來對行程下命令:

top -s

將更新顯示二次的結果輸入到名稱為top.log 的檔案裡:

top -n 2 -b < top.log

指令expr

### 字串長度

shell>> expr length "this is a test"

14

### 數字商數

shell>> expr 14 % 9

5

### 從位置處抓取字串

shell>> expr substr "this is a test" 3 5

is is

### 數字符串only the first character

shell>> expr index "testforthegame" e

2

### 字串真實重現

shell>> expr quote thisisatestformela

thisisatestformela

指令tr

### 1.比方說要把目錄下所有的大寫檔名換為小寫檔名?

似乎有很多方式,"tr"是其中一種:

#!/bin/sh

dir="/tmp/testdir";

files=`find $dir -type f`;

for i in $files

do

dir_name=`dirname $i`;

ori_filename=`basename $i`

new_filename=`echo $ori_filename | tr [:upper:] [:lower:]` > /dev/null;

#echo $new_filename;

mv $dir_name/$ori_filename $dir_name/$new_filename

done

### 2.自己試驗中...lowercase to uppercase

tr abcdef...[del] ABCDE...[del]

tr a-z A-Z

tr '[:lower:]' '[:upper:]'

shell>> echo "this is a test" | tr a-z A-Z > www

shell>> cat www

THIS IS A TEST

### 3.去掉不想要的字串

shell>> tr -d this ### 去掉有關t.e.s.t

this

man

man

test

e

### 4.取代字串

shell>> tr -s "this" "TEST"

this

TEST

th

TE

名稱: reset, tset

使用方法: tset [-IQqrs] [-] [-e ch] [-i ch] [-k ch] [-m mapping] [terminal]

使用說明:

reset 其實和tset 是一同個命令,它的用途是設定終端機的狀態。一般而言,這個命令會自動的從環境變數、命令列或是其它的組態檔案決定目前終端機的型態。如果指定型態是'?' 的話,這個程式會要求使用者輸入終端機的型別。

由於這個程式會將終端機設回原始的狀態,除了在login 時使用外,當系統終端機因為程式不正常執行而進入一些奇怪的狀態時,你也可以用它來重設終端機 o 例如不小心把二進位制元檔案用cat 指令進到終端機,常會有終端機不再響應鍵盤輸入,或是響應一些奇怪字元的問題。此時就可以用reset 將終端機回覆至原始狀態。選項說明:

-p

將終端機類別顯示在螢幕上,但不做設定的動作。這個命令可以用來取得目前終端機的類別。

-e ch

將erase 字元設成ch

-i ch

將中斷字元設成ch

-k ch

將刪除一行的字元設成ch

-I

不要做設定的動作,如果沒有使用選項-Q 的話,erase、中斷及刪除字元的目前值依然會送到螢幕上。

-Q

不要顯示erase、中斷及刪除字元的值到螢幕上。

-r

將終端機類別印在螢幕上。

-s

將設定TERM 用的命令用字串的型式送到終端機中,通常在.login 或.profile 中用

範例:

讓使用者輸入一個終端機型別並將終端機設到該型別的預設狀態。

# reset ?

將erase 字元設定control-h

# reset -e ^B

將設定用的字串顯示在螢幕上

# reset -s Erase is control-B (^B). Kill is control-U (^U). Interrupt is control-C (^C). TERM=xterm;

名稱: find 用法: find 使用說明:

將檔案系統內符合expression 的檔案列出來。你可以指要檔案的名稱、類別、時間、大小、許可權等不同資訊的組合,只有完全相符的才會被列出來。

find 根據下列規則判斷path 和expression,在命令列上第一個- ( , ! 之前的部份為path,之後的是expression。如果path 是空字串則使用目前路徑,如果expression 是空字串則使用-print 為預設expression。

expression 中可使用的選項有二三十個之多,在此只介紹最常用的部份。

-mount, -xdev : 只檢查和指定目錄在同一個檔案系統下的檔案,避免列出其它檔案系統中的檔案-amin n : 在過去n 分鐘內被讀取過

-anewer file : 比檔案file 更晚被讀取過的檔案-atime n : 在過去n 天過讀取過的檔案-cmin n : 在過去n 分鐘內被修改過- cnewer file :比檔案file 更新的檔案-ctime n : 在過去n 天過修改過的檔案-empty : 空的檔案- gid n or -group name : gid 是n 或是group 名稱是name -ipath p, -path p : 路徑名稱符合 p 的檔案,ipath 會忽略大小寫-name name, -iname name : 檔名稱符合name 的檔案。iname 會忽略大小寫- size n : 檔案大小是n 單位,b 代表512 位元組的區塊,c 表示字元數,k 表示kilo bytes,w 是二個位元組。- type c : 檔案型別是c 的檔案。

o d: 目錄

o c: 字型裝置檔案

o b: 區塊裝置檔案

o p: 具名貯列

o f: 一般檔案

o l: 符號連結

o s: socket

-pid n : process id 是n 的檔案

你可以使用( 將表示式分隔,並使用下列運算。

exp1 -and exp2

! expr

-not expr

exp1 -or exp2

exp1, exp2

範例: 將目前目錄及其子目錄下所有延伸檔名是c 的檔案列出來。

# find . -name "*.c"

將目前目錄其其下子目錄中所有一般檔案列出

# find . -ftype f

將目前目錄及其子目錄下所有最近20 分鐘內更新過的檔案列出

# find . -ctime -20

名稱:compress

使用許可權:所有使用者

使用方式:compress [-dfvcV] [-b maxbits] [file ...]

說明: compress 是一個相當古老的unix 檔案壓縮指令﹐壓縮後的檔案會加上一個.Z 延伸檔名以區別

未壓縮的檔案﹐壓縮後的檔案可以以uncompress 解壓。若要將數個檔案壓成一個壓縮檔﹐必須先將檔案tar 起來再壓縮。由於gzip 可以產生更理想的壓縮比例﹐一般人多已改用gzip 為檔案壓縮工具。

引數: c 輸出結果至標準輸出裝置(一般指熒幕) f 強迫寫入檔案﹐若目的檔已經存在﹐則會被覆蓋(force) v 將程式執行的訊息印在熒幕上 (verbose) b 設定共同字串數的上限﹐以位計算﹐可以設定的值為9 至16 bits 。由於值越大﹐能使用的共同字串就越多﹐壓縮比例就越大﹐所以一般使用預設值16 bits (bits) d 將壓縮檔解壓縮V 列出版本訊息

範例:

將source.dat 壓縮成source.dat.Z ﹐若source.dat.Z 已經存在﹐內容則會被壓縮檔覆蓋。

compress -f source.dat

將source.dat 壓縮成source.dat.Z ﹐並列印出壓縮比例。-v 與-f 可以一起使用

compress -vf source.dat

將壓縮後的資料輸出後再匯入target.dat.Z 可以改變壓縮檔名。

compress -c source.dat > target.dat.Z

-b 的值越大﹐壓縮比例就越大﹐範圍是9-16 ﹐預設值是16 。

compress -b 12 source.dat

將source.dat.Z 解壓成source.dat ﹐若檔案已經存在﹐使用者按y 以確定覆蓋檔案﹐若使用-df 程式則會自動覆蓋檔案。由於系統會自動加入.Z 為延伸檔名﹐所以source.dat 會自動當作source.dat.Z 處理。

compress -d source.dat

Name: cpio - copy file archives in and out cpio -i [ bBcdfkmPrsStuvV6 ] [ -C bufsize ] [ -E file ] [ -H header ] [ -I file [ -M message ] ] [ -R id ] [ pattern ... ] cpio -o [ aABcLPvV ] [ -C bufsize ] [ -H header ] [ -O file [ -M message ] ] cpio -p [ adlLmPuvV ] [ -R id ] directory Description: An ironic term that refers to the GNU General Public License (the GPL), signifying a radical departure from standard copyright. Back-up utility, similar to tar. Option:

-i (copy in) cpio -i extracts files from the standard input. -o (copy out) cpio -o reads the standard input to obtain a list of path names and copies those files onto the standard output. -p (pass) cpio -p reads the standard input to obtain a list of path names of files. The following options can be appended in any sequence to the -o, -i, or -p options: -a Reset access times of input files after they have been copied. Access times are not reset for linked files when cpio -pla is specified (mutually exclusive with -m). -A Append files to an archive. The -A option requires the -O option. Valid only with archives that are files, or that are on floppy diskettes or hard disk partitions. -b Reverse the order of the bytes within each word. (Use only with the -i option.) -B Block input/output 5120 bytes to the record. The default buffer size is 512 bytes when this and the -C options are not used. -B does not apply to the pass option; -B is meaningful only with data directed to or from a character special device, for example, /dev/rmt/0m. -c Read or write header information in ASCII character form for portability. There are no UID or GID restrictions associated with this header format. Use this option between SVR4based machines, or the -H odc option between unknown machines. The -c option implies the use of expanded device numbers, which are only supported on SVR4-based systems. When transferring files between Solaris 1.x or Interactive UNIX and Solaris 2.x use -H odc.

gzip [-acdfhlLnNqrtvV][-S][- ][--best][--fast][檔案] 常用的就-d 解壓縮與-N -n 壓縮檔案-r則代表「recursive」將指定目錄底下的所有檔案和子目錄一併處理

選項

-a --ascii ASCII文字模式

-c --stdout --to-stdout 壓縮後檔案輸出至標準輸出,不更動原始檔。如果有多個input file的時候,會把所有檔案連線後再送出。

-d --decompress --uncompress 解壓縮

-f --force 強行壓縮或解壓縮

-h --help 顯示online Help

-l --list 對每個被壓縮的檔案,列出以下訊息: compressed size: 壓縮後的大小uncompressed size: 未壓縮前的大小ratio: 壓縮比率(0.0% if unknown)uncompressed_name: 未壓縮前的檔名稱

-L 顯示版本版權訊息

-n 壓縮檔案時不儲存原來檔案的名稱與時間

-N 相對於小寫,儲存原來檔案的名稱與時間

-q 不顯示警告訊息

-r 指定目錄下所有的檔案和子目錄一併處理

-S 更改壓縮字尾字串

-t 測試壓縮檔

-V 顯示指令執行的過程

-v 版本訊息

-數字壓縮比例1~9之間的數值

Rpm: Description: Command used to manage all of the rpm software packages on a Linux system.

Option:

 -i Install a package

 -q To see if a package is installed on the system.

 -U Update the package

 -e All information about a package is completely erased.

 -qa List all the packages installed on the system.

 -qi List a description of a package

 -ql List all the files in a package

 -qf Show which package contains a certain file

Name: rpm2cpio - Converts Red Hat Packge (RPM) to cpio archive rpm2cpio [filename] Description: rpm2cpio converts the .rpm file specified as it's sole argument to a cpio archive on standard out. If no argument is given, a rpm stream is read from standard in. rpm2cpio rpm-1.1-1.i386.rpm rpm2cpio < glint-1.0-1.i386.rpm

名稱:uudecode

使用許可權:所有使用者

使用方式:uuencode [-hv] [file1 ...]

說明:

uudecode 將uuencode 編碼後的檔案還原﹐ uudecode 只會將begin 與end 標記之間的編碼資料還原﹐程式會跳過標記以外的資料。

begin 644 file1.txt 15&AI這裡的文字不會被譯碼

引數: h 列出指令使用格式(help) v 列出版本訊息

範例:

將file.uud 還原﹐而還原後的檔名儲存在file.uud 檔中。

uuencode file.uud

可以一起還原好幾個檔案。

uuencode file1.uud file2.uud

名稱:uuencode

使用許可權:所有使用者

使用方式:uuencode [-hv] [sourcefile] targetfile

說明:

早期在許多unix 系統的傳送協議只能傳送七位字元﹐並不支援二進位制檔案﹐像中文文字檔案就有用到八位﹐所以無法完整地送到另一架機器上。uuencode 指令﹐可以將二進位制檔案轉換成七

位的檔案﹐傳送到另一架機器上再以uudecode 還原。最常見的是用在以電子郵件傳送二進位制檔案。uuencode 編碼後的資料都以begin 開始﹐以end 作為結束。

begin 644 decode.dat

(內容編碼)

end

begin 後的644 是unix 檔案的存取許可權程式碼。而decode.dat 則是還原後的檔名。

引數: h 列出指令使用格式(help) v 列出版本訊息(version)

範例:

將source.dat 編碼後存成file.uud 檔。由於uuencode 會將編碼後的資料在熒幕上列出﹐所以必須將資料匯入file.uud 中﹐而target.dat 是file.uud 還原後的檔名字﹐而不是編碼後的檔案。

uuencode source.dat target.dat > file.uud

執行指令後﹐由標準輸入裝置讀入資料﹐簡單地說是由鍵盤輸入後在熒幕顯示的資料﹐按Crtl + d 鍵後就會被編碼﹐輸出至file.uud 中。由於程式是以行為處理單位﹐若無法跳出程式﹐請多按幾次Ctrl + d 直到程式結束為止。

uuencode target.dat > file.uud

類似上一個指令﹐不過使用一個匯入的技巧﹐將source.dat 壓縮後的資料傳送給uuencode 處理之後﹐存成file.uud 檔。file.uud 檔還原後就是source.dat.Z 檔。

compress -c source.dat | uuencode source.dat.Z > file.uud

顯示版本訊息後﹐結束執行程式。

uuencode -v

名稱: lpd

使用許可權: 所有使用者

使用方式:lpd [-l] [#port] lpd 是一個常駐的印表機管理程式,它會根據/etc/printcap 的內容來管理本地或遠端的印表機。/etc/printcap 中定義的每一個印表機必須在/var/lpd 中有一個相對應的目錄,目錄中以cf 開頭的檔案表示一個等待送到適當裝置的印表工作。這個檔案通常是由lpr 所產生。

lpr 和lpd 組成了一個可以離線工作的系統,當你使用lpr 時,印表機不需要能立即可用,甚至不用存在。lpd 會自動監視印表機的狀況,當印表機上線後,便立即將檔案送交處理。這個得所有的應用程式不必等待印表機完成前一工作。

引數:

-l: 將一些除錯訊息顯示在標準輸出上。

#port: 一般而言,lpd 會使用getservbyname 取得適當的TCP/IP port,你可以使用這個引數強迫lpd 使用指定的port。

範例: 這個程式通常是由/etc/rc.d 中的程式在系統啟始階段執行。

名稱lpq

lpq -- 顯示列表機貯列中未完成的工作

用法

lpq [l] [P] [user]

說明

lpq 會顯示由lpd 所管理的列表機貯列中未完成的專案。

範例

範例1. 顯示所有在lp 列表機貯列中的工作

# lpq -PlpRank Owner Job Files Total Size1st root 238 (standard input) 1428646 bytes

相關函式

lpr,lpc,lpd

名稱: lpr

使用許可權: 所有使用者

使用方式:lpr [ -P printer ] 將檔案或是由標準輸入送進來的資料送到印表機貯列之中,印表機管理程式lpd 會在稍後將這個檔案送給適當的程式或裝置處理。lpr 可以用來將料資送給本地或是遠端的主機來處理。

引數:

-p Printer: 將資料送至指定的印表機Printer,預設值為lp。

範例: 將 和kkk.c 送到印表機lp。

lpr -Plp kkk.c

名稱lprm

lprm -- 將一個工作由印表機貯列中移除

用法

/usr/bin/lprm [P] [file...]

說明

尚未完成的印表機工作會被放在印表機貯列之中,這個命令可用來將常未送到印表機的工作取消。由於每一個印表機都有一個獨立的貯列,你可以用-P 這個命令設定想要作用的印列機。如果沒有設定的話,會使用系統預設的印表機。

這個命令會檢查使用者是否有足夠的許可權刪除指定的檔案,一般而言,只有檔案的擁有者或是系統管理員才有這個許可權。

範例

將印表機hpprinter 中的第1123 號工作移除

lprm -Phpprinter 1123

將第1011 號工作由預設印表機中移除

lprm 1011

§ 1.8 less

名稱:less

使用許可權:所有使用者

使用方式

less [Option] filename

說明:、

less的作用與more十分相似,都可以用來瀏覽文字檔案的內容,不同的是less允許使用者往回捲動,以瀏覽已經看過的部分,同時因為less並未在一開始就讀入整個檔案,因此在遇到大型檔案的開啟時,會比一般的文書編輯器(如vi)來的快速

名稱: fdformat

使用許可權: 所有使用者

使用方式:fdformat [-n] device

使用說明: 對指定的軟盤機裝置進行低階格式化。使用這個指令對軟盤格式化的時候,最好指定像是下面的裝置:

/dev/fd0d360 磁碟驅動器A: ,磁碟為360KB 磁碟

/dev/fd0h1440 磁碟驅動器A: ,磁碟為1.4MB 磁碟

/dev/fd1h1200 磁碟驅動器B: ,磁碟為1.2MB 磁碟

如果使用像是/dev/fd0 之類的裝置,如果裡面的磁碟不是標準容量,格式化可能會失敗。在這種情況之下,使用者可以用setfdprm 指令先行指定必要引數。

引數:

-n 關閉確認功能。這個選項會關閉格式化之後的確認步驟。

範例:

fdformat -n /dev/fd0h1440

將磁碟驅動器A 的磁碟格式化成1.4MB 的磁碟。並且省略確認的步驟。

名稱: mkdosfs

使用許可權: 所有使用者

使用方式: mkdosfs [ -c | -l filename ]

[ -f number_of_FATs ]

[ -F FAT_size ]

[ -i volume_id ]

[ -m message_file ]

[ -n volume_name ]

[ -r root_dir_entry ]

[ -s sector_per_cluster ]

[ -v ]

device

[ block_count ]

說明: 建立DOS 檔案系統。device 指你想要建立DOS 檔案系統的裝置代號。像是/dev/hda1 等等。block_count 則是你希望配置的區塊數。如果block_count 沒有指定則系統會自動替你計算符合該裝置大小的區塊數。

引數:

-c 建立檔案系統之前先檢查是否有壞軌。

-l 從得定的檔案中讀取壞軌記錄。

-f 指定檔案配置表(FAT , File Allocation Table)的數量。預設值為2 。目前Linux 的FAT 檔案系統不支援超過2 個FAT 表。通常這個不需要改。

-F 指定FAT 表的大小,通常是12 或是16 個位元組。12 位元組通常用於磁碟片,16 位元組用於一般硬碟的分割區,也就是所謂的FAT16 格式。這個值通常系統會自己選定適當的值。在磁碟片上用FAT16 通常不會發生作用,反之在硬碟上用FAT12 亦然。

-i 指定Volume ID。一般是一個4 個位元組的數字,像是2e203a47 。如果不給系統會自己產生。

-m 當使用者試圖用這片磁碟或是分割區開機,而上面沒有作業系統時,系統會給使用者一段警告訊息。這個引數就是用來變更這個訊息的。你可以先用檔案編輯好,然後用這個引數指定,或是用-m - 這樣系統會要求你直接輸入這段文字。要特別注意的是,檔案裡的字串長度不要超過418 個字,包括展開的跳欄符號(TAB)和換行符號(換行符號在DOS 底下算兩個字元!)

-n 指定Volume Name,就是磁碟卷標。如同在DOS 底下的format 指令一樣,給不給都可以。沒有預設值。

-r 指定根目錄底下的最大檔案數。這裡所謂的檔案數包括目錄。預設值是在軟盤上是112 或是224 ,在硬碟上是512。沒事不要改這個數字。

-s 每一個磁叢(cluster)的扇區數。必須是2 的次方數。不過除非你知道你在作什麼,這個值不要亂給。

-v 提供額外的訊息

範例: mkdosfs -n Tester /dev/fd0 將A 槽裡的磁碟片格式化為DOS 格式,並將卷標設為Tester

經驗技巧

名稱: mformat

使用許可權: 所有使用者

使用方式:

mformat [-t cylinders] [-h heads] [-s sectors] [-l volume_label] [-F] [-I fsVer-sion] [-S sizecode] [-2 sectors_on_track_0] [-M software_sector_size] [-a] [-X] [-C] [-H hidden_sectors] [-r root_sectors] [-B boot_sector] [-0 rate_on_track_0] [-A rate_on_other_tracks] [-1] [-k] drive:

在已經做過低階格式化的磁碟上建立DOS 檔案系統。如果在編譯mtools 的時候把USE_2M 的引數開啟,部分與2M 格式相關的引數就會發生作用。否則這些引數(像是S,2,1,M)不會發生作用。

引數:

-t 磁柱(synlider)數

-h 磁頭(head)數

-s 每一磁軌的扇區數

-l 卷標

-F 將磁碟格式化為FAT32 格式,不過這個引數還在實驗中。

-I 設定FAT32 中的版本號。這當然也還在實驗中。

-S 扇區大小程式碼,計算方式為sector = 2^(大小程式碼+7)

-c 磁叢(cluster)的扇區數。如果所給定的數字會導致磁叢數超過FAT 表的限制,mformat 會自動放大扇區數。

-s

-M 軟體扇區大小。這個數字就是系統回報的扇區大小。通常是和實際的大小相同。

-a 如果加上這個引數,mformat 會產生一組Atari 系統的序號給這塊軟盤。

-X 將軟盤格式化成XDF 格式。使用前必須先用xdfcopy 指令對軟盤作低階格式化的動作。

-C 產生一個可以安裝MS-DOS 檔案系統的磁碟影像檔案(disk image)。當然對一個實體磁碟驅動器下這個引數是沒有意義的。

-H 隱藏扇區的數目。這通常適用在格式化硬碟的分割區時,因為通常一個分割區的前面還有分割表。這個引數未經測試,能不用就不用。

-n 磁碟序號

-r 根目錄的大小,單位是扇區數。這個引數只對FAT12 和FAT16 有效。

-B 使用所指定的檔案或是裝置的開機扇區做為這片磁碟或分割區的開機扇區。當然當中的硬體引數會隨之更動。

-k 儘量保持原有的開機扇區。

-0 第0 軌的資料傳輸率

-A 第0 軌以外的資料傳輸率

-2 使用2m 格式

-1 不使用2m 格式

範例:

mformat a:

這樣會用預設值把a: (就是/dev/fd0)裡的磁碟片格式化。

名稱: MAKEDEV 使用方法: MAKEDEV -V MAKEDEV [ -n ] [ -v ] update MAKEDEV [ -n ] [ -v ] [ -d ] device ... 使用說明: 這個命令可以用法新增/dev/ 下的裝置檔案,多數distribution 已經將所有的檔案都產生,故一般而言不太會需要用到這個命令。

名稱: dumpkeys 使用許可權: 所有使用者使用方式:

dumpkeys [ -hilfn1 -Sshape -ccharset --help --short-info

--long-info --numeric --full-table --separate-lines

--shape=shape --funcs-only --keys-only --compose-only

--charset=charset ]

使用說明:

這個命令用來將鍵盤的對映表寫到標準輸出之中,輸出的格式可以被loadkeys 命令載入。而這個表格的功能在於將鍵盤硬體所產生的掃描碼(scan code),轉換成ASCII 或是任何的字串。

這是在Linux 上特有的指令,它允許你將鍵盤上的按?

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10144097/viewspace-934566/,如需轉載,請註明出處,否則將追究法律責任。

相關文章