Linux 指令大全(3)
名稱:/etc/aliases
使用權限:系統管理者
使用方式: 請用 newaliases 更新資料庫
說明:
sendmail 會使用一個在 /etc/aliases 中的檔案做使用者名稱轉換的動作。當 sendmail 收到一個要送給 xxx 的信時,它會依據 aliases檔的內容送給另一個使用者。這個功能可以創造一個只有在信件系統內才有效的使用者。例如 mailing list 就會用到這個功能,在 mailinglist 中,我們可能會創造一個叫 [email protected] 的 mailinglist,但實際上並沒有一個叫 redlinux 的使用者。實際 aliases 檔的內容是將送給這個使用者的信都收給 mailing list 處理程式負責分送的工作。
/etc/aliases 是一個文字模式的檔案,sendmail 需要一個二進位格式的 /etc/aliases.db。newaliases 的功能傳是將 /etc/aliases 轉換成一個 sendmail 所能了解的資料庫。范例:
# newaliases
下面命令會做相同的事,
# sendmail -bi
相關命令:
mail, mailq, newaliases, sendmail
” mail [返回]
名稱: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 [email protected]
mail [email protected] user2
將 mail.txt 的內容寄給 user2 同時 cc 給 user1 。如果將這一行指令設成 cronjob 就可以定時將備忘錄寄給系統使用者。
mail -s 標題 -c user1 user2 < mail.txt
指令:mesg
使用權限 : 所有使用者
使用方式 : mesg [y|n]
說明 : 決定是否允許其他人傳訊息到自己的終端機介面
把計 ?
y : 允許訊息傳到終端機介面上。
n : 不允許訊息傳到終端機介面上 。
如果沒有設定,則訊息傳遞與否則由終端機界面目前狀態而定。
例子 :
改變目前訊息設定,改成不允許訊息傳到終端機介面上 :
mesg n
與 mesg 相關的指令有: talk,write,wall。
名稱:/etc/aliases
使用權限:系統管理者
使用方式: newaliases
說明:
sendmail 會使用一個在 /etc/aliases 中的檔案做使用者名稱轉換的動作。當 sendmail 收到一個要送給 xxx 的信時,它會依據 aliases檔的內容送給另一個使用者。這個功能可以創造一個只有在信件系統內才有效的使用者。例如 mailing list 就會用到這個功能,在 mailinglist 中,我們可能會創造一個叫 [email protected] 的 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 : 預備對談的使用者帳號,如果該使用者在其他機器上,則可輸入 [email protected]
ttyname : 如果使用者同時有兩個以上的 tty 連線,可以自行選擇合適的 tty 傳訊息
例子.1 :
與現在機器上的使用者Rollaend對談,此時 Rollaend 只有一個連線 :
talk Rollaend
接下來就是等Rollaend回應,若Rollaend接受,則Rollaend輸入 `talk jzlee`即可開始對談,結束請按 ctrl+c
例子.2 :與linuxfab.cx上的使用者Rollaend對談,使用pts/2來對談 :
talk [email protected] pts/2
接下來就是等Rollaend回應,若Rollaend接受,則Rollaend輸入 `talk [email protected]`即可開始對談,結束請按 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,則此時訊席將無法傳給對方
名稱: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
名稱: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將 ls 的優先序加 10 並執行
注意 : 優先序 (priority) 為作業系統用來決定 CPU 分配的參數,Linux 使用『回合制(round-robin)』的演算法來做 CPU 排程,優先序越高,所可能獲得的 CPU時間就越多。
名稱: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 使用率
%MEM: 占用的記憶體使用率
VSZ: 占用的虛擬記憶體大小
RSS: 占用的記憶體大小
TTY: 終端的次要裝置號碼 (minor device number of tty)
STAT: 該行程的狀態:
D: 不可中斷的靜止 (通悸□□缜b進行 I/O 動作)
R: 正在執行中
S: 靜止狀態
T: 暫停執行
Z: 不存在但暫時無法消除
W: 沒有足夠的記憶體分頁可分配
<: 高優先序的行程
N: 低優先序的行程
L: 有記憶體分頁分配並鎖在記憶體內 (即時系統或捱A I/O)
START: 行程開始時間
TIME: 執行的時間
COMMAND:所執行的指令
范例:
ps
PID TTY TIME CMD
2791 ttyp0 00:00:00 tcsh
3092 ttyp0 00:00:00 ps
% ps -A
PID TTY TIME CMD
1 ? 00:00:03 init
2 ? 00:00:00 kflushd
3 ? 00:00:00 kpiod
4 ? 00:00:00 kswapd
5 ? 00:00:00 mdrecoveryd
.......
% ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
........
名稱: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
....
名稱: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
名稱: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
名稱: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
指令:clear
用途:清除螢幕用。
使用方法:在 console 上輸入 clear。
名稱: 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;
名稱: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
compress -d source.dat.Z
名稱: 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 [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。
范例:
將www.c 和 kkk.c 送到印表機 lp。
lpr -Plpwww.c kkk.c
名稱: lprm
-- 將一個工作由印表機貯列中移除 用法
/usr/bin/lprm [P] [file...]
說明
尚未完成的印表機工作會被放在印表機貯列之中,這個命令可用來將常未送到印表機的工作取消。由於每一個印表機都有一個獨立的貯列,你可以用 -P 這個命令設定想要作用的印列機。如果沒有設定的話,會使用系統預設的印表機。
這個命令會檢查使用者是否有足夠的權限刪除指定的檔案,一般而言,只有檔案的擁有者或是系統管理員才有這個權限。
范例
將印表機 hpprinter 中的第 1123 號工作移除
lprm -Phpprinter 1123
將第 1011 號工作由預設印表機中移除
lprm 1011
名稱: 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 的磁片。並且省略確認的步驟。
名稱: 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)裡的磁碟片格式化。
名稱: 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