亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 16306 | 回復(fù): 9
打印 上一主題 下一主題

solaris系統(tǒng)管理員手冊 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2006-08-07 16:28 |只看該作者 |倒序瀏覽
第1章、前言  
本手冊主要供Solaris系統(tǒng)管理員使用,所提供的內(nèi)容包含SUN OS操作系統(tǒng)系統(tǒng)的安裝、環(huán)境的建立及重要文件的創(chuàng)建,以及系統(tǒng)管理員在網(wǎng)絡(luò)系統(tǒng)環(huán)境下如何建立、維護、管理網(wǎng)絡(luò)系統(tǒng)下的工作環(huán)境,還包括系統(tǒng)管理的日常使用命令、主要命令、文件的索引等。  
本章將介紹:系統(tǒng)管理員的職責(zé)、了解超級用戶狀態(tài)、如何與用戶通信、啟動和關(guān)閉系統(tǒng)、進程管理、基本管理工具。  
SunOS 5.x操作系統(tǒng),是Sun公司所推出的Solaris 2.x軟件系統(tǒng)環(huán)境的主要組成部份,Solaris 2.x可運行于SPARC和Intel硬件平臺,是一個支持對稱式多處理機的UNIX系統(tǒng)環(huán)境。  
系統(tǒng)管理員的職責(zé)  
系統(tǒng)管理員的職責(zé)是確保一個獨立(Standalone)系統(tǒng)或網(wǎng)絡(luò)上的一組系統(tǒng)能正常運行(主要指軟件)。 不同領(lǐng)域的系統(tǒng)管理員,其責(zé)任也不相同,一個系統(tǒng)管理員可能在一個或多個領(lǐng)域是專家,而在別的領(lǐng)域卻顯生疏。  
下面列出本手冊所描述的系統(tǒng)管理員的工作:  
1、 管理設(shè)備  
*磁帶機的使用  
*格式化磁盤  
*監(jiān)視盤的使用  
2、 了解服務(wù)訪問機制  
*建立一個雙向調(diào)制解調(diào)器(modem)  
3、 管理文件系統(tǒng)  
*安裝或拆卸文件系統(tǒng)  
*備份和恢復(fù)文件或文件系統(tǒng)  
4、 管理網(wǎng)絡(luò)服務(wù)  
*查找網(wǎng)絡(luò)信息  
*系統(tǒng)間傳送文件  
*管理NIS+數(shù)據(jù)庫  
5、 管理打印服務(wù)  
*設(shè)置一個打印客戶和打印服務(wù)器  
*使用打印命令  
6、 管理用戶和用戶組  
*增加用戶  
*刪除用戶  
*改變用戶信息  
*建立新組帳號  
7、 了解shell  
*使用Generic shell命令  
*使用Bourne shell命令  
*使用C Shell命令  
*使用Korn shell命令  
8、 管理系統(tǒng)  
*查找系統(tǒng)信息  
*建立局部郵件別名  
*配置額外的交換空間(swap space)  
*管理系統(tǒng)日期和時間  
*識別文件存取故障  
*搜索路徑的問題  
*存取權(quán)和所有權(quán)問題  
*網(wǎng)絡(luò)存取問題  
*獲得存取全部文件系統(tǒng)和資源的權(quán)限  
*與用戶通信  
*關(guān)閉和啟動系統(tǒng)  
*監(jiān)視進程  
本手冊的章節(jié)按照以上給出的標(biāo)題順序安排,你還必須了解何時及如何進行如下管理工作: (本手冊不包含如下系統(tǒng)管理工作:安裝系統(tǒng)軟件、安裝第三廠家軟件、建立和管理網(wǎng)絡(luò)服務(wù)、建立和管理郵件服務(wù)、擴充和刪除硬件、管理安全性和記帳、監(jiān)視系統(tǒng)和網(wǎng)絡(luò)性能。)這章其余部分將描述如何完成系統(tǒng)管理員的工作,并介紹一些基本命令和管理工具。  
1.1了解超級用戶狀態(tài)  
超級用戶是一個具有特權(quán)的用戶,它可不受任何限制地使用全部文件和命令,超級用戶有一個特定的UID(=0),這個帳號的用戶名為root(其實只要是UID為0的用戶就是超級用戶)。許多系統(tǒng)管理任務(wù)都必須在超級用戶下完成,如安裝和拆卸文件系統(tǒng)、改變文件和目錄的存取權(quán)和所有權(quán)、備份和恢復(fù)文件系統(tǒng)、創(chuàng)建設(shè)備文件,以及關(guān)閉系統(tǒng)。  
我們可以用如下辦法進入超級用戶:  
1、 在其它用戶狀態(tài)下,用不帶任何參數(shù)的su命令,并按需要鍵入root的口令。  
2、 在login提示下,鍵入root及其口令。  
在入進超級用戶后,shell將給出一個特殊的提示符“#”,提醒你對系統(tǒng)有著至高無上的存取權(quán),做任何事情都要小心,通過查詢記錄文件/var/adm/sulog,可以跟蹤誰正在使用超級用戶帳號。  
最好在必要時才進入超級用戶,應(yīng)該避免在超級用戶下做一般的事情。如果某項任務(wù)需要你是超級用戶,它會提示你應(yīng)該進入超級用戶。當(dāng)你完成必要的工作后,應(yīng)立即回到一般用戶狀態(tài)。  
由于超級用戶非保護的存取權(quán)限嚴(yán)重威脅系統(tǒng)的安全,所以root帳號總是設(shè)有一個口令,而且為了增加安全性,要經(jīng)常更換口令。  
1.1.1成為超級用戶(su)  
僅當(dāng)需要使用root權(quán)限完成一定的工作時,你才進入超級用戶,下面是從普通用戶成為root的方法:  
1、 在Shell的$或%提示符下,輸入su。如果root帳號有口令的話,系統(tǒng)會提示你鍵入口令。  
2、 鍵入超級用戶口令,如果口令正確,你就具有了超級用戶權(quán)限,系統(tǒng)顯示“#”提示符。  
gtxa%su  
Password:  
#  
如果想使用root本身的環(huán)境變量,鍵入su -。  
1.1.2退出超級用戶狀態(tài)  
要退出超級用戶狀態(tài),就簡單地鍵入exit。  
#exit  
gtxa%  
1.1.3以root注冊  
要直接注冊成root,必須在login提示下完成:  
1、 在login提示下,輸入root,于是系統(tǒng)提示你輸入root口令。  
2、 輸入root的口令,如果口令正確,系統(tǒng)將出現(xiàn)root提示符#:  
login: root  
Password:  
#  
1.2與用戶通信  
系統(tǒng)管理員工作的一個重要部分是與用戶通信,使用戶了解管理員所做的事情對系統(tǒng)功能所造成的影響,要讓用戶及時知道你所做的管理工作(如:重新引導(dǎo)系統(tǒng),安裝新的軟件,或以某種方式改變系統(tǒng)環(huán)境)何時將對它們產(chǎn)生影響。  
管理員可以口頭與用戶通訊,但最普遍的方式是:  
;在注冊時顯示當(dāng)前系統(tǒng)專用信息.  
;用write命令直接將消息發(fā)送到某個用戶終端上.  
;用wall使用將消息發(fā)送給一個系統(tǒng)上的所有用戶.  
;用rwall命令將消息發(fā)送給網(wǎng)絡(luò)上的所有用戶.  
;通過電子郵件將消息發(fā)送一個或一組用戶.  
1.2.1在注冊時顯示系統(tǒng)專用信息  
每次用戶注冊進系統(tǒng),屏幕上都會顯示當(dāng)天的系統(tǒng)消息,這個消息存貯在文件/etc/motd中。已經(jīng)注冊進系統(tǒng)和正在使用系統(tǒng)的用戶看不見此信息,可使用motd命令查看此消息,這些信息包括:操作系統(tǒng)版本號,系統(tǒng)軟件的變化,新安裝(或刪除)的第三廠家文件的名稱,或系統(tǒng)的調(diào)度時間表。必須確保motd文件是最新的,如果motd顯示的是過時的消息,用戶會因此而失掉一個關(guān)鍵信息,消息應(yīng)盡量簡短,如果其長度超過一屏,用戶就讀不到開頭部分。/etc/motd文件所在者應(yīng)該是root, 而且root應(yīng)是唯一對此文件具有寫權(quán)限的用戶。  
gtxa% ls -1 /etc/motd  
-rw-r--r-- root sys 49 Jan 1 1970 /etc/motd  
gtxa%  
注意:系統(tǒng)軟件安裝后,有幾個文件(包括/etc/motd 在內(nèi))的更新時間為“Jan 1 1970”這個日期是UNIX的起始日期,當(dāng)你對這些文件編輯后,這個時間會隨之改變。  
1.2.1.1建立日期消息  
用如下步驟建立日期消息:  
1、 成為超級用戶  
2、 用編輯工具(如vi)編輯/etc/motd文件  
3、 刪除不用的消息,輸入新的消息  
4、 保存修改后的文件,這些消息在用戶下次登錄進系統(tǒng)時顯示  
1.2.2將信息發(fā)送給單個用戶  
可以使用write命令將信息發(fā)送到用戶的終端上,當(dāng)使用窗口系統(tǒng)(如Open Windows)時,每個窗口都有一個獨立的帳號,如果用戶登錄多次,則信息會直接顯示在控制臺窗口中。  
1.2.2.1發(fā)送一個短消息給一個單獨的用戶  
用以下步驟將一個一次性的短消息發(fā)送給單個用戶:  
1、 鍵入write username,username是用戶的注冊名。  
2、 鍵入要發(fā)送的消息。  
3、 輸完消息后,鍵入Control-D. 則在username用戶的控制臺窗口中顯示你鍵入的內(nèi)容。  
下面給出系統(tǒng)管理員發(fā)送消息的例子:  
gtxa% write ignatz@elm  
Ill come by at 12:00 to look at your problem.  
gtxa%  
下面是在用戶控制臺窗口顯示的消息:  
Message from fred@gtxa on ttypl 11:20...  
Ill come by at 12:00 to look at your problem.  
EOF  
1.2.2.2將作為一個文件的消息發(fā)給個別用戶  
如果你想發(fā)送消息給一些用戶,建立一個消息文件,再使用帶參數(shù)的write命令來實現(xiàn),其中的一個參數(shù)是消息文件名。  
建立一個文件,此文件含有想要發(fā)送的消息。 鍵入write username  message  
Ill come by at 12:00 to look at your problem.  
gtxa% write ignatz@elm ,鍵入n即顯示出ok提示。  
1.3.3.1 引導(dǎo)到多用戶狀態(tài)  
要引導(dǎo)系統(tǒng)到多用戶狀態(tài),在ok提示符下,鍵入boot,則在缺省驅(qū)動器上啟動自動引導(dǎo)過程,顯示一系列啟動信息,最后系統(tǒng)進入多用戶狀態(tài)。  
1.3.3.2 引導(dǎo)到單用戶狀態(tài)  
要引導(dǎo)系統(tǒng)到單用戶狀態(tài),在ok提示符下,鍵入boot -s,系統(tǒng)引導(dǎo)到單用戶狀態(tài)且提示輸入root口令:  
ok boot -s  
INIT: SINGLE USER MODE  
Type Ctrl-d proceed with normal start-up  
(or give boot password for system maintenance)  
鍵入root口令,注意要繼續(xù)將系統(tǒng)引導(dǎo)到多用戶狀態(tài),則鍵入Control-D。  
1.3.3.3交互式引導(dǎo)  
如果想對系統(tǒng)文件或核心作暫時改動,可以采用交互式引導(dǎo),在這種情況下,可以測試所作的改動,且當(dāng)出現(xiàn)問題時很容易恢復(fù)。  
1、 在ok>的PROM提示下,鍵入boot-a,引導(dǎo)過程會按交互式方式提示你。  
2、 若響應(yīng)回車,即缺省/kernel/unix核心引導(dǎo),若不用缺省核心,則鍵入要用的核心名稱。  
3、 若響應(yīng)回車,即用缺省/etc/system文件,否則鍵入所用的系統(tǒng)文件名。  
4、 若響應(yīng)回車,即用缺省模塊目錄路徑,否則鍵入模塊目錄路徑名。  
5、 若響應(yīng)回車,即用缺省root文件系統(tǒng),也可鍵入ufs從本地盤引導(dǎo),或者鍵入ufs無盤客戶。  
6、 若響應(yīng)回車用root設(shè)備的缺省物理名,否則鍵入想使用的設(shè)備名。  
7、 若響應(yīng)回車則用缺省交換文件系統(tǒng)類型swapfs(注意:swapfs是唯一允許的交換文件系統(tǒng)類型)。  
以下例子中,接受的是缺省選擇:  
ok boot -a  
(Hardware configuration messages)  
rebooting from -a  
Boot device: /sbus/esp@0,800000/sd@0,0 File and args:-a  
Enter[/kernel/unix]:  
(Copyright notice)  
Name of system file [/etc/system]:  
Name of default directory for modules [ ]:  
root filesytem type [ufs]  
Enter physical name of root device[/sbus@1, f8000000/esp@0,800000/sd@0,0:a]:  
Swap filesystem type [swapfs]  
configuring network interfaces: leo  
Hostname: gtxa  
(fsck messages)  
The system is coming up. Please wait.  
(More messages)  
gtxa login:  
1.3.3.4查看引導(dǎo)信息  
引導(dǎo)信息存貯在/var/adm/messages文件中,引導(dǎo)完系統(tǒng)后若要查看這些信息,鍵入/usr/sbin/dmesg或more /var/adm/messages,則顯示引導(dǎo)信息。  
gtxa% /usr/sbin/dmesg  
Jan 13 11:22 SunOS Release 5.0 Version [UNIX(R) System V Release 4.0]  
system file (etc/system) error: readline error on line 1.  
root nexus=Sun 4-60  
mem=16384K (0x4000000)  
avail mem =14688256  
Ethernet address=8:0:20:7:83:17  
sbuso at obio 0xf8000000  
dma0 at SBus slot 0 0x400000  
exp0 at SBus slot 0 0x800000 SBus level 3(sparc ipl 3)  
sdl at sep0 target 1 lun 0  
/sbua@1, f8000000/esp@0,800000/sd@1,0(sd1):  
sd3 at esp0 target 3 lun 0  
/sbus@1, f8000000/esp@0,800000/sd@3,0(sd3):  
root on /sbus@ 1, f8000000/esp@0,800000/sd@3,0:a fstype ufs swap on swapfs fstype swapfs size 1348K  
le0 at SBus slot 0 0xc00000 SBus level 4 (sparc ipl 5)  
zs0 at obio 0xf1000000 sparc ipl 12  
zs1 at obio 0xf0000000 sparc ipl 12  
dump on /dev/dsk/c0t3d0sl size 32748K  
Dec 24 12:30:01 sendmail[82]:alias database out of date  
Dec 24 12:30:01 sendmail[82}: AA00082: message- in=  
Dec 24 12:30:01 sendmail[82]: AA00082: from=root, size=592, class=0, received form local  
Dec 24 12:30:02, stat=Sent  
Dec 24 12:30:58 sendmail[153]: network daemon starting  
Dec 31 15:20:24 rlogind[734]: pcktread: suspeet zero len fdo at obio 0xf7200000 spare ipl 11  
cgsix0 at SBus slot 1 0x0 SBus level 5(spare ipl 7)  
cgsix0: screen 1152x900, single buffered, IM  
mappable 1 gtxa%  
1.3.3.5增加新的硬件后引導(dǎo)系統(tǒng)  
當(dāng)系統(tǒng)中增加新的硬件后,boot命令必須使用-r選擇項,以便使操作系統(tǒng)在引導(dǎo)過程中查看并裝入新的設(shè)備驅(qū)動程序。  
1、 按硬件中的說明裝入新的設(shè)備驅(qū)動程序。  
2、 關(guān)閉系統(tǒng)且安裝新的硬件。  
3、 鍵入boot -r并回車,則運行重配置shell程序,裝入在模塊目錄中的所有的設(shè)備驅(qū)動程序且建立相應(yīng)的硬件結(jié)點(nodes)。  
1.3.3.6退回引導(dǎo)進程  
在有些情況下,你也許想退出或中斷引導(dǎo)過程,具體的中斷鍵依鍵盤類型不同而有所不同,例如,可鍵入stop -A或L1 -A。在tty 終端上,鍵入Break鍵。要中斷引導(dǎo)過程,鍵入系統(tǒng)對應(yīng)的中斷鍵,當(dāng)中斷引導(dǎo)過程后,監(jiān)視器將顯示ok PROM提示:ok  
鍵入boot重新啟動引導(dǎo)過程,或鍵入help顯示一組幫助信息。如果終端示出>提示,鍵入n獲得ok提示。  
1.3.4關(guān)閉系統(tǒng)  
下面介紹如何用shutdown和init命令關(guān)閉系統(tǒng)。  
1.3.4.1關(guān)閉一個多用戶系統(tǒng)  
在關(guān)閉一個多用戶系統(tǒng)之前,要通知系統(tǒng)中的用戶,給用戶完成一些處理過程的時間。  
1、 鍵入who,顯示出注冊的所有用戶清單。  
2、 鍵入ps-ef,顯示出系統(tǒng)活動進程表,如果系統(tǒng)進程允許關(guān)閉,轉(zhuǎn)到下一步。  
3、 變成超級用戶。  
4、 鍵入cd /,必須在根目錄下運行關(guān)閉命令。  
5、 鍵入shutdown,系統(tǒng)要你確認(rèn)是否要關(guān)閉系統(tǒng)。  
6、 鍵入y,所有的用戶將接收到一個消息,等待60秒后,系統(tǒng)關(guān)閉,進入單用戶狀態(tài)且提示鍵入root口令。  
7、 鍵入root口令,系統(tǒng)處于單用戶狀態(tài),這時可以進行維護工作。  
8、 鍵入Control-D返回到缺省運行系統(tǒng)級。  
# cd /  
# shutdown  
Shutdown started Fri Aug 6 10:50:35 EDT 1993  
Broadcast message from root(console) on earth Fri Aug 9 10:59:35  
THE SYSTEM IS BEING SHUT DOWN NOW!。  
LOG OFF NOW OR RISK YOUR FILES BEING DAMAGED  
Do you want to continue?(y or n): y  
The system is down.  
Changing to init state s-please wait.  
INIT: New run level S  
INIT: SINGLE USER MODE  
Type: Ctrl-d to proceed with normal start-up,  
(or give root password for system maintenance):  
1.3.4.2關(guān)閉系統(tǒng):可選方式  
如果想改變shutdown命令的缺省功能,選擇以下所述的六種方式之一來完成。  
1、 在不確認(rèn)的情況下關(guān)閉系統(tǒng):  
*變成超級用戶  
*鍵入cd /,必須在root目錄下運行shutdown命令。  
*鍵入shutdown等待時間(Grace Period)  
2、 為了改變shutdown等待時間(Grace Period),用以下幾步:  
*變成超級用戶。  
*鍵入cd /,必須在root目錄下運行shutdown命令。  
*鍵入shutdown -t .系統(tǒng)在等待用戶確定的秒數(shù)后關(guān)閉。  
*下面是改變等待時間(Grace Period)例子:  
# cd /  
# shutdown -g 120  
3、 關(guān)閉且重新引導(dǎo)多用戶系統(tǒng)  
*變成超級用戶。  
*鍵入cd /, 必須在root目錄下運行shutdown命令。  
*鍵入shutdown -i6 將一條消息發(fā)送給所有的用戶且執(zhí)行re6 shell程序;系統(tǒng)關(guān)閉為掉電狀態(tài),然后恢復(fù)到多用戶狀態(tài)。  
4、 關(guān)閉單用戶系統(tǒng)  
要關(guān)閉一個單用戶系統(tǒng),鍵入telinit 0(或init 0)命令運行shell程序使系統(tǒng)很快地關(guān)閉,沒有警告信息。  
5、 關(guān)閉且重新引導(dǎo)單用戶系統(tǒng)  
要關(guān)閉且重新引導(dǎo)單用戶系統(tǒng),鍵入telinit 6 (或init 6)。此時系統(tǒng)信息寫到硬盤上,殺死所有的活動進程且系統(tǒng)回到掉電狀態(tài)。系統(tǒng)再重新引導(dǎo)到缺省級(通常是多用戶級)。  
6、 緊急關(guān)閉系統(tǒng)  
要緊急關(guān)閉一個系統(tǒng),鍵入uadmin 2 0. 將系統(tǒng)信息寫到硬盤上,系統(tǒng)回到掉電狀態(tài),且顯示PROM提示。  
1.4監(jiān)視進程  
某一時刻在系統(tǒng)中運行的程序稱為進程。用戶可以監(jiān)視進程的狀態(tài),控制一個進程獲得的CPU時間,掛起或終止一個進程的執(zhí)行。  
ps命令是獲得進程信息的主要工具。可以用ps和grep命令查尋所需要的信息,可以確定哪些進程正在(或沒有)運行,而且可以獲得一個進程的詳細信息,這些信息包括:  
*PID  
*UID  
*優(yōu)先級  
*控制終端  
*存貯器的使用  
*CPU時間  
*當(dāng)前狀態(tài)  
ps命令反映的是命令被鍵入時的系統(tǒng)狀態(tài),因此當(dāng)你正在監(jiān)視系統(tǒng)時間的活動情況時,必須明白當(dāng)你讀結(jié)果時它們已經(jīng)有點過時,表1.2列出了ps(1)手冊。  
表1.2 ps 命令最常用的選擇項目  
可選項說明  
-e 報告所有的進程  
-l 生成一個長報告,此報告中包括除STIME之外的所有域。  
-f 顯示進程啟動程序的全路徑名  
1.4.1 ps命令報告的內(nèi)容  
當(dāng)鍵入ps-e時,可獲得如下所示的信息  
gtxa% /usr/bin/ps -e  
PID TTY TIME COMD  
0 ? 0:02 sched  
1 ? 0:01 init  
2 ? 0:00 pageout  
192 ? 0:00 sac  
79 ? 0:10 inetd  
75 ? 0:01 in route  
136 ? 0:04 automoun  
143 ? 0:01 crom  
123 ? 0:01 statd  
104 ? 0:01 rpcbind  
106 ? 0:01 rpc. rwal  
108 ? 0:01 rpc. ruse  
110 ? 0:01 rpc. spra  
113 ? 0:01 ypbind  
115 ? 0:00 keyserv  
117 ? 0:01 kerbd  
127 ? 0:02 lockd  
251 pts/0 0:00 ps  
165 ? 0:00 scndmail  
193 ? 0:01 ttymon  
174 ? 0:03 sysylogd  
156 ? 0:01 lpsched  
209 ? 0:02 in rlogi  
211 pts/0 0:03 csh  
164 ? 0:00 lpNet  
gtxa%  
各欄內(nèi)容說明如下:  
*PID: 進程標(biāo)識號  
*TTY: 啟動此進程(或其父進程)的終端。如果進程沒有控制終端這一欄顯示一個問號──顯示問號的進程常常是系統(tǒng)進程。  
*TIME: 進程所用的CPU時間  
*COMD: 產(chǎn)生此進程的命令名,注意:ps-e 命令僅顯示出文件名的頭八個字符。  
當(dāng)鍵入ps -el時,可看到如下的顯示內(nèi)容:  
gtxa% /usr/bin/ps -el  
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME COMD  
19 T 0 0 0 80 O SY f010f1c8 0 ? 0:02 sched  
8 S 0 1 0 251 0 20 fflad800 48 fflad9c4 ? 0:01 init  
19 S 0 2 0 0 0 SY fflad000 0 fflad07d ? 0:00 pageout  
8 S 0 192 1 49 1 20 ff1f7000 238 ff2de348 ? 0:00 sac  
8 S 0 79 1 80 1 20 ff232800 258 f010fla4 ? 0:10 inetd  
8 S 0 75 1 80 1 20 ff249000 327 ff2de448 ? 0:01 in route  
8 S 0 136 1 80 1 20 ff2c3000 287 f010fla4 ? 0:04 automoun  
8 S 0 143 1 80 1 20 ff293000 270 f010fla4 ? 0:01 cron  
8 S 0 123 1 49 1 20 ff28e800 258 f010fia4 ? 0:01 statd  
8 S 0 104 1 80 1 20 ff25a000 301 f010fla8 ? 0:01 rpcbind  
8 S 0 106 1 77 1 20 ff258800 272 f010fia4 ? 0:01 rpc.rwal  
8 S 0 108 1 80 1 20 ff260800 272 f010dla4 ? 0:01 rpc.ruse  
8 S 0 110 1 78 1 20 ff266800 272 f010fla4 ? 0: 01 rpc. spra  
表1.3是ps -el長報告中各域的說明表  
域說明  
F 十六進制標(biāo)示,加在一起表示進程目前的狀態(tài)  
     00進程已經(jīng)終止,它對應(yīng)的進程表項已空  
     01此進程是一個進程且總是在內(nèi)存中  
     02此進程正被它的父進程跟蹤  
     04此進程在被它的父進程跟蹤,且已經(jīng)停止運行  
     08此進程不能用信號激活  
     10進程正在內(nèi)存中且在一個文件完成之前被鎖住  
     20此進程不可換出  
S 進程的當(dāng)前狀態(tài),由下列字母之一表示:  
     O正在處理器上運行  
     S睡眠;等待IO事件完成  
     R運行就緒。  
     I空閑狀態(tài),進程正在創(chuàng)建  
     Z僵尸狀態(tài);進程已經(jīng)終止且父進程不再等待,但此死進程仍留在進程表中。  
     T因父進程正在跟蹤它而停止執(zhí)行  
     X等待獲得更多的內(nèi)存  
UID 進程所有者的用戶ID號  
PID 進程標(biāo)識號  
PPID 父進程的標(biāo)識號  
C 進程所用的CPU時間(該進程所用CPU時間的百分比估計值)  
PRI 進程調(diào)度優(yōu)先級,數(shù)字越大表示優(yōu)先級越低  
NI 進程的nice數(shù),影響其調(diào)度優(yōu)先級,提高進程的nice數(shù)意味著降低其優(yōu)先級、使用更少的CPU時間  
SZ 進程所需虛存數(shù)量,它很好地表示出進程對系統(tǒng)存貯器的要求。  
TTY 啟動此進程(或父進程)的終端,或者是“?”表示無控制終端(通常表示系統(tǒng)進程)。  
TIME 進程從啟始到目前所使用的CPU時間總和  
COMD 產(chǎn)生此進程的命令。  
1.4.2使用ps報告  
當(dāng)需要哪些進程或系統(tǒng)管理進程正在運行時,使用ps -e選擇項,如果還想得到過程的更詳細信息,用ps -el選擇項。各選擇項的詳細說明參考ps(1)命令手冊。  
下面是如何發(fā)現(xiàn)潛在問題的指南:  
*查看有沒有由同一用戶所有的相同作業(yè),若有,這可能是由于某用戶運行了啟動一組后臺作業(yè)的shell程序,但沒有等待作業(yè)終止,找用戶談?wù),看是否是這種情況,如果必要,用kill命令殺死其中一些進程,有關(guān)殺死一個進程的詳細介紹參見后面幾節(jié)。  
*查看TIME域,看哪些進程占用了大量的CPU時間,這樣的進程可能導(dǎo)致死循環(huán)。  
*查看C域,找出占用大量CPU時間且不重要的進程,如果認(rèn)為此進程確實不值占用如此多的CPU時間,可以用priocntl命令降低它的優(yōu)先級,有關(guān)priocntl命令的詳細信息,參考prioentl(1)手冊。  
*查看SZ域,找出占用太大內(nèi)存的進程。如果某個進程占用了過于大的內(nèi)存,將它殺死,如果系統(tǒng)中有許多進程都需要大量內(nèi)存,則可能需要擴充內(nèi)存。  
*查找占用CPU時間越來越多的失控進程,可以用帶-f可選項的ps命令查看其超始時間(STIME),也可直接看其TIME域所指的CPU累計時間。  
1.4.3殺死進程  
有時用戶需要徹底地消除一個進程,這時用kill命令,kill命令的格式為kill-,此處是一個數(shù)或一個名稱。  
注意:僅當(dāng)進程不能正常退出時用kill命令。  
有時用kill命令后進程仍未死掉,最常見的三種情況:  
;進程退出前正在等待一個設(shè)備(如磁帶機)完成某種操作。  
;進程正在等待由于nfs出現(xiàn)問題而無效的資源,在這種情況應(yīng)該用kill-QUIT命令來殺死一個進程。  
;進程處于僵尸態(tài),正如ps報告的消息所顯示,僵尸進程已經(jīng)釋放了它所占資源,但還沒有接收到父進程的回應(yīng),一般接收到回應(yīng)后刪除對應(yīng)的進程表項,在下次啟動系統(tǒng)時,僵尸進程被消除,僵尸(Zombies)進程不影響系統(tǒng)性能,所以用戶不必刪除它們。  
要殺死一個進程:  
1、 變成超級用戶,要殺死一個非你擁有的進程,你必須成為超級用戶。  
2、 鍵入ps -e,將顯示出一組進程,使用第一欄的PID(進程ID)號作為下一步的輸入,如果你知道是哪個進程出了問題,則可以鍵入:  
ps -e | grep 來找到其進程ID  
3、 鍵入kill-15 ,若僅鍵入kill,無參數(shù),則缺省的信號是15。  
4、 鍵入ps -e,檢查進程是否已經(jīng)終止,如果進程還存在,則到第5步。  
5、 鍵入kill-9 ,這個進程應(yīng)該被終止。 鍵入man -s5 signal,查看kill所使用的信號描述。  
例如:如果gtxa系統(tǒng)上的Open Windows 死了,你必須從另一個系統(tǒng)遠程注冊來殺死此進程。  
elm% rlogin gtxa  
Password:  
gtxa% ps-e │ grep openwin  
PID TTY TIME COMD  
2212 pts/0 0:00 openwin  
2213 pts/1 0:00 grep openwin  
gtxa # kill 2212  
gtxa # exit  
gtxa% logout  
elm%  
1.5基本管理工具  
Solaris系統(tǒng)軟件提供以下兩種管理工具:  
*一組通用的操作系統(tǒng)命令  
*具有圖形用戶接口的管理工具(Administration Tool)。  
1.5.1經(jīng)常使用的命令  
下面幾節(jié)簡單地介紹基本的Solaris命令,你很可能會使用它們作為系統(tǒng)管理例程的一部分,更詳細的介紹參見第二章中的“Basic OS Commands”及附錄A列出的SunOS 4.x命令與SunOS 5.x命令的對照表。  
1.5.1.1在文件系統(tǒng)中移動  
Solaris系統(tǒng)軟件是有一個層次結(jié)構(gòu)的文件系統(tǒng),當(dāng)管理系統(tǒng)時,你需要了解目前處于文件系統(tǒng)的哪個位置、如何轉(zhuǎn)到不同的目錄。  
1.5.1.2查看在文件系統(tǒng)中所處的位置  
要知道目前處于文件系統(tǒng)的哪一層,鍵入pwd。pwd(打印工作目錄)命令顯示當(dāng)前目錄:  
gtxa&pwd  
/etc  
gtxa%  
1.5.1.3改變目錄  
要改變目錄,鍵入cd 。cd(改變目錄)命令使你進入所鍵入的目錄中:  
gtxa% cd /usr  
gtxa%% pwd  
/usr  
gtxa%  
如果僅鍵入cd而沒鍵入路徑名,你就返回注冊目錄下。  
1.5.1.4查看文件的有關(guān)信息  
用ls命令可以顯示目錄內(nèi)容以及文件的許可權(quán)、符號鏈、所有者、組、文件長度(字節(jié)數(shù))、修改日期及時間和文件名,許多用戶存取文件出錯的原因,追根底在于擁有不正確的許可權(quán)或所有權(quán),有關(guān)此類問題的詳細說明見第10章“識別文件存取問題”。  
1.5.1.5顯示文件信息  
要顯示某個文件的有關(guān)信息,鍵入ls -1 ,則顯示許可權(quán)、符號鏈、所有者、組、文件長度(字節(jié)數(shù))、修改日期及時間和文件名。  
要看目錄中的全部文件,鍵入ls -1a,有關(guān)ls的選擇項清單可參見命令手冊。  
gtxa% ls -1 /etc/passed  
-r--r--r--lrootsys659 Feb 24 17:28/etc/passed  
gtxa%  
1.5.1.6查找一個文件  
要從根目錄開始搜索尋找到一個文件, 就鍵入find $HOME -name -print. $HOME變量表示查找從根目錄開始。 -name選項表示要查找指定的文件名,-print 選項要求顯示出查找的結(jié)果。如果沒找到中指定的文件則系統(tǒng)回到提示符狀態(tài)。  
下面例子是查找文件core:  
gtxa% find $HOME -name core -print  
/home/ignatz/core  
gtxa%  
表1.4 find命令的可選項  
可選項 說明  
-fstype 查找指定類型的文件系統(tǒng),通常用ufs或nfs中的文件  
-prune 限制搜索到指定的目錄  
-nouser 查找不屬于/etc/passwd中用戶的文件  
-nogroup 查找不屬于/etc/group中組的文件  
-atime 查找在最后天被存取過的文件  
-mtime 查找在最后天被修改過的文件  
-ctime 查找在最后天被改變過的文件, 這種改變包括改變文件的屬性。如鏈接數(shù)、所有者或組  
-Xdev 限制只對一個文件系統(tǒng)搜索  
有關(guān)find命令可選項的完整說明見find(1)。  
1.5.1.7查看一個文件的類型  
某些情況下需要確定一個文件的類型,如要查看一個文件的類型,則鍵入file 。輸出結(jié)果是指定文件的文件類型。  
例如:如果一個用戶試圖執(zhí)行一個無執(zhí)行許可權(quán)的ASCII 文件或空文件,查看文件的類型可以得知此文件是ASCII 文件或空文件而不能執(zhí)行。  
以下是空文件的例子:  
gtxa% file junk  
junk: empty file  
gtxa%  
以下是ASCII文件的例子:  
gtxa% file junk  
junk: ascii text  
gtxa%  
以下例子中,文件是具有可執(zhí)行許可權(quán)的文本文件,所以file命令報告該文件可執(zhí)行,且是文本文件。  
gtxa%chmod 777 junk  
gtxa% file junk  
junk: commands text  
gtxa%  
你也可以用ls -1命令來查看某文件是否有執(zhí)行許可權(quán)。  
可以用file *命令查看一個目錄中全部文件的類型。文件按字母順序列出,后面跟文件類型:  
gtxa% file *  
coterie: directory  
course: ascil text  
dead. letter ascii text  
ksyms English text  
people: directory  
personal: directory  
showrev: ascii text  
status: directory  
text: directory  
toodo: ascii text  
gtxa%  
1.5.1.8查看文件中的信息  
用grep和egrep命令可查找文件或命令輸出的某些特定信息。  
1.5.1.9查找文件中的字符串  
鍵入grep 可查找文件中的指定字符串,且顯示文件可包含該字符串的行。  
例如:查找passwd文件中包含csh的行:  
gtxa% grep csh /etc/passwd  
ignatz: 6693: 10:Ignatz 64607:/home/ignatz: /bin/csh  
fred: 14072:10:Fred Lux:/home//home/fred:/vin/csh  
gtxa%  
同時查找多個文件的方法是:在命令中輸入多個文件名,它們之間以空格分開;或者用無字符代文件名(或與文件名一起使用)。  
為顯示出不包含某字符串的行,可以鍵入grep -v 。  
查找具有某種模式的輸入行,可以將grep以管道的方式與許多管理命令結(jié)合起來使用。  
例如:要查找某一用戶當(dāng)前的全部進程,可以將ps命令和grep結(jié)合起來使用,并查找該用戶名,鍵入ps -e│grep 。即顯示該用戶名的清單。可用下面的命令查找Open Windows的全部進程:  
gtxa%ps -e │grep openwin  
PID TTY TIME COMD  
2212 pts/0 0:00 openwin  
gtxa%  
1.5.1.10查看文件  
毫無疑問,人們要花很時間查看文件的內(nèi)容,需要查看整個文件時可以用more命令,當(dāng)只需看文件尾的內(nèi)容時(如日志(log)文件),可用tail命令來顯示文件的最后10行,當(dāng)重要信息在文件頭時,可用head命令顯示文件的前10行。  
1.5.1.11瀏覽文件  
可以鍵入more 來瀏覽文件,文件一次只顯示一屏,按空格鍵顯示下一屏。當(dāng)你用more瀏覽文件時,若想查找文件中的某個字符串,可以鍵入/。屏幕滾到你要查找的字符串的位置, 并在窗口頂部顯示要找的字符串的“... skippin”信息。如果未找到,則屏幕不滾動并顯示出“Pattern not found”。  
例如:要查找/etc/mail/aliasses文件中的Local aliases串, 可鍵入/Local aliases.  
/Local aliases  
... skipping  
# # # # # # # # # # # #  
# Local aliases below #  
# # # # # # # # # # # #  
注意:在more命令中一定要用正確的大小寫字母。上例中,如果你鍵入了/local aliases,則會告訴你沒有找到。  
為了查找下一個匹配的字符串,鍵入n。鍵入q退出more命令,顯示shell 提示符。  
為顯示shell intr 字符,可鍵入stty -a,就顯示stty的設(shè)備清單,下列中:^h(退格鍵)是刪除字符:  
gtxa%  
speed 9600 bau;  
rows=35; columns=80; ypixel =9; xpixels=0;  
eucw 1:0:0:0, scrw 1:0:0:0  
intr=^c;quit=^│; erase=^?;kill=^u  
eof=^d; eol+^; eo12=;swtch=;  
start=^d; stop =^s;susp=^z;dsusp=^y;  
rprnt=^r; flush =^o; werase=^w; lnext =^V;  
parenb-parodd cs-cstopb hupcl cread-clocal -loolk -  
crtscts-parext  
-ingbrk btkint ignpar-parmrk-inpck istrip -inncr -  
igncr icrnl-iucle  
ixon-ixany-ixoff imaxbel  
isig icanon-xcase echo echoe echok-echonl-noflsh  
-tostop echoctl -echoprt echoke -defecho -flusho -  
pendin inxten  
opost-olcuc onler -onocr -ofill-ofdel  
1.5.1.12查看文件尾  
若要查看文件尾,鍵入tail , 顯示出文件的最后10行(缺省情況),下例顯示了/etc/lp/system文件尾:  
gtxa% /usr/bin/tail /etc/lp/system  
#  
# Kepler:x:-: s5: -:n:10:-:-:SVR4.0 OS  
# fubar:x:-bsd:10:n-:-:BSD OS  
# Galialeo:x:-:s5:-30:10-:-:  
# # # # #  
billboard:x-:bsd:-:n:10:-:-:  
homeboyl:x-:s5:-:n:10-:-:  
regal:x:-:s5:-:n:10-:-:  
mrplod:x:-:s5:-:n:10:-:-:  
gtxa%  
缺省時,head和tail命令顯示10行,可靠用-n任項來控制顯示行數(shù),用你要顯示的行數(shù)代替n。例如:要顯示最后20行, 可鍵入tail -20 。  
注意:tail命令最多能顯示4096字節(jié)(大約400行)。  
1.5.1.13查看文件頭  
若要查看文件頭,可鍵入head這時顯示出頭10行  
下例中顯示/etc/password文件:  
gtxa% /usr/bin/head /etc/pased  
rood:x:0:1:0000-Admin(0000):/:sbin/sh  
daemon:x:1:1:0000-Admin(0000):/:  
bin:x:2:2:0000-Admin(0000):/var/adm:  
sys:x:3:3:0000-Admin(0000):/:  
adm:x:4:4:0000-Admin(0000):/var/adm:  
lp:x:71:8:0000-lp(0000):/usr/spool/lp:  
smtp:x:0:0:mail daemon user:/:  
uucp:x:5:5:0000-uucp(0000):/usr/lib/uucp:  
nuucp:x:9:9:0000-  
uucp(0000):/var/spool/uucppublic:/usr/lib/uucp/uucico  
listen:x:37:4:Network Admin:/usr/net/nls:  
gtxa%  
1.5.1.14改變文件的所有權(quán)和許可權(quán)  
用戶的許多問題可能是由文件的所有權(quán)和許可權(quán)問題產(chǎn)生的,用ls命令可查看文件的所有權(quán)和許可權(quán),如果要改變它們,可用:chown、chmod和chgrp命令。  
*改變文件所有權(quán)  
你必須擁有一個文件或目錄(或者你是超級用戶)你才能成為屬主  
1>鍵入ls -1 。文件的屬主顯示在第三列中  
2>進入超級用戶  
3>鍵入chown . 所有權(quán)按賦予指定的新屬主文件。  
gtxa% ls -1 quest  
-rw-r--r--1fred staff 6023 Aug5 12:06 quest  
gtxa% su  
Password:  
# chown ignarz quest  
# ls-1 quest  
-rw-r--r--lignatzataff6023 Aug5 12:06 quest  
#  
更詳細的介紹請參見第10章。  
* 改變文件的許可權(quán)  
表1.5列出的設(shè)置文件許可權(quán)的8進制值?梢杂萌齻這樣的數(shù)來分別設(shè)置屬主、組和其它用戶的許可權(quán)。例如:644 說明屬主有讀/寫權(quán)限,同組用戶和其它用戶有只讀權(quán)限。  
表1.5 文件權(quán)限的八進制值  
值 說明  
0 無權(quán)限  
1 只可執(zhí)行  
2 只可寫  
3 可寫、可執(zhí)行  
4 只讀  
5 可讀、可執(zhí)行  
6 可讀、可寫  
7 可讀、寫、執(zhí)行  
1>鍵入ls -1 。列表顯示出文件當(dāng)前的權(quán)限。  
2>鍵入chmod 。改變文件的權(quán)限變?yōu)槟阒付ǖ闹怠?nbsp; 
注意:可以用元字符(如* ?)替換文件名,或與它們一起使用來更改多個文件或一個目錄中所有文件的權(quán)限。  
下例中,將一個文件權(quán)從666改為644。  
gtxa% ls - 1 quest  
-rw-rw-rw-lignatzstaff 6023 Aug5 12:06 quest  
gtxa% chmod 644 quest  
gtxa%ls -1 quest  
-rw-r--r--lignatzstaff6023 Aug5 12:06 quest  
gtxa%  
1.5.1.15改變文件組  
若要改變文件組,鍵入chgrp 。改變指定文件的組ID  
$ls -lg junk  
-rw-r--r--l other 0 Oct 31 14:49 junk  
$chgrp 10 junk  
$ls -lg junk  
-rw-r--r--l ataff 0 Oct 31 14:49 junk  
$  
組ID號在Group數(shù)據(jù)庫或本地/etc/group文件中定義, 關(guān)于組的詳細信息請參見第7章。  
1.5.1.16設(shè)置或顯示系統(tǒng)環(huán)境  
shell使用shell初始化文件中給出的一組說明來維護環(huán)境,用戶也可以直接發(fā)命令給shell來修改shell從環(huán)境變量中得到有關(guān)環(huán)境的信息。Solaris系統(tǒng)軟件提供7個缺省的環(huán)境變量。  
*PSI:定義shell提示符。Bourne和Korn shell的缺省提示符是$。C shell的缺省提示符是%,任何shell中root的缺省提示符皆是#。用戶可以在.profile,.login 或.cshrc 文件中下義不同的shell提示符。  
*HOME:定義用戶主目錄的絕對路徑。作為注冊進程的一部分,自動定義HOME的缺省值,并且設(shè)置為/etc/passwd 文件中說明的注冊目錄。當(dāng)鍵入cd命令且無參數(shù)時,shell轉(zhuǎn)到HOME 變量所確定的目錄之下。  
*LOGNAME:定義用戶的注冊名。作為注冊進程的一部分,LOGNAME的缺省值被自動定義且設(shè)置為/etc/passwd文件中說明的注冊名。  
*PATH:列出一組目錄。當(dāng)用戶敲入命令后,shell 按順序從這些目錄中查找要執(zhí)行的程序。如果一個命令所在的目錄不在該查找路徑中,則用戶必須鍵入該命令的全部路徑。做為注冊進程的一部分,PATH的缺省值是按.profile(Bourne和Korn shell)或.cshrc(C shell)文件中的說明設(shè)置。查找路徑的順序是非常重要的。當(dāng)同名的命令在不同的目錄存在時,執(zhí)行的是第一個找到的命令。例如:假設(shè)PATH(以Bourne 和Korn shell方式)定義為PATH =/bin:/usr/bin/:usr/sbin:$HOME/bin,在usr/bin和/home/jean/bin目錄中均有名為sample的程序,當(dāng)用戶不鍵入路徑,而只是鍵入sample命令時,則執(zhí)行/usr/bin目錄中的sample程序。  
其它環(huán)境變量包括:  
*LPDEST:設(shè)置用戶的缺省打印機  
*OPENWINHOME:設(shè)置Open Wimdows可執(zhí)行碼的路徑  
*DESKSET:設(shè)置DESKSET的可執(zhí)碼的路徑  
*LANG:設(shè)置本地語言,可能值是:english、japanese、German、French、Swedish和Italian等  
*HZ:設(shè)置Borne和Korn shell的歷史  
*TZ:設(shè)置時區(qū)  
*SHELL:設(shè)置make,vi或其它工具所使用的缺省shell  
*MAIL:告訴shell到哪去查找新的郵件  
*MANSECTS:設(shè)置手冊的有效章節(jié)  
用戶和系統(tǒng)管理員可另外定義自己使用的環(huán)境變量,當(dāng)用戶從shell命令中定義環(huán)境變量時,只要用戶不退出shell,則定義的環(huán)境變量就一直起作用。退shell,則不再起作用?蓪ⅰ坝谰谩杯h(huán)境變量存在.profile、.login或.cshrc文件中,定義環(huán)境變量的語法依不同的shell而不同。  
1.5.1.17定義Bourne和Korn shell環(huán)境變量  
若要定義Bourne和Korn shell環(huán)境變量,鍵入=;export .  
$HZ=100;export HZ  
$  
1.5.1.18定義C shell環(huán)境變量  
若定義C shell 環(huán)境變量,鍵入setenv .  
%setenv DISLAY rogue:0  
%  
1.5.1.19顯示環(huán)境變量的設(shè)置  
若要顯示出當(dāng)前的環(huán)境變量設(shè)置,鍵入env。  
$env  
HOME=/home/irving  
HZ=100  
LOGNAME=irving  
MAIL=/var/mail/irving  
MANSECTS=\1:1m:1c:1f:1s:1b;2\3:3c:3i:3n:3m:3k:3g:3e:3x11:3xt:3w:3b:9:4:5:7:8  
PATH=/usr/bin  
SHELL=/bin/sh  
TERM=sun  
TZ=ESTS5EDT  
$  
1.5.1.20使用PATH變量  
PATH環(huán)境變量是非常重要的。當(dāng)用戶執(zhí)行一個帶有全路徑名的命令,shell按給定的全路徑名去查找命令,當(dāng)用戶只給出命令名時,shell就按PATH環(huán)境變量給定的路徑順序去查找目錄,若在某一目錄中找到該命令時,就執(zhí)行它。  
缺省的根PATH(sbin:/usr/sbin:/usr/bin:/etc)是由系統(tǒng)設(shè)置的,但許多用戶還在上面添加一些別的命令目錄,用戶的許多問題,如有關(guān)設(shè)置環(huán)境使用命令或工具的不正確版本等,常常是由于路徑設(shè)置不正確所產(chǎn)生的。  
1.5.1.21設(shè)置Bourne和Korn shell路徑  
Bourne與Korn shell的路徑是在用戶的$HOME/.profile 文件中如下設(shè)置的:  
PATH=.:/usr/bin:/$HOME/bin  
1.5.1.22設(shè)置C shell路徑  
C shell的路徑是在用戶的$HOME/.cshrc 文件如下設(shè)置的:  
set path=(./usr/bin $ home/bin)  
更詳細說明請參閱有關(guān)手冊和第10章。  
1.5.2使用管理工具  
管理工具是Open Windows的一個具有圖形用戶接口的工具。它用來管理主機系統(tǒng)和/etc下的17個數(shù)據(jù)庫。使用這一管理工具可以管理用戶和組,可以管理NIS+數(shù)據(jù)庫和本地/etc目錄下的文件。  
第2章、基本OS命令  
本章將介紹:查找用戶信息、查找環(huán)境信息、創(chuàng)建和編輯文件、命令組合和輸出定向、使用手冊、查找硬盤信息 。  
本章解釋基本的操作系統(tǒng)命令,提供查找有關(guān)用戶和系統(tǒng)環(huán)境信息的方法,同時講述建立和編輯文件、命令組合、輸入重定向,顯示手冊以及查尋基本磁盤信息的各種方法。  
2.1查找用戶信息  
在管理系統(tǒng)時,經(jīng)常需要知道誰在使用系統(tǒng)及他們在做些什么。本節(jié)描述了解用戶信息的命令:who、finger、rusers -1、whodo、id等。  
2.1.1確定系統(tǒng)中有誰注冊  
(who、finger、rusers -1、whodo、id)可以使用上述四個命令之中的一個來發(fā)現(xiàn)誰注冊進入系統(tǒng)。每個命令還顯示各種不同附加信息。  
2.1.1.1使用who命令  
who命令顯示注冊進入系統(tǒng)的用戶名單,注冊的tty端口,以及日期和時間,如果某用戶是遠程注冊的,那么本命令還顯示該用戶的遠程系統(tǒng)名,使用who命令的方法是:鍵入who。  
在下例中,用戶irving是遠程注冊的,用戶ignatz是系統(tǒng)gtxa 的本地用戶。  
gtxa% who  
irving pts/1 Oct 31 14:33(elm)  
ignatz console Oct 31 12:22  
gtxa%  
2.1.1.2使用finger命令  
finger命令顯示注冊進入系統(tǒng)的用戶注冊名,同時顯示用戶全名(取名/etc/passwd文件對應(yīng)項的information域),tty端口,星期幾,注冊時間,如果是遠程注冊的用戶,還顯示遠程系統(tǒng)名。使用finger命令的方法是:鍵入finger  
在這個例子里,用戶winsor從系統(tǒng)castle遠程注冊  
gtxa%flogin @openet  
openet%finger  
Login Name TTY Idle When Where  
Winsor Janice Winsor pts/0 11 Thu 09:59 castle  
gtxa%  
2.1.1.3使用rusers -1命令  
rusers -1(遠程用戶注冊)命令,顯示從遠程系統(tǒng)注冊的用戶名清單,同時顯示用戶注冊的系統(tǒng)名,tty端口,日期,登錄時間以及空閑時間(idle time)。如果主機不空閑,那么最后一列不顯示,使用本命令的方法是:鍵入rusers-1后再回車。  
gtxa%rusers -1  
Sending Broadcast for rusersd protocol version 3...  
Sending Broadcast for rusersd protocol version 2...  
jah caps:consloe Mar 3 13:03 22:03  
amber facehole: console Mar 2 07:40  
sebree ondine: consloe Mar 2 10:35 14  
tut cairo: consloe Mar 2 16:48  
jrt cairo: ttyp5 Mar 2 16:20 47:54(gap)  
ramseyis mowthelawn: consloe Mar 2 16:33 28  
ramseyis mowthelawn: ttpy6 Mar 3 14:20 25:14  
(:0.0)  
(More logins not shown)  
gtxa%  
2.1.1.4使用whodo命令  
whodo命令顯示日期、時間和系統(tǒng)名。它為每一個注冊的用戶顯示設(shè)備名、UID、注冊時間以及一個與此UID相聯(lián)系的活動進程表。此表的內(nèi)容包含設(shè)備名、PID、使用的CPU時間(分、秒)以及進程名。  
鍵入Whodo,可以看到誰注冊了,以及注冊者在做什么。  
gtxa%whodo  
Tue Mar 12 15:48:o3 1992  
SunOs  
tty09 men 8:51  
tty09 28158 0:9sh  
tty52 bdr 15:23  
tty52 21688 0:05sh  
tty52 22788 0:01whodo  
tty52 22017 0:03vi  
tty52 22549 0:01sh  
2.1.2檢查用戶的用戶號和組號(id命令)  
使用id命令可以顯示注冊用戶的用戶id和組id號,當(dāng)用戶不能訪問他們認(rèn)為屬于自己的文件時,使用這些信息來查找錯原因,據(jù)此信息也可知道用戶所屬的組。使用id命令時,用戶先注冊,然后鍵入id命令。如果uid和uid與出現(xiàn)問題的文件的uid或gid不匹配,就需要改變文件的屬主或組,或者將用戶加入相應(yīng)的組中。詳見第5章。  
gtxa%id  
uid=6693(winsor)gid=10(staff)  
gtxa%su  
Password:  
#id  
uid=0(rood) gid=1(other)  
#  
2.2查尋環(huán)境信息  
每個系統(tǒng)都有一個運行環(huán)境,這些環(huán)境說明在用戶初始化文件標(biāo)準(zhǔn)shell和Korn shell的.profile或C shell的.cshrc和.login中定義,也可通過shell直接定義環(huán)境變量。環(huán)境變量可以規(guī)定諸如用戶主目錄,注冊名,缺省打印機,電子郵件地址以及訪問Open Windows環(huán)境的路徑。本講講述如何查到環(huán)境變量的設(shè)置。這方面的更詳細信息請見第8章。  
為了顯示用戶的環(huán)境變量設(shè)置,鍵入env命令。這樣系統(tǒng)地顯示出環(huán)境變更的設(shè)備清單,關(guān)于環(huán)境變量的缺省設(shè)置值及如何設(shè)置環(huán)境變量,請見第1章的有關(guān)內(nèi)容。  
gtxa%env  
HOME=/  
PATH=:/home/ignatz:/usr/bin:  
/home/ignatz/bin:/bin:/home/bin:/etc:/usr/etc  
LOGNANME=ignatz  
HZ=100  
TZ=PST8PDT  
TERM=sun  
SHELL=/bin/csh  
MAIL=var/mail/ignatz  
PWD=/  
MANSECTS=\1:1m:1c:1f:1s:1b:2:\3:3  
c:3i:3n:3m:3k:3g:3e:3x11:3xt:3w:3b:9:4:5:7:8  
gtxa%  
2.3創(chuàng)建和編輯文件  
本節(jié)描述如何使用cat、touch、cp、mv、Text Editor和vi命令來創(chuàng)建和編輯文件。  
2.3.1使用cat命令  
使用cat命令可創(chuàng)建短文件或附加少量文本信息到一個已存在的文件末尾。用cat命令創(chuàng)建文件可以:  
1、鍵入cat ;  
2、錄入文本內(nèi)容;  
3、鍵入回車;  
4、鍵入Control-D。  
文本被存盤,shell提示符重新出現(xiàn)。  
用cat命令將文本附加到已存在的文件上可以:  
1、鍵入cat ;  
2、錄入內(nèi)容;  
3、鍵入回車;  
4、鍵入Control-D。  
文體被存盤,shell提示符重新出現(xiàn)。  
2.3.2使用touch命令  
touch命令將每個文件的訪問和改動時間設(shè)為當(dāng)前時間,如果文件不存在,就創(chuàng)建一個新文件。可以用touch命令創(chuàng)建一個空文件來檢查允許權(quán)和屬主,或創(chuàng)建一個文件用于以后錄入文本。  
要創(chuàng)建一個空文件,只需鍵入touch 這樣一個新的空文件就創(chuàng)建出來了,如果此文件已存在,那么文件的修改時間就變?yōu)楫?dāng)前的日期和時間。  
gtxa%ls -1 junk  
junk: No such file of directory  
gtxa%touch junk  
gtxa%ls -1 junk  
-rw-r--r--livringstaff 0 Sep 11 15:06 junk  
gtxa%  
2.3.3文件拷貝(cp)或改名(mv)  
可以通過一對一已存在的文件進行拷貝或改名來創(chuàng)建一個新文件。  
拷貝已存在的文件的方法是:鍵入cp ,這樣就得到了原文件的拷貝,而且保留了原來的文件。  
mv  
原文件被改名,原名文件就不再存在。  
gtxa%mv quest /tmp/quest。old  
gtxa%  
2.3.4文本編輯器的使用  
可以使用Open Windows的文體編輯來創(chuàng)建和編輯文件。然而普通用戶在使用文本編輯器來編輯具有根允許權(quán)限(root pemissions )的文件時可能會出現(xiàn)一些問題。  
進入Open Windows工作區(qū)的主菜單中選擇programs,再在programs菜單中選擇Editor來打開文體編輯器,也可以在命令行鍵入:textedit &來打開文體編輯器。打開之后,顯示一個文本編輯器窗口。進行編輯時,可使用鍵盤上Cut、Copy、Paste、Undo鍵來加快文本的編輯速度。  
2.3.5 vi的使用  
全屏幕編輯器vi,通常是由系統(tǒng)管理員編輯文本文件。有專門的一些書講述vi使用法。本節(jié)僅提供其中最常用的編輯命令供用戶參考。只需鍵入 vi 。就可啟動vi,如果文件不存在,那么就打開一個新文件,當(dāng)存入內(nèi)容時,此新文件就創(chuàng)建出來,如果文件已經(jīng)存在,則在啟動完vi以后,就在屏幕上顯示此文件的開頭一部分內(nèi)容。  
表2.1一些基本的vi命令  
功能命令  
不存盤退出:qi  
存盤:w  
存后退出:wq  
存后退出ZZ  
左移一字符h  
右移一字符i  
上移一行k  
下移一行j  
移到文件尾G  
插入文本(插入方式)v(文本)ESC  
在光標(biāo)后附加文本a(文本)ESC  
在行尾附加文本A(文本)ESC  
如何退出命令方式ESC  
刪行dd  
刪字符x  
刪詞dw  
在上一行開始加入新文本O  
在下一行開始加入新文本o  
拷貝一行到緩沖區(qū)Y  
將緩沖區(qū)內(nèi)容置于當(dāng)前光標(biāo)之前P  
將緩沖區(qū)內(nèi)容置于當(dāng)前光標(biāo)之后p  
2.4命令組合及輸出重新定向  
SunOS 5.0系統(tǒng)允許以多種方法組合命令,本節(jié)講述命令組合的三種方法。  
2.4.1在同一命令行里鍵入多個命令  
在命令之間用分號(;)隔開,就可以在同一命令行中鍵入多個命令,例如,可以用cd /usr/bin;ls命令先轉(zhuǎn)到一個目錄中,再列出此目錄中的目錄和文件,另外一個例子是為Bourne shell設(shè)定環(huán)境變量再輸出(export)該變量。  
PATH=。:/usr/bin:$HOME/;export PATH  
2.4.2輸出重新定向()  
除非另外說明,命令結(jié)果通常顯示在屏幕上,使用重新定向符(“”),可以將輸出結(jié)果重新定向,例如:將結(jié)果存入一個文件而不是將它顯示在屏幕上,只需使用重新定向符“>”,指示shell將內(nèi)容放入一個文件,下面的例子中,date命令的輸出被重新定向到Sample.file文件中:  
gtxa%date > samle.file  
gtxa%  
下面是Sample.file的內(nèi)容:  
gtxa%more sample.file  
Tue May 26 13:26:59 PDT 1992  
gtxa%  
也可以重新定向輸入。例如,將一個文件的內(nèi)容郵件寄到用戶ignatz@gtxa,鍵入mail igzatz@gtxa 的狀態(tài):  
gtxa%mt –f /dev/rmt/1 status  
Archive QIC-150 tape drive:  
sense key(0x6)=nuit attention residual=0 retries  
file no=0 block no=0  
gtxa%  
3.2 磁帶與軟盤操作  
3.2.1 tar命令  
下面幾節(jié)描述如何使用tar命令將文件拷入磁帶,并從磁帶上列出文件,增加文件和讀出文件。  
3.2.1.1向磁帶寫文件(tar)  
依下列步驟向磁帶寫文件:  
1、 進入含有欲拷文件的目錄;  
2、 插入有寫權(quán)限的磁帶到磁帶機中;  
3、 鍵入tar cvf /dev/rmt/  
注意: 使用c選項寫帶,將破壞磁帶上原有文件,如果欲保護磁帶上原有文件,則需使用后面講述的"r"選擇項來附加文件。  
c選項表示拷貝(copy)指定的文件,v選項(verbose)表示在拷貝過程中顯示文件信息,f選項(files)后面加上磁帶設(shè)備名,指定文件向何處拷貝,被指定的文件拷貝到磁帶上,覆蓋磁帶上原有文件。  
注: 可以使用元字符(?和*)作為文件名的一部分。例如,為了拷貝所有具有.doc后綴的文件,在文件名部分鍵入*.doc即可,如果指定文件名部分是一目錄名,那么此目錄及其所有子目錄均遞歸地拷入帶中。  
4、 自磁帶機中取出磁帶,填寫標(biāo)簽。  
在下面的例子中,將兩個文件拷入0號磁帶機中的磁帶  
gtxa%cd /home/winsor  
gtxa%ls evaluation*  
evaluation. doc evaluation. doc. backup  
gtxa%tar cvf /dev/rmt/0 evaluation*  
a evaluation. doc 86 blocks  
a evaluation. doc backup 84 blocks  
gtxa%  
3.2.1.2列出磁帶上的文件(tar)  
依下列步驟列出磁帶上的文件:  
1、 將磁帶插入磁帶機;  
2、 鍵入tar tvf ./dev/rmt/  
t選項(table)表示將指定文件列出,v選項(vevbose)表示在列文件時仿ls -l的格式顯示文件信息,f選項(files)表示在此選項后的磁帶機設(shè)備名表示文件所在設(shè)備。  
在下列中顯示0號磁帶機中所放磁帶的內(nèi)容  
gtxa% tar tvf /dev/rmt/0  
rm-rm-rm-6693/10 44032 Apr 23 14:54 1991 evaluation. doc  
rm-rm-rm-6693/10 44008 Apr 23 14:57 1991 evaluation. doc. backup  
gtxa%  
從左向右,上面信息的第一列顯示文件存取權(quán)限,第二列顯示文件的屬主與屬組,第三列顯示文件字節(jié)數(shù),第四、五、六、七列是文件最后修改的月、日、時間和年號,最后一列是文件名。  
3.2.1.3向磁帶上增加文件(tar)  
依下列步驟可以向磁帶上拷入文件而不破壞磁帶原來內(nèi)容:  
1、 進入含拷貝文件的子目錄;  
2、 將具有寫權(quán)限的磁帶插入磁帶機;  
3、 鍵入tar rvf /dev/rmt/ ......  
則指定文件被拷入指定磁帶中;  
注:可以使用元字符(?和*)作為文件各的一部分。例如,拷貝所有具有.doc后綴的文件,只需在指定文件名部分鍵入*.doc即可。  
4、 自磁帶機中取出磁帶,填寫標(biāo)簽。  
下例中,向0號磁帶機中的磁帶上增加文件:  
gtxa%cd /home/winsor  
gtxa%tar rvf /dev/rmt/0 junk  
a junk 1 blocks  
gtxa% tar tvf /dev/rmt/0  
rm-rm-rm-6693/10 44032 Apr 23 14:54 1991 evaluation. doc  
rm-rm-rm-6693/10 44008 Apr 23 14:57 1991 evaluation. doc. backup  
rm-rm-rm-6693/1018 Dec 10 11:36 1991 junk  
gtxa%  
tar命令的使用n選項(不倒帶),可以讓用戶多次使用tar命令順序向磁帶上拷文件,例如:拷文件后不倒帶,下次使用此磁帶拷貝時,文件就寫在前次拷貝的文件后面。  
3.2.1.4從磁帶中析取文件(tar)  
1、 進入欲存文件的子目錄;  
2、 將磁帶插入磁帶機;  
3、 鍵入tar xvf /dev/rmt/  
磁帶上所有的文件都拷入當(dāng)前目錄。  
此例中,0號磁帶機中磁帶內(nèi)容全部被拷貝出來:  
gtxa%cd /home/winsor/Evaluations  
gtxa%tar xvf /dev/rmt/0  
x evaluation.doc,44032 bytes,86 tape blocks  
x evaluation.dos.backup,43008 bytes,84 tape blocks  
gtxa%  
自磁帶中析取個別文件,只需鍵入tar xvf /dev/vmt/ ......指定文件則從磁帶中拷貝出,并放入當(dāng)前目錄,此例中前綴是evaluation文件自0號磁帶機的磁帶中拷貝出:  
gtxa%cd /home/winsor/Eealuations  
gtxa%tar xvf /dev/rmt/0 evaluation *  
x evaluation.doc, 44032 bytes, 86 tape blocks  
x evaluation.dos, backup, 43008 bytes, 84 tape blocks  
gtxa%  
下面步驟表示如何自磁帶中析取整個子目錄:  
1、 進入欲放文件的目錄,如果拷入的子目錄已存在,那么,應(yīng)進入該子目錄的父目錄中,而且應(yīng)保證原子目錄中的內(nèi)容可以覆蓋掉,例如,將磁帶中的目錄Book拷入/home/winsor/Book中,應(yīng)鍵入cd /home/sinsor; tar xvf /dev/rmt/Book,若原先就進入/home/winsor/Book中,則拷入內(nèi)容則存于/home/winsor/Book/Book中。  
2、 鍵入tar xvf /dev/rmt/ 則此目錄與其所有子目錄遞歸地自磁帶上拷出。  
注意: 自磁帶中拷出的文件名就是所存的文檔文件名,如果對文件名不清楚,可以先列出磁帶上的文件名,步驟詳見"列出磁帶上的文件(tar)"或tar(1)手冊。  
3.2.2cpio命令  
使用cpio命令建立磁帶文檔時,它自標(biāo)準(zhǔn)輸入設(shè)備取得一串文件或路徑名, 然后將它們寫到標(biāo)準(zhǔn)輸出設(shè)備上,輸出通常反向到文件或設(shè)備,后面講述怎樣使用cpio命令將文件拷入盒式磁帶,列出盒式磁帶文件,及析取磁帶上的某個文件子集。  
3.2.2.1將某目錄下的所有文件拷入磁帶(cpio)  
依下列步驟將某目錄下的所有文件拷入磁帶
C.Arthur 回復(fù)于:2005-03-22 15:53:22
已經(jīng)發(fā)過了,能發(fā)全點嗎
http://72891.cn/forum/viewtopic.php?t=16504
gunguymadman 回復(fù)于:2005-03-22 17:07:11
似乎9。2之后的找不到了    :(
owenics 回復(fù)于:2005-03-23 12:40:46
能不能把所有內(nèi)容整理一下,做成CHM文件格式,然后大家分享一下?
菜鳥要成長 回復(fù)于:2005-03-23 13:32:40
好像上次也是發(fā)到這里吧!
shower2008 回復(fù)于:2005-03-23 14:23:53
搞笑啊~~~
人家作者是Solaris boy。轉(zhuǎn)載也不聲明一下。還來混了個精華/
你們也注意一點影響好不好。!
鄙視你們樓上的!~~~
再次鄙視你們。!
再鄙視
……
wjg023 回復(fù)于:2005-03-23 14:56:11
不是發(fā)過了嗎,跟原來的一樣嗎?
wjg023 回復(fù)于:2005-03-23 15:01:49
給原來那一篇,一模一樣,怎么搞的版主,這樣都可以貼成精華呀.
xjiang1_8699 回復(fù)于:2005-03-23 15:30:34
堅決支持反對在論壇上的這中無恥的行為,讓大家共同來維護論壇的純凈和吸引力
simonlm 回復(fù)于:2005-03-25 13:19:33
真是一片討伐之聲呀
gunguymadman 回復(fù)于:2005-03-25 13:46:26
shoer2008和xjiangl-8699   
喜歡的話進來玩玩      
http://72891.cn/forum/viewtopic.php?show_type=&p=3429707#3429707
netbee 回復(fù)于:2005-03-31 09:19:45
[quote:fe2e4e344e="gunguymadman"]svw] limited -expression  
...  
2.5.2找命令節(jié)號(whatis、man)  
有些命令的名字可以出現(xiàn)在幾個章節(jié)中,此時可以使用whatis找到命令在手冊中的節(jié)號(section number)。  
注意:僅當(dāng)使用了cat man來命令建立?.........[/quote:fe2e4e344e]
不知道全了沒有?我記得我以前從SUN的技術(shù)論壇上轉(zhuǎn)載了一份全的指南過來。大家可以搜一下。
gunguymadman 回復(fù)于:2005-04-06 16:09:25
3.2.2.3析取磁帶上所有文件(cpio)  
如果(磁帶上)文檔是使用相對路徑名建立的,那么輸入文件在當(dāng)前目錄下, 如果文檔是使用絕對路徑名建立的,則以相同的絕對路徑重新生成此文件。  
注意: 使用絕對路徑名來拷貝磁帶文件是危險的,因為這樣會覆蓋文件系統(tǒng)中的原有文件。  
依下列步驟拷貝文件:  
1、 進入欲放文件的子目錄;  
2、 將磁帶插入磁帶機;  
3、 鍵入cpio -icv "為提示符的format菜單;  
4、 鍵入defect  
5、 鍵入primary原來的錯誤表就被加到硬盤中;  
defect>primary  
Extracring primary drfect list...Extraction complete.  
Current Defect list updated.\  
total of 30 defdcts.  
6、 鍵入quit回到format>提示符  
7、 鍵入format開始格式化硬盤,一個容量為10MB的硬盤格式化10分鐘,硬盤容量越大,格式化時間越長;  
8、 當(dāng)format>提示符又出現(xiàn)了時,鍵入partition  
9、 重建與損壞的硬盤的分區(qū)相匹配的分區(qū)表;  
10、 鍵入label硬盤被標(biāo)記好;  
11、 鍵入quit回到format>提示符下;  
12、 再鍵入quit回到shell提示符下。  
panda%su  
Password:  
#format  
Searching for disks...done  
Extraction complete.  
of 30 defects.  
AVAILABLE DISK SELECTIONS:  
O.sd0 at esp0 slave 24  
sd0:  
1.sd0 at esp0 slave 16  
sd2:Specify disk (enter its number):1  
selecting c0t0dd0  
[disk formatted]  
FORMAT MENU:  
disk -select a disk  
type-select (define) a disk type  
partition-select (define) a partition table  
current-describe the current disk  
format-format and analyze the disk  
repair-repair a defective sector  
label-write label ti the disk  
analyze-surface analysis  
defect-defect list management  
backup-search for backup labels  
verify-read and display labels  
save-save new disk/partition defintions  
inquiry-show vendor,product and revision  
volname-set 8-character volume name  
quit  
format>defect  
defect>primaty  
Extracting primary defect list...Extraction complete.  
Current Defect list updated.total of 30 defects.  
defect>quit  
format>format  
format>partition  
PARTITION MENU:  
0. - change0partition  
1. - change1partition  
2. - change2partition  
3. - change3partition  
4. - change4partition  
5. - change5partition  
6. - change6partition  
7. - change7partition  
select - select a predefined table  
modify - modify a predefined partition table  
name - name the current table  
print - display the current table  
label - write partition map and label to the disk  
quit  
partition>  
partition>label  
partition>quit  
format>quit  
#  
3.3.3.7重建文件系統(tǒng)(newfs)  
硬盤經(jīng)過格式化,分區(qū)和標(biāo)記以后,就可以在上面建立ufs文件系統(tǒng), 在重建原已存在的ufs文件系統(tǒng)時,必須先將此系統(tǒng)卸下(unmount)。  
重建文件系統(tǒng)需依下列步驟:  
1、 成為超級用戶;  
2、 鍵入newfs /dev/rdsk/cWtXdYsZ  
系統(tǒng)提問是否繼續(xù)。注意: 必須保證設(shè)備名中的分區(qū)號正確,否則會將其它分區(qū)中的內(nèi)容刪掉。  
3、 鍵入"y"確認(rèn),newfs命令使用優(yōu)化的缺省值創(chuàng)建文件系統(tǒng)。  
下面例子在/dev/rdsk/c0t3d0s7上創(chuàng)建一個文件系統(tǒng)。  
panda%su  
Password:  
#newfs /dev/rdsk/c0t3d0s7  
newfs: constuct a new file system /dev/rdsk/c0t3d0s7(y/n)?y  
/dev/drsk/c0t3d0s7: 163944 seotors in 506 cylinders of 9 tracks, 36  
sectors 83.9MB in 32 cyl groups(16c/g,2.65MB/g,1216i/g)  
super-block backups (for fsck-b#)at:  
32. 5264. 10496. 15728. 20960. 26192. 31424. 366656. 41888.  
47120. 52352. 578584. 62816. 68048. 73280. 78512. 82976. 88208.  
93440. 98672. 103904. 109036. 114368. 119600. 124832. 130064.  
1352696. 140528. 145760. 150992. 156224. 161456.  
#  
3.3.3.8在臨時安裝點安裝文件系統(tǒng)(mount)  
鍵入mount /dev/dsk/cWtXdYsZ  
/mnt文件系統(tǒng)安裝到臨時安裝點/mnt上,安裝硬盤時,使用塊設(shè)備目錄(/dev/dsk),而不是原始設(shè)備目錄。  
3.3.3.9向文件系統(tǒng)轉(zhuǎn)儲文件(ufsrestore)  
下列步驟用于恢復(fù)最新的完整備份,然后由最低級到最高級依次恢復(fù)增量備份。  
1、 鍵入cd /mnt;  
2、 將磁帶置于寫保護狀態(tài);  
3、 將0級磁帶的第一卷插入磁帶機;  
4、 鍵入ufsrtore rvf /dev/rmt/若有多卷磁帶需恢復(fù),則在出現(xiàn)提示時插入下卷,這樣就恢復(fù)了0級磁帶;  
5、 將0磁帶取出,將下一最低級別的磁帶插入,記住從0級磁帶開始恢復(fù),直到最高級;  
6、 鍵入ufsrtore rvf /dev/rmt/則下一級別的磁帶被恢復(fù);  
7、 對每卷磁帶重復(fù)步驟5、6;  
8、 鍵入ls命令;  
9、 顯示文件和目錄列表,確認(rèn)所有文件都已恢復(fù);  
10、 鍵入rm restore symtable刪去為恢復(fù)而創(chuàng)建的restore sysmtable文件。  
3.3.3.10自臨時裝入點拆卸文件系統(tǒng)(umount)其方法如下:  
1、鍵入cd /  
2、鍵入umount /mnt將文件系統(tǒng)自臨時安裝點卸下。  
3.3.3.11檢查文件系統(tǒng)的不一致性(fsck)  
鍵入fsck /dev/rdsk/cWtXdYsZ本命令檢查文件系統(tǒng)一致性。  
3.3.3.12對恢復(fù)文件系統(tǒng)做0級備份  
由于ufsrestore命令改變文件的位置及inode的分配,所以對新建的文件系統(tǒng)應(yīng)立即做備份。  
1、將具有寫權(quán)限的新磁帶插入磁帶機;  
2、鍵入ufsdump ouf /dev/rmt/  
3.3.3.13在永久安裝點安裝文件系統(tǒng)(mount)  
鍵入mount /dev/dsk/cWtXdYsZ則恢復(fù)的文件系統(tǒng)被裝上并可以使用了。  
第4章、文件系統(tǒng)管理  
本章將介紹: 文件系統(tǒng)的類型、缺省的SunOS  
5.x文件系統(tǒng)、虛擬文件系統(tǒng)表(/etc/vfstab)、文件系統(tǒng)管理命令、如何使文件系統(tǒng)有效、檢測文件系統(tǒng)數(shù)據(jù)一致性(fsck)、備份與恢復(fù)文件系統(tǒng)  
文件系統(tǒng)是用于查找和存貯文件的目錄結(jié)構(gòu),文件系統(tǒng)這一術(shù)語可有下列不同的含義:  
 描述由根目錄向下的整個文件樹  
 描述文件系統(tǒng)的特定類型:磁盤文件系統(tǒng)、網(wǎng)絡(luò)文件系統(tǒng)以及偽文件系統(tǒng)  
 描述硬盤和其它存貯設(shè)備的數(shù)據(jù)結(jié)構(gòu)  
 描述安裝在主文件樹中可被訪問的某一部分文件樹的結(jié)構(gòu)  
通常你可通過上下文判斷文件系統(tǒng)具體是哪個含義。  
SunOS 5.x系統(tǒng)軟件采用了虛擬文件系統(tǒng)(VFS)結(jié)構(gòu),這一結(jié)構(gòu)為不同類型的文件系統(tǒng)提供了一個標(biāo)準(zhǔn)接口,核心處理基本操作時,如:  
讀、寫、列表文件等,不需要用戶或是程序知道具體的文件系統(tǒng)類型。  
文件系統(tǒng)管理命令提供了一個公共的接口,這一接口可用于管理不同類型的文件系統(tǒng),文件系統(tǒng)管理命令由兩部分組成:  
普通命令和針對每一類文件系統(tǒng)的特殊命令,普通命令適用于大多數(shù)文件系統(tǒng),特殊命令只適用于某一類文件系統(tǒng)。  
系統(tǒng)管理的重要任務(wù)之一是管理SunOS 5.x文件系統(tǒng),理解復(fù)雜的文件系統(tǒng)便于更有效地管理文件系統(tǒng),這一章介紹下面幾方面的內(nèi)容:  
 文件系統(tǒng)類型  
 缺省的SunOS 5.x文件系統(tǒng)  
 虛擬文件系統(tǒng)表(/etc/vfstab)  
 如何使用戶的本地和遠程文件系統(tǒng)有效  
 備份與恢復(fù)文件系統(tǒng)  
4.1文件系統(tǒng)類型  
SunOS 5.x系統(tǒng)軟件支持三種類型的文件系統(tǒng):  
 磁盤文件系統(tǒng)  
 網(wǎng)絡(luò)文件系統(tǒng)  
 偽文件系統(tǒng)  
4.1.1磁盤文件系統(tǒng)  
磁盤文件系統(tǒng)存貯在硬盤、CD-ROM以及軟盤等物理介質(zhì)中,磁盤文件系統(tǒng)可以采用不同的格式進行讀寫操作,這幾種格式是:  
 ufs,UNIX文件系統(tǒng)(基于BSD Fat File系統(tǒng),BSD 4.3 Tahke版提供),它是SunOS  
5.x系統(tǒng)軟件中缺省的磁盤文件系統(tǒng)。  
 hsfs,High Sierra and ISO9660文件系統(tǒng),High  
Sierra是第一個CD-ROM文件系統(tǒng),ISO9660是一官方標(biāo)準(zhǔn),hsfs文件系統(tǒng)用在CD-ROM上,是只讀文件系統(tǒng),SunOS 5.x  
hsfs支持RockRidge擴展,該擴展提供除可寫性和硬鏈接以外的所有ufs文件系統(tǒng)語義和文件類型。  
 pcfs,PC文件系統(tǒng),該文件系統(tǒng)可以存取微機上基于DOS格式軟盤上的數(shù)據(jù)和程序。  
在SunOS 5.x系統(tǒng)軟件中,沒有包含由系統(tǒng)V版本提供的傳統(tǒng)的System  
V(S5)文件系統(tǒng),這是由于此文件系統(tǒng)最多為64,000個文件;文件名最長14個字符和分配限額(quota)等限制造成的。  
每一種類型的磁盤文件系統(tǒng)通常與某一特定的存貯介質(zhì)相對應(yīng):  
 ufs與硬盤和其它介質(zhì)(如: 磁帶,CD-ROM,軟盤)相對應(yīng):  
 hsfs與CD-ROM相對應(yīng)  
 pcfs與軟盤相對應(yīng)  
這些對應(yīng)也并不是絕對的,如: ufs文件系統(tǒng)也可以安裝在CD-ROM和軟盤上。  
4.1.2網(wǎng)絡(luò)文件系統(tǒng)  
網(wǎng)絡(luò)文件系統(tǒng)是指可通過網(wǎng)絡(luò)進行訪問的文件系統(tǒng),典型的基于網(wǎng)絡(luò)的文件系統(tǒng)是指安裝在一個系統(tǒng)上,可由其它系統(tǒng)通過網(wǎng)絡(luò)進行訪問的文件系統(tǒng),基于網(wǎng)的文件系統(tǒng)有:  
•nfs----網(wǎng)絡(luò)或分布式文件系統(tǒng)  
•rfs----遠程文件共享  
SunOS  
5.x缺省的分布式文件系統(tǒng)是nfs。管理分布式文件系統(tǒng)是通過共享文件系統(tǒng)(從服務(wù)器輸出)或者是將文件系統(tǒng)到各個系統(tǒng)中實現(xiàn)的,詳細內(nèi)容請參見后面的"使文件系統(tǒng)有效"一節(jié)。  
4.1.3偽文件系統(tǒng)  
偽文件系統(tǒng)是虛擬的或基于存貯器的文件系統(tǒng),它提供訪問特殊的核心信息和功能,偽文件系統(tǒng)并不需要文件系統(tǒng)盤空間,一些偽文件系統(tǒng)可以使用物理盤中的交換區(qū),例如臨時文件系統(tǒng)。  
4.1.3.1臨時文件系統(tǒng)(tmpfs)  
臨時文件系統(tǒng)(tmpfs)利用本地存貯器進行盤的讀寫,所以訪問tmpfs文件系統(tǒng)的文件比訪問ufs文件系統(tǒng)中的文件快得多,臨時文件系統(tǒng)中的文件不是永久的,當(dāng)文件系統(tǒng)被拆掉、系統(tǒng)關(guān)機或重新啟動時,它們就被自動刪掉。  
SunOS  
5.x目錄中的缺省文件系統(tǒng)類型是tmpfs,與ufs類型的/tmp文件系統(tǒng)一樣,可以將文件拷貝或移動到tmpfs類的/tmp文件系統(tǒng)中,或是從其中拷出,移出到其它的目錄中。  
使用tmpfs文件系統(tǒng)節(jié)省了本地盤或網(wǎng)絡(luò)讀寫臨時文件的開銷,所以提高了系統(tǒng)性能,例如:  
編譯程序時生成很多臨時文件,當(dāng)使用這些文件時,操作系統(tǒng)產(chǎn)生大量的磁盤或網(wǎng)絡(luò)的輸入和輸出請求,利用臨時文件系統(tǒng)事先保存這些臨時文件,可以明顯地加快文件的創(chuàng)建、存取和刪除的速度。  
tmpfs文件系統(tǒng)利用交換區(qū)做為臨時存貯區(qū),如果帶有tmpfs文件系統(tǒng)的系統(tǒng)沒有足夠的交換區(qū),可能會產(chǎn)生下面兩個問題:  
 象一般的文件一樣,tmpfs文件系統(tǒng)沒有可用空間;  
 由于tmpfs申請分配交換區(qū)存放數(shù)據(jù)(如果必要的話),有些程序就可能會因為沒有足夠的交換區(qū)而不能執(zhí)行。  
4.1.3.2循環(huán)文件系統(tǒng)(lofs)  
用循環(huán)文件系統(tǒng)(lofs)可創(chuàng)建一個新的虛擬的原文件系統(tǒng),然后用另一個路徑名來存取文件,例如,可對/tmp/newroot目錄進行循環(huán)安裝(loopback  
mount),整個文件系統(tǒng),包括任何從nfs服務(wù)器上安裝的文件系統(tǒng),看起來就像在/tmp/newroot下被復(fù)制了,全部文件可以用以/開始的路徑進行存;或者用以/tmp/newroot開始的路徑名進行存取,兩者都一樣,直到另一文件安裝到/tmp/newroot或其子目錄中。  
4.1.3.3進程文件系統(tǒng)(procfs)  
進程文件系統(tǒng)(procfs)駐留在內(nèi)存中,/proc目錄中有一活動進程號的清單,ps等命令會用到/proc目錄中的信息,調(diào)試器或其它開發(fā)工具也可能通過文件系統(tǒng)調(diào)用來訪問這些過程的地址和空間,下面例子列出了/proc目錄中的一部分內(nèi)容:  
panda%ls -l /proc  
total 144944  
-rw-------1root root 0 Dec 19 15:45 00000  
-rw-------1root root 196608 Dec 19 15:45 00001  
-rw-------1root root 0 Dec 19 15:45 00002  
-rw-------1root root 1028096 Dec 19 15:46 00073  
-rw-------1root root 1445888 Dec 19 15:46 00091  
-rw-------1root root 1142784 Dec 19 15:46 00093  
-rw-------1root root 1142784 Dec 19 15:46 00095  
。。。  
-rw-------1ignatz staff 1576960 Dec 19 15:50 00226  
-rw-------1ignatz staff 192512 Dec 19 15:51 00236  
-rw-------1ignatz staff 1269760 Dec 19 15:52 00240  
-rw-------1ignatz staff 6090752 Dec 19 15:52 00241  
-rw-------1ignatz staff 188416 Dec 19 15:52 00247  
-rw-------1ignatz staff 2744320 Dec 19 15:52 00256  
注意:  
千萬不要刪proc目錄中的文件,希望你不要用刪除/proc目錄中進程的方法來殺掉進程,關(guān)于殺掉進程的方法,請參見第一章,記住/proc目錄不占用磁盤空間,所以沒有必要刪除/proc目錄下的文件,/proc目錄不需任何系統(tǒng)管理。  
4.1.3.4別的偽文件系統(tǒng)  
下面列出了偽文件系統(tǒng)的其它類型,注意并不需要對這些文件系統(tǒng)進行管理。  
•fifofs(先進先出文件系統(tǒng))命名管道文件,用于進程對數(shù)據(jù)的公共訪問。  
•fdfs(文件描述符文件系統(tǒng))提供用文件名打開文件,這是通過文件描述符來實現(xiàn)的。  
•namefsSTREAMS使用它在文件頂端對文件描述符動態(tài)安裝。  
•specfs(特別文件系統(tǒng))提供對特別的設(shè)備和塊設(shè)備的訪問。  
•swapfs用mkfile和swap命令建立附加的交換區(qū)時,核心所用的文件系統(tǒng)。  
4.2SunOS 5.x缺省的文件系統(tǒng)  
SunOS 5.x文件是以"/"根目錄開始,向下擴展為一系列目錄的層次結(jié)構(gòu),SunOS  
5.x系統(tǒng)軟件安裝了一些缺省的目錄,并按一定的約定將相同類型的文件放在一起,表4.1介紹了缺省的SunOS  
5.x文件系統(tǒng),并對每一文件系統(tǒng)類型進行相應(yīng)的說明。  
缺省的SunOS 5.x文件系統(tǒng)  
文件系統(tǒng) 文件系統(tǒng)類型 說明  
/ ufs  
整個文件樹的頂,根目錄包含系統(tǒng)操作的關(guān)鍵目錄和文件,如:核心(/kernel/unix),設(shè)備驅(qū)動程序和啟動系統(tǒng)(boot)的程序,根也包括本地和遠程文件系統(tǒng)到該文件樹的安裝點目錄。  
/etc ufs 包括用于系統(tǒng)管理的系統(tǒng)文件。  
/usr ufs  
包括可和其它用戶共享的系統(tǒng)文件和目錄,只可運行于某類系統(tǒng)上的文件放在/usr目錄中(如:SPARC可執(zhí)行文件),可運行于所有系統(tǒng)上的文件(如:  
聯(lián)機手冊)放在/usr/share 目錄中。  
/home nfs,ufs  
用戶主目錄的安裝點,它存貯用戶的工作文件,缺省時,/home是一個自動安裝的文件系統(tǒng),單機系統(tǒng)中,/home可以是本地磁盤中的一個ufs文件系統(tǒng)。  
/var ufs 包含本地系統(tǒng)中經(jīng)常變化和增長的系統(tǒng)文件和目錄,包括logs、vi和ex備份文件、uucp文件、郵件和日歷文件等。  
/opt nfs,ufs 可選的安裝點,用于安裝第三方廠家的軟件,在某些系統(tǒng)中,/opt可以是本地盤上的ufs文件系統(tǒng)。  
/tmp tmpfs 臨時文件,當(dāng)系統(tǒng)重新啟動或關(guān)機時,被清除。  
/proc procfs 包含按進程號排列的活動的系統(tǒng)進程清單。  
根(/)和/usr文件系統(tǒng)中是必須的,/usr文件系統(tǒng)中最基本的命令(如:  
mount)也包含在根文件系統(tǒng)中,這樣便于系統(tǒng)啟動到單用戶狀態(tài)時能使用這些命令。  
4.3虛擬文件系統(tǒng)表(/etc/vfstab)  
每一系統(tǒng)均有一虛擬文件系統(tǒng)表(即/etc/vfstab),它列出了系統(tǒng)中存在的全部磁盤區(qū)文件系統(tǒng),該表還列出了每一個文件的安裝點和可選項,SunOS  
4.x中,  
文件系統(tǒng)表是/etc/fstab,現(xiàn)在/etc/vfstab代替了/etc/fstab,但功能卻是相似的,缺省的文件系統(tǒng)配置表(/etc/vfstab)依賴于系統(tǒng)軟件安裝時所做的選擇,對每個系統(tǒng),通過編輯/etc/vfstab文件可自動地安裝本地的ufs文件系統(tǒng)、必需的nfs文件系統(tǒng)和其它的文件系統(tǒng)。  
下面介紹/etc/vfstab表的內(nèi)容,并說明如何編輯和使用該文件,文件系統(tǒng)表是ASSCII文件,注釋行以#開頭,下面的/etc/vfstab文件說明了:系統(tǒng)中有兩個硬盤,并安裝了兩個nfs文件系統(tǒng)說明。  
#more /etc/vfstab  
#device device mount FS fsck auto- mount  
#to mounto fsck point type oass mount? options  
/dev/dsk/c0t0d0s0 /dev/dsk/c0t0d0s0 / ufs l no -  
proc - .proc proc - no -  
/dev/dsk/c0t0d0s1 - - swap - no -  
swap - /tmp tmpfs - yes -  
/dev/dsk/c0t0d0s6 /dev/dsk/c0t0d0s6 /usr ufs 2 no -  
/dev/dsk/c0t3d0s7 /dev/dsk/c0t3d0s7 /files7 ufs 2 no -  
cheers: /export/svr4/,man.ja5 - /usr/man nfs yes hard  
cheers: /export/svr4/openwin V3.ja4 - /usr/openwin nfs yes  
hard  
#  
注意:/和/usr的自動安裝(automount)域說明為no,這是因為在mountall命令運行前,在系統(tǒng)啟動時/和/usr已被安裝上了,如果將此值定義為yes,則mountall命令試圖再去安裝這兩個已經(jīng)安裝的文件系統(tǒng)。/etc/vfstab文件中的每個域必須有值,若無值(即值為no)必須填上一個"-"號。  
/etc/vfstab文件的域  
域 說明  
Device to mount 可安裝的設(shè)備有:  
 本地ufs文件系統(tǒng)的塊設(shè)備 (如:/dev/dsk/c0t0d0s0)  
 遠程文件系統(tǒng)的資源名(如nfs文件系統(tǒng)myserver:/export/home)  
磁盤的swap區(qū)名(如:/dev/dsk/c0t4d0s1)  
 /proc目錄和proc文件系統(tǒng)  
 hsfs類型的CD-ROM  
 pcfs和ufs類文件系統(tǒng)的軟盤dev/diskette, 這一域也用于說明swap文件系統(tǒng)  
Device to fsck  
對應(yīng)于則域說明的文件系統(tǒng)的原始(字符)特別設(shè)備(例如:/dev/dsk/c0t0d0s0)定義了fsck使用的原始接口,當(dāng)沒有對應(yīng)的設(shè)備時用“-”號說明,例如只讀文件系統(tǒng)或網(wǎng)絡(luò)文件系統(tǒng)。  
Mount point 缺省的安裝點目錄(如/usr目錄下安裝/dev/dsk/c0t4d0s6)。  
FS type 由域說明的文件系統(tǒng)類型。  
fsck pass  
Fsck檢測次數(shù),用于決定是否需要檢測文件系統(tǒng),當(dāng)該域是"-"號時不檢測文件系統(tǒng),當(dāng)該域的值大于1時,則檢查文件系統(tǒng);等于0時,則檢查非ufs文件系統(tǒng),而不檢查ufs文件系統(tǒng),當(dāng)fsck作用多個ufs文件系統(tǒng),而fsck  
pass值大于1,并且使用了-op選擇項時,fsck 自動以最高的效率并行檢測不同盤上的文件系統(tǒng),當(dāng)fsck  
pass值為1時,則順序檢測文件系統(tǒng),否則fsck pass值無效。  
Automount? 系統(tǒng)啟動時,若需mountall命令自動安裝文件系統(tǒng),則為yes,否則為no.注意該域與自動安裝軟件毫無關(guān)系。  
Mount options  
安裝文件系統(tǒng)統(tǒng)的選擇項列表,它們以","號分隔(無空格),"-"號說明無任選項,任選項的值請參見mount-(1M)手冊。  
4.3.1 文件系統(tǒng)表項的建立  
下面建立文件系統(tǒng)表的步驟:  
1、 進入超級用戶;  
2、 用vi等命令編輯/etc/vfstab文件;  
3、 加入各項。用空格或Tab鍵分隔其中每個域,如果某個項沒有值,則填上”-”號;  
4、 保存該文件;  
5、 檢查安裝點目錄是否存在,不存在則建一個:改變目錄到需要安裝的地方然后鍵入mkdir  
6、 鍵入mount 此項被安裝上  
下面的例子說明了將/dev/dsk/c0t3d0s7盤區(qū)作為ufs文件系統(tǒng)安裝到/test1目錄中,安裝任選項(讀/寫)為缺省值,fsck設(shè)備是/dev/rdsk/c0t3d0s7字符設(shè)備,fsck  
pass值為2,說明該文件系統(tǒng)不采用順序方式檢測  
#device device mount FS fsck auto- mount  
#to mount to fsck point type pass mount? options  
#/dev/dsk/c0t3d0s7 /dev/rdsk/c0t3d0s7 /test1 ufs 2 yes -  
下面的例子說明將panda系統(tǒng)的/export/man目錄作為nfs文件系統(tǒng)安裝到/usr/man上,對nfs文件系統(tǒng)不必說明fsck  
devices和fsck pass域,這一例中,安裝任選項是ro(只讀)軟方式,為提高可靠性,對讀/寫的nfs文件系統(tǒng)應(yīng)采用硬式。  
#device device mount FS fsck auto- mount  
#to mount to fsck point type pass mount? options  
panda:/export/man - /usr/man nfs - yes ro.soft  
下面的例子說明將CD-ROM安裝到/hsfiles目錄上,一般情況下CD-ROM文件是只讀的,所以安裝任選項應(yīng)設(shè)置為ro,目前流行的是CDROM自動安裝,所以automount項為yes,由于hsfs是只讀的,所以fsck  
device和fsck pass均為無值。  
#device device mount FS fsck auto- mount  
#to mount to fsck point type pass mount? options  
/dev/dsk/c0t6d0s2 - /hsfiles hsfs - yes ro  
下面的例子說明將軟盤安裝到/pcfiles上,autmount項為無值,是由于經(jīng)常在命令行中安裝和拆卸,pcfs文件系統(tǒng)不支持fsck,所以fsck  
device和fsck pass均定為無值。  
#device device mount FS fsck auto- mount  
#to mount to fsck point type pass mount? options  
/dev/diskette - /pcfiles pcfs - no rw  
下面例子說明安裝根文件系統(tǒng)到循環(huán)安裝點/etc/newroot上,automount項為yes,fsck device項和fsck  
pass項為無值,循環(huán)文件系統(tǒng)必須在組成它的文件系統(tǒng)安裝好后才能安裝,要確保循環(huán)項是/etc/vfstab  
文件中的最后一項,使其跟隨在它所依賴的項的后面。  
#device device mount FS fsck auto- mount  
#to mount to fsck point type pass mount? options  
/ - /tmp/newroot lofs - yes -  
4.4文件管理命令  
這一節(jié)將介紹文件系統(tǒng)管理命令及其語法規(guī)則、大部分文件系統(tǒng)管理命令包含普通文件系統(tǒng)命令和特別文件系統(tǒng)命令兩部分。普通文件系統(tǒng)命令,可加到特別文件系統(tǒng)部分一起使用,表4.3列出了普通文件管理命令,這些命令在/usr/sbin目錄中,它們大部分有一個對應(yīng)的特別文件系統(tǒng)命令。  
注意:在要直接使用特別文件系統(tǒng)命令,如果你使用了一個文件系統(tǒng)不支持的操作,普通命令會顯示出錯信息::Operation not applicable  
for FSType。  
4.4.1普通命令語法規(guī)則  
大部分普通命令的語法是:  
[-F][-v][][-o] [][operands]  
普通文件系統(tǒng)管理命令  
命令 說明  
clri(1M) 清除inode  
df(1M) 報告磁盤空間、空閑磁盤塊和文件數(shù)  
ff(1M) 列出一個文件系統(tǒng)的文件名和統(tǒng)計信息  
fsck(1M) 檢測一文件系統(tǒng)的完整性,并修復(fù)發(fā)現(xiàn)的損壞  
fsdb(1M) 文件系統(tǒng)調(diào)試器  
fstyp(1M) 確定文件系統(tǒng)的類型  
labelit(1M) 當(dāng)文件系統(tǒng)拷貝到磁帶上時,列出或提供文件系統(tǒng)的標(biāo)號(適用于volcopy命令)  
mkfs(1M) 建立新的文件系統(tǒng)  
mount(1M) 安裝文件系統(tǒng)和遠程資源  
mountall(1M) 安裝文件系統(tǒng)表中說明的全部文件系統(tǒng)  
ncheck(1M) 用inode號產(chǎn)生路徑名清單  
umount(1M) 拆卸文件系統(tǒng)和遠程資源  
umountall(1M) 拆卸文件系統(tǒng)表說明的全部系統(tǒng)  
volcopy(1M) 產(chǎn)生文件系統(tǒng)映象  
4.4.2普通文件系統(tǒng)命令和特別文件系統(tǒng)命令手冊  
普通文件系統(tǒng)命令和特別文件系統(tǒng)均有手冊,在手冊中特別命令緊接普通命令。查看特別命令,在普通命令名后附加一個下劃線和文件系統(tǒng)類型的縮寫即可,  
例如:為了查看安裝hsfs文件系統(tǒng)特別命令手冊,鍵入  
man mount -hsfs  
lofs pcfs 以及procfs的文件系統(tǒng)沒有mount特別命令手冊  
4.4.3利用文件系統(tǒng)命令確定文件系統(tǒng)類型  
普通文件系統(tǒng)命令確定文件系統(tǒng)類型的步驟是:  
1、 如果有-F選擇項,由它決定.  
2、 通過匹配/etc/vfstab中的項和特別設(shè)備來決定任選項,例如:fsck 首先查找與fsck  
device域的一個匹配,如果未找到,則查設(shè)備域。  
3、 對本地文件系統(tǒng)使用/etc/default/fs中說明的缺省值,對遠程文件系統(tǒng)使用/etc/dfs/fstypes中說明有缺省值。  
普通文件系統(tǒng)命令句法描述  
任選項 說明  
-F  
說明文件系統(tǒng)類型,如果不使用該任選項,則尋找/etc/vfstab表中與特別原始設(shè)備或安裝點相匹配的項,否則:從/etc/default/fs取本地文件系統(tǒng)缺省值,從/etc/dfs/fstypes中取遠程文件系統(tǒng)缺省值。  
-v 回顯完整的命令行,顯示行可能包括來自/etc/vfstab中的附加信息,用這一任選項來驗證命令行,它并不執(zhí)行命令。  
各類文件系統(tǒng)共同的選擇項。  
-o 特定某類文件系統(tǒng)的任選項,其格式是跟一空格,然后是由","號分隔并且無空格插入的一系列 [=]對。  
說明文件系統(tǒng),給出存貯文件系統(tǒng)磁盤的安裝點或設(shè)備文件和名稱,對一些命令,文件必須是原始(字符)設(shè)備.對一些命令,則必須是塊設(shè)備,關(guān)于盤的命名請參見第三章。這個參數(shù)有時用來做關(guān)鍵字與/etc/vfstab表中某項相匹配,從而得到別的信息,大多數(shù)情況,這一參數(shù)是需要的,并且緊跟在之后,然而當(dāng)你希望一個命令作用于/etc/vfstab  
文件中說明的所有文件系統(tǒng)時,則不需要這一參數(shù)。  
4.4.4文件系統(tǒng)類型  
如果你想確定某文件系統(tǒng)類型,可以從上述普通命令所使用的文件中來獲取信息。  
 文件系統(tǒng)表(/etc/vfstab)中的FS類型域  
 對本地文件系統(tǒng)使用/etc/default/fs文件  
 對遠程文件系統(tǒng)使用/etc/dfs/fstypes文件  
為了從/etc/vfstab中找出文件系統(tǒng)類型,鍵入grep /etc/vfstab,安裝點信息顯示如下:  
panda%grep /tmp /etc/vfstab  
swap - /tmp tmpfs - yes -  
panda%  
如果vfstab中不含要找的文件系統(tǒng)項,則用下面的命令決定文件系統(tǒng)類型。為了查出安裝的文件系統(tǒng)類型,鍵入grep  
/etc/mnttab,安裝點的信息顯示如下:  
panda% grep /home /etc/mnttab  
panda:(pid129) /home nfs fo  
,ignore,map=/etc/auto-home,indirect,dev21c0004693606637  
bigriver:/export/home/bigriver/tmp-mnt/home/bigriver nfs  
rw,dev21c0005695409833  
panda%  
或鍵入mount所有安裝的文件系統(tǒng)及其類型即可列出:  
panda%mount  
/on/dev/dsk/cot3doso read/write on Tue Dec 24 12:29:22 1991  
/usr on /dev/dsk/cotldos6 read/write on Tue Dec 24 2:29:22 1991  
/proc on /proc read/writ on Tue Dec 24 12:29:22 1991  
/usr/man on swsvr4-50:/export/svr4/man read/write/remote on Mon Dec30  
12:44:11 1991  
/usr/openwin on swsvr4-50:/export/svr4/openwinV3 read/write/remoteon Mon  
Do 30 13:50:54 1991  
/tmp on swap o on Wed Jan 8 13:38:45 1992  
/mnt on swsvr4-50:/export/svr4 read/write/remote on Fri Jan 10 15:51:23  
1992  
/tmp-mnt/home on bigriver:/export/home read/write/remote on Tue  
Jan14\09:24:53 1992  
panda%  
或者用下列步驟:  
1、 鍵入devnm 原始設(shè)備名顯示出來;  
2、 成為超級用戶;  
3、 鍵入fstyp /dev/rdsk/cWtXdYsZ文件系統(tǒng)的類型顯示如下:  
panda% devnm /usr  
/dev/dsk/cotldos6 /usr  
panda%su  
Password:  
# fstyp /dev/rdsk/cot3doso  
ufs  
#  
4.5如何使文件系統(tǒng)有效  
為了使已創(chuàng)建的一個文件系統(tǒng)有效,必須將其進行安裝。一個已安裝的文件系統(tǒng),就意味著它被加到系統(tǒng)目錄樹中指定的某個安裝點上,并且是有效的。根文件系統(tǒng)總是被安裝好的。其它任何文件系統(tǒng)可連到根文件系統(tǒng)上或從根中拆掉。  
可以用下列步驟安裝本地文件系統(tǒng):  
在/etc/vfstab(虛擬文件系統(tǒng)表)文件中加一項。/etc/vfstab中包含的一系列文件系統(tǒng),在系統(tǒng)以多用戶方式啟動時被自動安裝。/etc/vfstab文件已在前面介紹過。  
在命令行中用mount命令安裝。  
其它系統(tǒng)訪問某文件系統(tǒng)之前,必須將該文件系統(tǒng)安裝到網(wǎng)絡(luò)服務(wù)器文件系統(tǒng)中,并使其成為可共享的文件系統(tǒng)(輸出exported)。后面將會介紹怎樣共享服務(wù)器文件,當(dāng)服務(wù)器上的文件系統(tǒng)可共享時,客戶則可以以下列三種方式將共享文件系統(tǒng)安裝為nfs系統(tǒng):  
 在/etc/vfstab表中加一項,以便系統(tǒng)以多用戶方式啟動時,能夠自動安裝該文件系統(tǒng).  
 使用自動安裝程序。當(dāng)用戶進入或退出一個自動安裝目錄時,自動安裝程序就會自動安裝或拆卸對應(yīng)的文件系統(tǒng).  
 在命令行中使用mount命令.  
4.5.1安裝與拆卸  
文件系統(tǒng)可加到系統(tǒng)的目錄層次結(jié)構(gòu)中,這一過程稱為安裝(mounting),為了安裝一個文件系統(tǒng)需要:  
 成為超級用戶。  
 本地系統(tǒng)的一個安裝點,安裝點是指與安裝的文件系統(tǒng)相聯(lián)結(jié)的一個目錄。  
 要安裝的文件系統(tǒng)資源名。(例:/usr)  
一般情況,本地硬盤總是包含在/etc/vfstab文件中,而服務(wù)器上的軟件,如openwindows聯(lián)機手冊或服務(wù)器上的主目錄,是在/etc/vfstab中安裝還是自動安裝,取決于你所采用的策略。  
當(dāng)安裝文件系統(tǒng)時,只要文件系統(tǒng)一安裝好,那么安裝點上原來存在的任何文件或目錄就不再有效。被屏蔽掉的文件并不永久受安裝過程的影響,當(dāng)文件系統(tǒng)拆卸后,原來的文件或目錄又恢復(fù)為有效。安裝目錄最好是采用空目錄,這樣不會屏蔽掉原來的文件。  
系統(tǒng)在/etc/mnttab(mount表)文件中記錄了已安裝的文件系統(tǒng)?梢杂胏at或more命令列出mount表的內(nèi)容。但決不能編輯修改mnttab文件。(/etc/vfstab是可以編輯的)。下面是一個mount表的例子:  
panda%more /etc/mnttab  
/dev/dsk/cot3doso/ufs rw,suid 693186371  
/dev/dsk/cotldos6/usr ufs rw,suid 693186371  
/proc/proc proc rw,suid 693186371  
swap/tmp tmpfs,dev=0 6931863712  
swsvr4-50:/expor/svr4/openwinV3/usr/openwin nfs rw,dev=21c0000 6963186443  
swsvr4-50/export/svr4/man/usr/man nfs rw,dev=22c0000 693186447  
panda:(pid127)/nse nfs  
ro,ignore,map=/etc/auto.nse,indirect,dev=21c0002 69318449  
panda:(pid127)/net nfs ro,ignore,map=-  
hosts,indirect,dev=21c0003 693186449  
panda:(pid127)/home nfs  
ro,ignore,map=/etc/auto-home,indirect,dev=21c0004 693186449  
bigriver:/export/home/bigriver/tmp-mnt/home/bigriver nfs rw,dev=21c0005  
693186673  
panda%  
4.5.1.1安裝與拆卸文件系統(tǒng)命令  
表4.5列出了/usr/sbin目錄下的安裝和拆卸文件系統(tǒng)命令。  
Mount命令不能安裝一個數(shù)據(jù)不一致的讀/寫文件系統(tǒng),所以當(dāng)mount命令或mountall命令返回一個出錯信息時,就需要去檢查文件系統(tǒng)。  
表4.5安裝與拆卸文件系統(tǒng)命令  
命令 說明  
mount(1M) 安裝文件系統(tǒng)和遠程資源  
Mountall(1M) 安裝文件系統(tǒng)表中說明的全部文件系統(tǒng)  
Umount(1M) 拆卸文件系統(tǒng)及遠程資源  
Umountall(1M) 拆卸文件系統(tǒng)表中說明全部文件系統(tǒng)  
文件系統(tǒng)忙時,umount命令不會拆卸它。所謂文件系統(tǒng)忙是指用戶正在該文件系統(tǒng)的某個目錄中操作,或是某個程序找開了該文件系統(tǒng)中的文件。  
4.5.1.2查找已安裝的文件系統(tǒng)  
為了顯示已安裝的文件系統(tǒng),可鍵入mount命令,這時當(dāng)前安裝的文件系統(tǒng)將顯示出來  
panda%mount  
/on/dev/dsk/c0t0d0s0 read/write/setuid on Wed Oct 23 10:08:501991  
/usr on /dev/dsk/c0t0d0s6 read/write/setuid on Wed Oct 23 10:08:501991  
/proc on /proc read/write/setuid on Wed Oct 23 10:08:50 1991  
/tmp on swap on wed Oct 23 10:08:50 1991  
/usr/openwin on cheers:/export/openwin hard/remote on Wed Oct 23 10:11:08  
1991  
/home on blowup:(pid136)read only/intr/map=auto.home/indirect on Wed Oct  
23 10:11:10 1991  
/vol on blowup:(pid136)read only/intr/map=auto.vol/indirect on Wed Oct 23  
10:08:50 1991  
/nse on blowup:(pid136)read only/intr/map=/etc/auto.nse/indirecton Wed Oct  
23 10:08:50 1991  
panda%  
4.5.1.3安裝/etc/vfstab文件中的全部文件系統(tǒng)  
下面是安裝/etc/vfstab文件中全部文件系統(tǒng)的步驟:  
1、 進入超級用戶;  
2、 鍵入mountall /etc/vfstab中所有的本地文件系統(tǒng)被安裝上。  
panda%su  
Password:  
#mountall  
#  
4.5.1.4安裝特定類型的文件系統(tǒng)  
下面說明/etc/vfstab文件中,特定類型的文件系統(tǒng)的安裝步驟,最常見的是本地硬盤的ufs文件系統(tǒng)和網(wǎng)絡(luò)文件系統(tǒng)nfs。  
1、 進入超級用戶  
2、 鍵入mountall -F,/etc/vfstab中的此種類型的文件系統(tǒng)被安裝上。  
下面是安裝nfs類型文件系統(tǒng)的例子。  
panda%su  
Password  
#mountall -F nfs  
#  
4.5.1.5安裝單個文件系統(tǒng)(mount)  
安裝/etc/vfstab中單個文件系統(tǒng)的步驟是:  
1、進入超級用戶:  
2、鍵入mount  
panda%su  
Password:  
#mount /opt  
#  
4.5.1.6拆卸所有的遠程文件系統(tǒng)(umountall -F nfs)  
下面是拆卸遠程文件系統(tǒng)的步驟:  
1、進入超級用戶;  
2、鍵入umountall -F nfs,拆掉/etc/vfstab中全部遠程文件系統(tǒng)。  
panda%/su  
password:  
#umountall -F nfs  
#  
注意:如果你要拆掉全部文件系統(tǒng)(用umountall命令且不帶參數(shù)),系統(tǒng)就不能再使用。必須重新啟動。  
4.5.1.7拆卸個別的文件系統(tǒng)(umount)  
不能拆卸正在使用的安裝目錄,若想拆卸一個正在使用的目錄,必須讓所有的用戶轉(zhuǎn)出這一目錄。  
1、進入超級用戶;  
2、如果必要,讓用戶轉(zhuǎn)出你要拆除的目錄;  
3、鍵入umount 指定的文件系統(tǒng)就被拆除了。  
下面是用mount命令查找安裝點,并拆掉這一安裝點的例子:  
panda%mount  
/on/dev/dsk/c0t0d0s0 read/write/setuid on Wed Oct 23 10:08:501991  
/usr on /dev/dsk/c0t0d0s6 read/write/setuid on Wed Oct 23 10:08:501991  
/proc on /proc read/write/setuid on Wed Oct 23 10:08 50 1991  
/tmp on swap on wed Oct 23 10:08:50 1991  
/usr/openwin on cheers:/export/openwin hard/remote on Wed Oct 23 10:11:08  
1991  
/home on blowup:(pid136)read only/intr/map=auto.home/indirect on Wed Oct  
23 10:11:10 1991  
/vol on blowup:(pid136)read only/intr/map=auto.vol/indirect on Wed Oct 23  
10:08:50 1991  
/nse on blowup:(pid136 read only/intr/map=/etc/auto.nse/indirecton Wed Oct  
23 10:08:50 1991  
[41] panda%su  
Password:  
#cd /  
#umount /home  
#  
4.5.2自動安裝程序  
可以通過nfs實現(xiàn)共享文件系統(tǒng)的安裝,這種方法稱為自動安裝(automounting)。自動安裝程序在后臺運行,根據(jù)需要安裝或拆卸遠程目錄。正在運行自動安裝程序的客戶系統(tǒng),一旦用戶存取自動安裝程序可訪問的遠程文件或目錄,自動安裝程序就自動將用戶要訪問的文件系統(tǒng)安裝到該用戶系統(tǒng)。只要用戶在遠程目錄中或正在使用其中的文件,遠程目錄或文件就是安裝著。如果一定的時間內(nèi)沒訪問遠程文件系統(tǒng),則它自動地被拆掉。自動安裝程序根據(jù)需要自動地安裝或拆卸文件系統(tǒng),除了進入或轉(zhuǎn)出目錄的操作外,不需用戶進行任何干預(yù)。  
可以用自動安裝程序安裝一些文件,用/etc/vfstab文件和mount命令安裝另外一些文件,對于無盤節(jié)點,/etc/vfstab表中必須有/(根),/usr,/usr/kvm幾項,共享文件系統(tǒng)應(yīng)一直保持有效,所以不要用自動安裝程序安裝/usr/share。  
自動安裝程序根據(jù)映象表中的說明對文件系統(tǒng)進行操作,這些映象表可作為NIS,NIS+或本地文件來維護。自動安裝程序映象表可說明文件的多個遠程位置。由于采用了這種方法,當(dāng)其中一個服務(wù)器出問題時,自動安裝程序會再從其它機器上安裝,在映象表中可為每一服務(wù)器分配一個加權(quán)因子,用它來決定哪個服務(wù)器對映象表中的資源有較高的優(yōu)先級。  
當(dāng)系統(tǒng)進入運行第三級(run level  
3)時,將自動啟動自動安裝程序。當(dāng)然也可以從命令行中啟動自動安裝程序。缺省時,sunos5.x系統(tǒng)軟件自動安裝/home。(如何建立和管理自動安裝程序的內(nèi)容已超出本手冊的范圍)。  
4.5.3共享服務(wù)器文件  
nfs是一個分布式文件系統(tǒng),通過nfs可將運行不同操作系統(tǒng)的機器聯(lián)結(jié)在一起例如,運行DOS的系統(tǒng)可與運行UNIX的系統(tǒng)共享文件。  
nfs使得文件系統(tǒng)的實際物理位置與用戶無關(guān)。用戶可通過nfs查看所有相關(guān)文件,而不管它們的位置。由于采用了nfs共享文件,用戶只需在一個系統(tǒng)的盤中放一個拷貝,其它系統(tǒng)可以通過網(wǎng)絡(luò)進行存取,而不需在每個系統(tǒng)中均放一個拷貝。在nfs下,遠程文件系統(tǒng)與本地文件系統(tǒng)看起來沒什么區(qū)別,一個系統(tǒng)稱為nfs服務(wù)器是指該系統(tǒng)上的某些文件系統(tǒng)可通過網(wǎng)絡(luò)共享或輸出(export),服務(wù)器內(nèi)保留著當(dāng)前已輸出的文件系統(tǒng)表及其存取權(quán)限(如讀/寫或只讀)。  
用戶可以通過網(wǎng)絡(luò)共享其它機器(通常是服務(wù)器)的資源,如文件、目錄或設(shè)備等,例如可以與其它機器上的用戶共享第三方廠家的應(yīng)用軟件。  
當(dāng)你準(zhǔn)備讓其它用戶共享你的資源時,必須保證其它的遠程系統(tǒng)安裝你的資源。  
下面的方法可實現(xiàn)資源共享:  
1、用share或shareall命令。  
2、在/etc/dfs/dfstab(分布式文件系統(tǒng)表)文件中加一項。缺省的/etc/dfs/dfstab文件給出了資源共享的語法規(guī)則和實例:  
panda%more /etc/dfs/dfstab  
#place share(1M) commands here for automatic execution  
# on entering init state 3.  
#  
# share [-F fstype][-o options][-d""][resource]  
# .e.g;  
share -F nfs -o rw=engineering-d"home dirs"/export/home2  
share -F nfs/var/mail  
panda%  
4.6檢查文件系統(tǒng)的數(shù)據(jù)一致性(fsck)  
ufs文件系統(tǒng)根據(jù)一些內(nèi)部表來來跟蹤inode、已用掉的塊和可用的塊,當(dāng)這引起內(nèi)部表與磁盤的數(shù)據(jù)沒有適當(dāng)同步(synochronized)時,就產(chǎn)生了不一致,這時就需要修復(fù)文件系統(tǒng)。  
下面是操作系統(tǒng)突然終止時使文件系統(tǒng)毀壞或產(chǎn)生不一致的幾種情況:  
 電源出故障  
 系統(tǒng)故障性阻塞(unplugging)  
 不正常的關(guān)機  
 核心中的軟件錯誤  
文件系統(tǒng)損壞雖然嚴(yán)重,但并不經(jīng)常發(fā)生,系統(tǒng)啟動時會自動檢測文件系統(tǒng),大部分情況下能修復(fù)檢測到的問題。  
文件系統(tǒng)檢測是用fsck(file system  
check)程序?qū)崿F(xiàn)的。fsck命令將已分配的但沒有說明其來源的文件和目錄放在lost+found目錄下,如果該目錄不存在,則由fsck建立。如果lost+found中沒有足夠的空間,fsck也會自動增大其空間。  
下列情況發(fā)生時需要檢測文件系統(tǒng):  
 文件系統(tǒng)不能安裝  
 正在使用的文件系統(tǒng)產(chǎn)生問題  
  
正在使用著的文件系統(tǒng)出現(xiàn)不一致時,控制臺窗口會提示出非常醒目的出錯信息,嚴(yán)重情況會發(fā)生系統(tǒng)癱瘓。使用fsck前請詳細閱讀fsck(1M)手冊。  
4.6.1決定文件系統(tǒng)是否需檢測  
按下列步驟測定文件系統(tǒng)是否需檢測:  
1、 進入超級用戶;  
2、 鍵入fsck –m  
/dev/rdsk/cWtXdYsZ命令,上述命令通過檢查指定的文件系統(tǒng)超級塊中的狀態(tài)標(biāo)志來判斷文件系統(tǒng)是否有問題,是否進一步修復(fù)檢測。如果省略了設(shè)備參數(shù),/etc/vfstab文件中列出的fsck  
pass數(shù)大于0的全部ufs文件系統(tǒng)均需檢測。  
下例中說明第一個文件系統(tǒng)需要檢測,第二個不需要檢測:  
#fsck -m /dev/rdsk/c0t0d0s6  
**/dev/rdsk/c0t0d0s6  
ufs fsck:sanity check:/dev/rdsk/c0t0d0s6 needs checking  
# fsck –m /dev/rdsk/c0t0d0s7  
* */dev/rdsk/c0t0d0s7  
* * */dev/rdsk/c0t0d0s7  
* ufs fsck:sanity check:/dev/rdsk/c0t0d0s7 okay  
#  
4.6.2以交互方式檢測文件系統(tǒng)  
下面是以交互方式檢測文件系統(tǒng)的步驟:  
 進入超級用戶;  
 拆卸文件系統(tǒng);  
 鍵入fsck,/etc/vfstab文件中fsck  
pass域值大于0的文件系統(tǒng)全部被檢測,也可以和安裝點目錄或/dev/rdsk/cWtXdYsZ作參數(shù)進行檢測。檢測中任何不一致處將顯示出來。  
下面的例子中檢測/dev/rdsk/c0t0d0s6并校正其不正確的塊計數(shù):  
#fsck /dev/rdsk/c0t0d0s6  
checkfilesys:/dev/rdsk/c0t0d0s6  
*Phase1 - Check Block and Sizes  
INCORRECT BLOCK COUNT I=2529(6 should be 2)  
CORRECT?y  
* * Phase 2-Check Pathnames  
* *Phase3- Check Connectivity  
* *Phase 4-Check Reference Counts  
* *Phase 5_Cylinder Groups  
Dynamic 4.3 FFFS  
929 files,8928 used.2851 free(75 frags,347 blocks.o.6% fragmentation)  
/dev/rdsk/cotoos6 FILE SYSTEM STATE SET TO OKAY  
*****FILE SYSTEM WAS MODIFIED ********  
4.7備份和恢復(fù)文件系統(tǒng)  
備份是指做文件的拷貝,作為原文件被刪除或毀壞時的安全措施,通常是將其拷到可移動的介質(zhì)中。備份文件后可方便地恢復(fù)誤刪的文件,但最重要的是用于處理嚴(yán)重的硬件故障和其它災(zāi)難性故障。  
備份文件是最關(guān)鍵的系統(tǒng)管理功能之一,按照一定的步驟和計劃實現(xiàn)系統(tǒng)文件的備份有下述三個主要原因:  
 確保系統(tǒng)癱瘓時文件系統(tǒng)的完整性;  
 防止用戶文件被誤刪;  
 作為重新安裝系統(tǒng)或修復(fù)系統(tǒng)的重要保護措施。  
當(dāng)按計劃備份文件系統(tǒng)時,應(yīng)保證能夠?qū)浞菸募謴?fù)為適當(dāng)?shù)漠?dāng)前狀態(tài),另外,你可能也想將備份好的文件系統(tǒng)從一個系統(tǒng)傳到另一個系統(tǒng)中或做為文檔,將文件保存到可移動的介質(zhì)上,你就能夠移動或改變系統(tǒng)上的文件。  
按計劃備份文件需考慮下面幾方面的內(nèi)容:  
 用哪個命令備份文件系統(tǒng)  
 用何種介質(zhì)  
 使用什么備份計劃  
 這一系統(tǒng)中哪些文件對用戶是至關(guān)重要的  
 這些要備份的文件在什么地方:它們是在一個單獨的文件系統(tǒng)中嗎?  
 這些文件經(jīng)常變化嗎?  
 當(dāng)文件丟失或損壞時需要多快恢復(fù)?  
 為備份文件,相關(guān)文件系統(tǒng)可經(jīng)常拆卸嗎?  
介紹可能的備份策略已超出本手冊范圍,參見聯(lián)機手冊ufsdump(1M)命令中提供的轉(zhuǎn)貯(dump)策略。  
下面介紹如何用ufsdump命令備份文件,用ufsrestore命令恢復(fù)文件。  
4.7.1用QIC-150盒式磁帶備份文件系統(tǒng)(ufsdump)  
為了備份完整的文件系統(tǒng),所有的用戶必須退出,并使系統(tǒng)進入單用戶方式。(磁帶設(shè)備命名的內(nèi)容請參見第三章"磁帶設(shè)備命名約定")。  
可以在磁帶設(shè)備名之前加從遠程驅(qū)動器上進行備份和恢復(fù)。下面是語法:/dev/rmt/。  
例如:遠程系統(tǒng)panda上的磁帶機名是/dev/rmt/0,則遠程設(shè)備名應(yīng)為panda:/dev/rmt/0。  
下列步驟說明如何實現(xiàn)文件系統(tǒng)級(完整)備份:  
 鍵入init s這時系統(tǒng)進入單用戶方式,這樣就保證了備份全部文件系統(tǒng)時沒有用戶修改文件系統(tǒng)。  
 插入QIC-150磁帶。  
 鍵入ufsdump 0 cuf /dev/rmt/ /dev/dsk/cWtXdYsZ。  
任選項0說明的0級(全部)備份。C任選項說明是盒式磁帶;U任選項更新轉(zhuǎn)貯記錄;f任選項說明隨后是設(shè)備文件名。也可以鍵入硬盤區(qū)代替?zhèn)浞莸奈募到y(tǒng),例如用c0t0d0s7代替/files1。  
panda%su  
Password:  
# init s  
#ufsdump 0 cuf /dev/rmt/0 /dev/dsk/c0t0d0s7  
DUMP:Date of this level 0dump:Wed Mar 11 10:16:53 1992  
DUMP:Date of last level 0 dump:the epoch  
DUMP:Dumping /dev/rdsk/c0t3d0s7(/export/home)to/dev /rmt/0  
DUMP:mapping (Pass I)[regular files]  
DUMP:estimated 956 blocks (478KB)  
DUMP:Writing 63 Kilobyte records  
DUMP:dumping(Pass III)[directories]  
DUMP:dumping (pass IV)[regular files]  
DUMP:level o dump om Wed Mar 11 10:16:53 1993  
DUMP:956 blocks (478KB)on 1 volume  
DUMP:DUMP IS DONE  
#  
如果一盒帶存不下,則ufsdump命令會提醒你什么時候該換一盒新帶。在磁帶上標(biāo)明命令、文件系統(tǒng)名及備份日期等信息。  
4.7.1.1實現(xiàn)增量備份  
用ufsdump命令可指定不同的備份級別,這樣就可只備份那些上次備份過,而又已經(jīng)修改了的比較低級別的文件,下列步驟說明在最后一次完整的轉(zhuǎn)貯上增量式備份的過程:  
1、 使系統(tǒng)進入單用戶模式;  
2、 進入超級用戶;  
3、 將磁帶放入磁帶機中;  
4、 鍵入ufsdump [1-9] ucf /dev/rmt/  
/dev/rdsk/ctds在ufsdump參數(shù)前加上級數(shù),例如:9級備份,鍵入9ucf;  
5、 執(zhí)行完ufsdump命令后取出磁帶并貼上標(biāo)簽。  
4.7.2恢復(fù)備份文件系統(tǒng)  
ufsrestore命令可以將用ufsdump命令備份的文件拷貝到當(dāng)前工作目錄中,可以用ufsrestore命令重裝使用0級備份后使用增量備份的文件系統(tǒng),或從任何備份帶中恢復(fù)一個或多個文件,文件是以原始的所有者、最后的修改時間和模式(許可權(quán))進行恢復(fù)的;謴(fù)文件或文件系統(tǒng)之前需要知道:  
 需要哪個帶或盤;  
 備份文件系統(tǒng)的設(shè)備名、你使用的磁帶設(shè)備類型;  
 磁帶設(shè)備名(本地或遠程)。  
4.7.2.1決定使用哪一備份帶  
在開始恢復(fù)文件或文件系統(tǒng)之前,必須決定使用哪一備份磁帶,當(dāng)需要恢復(fù)全部文件系統(tǒng)時,需要最新的0級備份帶。同樣,如果是部分備份就需要最新的在較高級別上做的增量備份帶,具體情況需要參考你使用的備份計劃來確定你需要的級別和磁帶號。例如,如果做了0級和9級的備份,就需要0級和9級的最新的備份帶。  
下面是決定用哪個帶恢復(fù)單獨的文件或整個文件系統(tǒng)的步驟:  
1、 向用戶尋問有關(guān)文件或文件系統(tǒng)丟失的日期,或文件要被復(fù)原到的大概時間。  
2、  
參考你的備份計劃找出最后備份的日期,不一定用最新的備份版本恢復(fù)。為了恢復(fù)文件的適當(dāng)?shù)陌姹,要從逆向查看增量備份文件,從最高級看到最低級,從最新的看到最舊的。  
3、 如果有用ufsdump -a命令產(chǎn)生的在線存檔文件,則鍵入ufsrestore ta  
/path/一定要用文件的全程路徑,這時存貯的文件和介質(zhì)就會顯示出來。  
4、 找出包含備份的介質(zhì),要知道存貯介質(zhì)是找到數(shù)月甚至數(shù)年所前的備份介質(zhì)。  
5、 這步是可選的,將存貯介質(zhì)插入驅(qū)動器中,鍵入ufsrestore tf  
/path/,對一定用完整的路徑名。如果一個文件在備份介質(zhì)中,則顯示出它的文件名和inode號,否則顯示信息說明此文件不在該介質(zhì)中。  
6、 如果一個帶上有多個備份文件,可以用-sn任選項來定位,選擇需要的備份文件。例如鍵入ufsrestore xfs  
/dev/rmt/05將磁帶定位在第五個備份文件上并將其恢復(fù)。  
4.7.2.2恢復(fù)全部備份  
下列步驟說明,采用QIC-150盒式磁帶恢復(fù)一個文件系統(tǒng)的完整備份的過程,注意:這一過程將生成一新的文件系統(tǒng),并將毀掉盤上原來存在全部文件系統(tǒng)。  
1、 進入超級用戶;  
2、 鍵入init s系統(tǒng)進入單用戶模式,保證了沒有人使用你將恢復(fù)的文件系統(tǒng);  
3、 鍵入umount 命令將相應(yīng)的安裝點(mount-point)(例:/files1)拆卸下來;  
4、 鍵入newfs  
/dev/rdsk/cWtXdYsZ將磁盤區(qū)對應(yīng)的原始設(shè)備文件(例如:/de/rsk/c0t0d0s7對應(yīng)/home)清掉并重建文件系統(tǒng);  
5、 鍵入mount  
/dev/dsk/cWtXdYsZ將相應(yīng)的塊文件設(shè)備的文件系統(tǒng)(例如:/dev/dsk/c0t0d0s7對應(yīng)的/home)重新安裝在相應(yīng)的安裝點;  
6、 鍵入cd 則進入你希望做恢復(fù)的目錄中;  
7、 插入QIC-150盒式磁帶;  
8、 鍵入ufsrestore rvf /dev/rmt/0h將文件系統(tǒng)恢復(fù)。  
下例說明恢復(fù)/files1對應(yīng)的c0t0d0s7盤區(qū):  
panda%su  
Password:  
#init s  
#umount /files1  
#newfs /dev/rdsk/c0t0d0s7  
#mount /dev/dsk/c0t0d0s7 /files1  
#cd /files1  
#ufsrestore rvf /dev/rmt/0h  
4.7.2.3交互式恢復(fù)文件  
恢復(fù)單個文件或目錄時,將它們存入臨時目錄(例如:/var/tmp)是個好方法,經(jīng)過確認(rèn)后才執(zhí)行恢復(fù)操作,事實上要確保不會用備份帶上的舊版本文件重寫已有的新版本。下面是交互式恢復(fù)文件的步驟:  
1、 進入超級用戶;  
2、 將磁帶寫保護;  
3、 將備份帶放入磁帶驅(qū)動器中;  
4、 鍵入cd /var/tmp,如果你希望將文件存放在其它目錄下,則用相應(yīng)的目錄名代替/var/tmp;  
5、 鍵入ufsrestore if /dev/rmt/,一些提示信息和提示號顯示出來;  
6、 建立要恢復(fù)的文件清單;  
7、 用ls命令列出一個目錄的內(nèi)容:  
 鍵入cd 改變目錄  
 加一個目錄名或文件名到將要恢復(fù)的文件清單,鍵入add  
 若要刪除將要恢復(fù)的文件清單中的目錄名或文件名,鍵入delete  
 保持當(dāng)前目錄的模式不變,鍵入setmodes然后鍵入n并回車;  
8、 建完清單后,鍵入extract,ufsrestore會問你用哪一卷;  
9、 鍵入卷號回車,如果只有1卷,鍵入1并回車,清單中的文件或目錄就被取出并恢復(fù)到當(dāng)前工作目錄中;  
10、 鍵入quit則顯示shell提示符;  
11、 用ls -l命令列出已恢復(fù)的文件或目錄;  
12、 檢查文件列表,確保所有文件或目錄均被恢復(fù);  
13、 用mv命令將文件移到合適的目錄中。  
下例說明從pubs目錄中恢復(fù)backup.example和junk文件的過程:  
#cd /var/tmp  
#ufsrestore if /dev/rmt/0  
ufsrestore>ls  
:  
lost+found/pubs/  
ufsrestore>cd pubs  
ufsrestore>ls  
./pubs:  
.Xauthority login  
.profile backup.example%  
.Xdefaults .mtdeletelog  
wastebasket/ core  
.cshrc openwin-init  
junk/ dead.letter  
desksetdefaults .openwin-init.Bak  
backup.examples junk  
usrestore>add backupo.examples  
ufsrestore>add junk  
ufsrestore>setmodes  
set owner/mode for "."?[yn]n  
ufsrestore>extract  
you have not read any volumes yet  
Unless you know which volume your
gunguymadman 回復(fù)于:2005-04-06 16:10:51
4.7.2.3交互式恢復(fù)文件  
恢復(fù)單個文件或目錄時,將它們存入臨時目錄(例如:/var/tmp)是個好方法,經(jīng)過確認(rèn)后才執(zhí)行恢復(fù)操作,事實上要確保不會用備份帶上的舊版本文件重寫已有的新版本。下面是交互式恢復(fù)文件的步驟:  
1、 進入超級用戶;  
2、 將磁帶寫保護;  
3、 將備份帶放入磁帶驅(qū)動器中;  
4、 鍵入cd /var/tmp,如果你希望將文件存放在其它目錄下,則用相應(yīng)的目錄名代替/var/tmp;  
5、 鍵入ufsrestore if /dev/rmt/,一些提示信息和提示號顯示出來;  
6、 建立要恢復(fù)的文件清單;  
7、 用ls命令列出一個目錄的內(nèi)容:  
 鍵入cd 改變目錄  
 加一個目錄名或文件名到將要恢復(fù)的文件清單,鍵入add  
 若要刪除將要恢復(fù)的文件清單中的目錄名或文件名,鍵入delete  
 保持當(dāng)前目錄的模式不變,鍵入setmodes然后鍵入n并回車;  
8、 建完清單后,鍵入extract,ufsrestore會問你用哪一卷;  
9、 鍵入卷號回車,如果只有1卷,鍵入1并回車,清單中的文件或目錄就被取出并恢復(fù)到當(dāng)前工作目錄中;  
10、 鍵入quit則顯示shell提示符;  
11、 用ls -l命令列出已恢復(fù)的文件或目錄;  
12、 檢查文件列表,確保所有文件或目錄均被恢復(fù);  
13、 用mv命令將文件移到合適的目錄中。  
下例說明從pubs目錄中恢復(fù)backup.example和junk文件的過程:  
#cd /var/tmp  
#ufsrestore if /dev/rmt/0  
ufsrestore>ls  
:  
lost+found/pubs/  
ufsrestore>cd pubs  
ufsrestore>ls  
./pubs:  
.Xauthority login  
.profile backup.example%  
.Xdefaults .mtdeletelog  
wastebasket/ core  
.cshrc openwin-init  
junk/ dead.letter  
desksetdefaults .openwin-init.Bak  
backup.examples junk  
usrestore>add backupo.examples  
ufsrestore>add junk  
ufsrestore>setmodes  
set owner/mode for "."?[yn]n  
ufsrestore>extract  
you have not read any volumes yet  
Unless you know which volume your file(s)are on you should start  
with the last volume and work towards the first.  
Specify next volume #:1  
set owner/mode for "."?(yn)n  
ufsrestore>quit  
#ls-1  
total 6  
drwxrwxrwt 3sys sys512 Mar 11 10:36./  
drwxrwxr-x 18 oot sys512 Mar 10 16:43.  
Drwxr-xr-x2 pubs staff 512 Mar 11 10: 11 pubs/  
# pwd  
# var/tmp  
# cd pubs  
# ls  
./ ../ backup.examples junk  
#  
4.7.2.4從備份帶中恢復(fù)單個文件( ufsrestore)  
下面是從備份帶上恢復(fù)單個文件的過程:  
1、 進入超級用戶;  
2、 將備份帶插入;  
3、 鍵入cd /var/tmp進入/var/tmp目錄下,如果要將備份文件恢復(fù)到不同的目錄中,用相應(yīng)的目錄代替/var/tmp即可;  
4、 鍵入ufsrestore xf /dev/rmt/ ,x任選項說明拷貝文件或目錄時是否設(shè)置所有者/模式的信息;  
5、 鍵入n,目錄的模式保持不變;  
6、 鍵入卷號,如果只有1卷,鍵入1,這時文件被恢復(fù)到當(dāng)前工作目錄中;  
7、 鍵入ls –l 文件清單顯示出來;  
8、 用mv命令將文件移到合適的目錄中。  
第5章、管理網(wǎng)絡(luò)服務(wù)  
本章將介紹:檢查遠程系統(tǒng)狀態(tài)、向遠程系統(tǒng)注冊(rlogin)、系統(tǒng)之間傳送文件(rcp,ftp)、管理NIS+數(shù)據(jù)庫(admintool)。  
5.1檢查遠程系統(tǒng)狀態(tài)  
這一節(jié)說明顯示遠程系統(tǒng)狀態(tài)的命令:rup、ping及rcpinfo –d。  
5.1.1確定一個遠程系統(tǒng)已運行了多長時間  
命令rup告訴你系統(tǒng)運行的時間及平均負載。當(dāng)鍵入這個命令時系統(tǒng)顯示出主機名、運行時間及平均負載。  
panda%rup ash  
ash up 59 days,3:42,load average:0.12,0.12,0.01  
panda%  
如果在命令后面不跟隨任選參數(shù),還可以顯示出子網(wǎng)上所有遠程主機的一些信息,如果是以表的形式顯示,則可以使用表中的任選項對輸入分類。  
表5.1 RUP命令的任選項  
選項 功能  
-h 按主機名字字母順序分類顯示  
-l 按平均負載字母順序分類顯示  
-t 按運行時間長短分類  
下例說明,輸出按主機名的字母順序分類;  
panda%rup -h  
ash up 1 day,1:42,load average,0.00,0.31,0.34  
elm up 14 days, 0 min, load average:0.07,0.01,0.00  
maple up 32 days,14:39,load average:0.21,0.05.0.00  
panda up 8 days, 15:44,load average.o.02,0.00.0.00  
panda%  
5.1.2確定一個遠程系統(tǒng)是否在運行(ping\rup\rpcinfo-p)  
下面的步驟判斷一個遠程系統(tǒng)是否在運行:  
 鍵入ping ,回答信息" is alive"。意指這個系統(tǒng)在網(wǎng)絡(luò)上是可以存取的,若出現(xiàn)信息"ping:unknown  
host",指這個系統(tǒng)可能不存在,因為名字解析系統(tǒng)不能找到這個名字的機器。若出現(xiàn)信息"ping:no answer from  
",指遠程系統(tǒng)可能沒有在運行。  
 鍵入rup 顯示系統(tǒng)運行時間及平均負載的信息。  
 鍵入rpcinfo -p,顯示服務(wù)的相關(guān)信息。  
 鍵入rlogin ,注冊到遠程系統(tǒng)。  
 以上以r開頭的命令需要遠程系統(tǒng)允許才可能得到相關(guān)信息。  
openet%ping panda  
panda is alive  
openet%rup panda  
panda up 3 days,15:10 load average:0.07,0.08.0.09  
openet% rpcinfo-p panda  
program vers proto port service  
program vers proto port service  
100000 3 udp 111 portmapper  
100000 2 udp 111 portmapper  
100000 3 rcp 111 portmapper  
100000 2 tcp 111 portmapper  
100007 3 tcp 1029 ypbing  
100007 3 udp 1025 tobind  
100021 1 tcp 1030 nlockmgr  
100021 1 udp 1026 mlockmgr  
100024 1 tcp 1028 status  
100024 1 udp 1027 status  
100021 3 tcp 1030 nlockmgr  
100021 3 udp 1026 nlockmgr  
100020 2 tcp 4045 llockmgr  
100020 2 udp 4045 llockmgr  
10021 2 tcp 1030 nlockmgr  
openet%rlogin panda  
password  
last login; Mon Mar 2 10 :31 56 from cinderella  
openet%  
還可以鍵ping 的命令格式,系統(tǒng)會顯示信息"is alive",意指系統(tǒng)在網(wǎng)絡(luò)上是可存取的。若顯示信處息"ping:no answer  
from,即意指網(wǎng)絡(luò)上沒有激活;蝻@示信息"ping:unreachable address from ....  
",即意指這個系統(tǒng)在網(wǎng)絡(luò)上可能不存在,因為沒有路由可以到此地址。  
panda%ping 129.144.52.199  
129.144.52.199 is alive  
panda% ping 129.144.52.200  
unknown host 129.144.52.200  
panda% ping 129.145.52.199  
ping:no answer from 129.145.52.119  
panda%  
5.2注冊到一個遠程系統(tǒng)(rlogin)  
下面是注冊到遠程系統(tǒng)的步驟:  
1、鍵入rlogin ,這時系統(tǒng)可能提示你鍵入口令。  
2、如果你在想注冊的那個系統(tǒng)上有一個本地帳號,則鍵入口令。否則,鍵入你NIS+口令。如果你在這上系統(tǒng)上有一個可存取的主目錄,就注冊進入到那個目錄。否則只能注冊到根(/)目錄上。  
panda%rlogin openet  
password:  
no directory:logging in with home=/  
Last login:Tue Sep 17 13:54:28 from 119  
sun microsystems,inc,sunos5.0 june 1992  
openet%  
5.3系統(tǒng)之間傳送文件(rcp、ftp)  
如果網(wǎng)絡(luò)環(huán)境設(shè)置了automount,可以直接使用cp及mv命令在系統(tǒng)之間傳送文件,但本節(jié)只討論如何使用RCP及FTP命令在系統(tǒng)之間傳送文件  
5.3.1使用RCP命令  
要使用遠程拷貝命令從遠程系統(tǒng)上傳送文件到本地機器上,鍵入RCP   
,如果你有存取這個遠程系統(tǒng)的合法權(quán)限,那么,文件就拷貝到你指定的目標(biāo)路徑位置上。  
下例說明,將文件quest從系統(tǒng)ash的/tp目錄,拷貝到系統(tǒng)panda的當(dāng)前工作目錄中:  
panda% rcp ash:/tmp/quest.  
panda%  
要從本地系統(tǒng)傳送一個文件到遠程系統(tǒng),鍵入rcp ,如果你有存取遠程系統(tǒng)權(quán)限的話,就將文件從本地系統(tǒng)拷貝到你指定的遠程目標(biāo)路徑名中。  
下例說明,將文件quest從系統(tǒng)panda的當(dāng)前工作目錄拷貝到系統(tǒng)openet的/tmp目錄下:  
panda%rcp quest openet:/tmp  
panda%  
如果需要改變文件名,可以將文件名作為目標(biāo)中徑名的一部分。例如,將文件quest改名為question,并將其放到/tmp目錄中,則鍵入/tmp/question作為目標(biāo)路徑名。  
5.3.2使用文件傳送程序(ftp)  
下面是使用文件傳送程序從本地系統(tǒng)傳送一個文件到遠程系統(tǒng)的步驟。  
注:要使用文件傳送程序,可能需要在每個系統(tǒng)上有一個你的帳號,或在/.rhosts文件中有個入口,有些系統(tǒng)允許匿名登錄是以anonymous或ftp作為注冊名,并在口令提示時打入形如電子郵件地址的字符串。  
如果有一個NIS或NIS+帳號,可以使用注冊名及網(wǎng)絡(luò)口令通過FTP存取遠程系統(tǒng)。  
1、 鍵入ftp命令,則FTP>提示符顯現(xiàn)  
2、 鍵入open ,系統(tǒng)顯示連接信息,并請求用戶輸入用戶名。  
3、 鍵入遠程系統(tǒng)上的用戶名。  
4、 系統(tǒng)請求你輸入口令(如果無口令,也可能不出現(xiàn))。  
5、 鍵入口令(如果需要),系統(tǒng)注冊信息及FTP>提示出現(xiàn)。  
6、  
鍵入bin設(shè)置二進制格式,或asc設(shè)置ASCII格式,這個命令設(shè)置文件傳送時的類型。bin格式傳送時對文件不作任何更改。asc格式傳送時,根據(jù)雙方系統(tǒng)的類型,自動將文件中的換行符更改為回車符和換行符(如果文件是從unix系統(tǒng)傳送至DOS系統(tǒng)),或相反(如果從DOS系統(tǒng)傳送到unix系統(tǒng)),或不變(兩端系統(tǒng)相同)。  
7、 鍵入put  ,系統(tǒng)就顯示文件傳送信息并出現(xiàn)ftp>提示。  
8、 鍵入quit則goodbye信息及shell命令提示符出現(xiàn)  
panda%ftp  
ftp>open elm  
Connected to elm  
220 elm FTP server(unix(r ) system v Release 4.0)ready.  
Name(elm:testuser):testuser  
331 Password required for testuser  
Password:  
230 User ignatz logged in .  
ftp>asc  
ftp>put quest/tmp/quest  
200 PORT command successful.  
150 ASCII data connection for /tmp/quest  
(129. 144.52.199.1333)  
226 Transfer complete  
ftp>quit  
221 Goodbye.  
panda%  
可以使用send命令替代put命令,還可以使用mput命令拷貝多個文件,但沒有msend命令,詳細內(nèi)容請見ftp(1)手冊。注:你必須在對方系統(tǒng)上有一個帳號或?qū)Ψ较到y(tǒng)允許匿名登錄才能使用文件傳送程序  
如果你有一個NIS或NIS+帳號的話,你可以使用你的注冊名及網(wǎng)絡(luò)口令通過ftp存取遠程系統(tǒng)。下面是使用文件傳送程序?qū)⑦h程系統(tǒng)的文件傳送到本地系統(tǒng)的步驟:  
1、鍵入ftp命令,則ftp>提示符出現(xiàn)  
2、鍵入open,系統(tǒng)顯示連接信息,并請求你的用戶名  
3、鍵入遠程系統(tǒng)上你的用戶名并按回車.如果需要口令的話,會請求你輸入  
4、如果需要,鍵入口令,系統(tǒng)顯示注冊信息及ftp>提示  
5、鍵入bin設(shè)置二進制格式,或asc設(shè)置ascii格式,這步設(shè)置文件類型  
6、鍵入get  并按回車,顯示傳送信息及ftp>提示信息  
7、鍵入quit,系統(tǒng)顯示goodbye信息,退出ftp命令,重新顯示shell提示符。  
panda%ftp  
ftp>open clm  
Connected to elm  
220 elm FTP server (UNIX(r)system v Release 4.0) ready.  
Name (elm;ignatz):ignatz  
331 Password required for ignatz.  
Password  
230user ignatz logged in .  
ftp>asc  
ftp>get quest/tmp/quest  
200 port command successful.  
150 ASCII data connection for /tmp/quest  
(129. 144.52.119.1333)  
266 transfer complete.  
Tp>quit  
221 Goodbye  
panda%  
注:可以使用mget命令拷貝多個文件,詳細資料見ftp(1)手冊  
第6章、管理用戶帳號和用戶組  
本章主要介紹如何使用管理工具(Administration  
Tool)來建立和管理用戶帳號以及用戶組,該管理工具用于編輯NIS+數(shù)據(jù)庫和本地/etc目錄下的文件,同時,它還允許用戶查看NIS  
map中的信息,但不提供對這些信息的編輯功能。  
注意: Solaris 2.x提供了以下的SVR4  
useradd命令:useradd、userdel、usermod、groupadd、groupmod和groupdel。由于這些命令與網(wǎng)絡(luò)關(guān)系不大,因而不在本章中討論。如果想要在獨立系統(tǒng)中使用這些命令管理用戶帳號,請參閱合適手冊。  
6.1增加和管理用戶帳號  
在下面幾節(jié)中我們將介紹如何使用管理工具來增加和刪除用戶帳號,在Solaris  
2.0下,可以通過編輯Passwd數(shù)據(jù)庫或本地的/etc/passwd文件來增加用戶,但管理工具不會自動為用戶建立主目錄。而在Solaris  
2.1下,用戶管理器(User Manager)則為用戶提供了編輯Passwd數(shù)據(jù)庫和建立用戶主目錄的功能。  
6.1.1增加用戶帳號  
在向網(wǎng)絡(luò)中增加用戶之前,必須首先建立并配置好用戶系統(tǒng),如果需要,還必須在網(wǎng)絡(luò)上安裝并運行NIS+或NIS軟件。(只有4.x系統(tǒng)可以成為NIS服務(wù),而NIS客戶則可用4.x或5.x  
系統(tǒng)來安裝)。  
增加一個用戶需要完成以下兩步:設(shè)置用戶帳號、為用戶提供工作環(huán)境。  
 編輯Passwd數(shù)據(jù)庫  
 定義用戶組  
 建立主目錄  
 定義用戶環(huán)境  
 建立口令  
在以下幾節(jié)中,我們將介紹如何完成這些工作。  
6.1.1.1編輯Passwd數(shù)據(jù)庫  
在編輯Passwd數(shù)據(jù)庫或本地的/etc/passwd文件之前,必須首先成為系統(tǒng)管理組(GID14)的成員,如果系統(tǒng)中正在運行NIS+,那么還必須具備建立或刪除NIS+數(shù)據(jù)的合適權(quán)限,之后就可以使用網(wǎng)絡(luò)上任何系統(tǒng)的管理工具來改變核心NIS+數(shù)據(jù)庫或本地系統(tǒng)的etc/passwd文件了。  
增加一個用戶,需要知道以下信息:  
 注冊名(login name)  
 用戶號(UID)  
 基本組號(GID)  
 識別信息(姓名、辦公地點、家用電話及其它)  
 主目錄(home directory)  
 注冊shell  
按以下步驟在NIS+網(wǎng)絡(luò)數(shù)據(jù)庫或本地的/etc/passwd文件中增加用戶:  
1、鍵入openwin,啟動Open Windows.  
2、鍵入admintool,啟動管理工具并顯示Adiminstration Tool窗口.  
3、用鼠標(biāo)SELECT Database Manager圖標(biāo)顯示Database Manager窗口.  
4、SELECT Passwd數(shù)據(jù)庫,在NIS+命名設(shè)備或None(本地/etc文件)上用鼠標(biāo)點中并點擊Load按鈕,顯示出Passwd  
Database窗口.  
5、如果是在一個大型的網(wǎng)絡(luò)中,那么可能需要搜索某個注冊名或UID,以確信它們沒有被使用過,在View菜單中選擇Find,在文字域中鍵入注冊名或UID,然后用鼠標(biāo)點擊Find按鈕,如果搜索到了一項,那么該項就被點亮,否則在Passwd  
Database 窗口的底部顯示出"No match"信息.  
6、在Edit菜單中選擇Add Entry一項,顯示出Add Entry窗口.  
7、在合適的文字域鍵入用戶名和用戶ID(UID).  
8、當(dāng)用戶第一次注冊時,其缺省情況是無口令狀態(tài),如果想要選擇一個不同的口令狀態(tài),可在Passwd  
Status菜單中選擇另外一項,菜單中各項有含義如表6.1所示.  
9、在文字域中鍵入其余的信息,表6.2 描述了每個域中的具體內(nèi)容,另外Database  
Manager也為用戶提供了聯(lián)機幫助信息,用戶只需將箭頭移到某一項標(biāo)簽上或文字域中,然后按鍵盤上的Help鍵,即可得到關(guān)于該項的詳細說明.  
10、當(dāng)所有信息都輸入完成以后,用鼠標(biāo)點擊Add 按鈕將它們存入Passwd 數(shù)據(jù)庫或/etc/passwd文件中,如果顯示了"...cannot  
execute method,access  
denied..."信息,那么就需要編輯NIS+組表或/etc/group文件,在系統(tǒng)管理員組(GID)中建立或增加你的注冊名.  
編輯完P(guān)asswd數(shù)據(jù)庫后,還需建立一個主目錄并為用戶設(shè)置環(huán)境,這些過程將在下面幾節(jié)中介紹。  
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  
表6.1 Password Status菜單中的口令狀態(tài)選擇  
口令狀態(tài) 描述  
Password is cleared 每個帳號需要一個口令,當(dāng)用戶第一次注冊時,系統(tǒng)將  
until first login 提示用戶輸入口令  
Accunt is locked 當(dāng)輸入非法口令時,帳號無效,此時,用戶可通過指定  
一個新的口令來講該帳號進行解鎖,這種類型的帳號允  
許用戶擁有文件但無法注冊  
No password-rood setuid 帳號無法直接注冊,它允許lp或uucp 等程序在某  
access only 個帳號下運行,但用戶無法注冊  
Normal password is set 當(dāng)某帳號已經(jīng)有一個口令時,可選擇該項  
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  
注意:  
一個沒有口令的帳號是無法建立的,同時其口令不能在數(shù)據(jù)庫管理器中直接定義而只能使用nispasswd、yppasswd或passwd命令來加以定義.  
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  
表6.2 口令數(shù)據(jù)庫(Passwd Database)Add Entry窗口中各域的內(nèi)容  
域 描述  
User name 用字符(包括數(shù)字)組成一個唯一的注冊名  
User ID 輸入一個100-60000之間的唯一整數(shù),用于在系統(tǒng)內(nèi)部標(biāo)  
識用戶  
Passwor Status 見表7.1  
Comment(GOOS) 輸入可選信息,如用戶實際名稱、電話號碼或所在機構(gòu)  
Home Path 輸入用戶主目錄的路徑,一般地,路徑為/home/  
,注意,在Solaris 2.x系統(tǒng)中,系統(tǒng)名不再是用戶目錄  
路徑中的一部分  
Shell 輸入注冊時啟動的shell全程路徑: Bourne shell的是  
bin/sh C shell是bin/csh,Korn shell的是/bin/ksh  
缺省值是Bourne shell  
Group ID 輸入一個0-60000之間的唯一整數(shù),用于標(biāo)識用戶所屬的  
基本組(primary group).  
Max Days Valid 輸入口令有效最大天數(shù),如果該項空白,則口令不會失效  
Days Warning 輸入在口令失效前開始警告用戶的天數(shù)  
Last Mod Date 顯示從1970年1月1日開始一直到口令最近一次被修改  
時間的天數(shù)(8085表示1992年2月28日)該域內(nèi)容是不  
允許修改的  
Expiration Date 輸入用戶帳號被注銷的絕對日期,該日期以1970年1月  
1日起計算的天數(shù)來表示,(如8050表示1992年1日28  
日)如果該域空白,則口令不會失效  
Min Change Days 輸入兩次改變口令之間所允許的最小天數(shù)  
Max Inactive Days 輸入某帳號被凍結(jié)前失效的天數(shù)  
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  
6.1.1.2定義用戶組  
如果想在某個組中增加用戶,必須編輯組數(shù)據(jù)庫(Group  
database),并在該組成員表增加用戶注冊名,本節(jié)描述了如何向某個組增加一個用戶的過程,在這之前,首先需要知道用戶注冊名,用戶ID(UID)以及組名和組ID。  
1、 在Database Manager窗口中,點亮組數(shù)據(jù)庫,用鼠標(biāo)選擇NIS+或None(本etc文件)并點擊Load按鈕。  
2、 用鼠標(biāo)選擇想修改的一項,該項被點亮。從Edit菜單中選擇Modify Entry,此時打開Modify  
Entry窗口,并顯示出被選項在組數(shù)據(jù)庫(或文件)中的當(dāng)前信息。  
3、 在成員文字域中增加用戶注冊名,當(dāng)你輸錯時,可按Reset按鈕,以便重輸信息。  
4、用鼠標(biāo)選擇Modify后,組數(shù)據(jù)庫(或本地/etc/group文件)立刻修改。  
5、如果你想讓該用戶屬于別的組,則重復(fù)以上步驟,在別的組中增加該用戶。  
注意:如果你不使用命名服務(wù)(naming  
service),那么必須重復(fù)以上步驟,才能對屬于同一組所有用戶更新到其它系統(tǒng)上的/etc/group文件,為了編輯其它系統(tǒng)上的/etc/group文件,用戶必須返回Load  
Database窗口,并在use /etc files on host文件域中鍵入系統(tǒng)名。  
6.1.1.3建立主目錄(home director)  
主目錄是文件系統(tǒng)一部分,它分配給每個用戶用于存貯私人文件,按照用戶所創(chuàng)建的文件種類以及其工作性質(zhì)給每個用戶分配的主目錄空間可以是不同的,一般地,你可以為每個用戶的主目錄分配15Mb左右的磁盤空間。  
用戶的主目錄可以在本地文件系統(tǒng)或遠程文件服務(wù)器中,其路徑名約定如/export/home/。注意:這是Solaris  
2.x的一種新的約定,服務(wù)器名不再包含在用戶的主目錄路徑中,在大型服務(wù)器的/export目錄下,可以為不同的用戶創(chuàng)建戶主目錄,如homel,home2,home3等,不管用戶的主目錄安放在哪里,他們都能通過名為/home/安裝點訪到自己的主目錄。  
本節(jié)描述Solaris  
2.x中主目錄的安裝方法,在這之前,我們先假設(shè)用戶注冊的系統(tǒng)是在網(wǎng)絡(luò)上,用Automount自動安裝的用戶主目錄是可訪問的,并且利用系統(tǒng)提供share共享命令可以使用戶在別的系統(tǒng)上通過網(wǎng)絡(luò)訪問本地的用戶目錄。  
主目錄的安裝方法有以下兩種:  
 在NIS+Auto-home數(shù)據(jù)庫,NIS  
auto-home表或本地/etc/auto-home文件中增加一項,自動安裝主目錄(推薦方法)。  
 在用戶系統(tǒng)的/etc/vfstab文件中增加一項,使系統(tǒng)可以通過nfs來安裝主目錄。為支持主目錄的自動安裝,SunOS  
5.x系統(tǒng)軟件在/etc/auto-master文件中設(shè)置了下面一項:  
/home/etc/auto-home  
該項通知Automounter將auto-home數(shù)據(jù)庫中指定的目錄安裝到本地的/home上去,在auto-home中該項的使用格式如下:  
:/export/home/  
當(dāng)用戶以注冊時,Automounter會自動將指定系統(tǒng)(上的指定路徑/export/home/)安裝到用戶所在系統(tǒng)的/home安裝點上。  
這種方法適用于主目錄在本地系統(tǒng)中,但更重要的是,一旦用戶在其他系統(tǒng)中注冊Automounter會自動將其主目錄安裝到該系統(tǒng)的/home安裝點上。  
注意:當(dāng)Automounter用于安裝主目錄時,你不能在用戶系統(tǒng)的/home安裝點上建立任何目錄,當(dāng)Automounter處在運行狀態(tài)時,系統(tǒng)將自動識別/home目錄的特殊狀態(tài)。  
在建立主目錄之前,必須首先編輯Passwd database來建立用戶帳號,它需要以下信息:  
 用戶的注冊名和UID  
 主目錄所在系統(tǒng)名稱,如果主目錄在網(wǎng)絡(luò)上是可訪問的,那么主目錄系統(tǒng)必須象用戶的本地系統(tǒng)一樣在網(wǎng)絡(luò)的同一網(wǎng)段上(network  
segment),用df命令檢查服務(wù)器是否有足夠的空間來建立一個新的目錄。  
  
用戶帳號的目錄名,一般地,主目錄可取名為/export/home,在大型的文件服務(wù)器目錄還可以是多重的,例如/export/home1,/export/home2等等,在每個目錄下,不同的子目錄是為不同用戶建立的(例如:  
/export/home/、/export/home/、/export/hom1/、/export/home2/等等)。  
下面介紹主目錄的安裝步驟,它適用于主目錄在本地系統(tǒng)中或在遠程文件服務(wù)器上。  
1、成為超級用戶  
2、鍵入cd /export/,其中是用戶主目錄的名稱,例如,想進入目錄/export/homel,可鍵入:#cd /exprt/homel  
3、鍵入mkdir ,其中是用戶的注冊名,你可以建立一個與用戶注冊名匹配的目錄,例如建立一個名為ignatz的用戶目錄,可鍵入:#mkdir  
ignatz  
4、鍵入chown ,此時用戶成了主目錄的所有者,例如,對于用戶ignatz,可鍵入:#chown ignatz ignatz  
5、鍵入chgrp ,用戶被指定給Passwd database中標(biāo)明的基本組,例如: 指定給staff組,可鍵入:  
#chgrp staff ignatz  
6、鍵入chmod 755 /export//,用戶的主目錄權(quán)限設(shè)置成:所有者為rwx,同組成員為r-x,系統(tǒng)中其它人員為r-x,例如:  
#chmod 755 /export/honel/ignatz  
注意:以下步驟描述了如何從一個運行SunOS 5.x的服務(wù)器上共享主目錄,若想從運行SunOS  
4.x的服務(wù)器上共享主目錄,則必須使用export命令。  
1、鍵入share檢查主目錄是共享的,則可以看到以下信息  
panda%su  
Password:  
#share  
- /export/home rw ""  
#  
如果沒有列出主目錄,則可按以下步驟建立一個可被其它系統(tǒng)共享的主目錄,一般地,可將主目錄命名為/export/home,/export/home1,或/export/home2等。  
2、編輯/etc/dfstab文件,加入下面一行:  
share -F nfs /export/  
3、鍵入shareall -F nfs。這樣不需要重啟系統(tǒng),系統(tǒng)就能自動執(zhí)行/etc/dfstab文件中的有share命令。  
4、鍵入ps -ef|gerp mountd。如果系統(tǒng)管理進程mountd在運行,則結(jié)束,反之,繼續(xù)執(zhí)行步驟5。  
下面是一個mountd未運行時出現(xiàn)的信息:  
#ps -ef|gerp mountd  
root 221 218 16 18:07:25 pts/10:00 grep mountd  
5、鍵入/etc/inint.d/nfs.server start,啟動共享文件目錄要求的系統(tǒng)管理進程。  
注意:如果網(wǎng)絡(luò)沒有運行NIS或NIS+,就需要將主目錄服務(wù)器的IP地址和系統(tǒng)名加入到用戶系統(tǒng)的/etc/hosts文件中,本地/etc/hosts文件可用Database  
Manager來進行編輯。  
如果使用了硬盤配額(disk quotas),那么就應(yīng)該為用戶建立一個相應(yīng)的配額。  
在建立了用戶的主目錄之后,要使之可用,可將它加入到Auto-home database  
中由Automounter啟動,或者將它用為用戶系統(tǒng)中/etc/vfstab文件里的一項由nfs裝入。  
6.1.1.4自動安裝目錄  
在按本節(jié)中所述步驟操作前,必須首先建立用戶主目錄并且Automounter,如果要用Automounter Tool Database  
Manager來編輯NIS+Auto-home數(shù)據(jù)庫,那么必須是sysadmin group(GID 14)的成員,并對Auto-home  
database具有建立和刪除的合適權(quán)限。  
只要有一合適的權(quán)限,就可通過網(wǎng)絡(luò)上的任何系統(tǒng)來修改NIS+Auto-home  
database或/etc/auto-home文件,在編輯Auto-home數(shù)據(jù)庫時,必須知道用戶的注冊名和要安裝的主目錄名。  
以下步驟適用于主目錄建立在本地系統(tǒng)或者遠程文件服務(wù)器上。  
1、啟動Automounter Tool并選擇Database Manager。  
2、窗口中缺省的域名(Domain  
Name)是Ecd.East.Sun.COM,如果此缺省域名不對,則可在該字段中輸入別的域名;如果是在本地系統(tǒng)上編輯Auto-home文件,則可用鼠標(biāo)選擇None,并在Host  
Name字段輸入系統(tǒng)名。  
3、用鼠標(biāo)選擇Load按鈕,將顯示Auto-home database窗口。  
4、選擇Edit菜單中的Add Entry,將顯示Add Entry窗口。  
5、在User Name字段中輸入。  
6、在Path字段輸入:/export//其中是主目錄所在服務(wù)器名字。  
7、用鼠標(biāo)選擇Add按鈕,以上所編輯的信息被存入Auto-home或本地的/etc/auto-home文件中,當(dāng)用戶第一次注冊時,主目錄將自動地被安裝到/home/下。  
6.1.1.5用nfs安裝主目錄  
如果用戶的主目錄是在其它系統(tǒng)上并且Automounter無法分配用戶空間,那么可按以下方法用nfs來安 裝主目錄:  
1、成為超級用戶;  
2、編輯/etc/vfstab文件,為用戶主目錄建立相應(yīng)的項。例如,想要在服務(wù)器panda上為用戶ignatz建立主目錄,可在該文件中加入以下一項:  
panda: /export/homel/ignstz - /home/ignatz nfs - yes rw,inty  
3、為了建立用戶系統(tǒng)的安裝點,可以鍵入mkdir  
/home/。注意:主目錄的名稱在服務(wù)器和用戶系統(tǒng)上可以是不同的,例如,服務(wù)器上的主目錄名/export/home/ignatz/在用戶系統(tǒng)上可以是/home/ignatz;  
4、鍵入chown /home/,此時主目錄為該用戶所有;  
5、鍵入chgrp /home/,此時用戶的基本組(primary group)具有訪問用戶主目錄的權(quán)限;  
6、鍵入mountall,當(dāng)前vfstab文件中的所有項(它們的automount域被設(shè)成Yes)被啟動裝入;  
7、為了加以驗證,可鍵入mount命令來顯示所在已安裝好的文件系統(tǒng)。  
6.1.1.6定義用戶環(huán)境  
為了建立用戶帳號,需進一步定義以下用戶環(huán)境:  
 定義缺省初始化文件  
 建立一個郵件帳號  
 設(shè)置打印機  
6.1.1.7定義初化文件  
當(dāng)用戶注冊時,注冊程序會自動生成一系列變量,如HOME、LOGNAME和TZ,接著運行初始化文件為用戶設(shè)置系統(tǒng)缺省值如PATH、日期信息、umask等,然后再設(shè)置一些特定變量,例如通過修改某個用戶初始化文件中的PATH變量可以使某些應(yīng)用程序只能由該用戶執(zhí)行。  
每一種shell都有自己的初始化文件,如表6.3所示。  
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  
表7.3 shell 用戶初始化文件  
shell 初始化文件 用途  
C $HOME/.login 注冊時定義用戶環(huán)境  
$HOME/.cshrc shell注冊后定義C shell要  
求的用戶環(huán)境  
Bourne $HOME/.profile 注冊時定義用戶環(huán)境  
Korn $HOME/.profile 注冊時定義用戶環(huán)境  
$HOME/. 在環(huán)境變量指定的文  
件中定義注冊時的用戶環(huán)境  
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  
SunOS5.x系統(tǒng)軟件為/etc/skel目錄下的每個shell都提供了缺省的用戶初始化文件,如表6.4所列.  
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  
表7.4 缺省主目錄下的初始化文件  
Shell 文件名  
C /etc/skel/local.login  
C /etc/skel/local.cshrc  
Bourne或Korn /etc/skel/local.profile  
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  
下面是缺省的/etc/skel/local.login文件:  
#@(#)login 1.7 89/09/05 SMI  
stty -istrip  
setenv TERM ‘tset -Q-  
下面是缺省的/etc/skel/local.cshrc文件:  
#@(#)cshrc 1.11 89/11/29 SMI  
umask 022  
set path=(/bin/usr/bin/usr/ucb/etc.)  
if ($?prompt) then  
set history=32  
end if  
下面是缺省的/etc/skel/local.profile文件:  
stty istrip  
PATH=.:/usr/bin/usr/ucb:/etc  
export PATH  
以上文件定義了系統(tǒng)最小環(huán)境,為了簡化每個用戶的初始化文件,可以在/etc/skel下的文件中設(shè)置盡量多的系統(tǒng)級缺省變量。  
為了建立初始化文件,必須首先建立好用戶的主目錄并且知道Passwd數(shù)據(jù)庫中為該用戶設(shè)置的shell類型(C、Bourne或Korn),按以下步驟設(shè)置用戶的初始文件:  
1、在用戶的主目錄下成為超級用戶;  
2、鍵入cd //,進入用戶主目錄,例如,要想進入/export/homel 下的ignatz用戶目錄,可以鍵入:  
#cd exptrt/homel/ignatz  
3、鍵入cp /etc/shel/local.*,將所有缺省的初始文件拷入用戶目錄;  
4、鍵入chmod 744 local.*,為初始文件設(shè)置正確的權(quán)限;  
5、鍵入chown *,使用這些初始文件屬該用戶所有,例如:  
#chown ignatz*  
#  
6、chgrp local.* ,將文件指派給基本組(如sysadmin),該組號是在passwd數(shù)據(jù)庫為用戶帳號專門指定的,例如:  
#chgrp 10 local。*  
#  
7、重新命名shell初始文件,如果用戶shell是C shell,由鍵入mv local.login .login; mv local.cshrc  
.cshrc,如果用戶shell是Korn或Bourne shell則鍵入mv local. Profile .profile;  
8、鍵入rm local.*,將已經(jīng)沒用的shell初始化程序全部刪除;  
9、安裝用戶主目錄;  
10、在用戶系統(tǒng)中以該用戶注冊;  
11、為用戶指定一個臨時的口令(見下面如何建立口令一章中的"建立口令");  
12、檢查用戶環(huán)境設(shè)置得是否正確;  
13、編輯用戶初始化文件并按需要進行修改;  
為了編輯用戶初級化文件,需完成以下幾步:  
1、 設(shè)置缺省路徑,該路徑包含用窗口環(huán)境應(yīng)用程序安裝點以及該用戶的主目錄;  
2、 為了改變路徑設(shè)置,如下增加或修改PATH變量,對于C shell可鍵入setpath=(. / /  
/...),例如,可在用戶的$HOME/.cshrc 文件中加入以下一行:setpath=(. /usr/openwin/bin /usr/bin  
$home/bin /usr/lib /usr/sbin)。對于Bourne或Korn shell可鍵入PATH=/://...;export  
PATH。例如可在用戶的$HOME/.profile文件中加入以下一行PATH=.:/usr/openwin/bin:usr/bin:$HOME/bin:usr/lib;export  
PATH  
4、 用env命令檢查環(huán)境變量設(shè)置得是否正確,注意,即使用戶shell是C shell其環(huán)境變量也是用Bourne或Korn  
shell語法顯示,輸入man=s5 environ可得到在關(guān)env命令的更多信息.  
$env  
HOME=/home/ignatz  
HZ=100  
LOGNAME=ignatz  
MAIL=/var/mail/ignatz  
MANSECTS=\1:1m:1c:1f:1s:1b:2:\3:3c:3i:3n:3m:3k:3g:3e:3x11:3xt:3w:3b:4:5:7:8  
PATH=:/usr/openwin/bin:sbin:/usr/sbin:/usr/bin:/etc:/$HOME/bin:lib:usr/lib  
SHELL=bin/sh  
TERM=sun  
TZ=EST5EDT  
$  
5、 增加或改變環(huán)境變量的設(shè)量,對于C shell可鍵入setenv (或set =)。例如,設(shè)置100個命令的歷史表,可鍵入setenv  
HISTORY 100,對于Bourne或Korn  
shell,可以鍵入=;export。例如,設(shè)置用戶的缺省郵件路徑,可鍵入MALL=/var/mail/ignatz;export MAIL;  
6、 檢查umask設(shè)置,如果需要對它進行改變,可鍵入umask ,數(shù)字前面的可以省略,例如,要文件權(quán)限為755,可鍵入umask  
022,表6.5列出了八進制unask值對應(yīng)的文件權(quán)限。  
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  
表6.5 umask值對應(yīng)的權(quán)限  
八進制值 文件權(quán)限  
0 rwx  
1 rw-  
2 r-x  
3 r--  
4 -wx  
5 -w-  
6 --x  
7 ---(none)  
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  
LANG變量和LC環(huán)境變量決定了shell使用的本地習(xí)慣,這些習(xí)慣和背景是在初始文件中設(shè)置的,它們主要包含時區(qū)、collation  
orders、數(shù)據(jù)格式、時間、匯率和數(shù)字,LANG變量為某個指定的國家或地區(qū)所有可能的文化習(xí)慣和背景,LC變量可單獨使用,如果用LC.COLLATE,LC-CTYPE,LC-MSEE  
AGES和LC-NUMERIC變量來設(shè)置本地的特性,表6.6列出了不同地區(qū)的值。  
如果系統(tǒng)需要支持多字節(jié)字符(如日語)那么需要在系統(tǒng)初始化文件(/etc/profile、etc/login)中加入命令stty cs8  
defeucw命令,并重新注冊。  
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  
表6.6 LANG和LC變量的取值  
值 地點  
de: German  
fr: Frenah  
iso-8995-1 English and Enropean  
it Italian  
Japanese Japanese  
Korean Korean  
sv Swedish  
tchinese Taiwanese  
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  
6.1.1.8建立用戶的郵件帳號  
每個用戶在本地系統(tǒng)或郵件服務(wù)器上都有一個郵箱并可能在/etc/mail/aliase文件中有一個郵件別名,它指向郵箱的具體位置,按以下步驟在郵件服務(wù)器上為用戶設(shè)置郵件客戶:  
1、在郵件客戶服務(wù)器系統(tǒng)上成為超級及戶;  
2、建立/var/mail安裝點;  
3、 編輯/etc/vfstab文件并在郵件服務(wù)器上增加/var/mail目錄,將文件安裝到該目錄上這樣系統(tǒng)每次重啟后,就會自動掛上戶的郵箱;  
4、鍵入mount -a命令安裝客戶的郵箱;  
5、用Administration  
Tool編輯/etc/hosts文件并為郵件服務(wù)器增加相應(yīng)項。注意:當(dāng)信息第一次被傳送時,/var/mail目錄下的sendmail程序會自動為用戶建立郵箱。  
6.1.1.9建立口令  
口令是系統(tǒng)安全性的保障,每個用戶都應(yīng)該使用6--10個字符和數(shù)字的組合來構(gòu)成一個口令,關(guān)于改變口令和口令屬性的方法可參見手冊中的passwd(1)、yppassed(1)、或nispasswd(1)  
在SunOS 4.x系統(tǒng)中,加密后的口令與有關(guān)用戶的其它信息一起存放在/etc/passwd文件中,在SunOS  
5.x中,加密后的口令以及與口令有關(guān)的信息則被存放在NIS+Passwd數(shù)據(jù)庫的Shadow域(或本地的/etc/shadow文件)中,Shadow文件的權(quán)限是--r-------,只有根用戶才能讀該文件,同時也只有Passwd、ypasswd和nispasswd命令才能寫該文件。  
以下是一個/etc/shadow文件的例子:  
root:XzVuaelvazZsw:8223::::::  
daemon NP:6445::::::  
bin:NP:6445::::::  
sys:NP:6445::::::  
adm:NP:6445::::::  
lp:NP:6445::::::  
smtp:NP:6445:::::  
uucp:NP:6445::::::  
nuucp:NP:6445::::::  
listen:*LK*::::::  
novady:NP:6445:::::  
noaccess:NP:6445::::::  
janice:gzqgrmlKcfy7A:8223::::::  
為了建立或修改口令,可使用命令/usr/bin/passwd  
,用戶可以在任何時候建立和修改自己的口令,但是只有根用戶才能建立其他用戶的初始口令。注意:用戶可以用passwd命令來定義、更改和查看口令的有關(guān)屬性,例如口令的期限等,有前passwd命令的詳細信息說明請參見手冊。輸入新口令時應(yīng)兩次輸入新口令。  
6.1.2管理用戶帳號  
管理用戶帳號包括對用戶帳號的修改、取消和凍結(jié)  
6.1.2.1修改用戶帳號  
當(dāng)有關(guān)用戶的信息變化時,可以用Database Manager來編輯passwd  
database中信息,一般用戶帳號的登錄名和UID是不需要修改的,除非它與現(xiàn)有的某用戶名或UID沖突。  
在網(wǎng)絡(luò)環(huán)境中,當(dāng)用戶從一個系統(tǒng)轉(zhuǎn)移到另一個系統(tǒng)中或者從一個服務(wù)器轉(zhuǎn)移互到另一個服務(wù)器上時,需要用Database  
Manager來為用戶主目錄修改Auto-home數(shù)據(jù)庫。  
如果需要修改用戶口令,就使用passwd。  
6.1.2.2取消用戶帳號  
以下是取消用戶帳號的步驟  
1、 從NIS+Passwd數(shù)據(jù)庫NIS表或/etc/passwd文件中刪除該用戶項;  
2、 從NIS+Group數(shù)據(jù)庫、NIS map或/etc/group文件中取消該用戶名;  
3、 從打印機訪問或拒絕訪問表中刪除或存檔;  
4、 決定是否想對所有的用戶文件刪除或存檔;  
5、 刪除用戶郵件文件;  
6、 從Auto-home數(shù)據(jù)庫中刪除用戶;  
6.1.2.3凍結(jié)用戶帳號  
有時,你可能想要臨時或永久地凍結(jié)某個注冊帳號。當(dāng)然,要這樣做你必須有充分理由,如用戶可能不來使用該帳號或者你有充分證據(jù)表明該帳號經(jīng)常被濫用或安全性受損。  
凍結(jié)一個注冊帳號的最簡單方法是使用Database Manager來對Password數(shù)據(jù)庫中的用戶口令進行加鎖。  
在本地系統(tǒng)中,你可以通過設(shè)定口令期限、注銷日期或規(guī)定用戶使用該帳號的固定間隙控制用戶帳號,另一種凍結(jié)用戶的簡單辦法是臨時地改變用戶帳號的口令。  
6.2設(shè)置和管理用戶組  
Group數(shù)據(jù)庫(表或本地/etc/group文件)存貯在關(guān)于用戶組的信息,通常稱為UNIX組。一個用戶組是能共享文件以及其它系統(tǒng)資源的一個用戶集合,例如,  
同一課題組的用戶可以組成一個用戶組。  
每個用戶組有一個GID號(組標(biāo)號,類似于UID),它是系統(tǒng)的內(nèi)部標(biāo)識號,一個組應(yīng)該有一個組名和一個用戶名表,用戶組可用以下兩種方法加以定義:  
 在用戶帳號中使用GID來定義用戶有基本組,即在Passwd數(shù)據(jù)庫的Group域中增一個新的GID號。  
 在Group數(shù)據(jù)庫中輸入該組的名稱、GID號和用戶表用上面的第二種方法定義用戶組比較合理,因為它為每個組定義了一個組名。  
所有的用戶都至少屬于一個組即基本組,雖然這不是系統(tǒng)所要求的,但是你必須將用戶加入到基本組的成員表中,除基本組外用戶最多還可以同時屬于16個附加組,具體實現(xiàn)方法是將用戶加到所屬組的成員中。  
group命令可用于列出包含該用戶的所有用戶組,對于任意用戶在某一時刻其基本組有一個,但是用戶可以使用newgrp命令臨時地改變基本組。  
某些應(yīng)用系統(tǒng)(如文件系統(tǒng))只關(guān)心用戶的基本組,比如,文件所有者、帳號數(shù)據(jù)只影響基本組,另外一些應(yīng)用系統(tǒng)則可能地考慮支持用戶共享的附加組,如只有sysadmin  
group的成員才能使用Administration tool來改變數(shù)據(jù)庫。  
通常我們要對文件、目錄分別設(shè)置用戶、組及其它的讀/寫/執(zhí)行權(quán)限,這些權(quán)限是安全性的保證,如果你的基本組或附加組(secondary  
group)權(quán)限不夠,那么你就不能存取別人的文件,例如,可以為技術(shù)資料編寫人員建立的一個techwrite組,并為該組所在目錄建立相應(yīng)的權(quán)限,這樣,只有該組成員才能修改該目錄下的文件。  
用戶組可以是本地系統(tǒng)有效,也可以貫穿于整個網(wǎng)絡(luò)。通過網(wǎng)絡(luò),用戶組可以允許網(wǎng)絡(luò)上的一組用戶存取一組文件,而其它用戶則無法對它們進行操作。  
6.2.1設(shè)置Group數(shù)據(jù)庫中的域值  
Group數(shù)據(jù)庫(表或本地/etc/group文件)包含以下一些主要域項:  
 組名(Group Name)  
 組號(Group ID)  
 成員表(Member List)  
另外,組口令(Group Password)也是其中的一項,但很少使用,它是早期的UNIX遺留下來的,通常可將該項空著或者僅僅填入一個星號。  
6.2.1.1設(shè)置組名(Group Name)域  
該域包含一個組名,例如某大學(xué)化學(xué)系在成員可取名為chem,組名最多可由9個字組成。  
6.2.1.2設(shè)置Group ID域  
該域包含了一個組標(biāo)識號,在系統(tǒng)中GroupID必須是唯一的,每個Group  
ID是一個0-65535之間的整數(shù),但通常在100-60000之間取值(60001和60002分別賦給了nobody和noaccess,100以下的整數(shù)是為系統(tǒng)缺省帳號保留的)、當(dāng)使用Administration  
Tool來增加用帳號時,你必須指明用戶的基本組。  
6.2.1.3設(shè)置成員表域  
該域包含了某組所有用戶成員表,用戶名之間可用逗留隔開,這些用戶必須是在Passwd數(shù)據(jù)庫中定義的注冊名,如上所述,每個用戶可同時屬于17個組。  
6.2.2建立缺省的UNIX用戶組  
SunOS 5.x提供了以下的缺省組:  
root::0:root  
other::1:  
bin::2:root,bin,demon  
sys::3:root,bin,sys,adm  
adm::4:root,uucp  
uucp::5:root,tty,uucp  
mail::6:root  
tty::7:root,uucp  
lp::8:root,lp,adm  
nuucp::9:root,nuucp  
staff::10  
daemon::12:root,draemon  
nobody::60001:  
noaccess::60002:  
可以在NIS+Group數(shù)據(jù)庫、本地的/etc/group文件中加入GID為14的sysadmin組,該組中所有用戶可以使用Administration  
Tool  
6.2.3建立新的組  
作為系統(tǒng)管理可能要經(jīng)常地建立新的用戶帳號,在具體分配用戶之前,必須首先建立用戶組和GID號。Administration  
Tool可用來建立和維護網(wǎng)絡(luò)以及本地的用戶組,在使用Administration Tool建立或編輯組帳號時,首先必須是sysadmin組(GID  
14)的成員,如果網(wǎng)絡(luò)上正在運行NIS+,那么還必須有對NIS+數(shù)據(jù)庫進行操作的權(quán)限。  
建立一個新的組,需要知道以下信息:  
 組成員有用戶注冊名(Login names)  
 組成員的用戶號(User IDs)  
 組名(Group name)  
 組號(Group ID)  
按以下步驟在NIS+數(shù)據(jù)庫或本地/etc/group文件中增加用戶組:  
1、 鍵入admintool啟動Administration Tool;  
2、 用鼠標(biāo)選擇Database Manager圖標(biāo),顯示Database Manager窗口;  
3、 用鼠標(biāo)選擇Group數(shù)據(jù)庫,并選擇NIS+命名服務(wù)或None(本地/etc文件);  
4、 用鼠標(biāo)選擇Load按鈕,顯示Group Database窗口;  
5、 從Edit菜單中選擇Add Entry一項,顯示出Add Entry窗口;  
6、 輸入組名、組號以及成員表(成員名之間用逗號隔開);  
7、 用鼠標(biāo)點擊Add按鈕,將該組加入到Group數(shù)據(jù)庫(或本地的/etc/group文件)中,如要增加更多的用戶組,則重復(fù)以上兩步。  
6.2.4修改或刪除用戶組  
當(dāng)用戶組中有新的成員加入或者成員調(diào)離該組時,就需要修改用戶組帳號的成員表,即在現(xiàn)有的帳號中增加或刪除用戶,當(dāng)某種課題完成后,該組便不再需要了,于是就可以將該組刪除,在重用已刪除組的GID時應(yīng)注意避免沖突。  
6.2.4.1修改某個組  
按以下步驟修改一個組項:  
1、 用鼠標(biāo)選擇Group按鈕,選擇NIS+或None,并按Load按鈕,顯示出Group Database窗口;  
2、 用鼠標(biāo)選擇想要修改的數(shù)據(jù)庫名;  
3、 從Edit菜單中選擇Modify Entry項,彈出Modify Entry窗口,并顯示該組的當(dāng)前各項值。  
4、 在相應(yīng)字段中增加或刪除用戶名,然后選擇Modify修改數(shù)據(jù)庫中的該項內(nèi)容。  
6.2.4.2刪除某個組  
如果某個組的組號不再需要,就可將該組刪除掉,按以下步驟刪除一個組:  
1、 用鼠標(biāo)選擇Group,選擇NIS+或None并按Load按鈕,彈出Group Database窗口;  
2、選擇需要刪除的數(shù)據(jù)庫名;  
3、從Edit菜單中選擇Delete Entry,此時系統(tǒng)提示:  
"Do you really want to delete this entry?"  
5、 如果不想真正刪除此項,由選擇Cancel,如果要刪除,則選擇Delete按鈕,這樣便可以將該組從組數(shù)據(jù)庫中刪除掉。  
第7章、UNIX的shell命令  
本章將介紹:各種shell解釋器共同點、標(biāo)準(zhǔn)shell介紹、C shell介紹、Korn shell介紹。  
在Solaris 2.x軟件環(huán)境中提供給用戶三種命令解釋器:標(biāo)準(zhǔn)shell(缺省shell或Bourne  
shell,本手冊中我們稱為標(biāo)準(zhǔn)shell)、C shell和Korn  
shell。對每一個用戶而言都有一個缺省的shell命令解釋器,另外也可以在命令行中打入某種shell而重新進入另外一種shell解釋器。本章首先介紹三種shell的公共命令,然后再分別對它們各自的特性作一些詳細介紹。  
7.1各種shell的公共命令  
本節(jié)描述各種shell所使用的命令  
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  
表7.1 各種shell解釋器的基本特性  
特性 Bourne C Korn  
別名 無 有 有  
命令編輯 無 有 有  
增強的cd 無 有 有  
歷史 無 有 有  
忽略CTRL-D 無 有 有  
不同于profile的初始文件 無 有 有  
作業(yè)控制 有 有 無  
退出文件 無 有 有  
文件的重寫保護 無 有 有  
與標(biāo)準(zhǔn)shell的語義兼容性 是 否 是  
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  
7.1.1設(shè)置某種缺省shell  
在用戶數(shù)據(jù)庫或/etc/passwd文件中,注冊shell是在每個用戶的登記項的最后一列中設(shè)置,用戶可以使用系統(tǒng)提供的管理工具或編輯本地的/etc/passwd文件來修改注冊shell,但是此用戶必須是sysadm組的成員,即用戶的組號(GID)應(yīng)該是14,如果是在運行NIS+,則必須有建立和刪除NIS+數(shù)據(jù)據(jù)庫的權(quán)限。  
下面是用戶更改注冊shell的一些步驟:  
1、按需要,從管理工具中打開數(shù)據(jù)庫管理器窗口。  
2、  
在用戶數(shù)據(jù)上,按下SELECT,然后再接著按SELECT來選擇NIS+或無NIS+服務(wù)。若選擇NIS+則編輯Passwd數(shù)據(jù)庫,否則編輯本地的/etc/passwd文件。  
3、 點擊Load鍵,顯示用戶數(shù)據(jù)庫窗口。  
4、 在想要編輯的用戶項上按SELECT鼠標(biāo)鍵,然后從編輯(Edit)菜單中選擇修改(Modify)項。  
5、 修改shell項的文字域,/bin/sh是標(biāo)準(zhǔn)shell,/bin/csh是C shell或者輸入/bin/ksh作為Korn shell。  
6、 點擊Modify按鈕,修改用戶缺省SHELL定義,只要用戶重新注冊進入系統(tǒng),即使用新的shell。  
7.1.2在命令行中改變shell類型(sh,csh,ksh)  
如果用戶不修改用戶數(shù)據(jù)庫而想使用別的shell解釋器,則可以在命令行中簡單地打入所需shell的命令名即可。  
例如,要想使用C shell,打入csh即可,缺省C shell提示符是在系統(tǒng)名之后跟一個百分號(%)。  
$csh  
panda%  
如果要改變?yōu)镵orn shell,則打入ksh,korn shell的缺省提示符是$  
panda%ksh  
$  
7.1.3從shell解釋器中退出(exit)  
如果用戶是在命令行中進入某種shell解釋器,則只需打入exit和回車鍵,即可退出當(dāng)前的shell解釋器,而返回原先的shell解釋器。  
$exit  
panda%  
7.1.4清除一個shell窗口(clear)  
在某個shell窗口中,用戶可以清除一個shell窗口的內(nèi)容,并且重新顯示shell的提示符到此窗口的左上角,例如要清除一個窗口的內(nèi)容,可以打入clear和回車鍵:  
panda%which openwin  
no openwin in. /home/ignatz/usr/deskset/bin/usr/bin  
/home/ignatz/bin/bin/home/bin/etc/usr/etc/usr/etc/usr/ucb  
/usr/bin  
panda%clear  
此時窗口的顯示內(nèi)容即被清除,然后把提示重新顯示在頂部。  
7.2標(biāo)準(zhǔn)shell  
在Solaris 2.x軟件環(huán)境中,標(biāo)準(zhǔn)shell(Bourne shell)是缺省shell,它是由Steve Bourne先生在AT&T  
Bell實驗室工作時開發(fā)的,標(biāo)準(zhǔn)shell相對而言,結(jié)構(gòu)緊湊,而且簡單,但它也提供所有的程序設(shè)計功能,可以實現(xiàn)由各種命令和過程組成的shell文件(script)。因為如何編寫shell文件已經(jīng)超越本文范圍,所以我們不在此贅述。  
7.2.1標(biāo)準(zhǔn)shell的初始文件  
標(biāo)準(zhǔn)shell只使用一個初始執(zhí)行文件,其名為.profile,一般放在用戶的基目錄(home  
directory)之下,它專門用來設(shè)置用戶的環(huán)境。當(dāng)用戶注冊或在命令行中啟動標(biāo)準(zhǔn)shell時,即讀.profile文件,一般來說,用戶通過此文件來設(shè)置用戶查找路徑和其它環(huán)境變量。  
7.2.2定義標(biāo)準(zhǔn)shell的環(huán)境變量  
對于標(biāo)準(zhǔn)shell和Korn shell而言,定義環(huán)境變量的語法都是一樣的,輸入命令=; export,例如:  
$HZ=100;export HZ  
$  
7.3C shell  
C shell是Bill Joy先生在UCB工作學(xué)習(xí)時開發(fā)的,它已被UNIX的眾多用戶所接受。C shell完全不同于標(biāo)準(zhǔn)shell和Korn  
shell,而且有自己獨特的語法規(guī)則,C shell最重要的優(yōu)點是具有歷史功能、命令編輯功能和別名功能。歷史功能的意義是C  
shell可以存貯用戶最近輸入的命令記錄,用戶可以顯示這些命令,也可以按原樣重新使用某條命令;而編輯功能是用戶可以通過編輯來改變某條命令;別名可以讓用戶用短的名字來表示經(jīng)常使用的長命令,或幾條常用命令。  
7.3.1C shell的初始文件  
C shell使用兩個初始化文件,用于設(shè)置用戶的環(huán)境變量,這兩個初始文件名分別是.login和.cshrc,也放在用戶基本目錄之下。  
當(dāng)用戶注冊時,C shell首先讀.login,然后再讀.cshrc文件。當(dāng)用戶是從命令行中啟動C shell時,只讀.cshrc文件(C  
shell運行控制)。因為.login文件不是每次啟動C  
shell都讀入,因此用戶應(yīng)該在.login中設(shè)置環(huán)境變量,而在.cshrc文件中設(shè)置用戶的查找路徑名。  
7.3.2C shell環(huán)境變量的定義  
使用命令setenv ,例如:  
panda%setenv display rogue:0  
panda%  
7.3.3建立C shell的別名  
用戶可以在.cshrc文件中定義所需的別名。建立一個別名的語法為:  
alias  
例如,你想簡寫別名(alias)這個命令成為a,則可以在.cshrc文件加入下列一行:  
alias a alias  
下面的實例選自.cshrc文件。注意,如果命令行中包含有空格,則必須把整個命令中用引號引起來,引號可以是雙引號,也可以是單引號:  
alias a alias  
a h hiostory  
a c clear  
a lf 1s -F  
a ll "ls -l | home"  
a la ls -a  
a s "source .cshrc"  
a f ‘find -name core -print  
a copytotape "ter cvf /dev/rmt/0 *"  
7.3.4設(shè)置C shell的歷史功能  
要設(shè)置C shell的歷史功能,只需在命令行中打入:  
set history=  
其中,n可理解為C shell可以存貯的命令條數(shù)。舉例:  
panda%set history=18  
panda%  
用戶既可在shell窗口中"臨時"設(shè)置歷史功能,也可以把它放在.cshrc文件中設(shè)置"永久"的歷史功能。  
7.3.5使用C shell歷史功能  
在命令行中,打入history命令,即可顯示已經(jīng)打入過的命令,這些命令是你打入的最后n條命令,n是像7.3.4節(jié)所述的方法設(shè)置的。  
panda%history  
26 pwd  
27 kermit  
28 cd howto  
29 tar avf /dev/rmt/0  
30 ls -l howto*  
31 cd  
32 cd Config/Art  
33 ls -1  
34 tar cvf /dev/rmt/0  
35 histoty  
panda%  
要想重復(fù)執(zhí)行剛打入的命令,可打入!!和回車,即復(fù)執(zhí)行上一條命令:  
panda% history  
26 pwd  
27 kermit  
28 cd howto  
29 tar avf /dev/rmt/0  
30 ls-l howto*  
31 cd  
32 cd Conrig/Art  
33 ls-1  
34 tar cvf /dev rmt/0  
35 histoty  
panda%!!  
history  
27 kermit  
28 cd howto  
29 tar avf /dev/rmt/0  
30 ls-l howto*  
31 cd  
32 cd Conrig/Art  
33 ls-1  
34 tar cvf /dev rmt/0  
35 history  
36 history  
panda%  
要重復(fù)最后一條命令的最后一個詞,可打入!$,這樣上一條命令的最后一個詞即可作為當(dāng)前命令行中的一個變量。例如,你可能已經(jīng)輸入了某個文件的全程路徑,然后想用這個路徑名作為變量,來用vi編輯此文件或打印此文件:  
panda%ls -l /home/ignatz/quest  
panda%lp !$  
panda%  
!$可以用在命令行的任何地方,在下面的命令行中,文件/home/ignatz/quest將拷貝到/tmp目錄之下:  
panda%ls -1 /home/ignatz/quest  
panda%cp !$ /tmp  
cp /home/ignatz/quest /tmp  
panda%  
要想重復(fù)C shell歷史令表中的某個序號的命令,則打入!,例如:  
panda%history  
29 tar avf /dev/rmt/0  
30 ls -l howto*  
31 cd  
32 cd Config/Art  
33 ls -1  
34 tar avf /dev/rmt/0  
35 ls -l  
36 cd  
37 lp howto*  
38 history  
panda%!32  
cd Config/Art  
panda%  
7.3.6設(shè)置C shell的退格鍵(stty erase)  
如果用戶想把刪除字符的鍵從Delete鍵變?yōu)锽ackspace鍵,則可以輸入下面的命令:  
panda%stty erase ^H  
panda%  
此后,退格鍵(Backspace)即作為字符刪除鍵使用。  
7.3.7新命令的嵌入  
C shell為所有命令路徑變量建立一個內(nèi)部命令表,因此當(dāng)用戶把新命令放入某個目錄中時,這個新命令并不在這個表中,這樣,C  
shell就不會執(zhí)行此新命令。C  
shell為了解決這個問題,把用戶的新命令加入到查找路徑內(nèi)部表中,為用戶提供了rehash命令,用戶只需打入rehash命令,即可使這條新命令有效:  
panda%newcommand  
newcommand: Command not found  
panda%rehash  
panda%newcommand  
panda%  
7.3.8Cshell歷史命令的編輯  
用戶可以從C shell的歷史表中編輯命令,其語法:  
S//  
下面我們舉例說明:  
panda% history  
31 cd  
32 ls  
33 cd/home/frame3.1  
34 ls  
35 cd  
36 tar cvf /dve/rmt/0 frame3.1  
37 lp questionnaire  
38 lpstat -t  
39 echo $PaTH  
40 history  
panda%!39:s/a/A/  
echo $ PATH  
.:/home/winsor:/usr/openwin/bin:/usr/deskset/bin:/home/  
winsor/bin:/bin:/home/bin:/etc:/usr/etc:/usr/bin:/home/  
frame3.1/bin  
panda%  
在此例中,第39條命令行中用戶打錯了一個字母,然后用戶用C shell編輯命令改正了打錯的那個字母,命令執(zhí)行也就正常了。  
7.4Korn shell  
Korn shell是AT&T Bell實驗室的David Korn開發(fā)的,是標(biāo)準(zhǔn)shell超集,Korn  
shell使用標(biāo)準(zhǔn)shell一樣的語法,只不過Korn shell本身又加入了許多新的功能, Korn shell 比C  
shell提供了更加方便的命令編輯方式,Korn shell一樣亦具有歷史和別名功能。  
7.4.1Korn shell的初始化文件  
korn  
shell使用兩個初始文件,它們都存放在用戶的基目錄之下,其名分別為.profile和.,第二個文件名是可以讓用戶自己選擇命名的,其主要功能是設(shè)置環(huán)境,同C  
shell類似,你可以把第二個文件名選擇為.kshrc,以后我們即用.kshrc這個名稱來說明第二個文件。  
當(dāng)用戶注冊時,Korn shell首先讀.profile文件,然后讀.kshrc。.kshrc主要讓用戶建立使用Korn  
shell的習(xí)慣約定,在.kshrc應(yīng)該包括只有Korn shell才能執(zhí)行的命令。  
用戶必須用ENV環(huán)境變量來指定這.文件的名稱,Korn shell設(shè)置環(huán)境變量的命令語法同標(biāo)準(zhǔn)shell:  
=;export  
其中export命令是必須的,它使此變量對Korm shell以及它的所有子進程都有效,下面為.kshrc文件設(shè)置環(huán)境變量:  
$ENV=$HOME/.kshrc;export ENV  
$  
很顯然,用戶必須將ENV這個環(huán)境變量在.profile中設(shè)置好,否則當(dāng)用戶注冊時,Korn  
shell就會找不到.kshrc文件。注意,ENV環(huán)境變量是沒有缺省設(shè)置的,用戶不設(shè)置ENV,就不能使用這此性質(zhì)。  
不論是在注冊時,還是在命令行中啟動Korn shell,.kshrc文件在每次啟動Korn shell時都必須讀入。  
7.4.2Korn shell的選擇項  
Korn shell有許多變量可用來指定用戶的環(huán)境和控制命令的執(zhí)行,要想顯示當(dāng)前的選擇項設(shè)置情況,可輸入:  
$set -o  
下例顯示了Solaris 2.x軟件系統(tǒng)中Korn shell的缺省設(shè)置情況:  
$set -o  
Current option settings  
allexport off  
bgnice on  
emacs off  
errexit off  
gmacs off  
ignoreeof off  
interactive on  
keyword off  
markdirs off  
monitor off  
noexec off  
noclobber off  
noglop off  
nounset off  
privileged off  
restricted off  
trackall off  
verbose off  
vi off  
viraw off  
xtrace off  
$  
我們在表7.2中說明這些缺省選擇項的具體意義。  
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  
表7.2 Korn shell的選項  
選擇 缺省值 說明  
allexport off 當(dāng)定義時,自動地報告變量  
bgnice on 要低優(yōu)先級執(zhí)行所有的后臺作業(yè)  
emacs off 設(shè)置emacs/gmacs為聯(lián)機編輯器  
errexit off 如果命令返回偽值,則shell執(zhí)行ERR陷井并立即 退出  
gnaces off 設(shè)置gmacs/gmacd為聯(lián)機編輯器  
ignoreeof off 當(dāng)運行在交互式shell 時,則在文件的未尾也不退出shell,只有打入exit才退出shell  
interactive on shell自動進入交互式方式,因此也立即顯示shell提示符  
keyword off shell根據(jù)變量賦值語法將每個字放入變量賦值表中  
markdirs off 在所有目錄名后顯示一個"/"  
monitor on 使能作業(yè)控制  
noclobber off 當(dāng)使用轉(zhuǎn)向輸出>時,不覆蓋一個已經(jīng)存在的文件  
noexec off 只讀此命令,而不執(zhí)行它,利用此命令可以調(diào)試shell文件的語法錯誤  
noglob off 取消文件名的擴充  
nolog off 在歷史文件中不存貯功能定義  
nounser off 當(dāng)shell想要擴展一下已經(jīng)設(shè)置的變量時,顯示一條錯誤信息  
privilrged off 當(dāng)此選擇項是off時,使用實際UID和GID,若是on,則把UID和GID設(shè)置成啟動此shell時有效值  
restricted off 設(shè)置一種受限制的shell  
trackall off 當(dāng)命令第一次出現(xiàn)時,使得它成為別名  
verbose off 當(dāng)讀入時,即是顯示輸入  
vi off 設(shè)置vi為聯(lián)機的編輯器  
viraw 0ff 指定從vi中,每次只輸入一個字符  
xtrace off 當(dāng)執(zhí)行命令的變時時,顯示它們  
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  
按照korn shell的習(xí)慣用法,這些選擇都在.kskrc文件中設(shè)置。  
要想使某選擇項有效,可輸入:  
set -o  
若要取消這個選擇項,可輸入:  
set +o  
例如在.kshrc中輸入:  
set -o vi  
即設(shè)置聯(lián)機編輯器為vi,而是如果是下面這一行:  
set +o vi  
則是關(guān)閉vi作為聯(lián)機編輯器使用。  
用戶亦可以用同樣的語法,在命令行中設(shè)置Korn shell的其它選擇項。  
7.4.3創(chuàng)建Korn shell的別名  
Korn shell創(chuàng)建別名的語法是:  
Alias =  
例如把別名命令alias別名為a,其命令為:  
$alias a=alias  
$  
Korn shell本身帶有一些預(yù)先定義好的別名,要顯示這張別名表,只需打入alias命令即可:  
$alias  
autoload=typeset -fu  
false=let 0  
functins=typeset -f  
hash=alias -t -  
history=fc -1  
integer=typeset -i  
nohup=nohup  
r=fc -e -  
stop-kill-STOP  
suspend=kill -STOP $ $  
true=:  
type=whence -v  
$  
表7.3描述這些缺省別名的意義。  
表7.3 Korn shell缺省別名  
別名 值 定義  
autoload typeset -fu 定義一個自動裝入函數(shù)  
false let -0 返回非零狀態(tài),經(jīng)常用于產(chǎn)生無限循環(huán)  
functions typeset -f 顯示函數(shù)表  
hash alias –t - 顯示跟蹤別名表  
history fc -1 從歷史文件中列出命令  
integer typeset -i 整型變量的說明  
nohup nohup 即使退出系統(tǒng)(log out),也繼續(xù)執(zhí)行正在運行的作業(yè)  
r fc -e- 重復(fù)執(zhí)行前面的命令  
stop kill -STOP 停止作業(yè)  
suspend kill -STOP$$ 掛起作業(yè)  
true ; 返回一個零退出狀態(tài)  
type whence-v 顯示命令的信息  
7.4.4用Korn shell的聯(lián)機編輯器編輯命令  
使用Korn shell的聯(lián)機編輯器,用戶在執(zhí)行命令以前可以編輯當(dāng)前命令。Korn  
shell的聯(lián)機編輯器可以是emacs、gmacs或vi,利用Korn Shell的選擇項功能,使用下面命令:  
set -o  
或使用EDITOR或VISUAL環(huán)境變量來設(shè)置聯(lián)機編輯器。  
Korn shell的在線(或聯(lián)機)編輯器vi是普通vi程序改進后的子集,使用聯(lián)機vi編輯器時會自動進入插入方式。  
用戶在一般情況之下,不需要使用聯(lián)機vi編輯器,而可直接打入命令并執(zhí)行之。如果想要編輯某個命令,則打入Escape鍵進入命令方式,用戶可以使用標(biāo)準(zhǔn)的光標(biāo)移動命令向前移動,也可以使用vi編輯命令編輯這一行的內(nèi)容。當(dāng)用戶在編輯命令時,按回車即執(zhí)行此命令,而打入Escape則是回到輸入方式。如果用戶想要編輯的命令行是在一個vi文件中,則打入v命令即可打開一個含有命令行的文件。當(dāng)退出vi時即執(zhí)行命令,有關(guān)vi的常見命令請參見第2章的快速參考表。  
7.4.5設(shè)置Korn shell的歷史  
Korn shell在某個文件中存貯所有的歷史命令,這個文件用Korn  
shell的環(huán)境變量HISTFILE指定,如果沒有設(shè)置這個環(huán)境變量,則存貯在$HOME/.sh-history中。變量HISTSIZE指定存貯的命令個數(shù),若用戶沒有設(shè)置此環(huán)境變量,則保存最近輸入的128條命令,當(dāng)歷史表中達到了最大的命令個數(shù)時,則繼續(xù)保存新命令,而把最老的命令從歷史表中刪除。  
要設(shè)置一個歷史表的大小,可鍵入:  
HISTSIZE=;export HISTSIZE  
例如,下面命令行把歷史表的大小設(shè)置為200:  
$HISTSIZE=200;EXPORT HISTSIZE  
$  
用戶可以在某個shell窗口中臨時設(shè)置歷史表的大小,也可以把這些設(shè)置命令放入.profile或.kshrc文件中使之“永久”有效。  
7.4.6顯示Korn shell的歷史命令  
用戶可以利用fc和history這兩條命令來顯示歷史表中的命令,這是因為history已經(jīng)缺省別名為fc -1,所以用戶可以交替使用這兩條命令。  
下列例子顯示歷史表中最后的16條命令。  
$history  
16 pwd  
17 ps -el  
18 ps -el | grep openwin  
19 cd  
20 more questionnaire  
21 su  
22 lp/etc/passwd  
23 lpstat -t  
24 man ksh  
25 du  
26 maker&  
27 tip -2400 5551212  
28 alias h=history  
29 find /-name ksh -print  
30 df -k  
31 history  
$  
同樣,用戶打入命令$fc -1也可以顯示同樣的這些信息。  
history和fc命令還可以有附加的變量,這樣就可以讓用戶指定某個顯示范圍,例如可以顯示最后的條命令或以倒序顯示命令,有關(guān)ksh的詳細材料,請參見ksh的手冊。  
7.4.7使用Korn shell的歷史命令  
要想利用Korn shell歷史表中的命令,可以打入:  
r  
來重復(fù)使用由指定的這條命令,例如要重復(fù)使用第27條命令:  
$r 27  
tip -2400 5551212  
(接著顯示連接好的一些信息),若是重復(fù)執(zhí)行歷史表中的最后一條命令,則只需打入r即可。  
7.4.8編輯Korn shell的歷史命令  
利用fc命令,用戶可以顯示特定的歷史命令和編輯此命令,其語法為:  
fc[-e ][-r][]  
或  
fc-  
e-[=選擇項-e是用來指定某個編輯器,若不指定編輯器,則使用FCEDIT環(huán)境變量,這個環(huán)境變量的缺省值為/bin/ed。-r的選擇項是倒序顯示歷史表中的命令,即把最近的命令顯示在歷史表最上面,若不指定范圍,則編輯最后一條命令。  
舉例來說,用戶想使用vi編輯歷史表中的最后一條命令,則打入:  
fc -e vi  
此時創(chuàng)建一個含有歷史表最后一項的文件,只要用戶編輯此命令并保存這些改變,就可執(zhí)行此命令了。  
第8章、管理系統(tǒng)  
本章將介紹:顯示系統(tǒng)專有信息、配置附加的交換空間、創(chuàng)建本地郵件別名  
8.1顯示系統(tǒng)專有信息  
使用本節(jié)的命令來獲得系統(tǒng)專有信息,如主機ID號、硬件類型、處理機類型、OS版本號、系統(tǒng)配置、系統(tǒng)運行多長時間、以及系統(tǒng)日期和時間,隨后還說明如何設(shè)置系統(tǒng)日期和時間,以及改變系統(tǒng)時域。  
8.1.1確定主機ID號(sysdef -h)  
為了得到系統(tǒng)的主機ID號,在命令行鍵入sysdef  
-h,系統(tǒng)就顯示主機ID。這個命令替代SunOS4.x的命令hostid,hostid命令同時也可以使用。  
panda%sysdef -h  
Hostid  
554095cc  
panda%  
8.1.2確定硬件類型(uname -m)  
鍵入uname -m,就獲得系統(tǒng)的硬件類型,提供相似信息的Sunos4.x命令arch,在sunos5.x中已不存在。  
panda%uname -m  
sun4c  
panda%  
1.1.3確定處理機類型(uname -p)  
要獲得系統(tǒng)的處理機類型,鍵入uname -p,系統(tǒng)的處理器類型就是顯示出來,這個命令替代sunos的mach命令。  
panda%uname -p  
sparc  
panda%  
8.1.4確定OS版本號(uname -r)  
命令uname -r給出OS版本信息  
panda%unam -r  
5.5  
panda%  
8.1.5顯示系統(tǒng)配置信息(prtconf)  
要顯示系統(tǒng)的配置信息,鍵入prtconf,系統(tǒng)配置信息就顯示出來。  
panda%prtconf  
System Configuration; Sun Microsystems sun4c  
Memory size:16 Megabytes  
sun 4/65 ,unit #0  
options,unit#0 zs,unit #0  
zs,unit #1  
fd,unit #0 (No driver.)  
audio,unit #0 (No driver.)  
sbus,unit #0  
dma,unit #0  
esp,unit #0  
scsibus,unit#s  
sd,unit #0  
sd,unit#1  
le,unit #0  
cgsix,unit #0  
auxiliary -io,unit #0(Nodriver.)  
...  
panda%  
顯示系統(tǒng)配置信息的另一種方法是,鍵入命令sysdef,系統(tǒng)配置信息顯示出來。  
panda%sysdef  
Hostid  
530080d2  
sun4c Configuration  
Devices  
options,unit # -1  
zs,unit #0  
zs,unit #1  
fd,unit #-1  
audio,unit #-1  
sbus,unit #0  
dma,unit #0  
esp,unit #0  
scsibus,unit #0  
sd,unit #0  
sd,unit #1  
le,unit #0  
cgsix,unit #0  
auxiliary -io,unit #-1  
interrupt -enable,unit #-1  
memory-error,unit #-1  
counter-timer,unit#-1  
eeprom,unit #-1  
pseudo,unit #0  
lo,unit #0  
tidg,unit #0  
tivc,unit #0  
...  
panda%  
8.1.6確定系統(tǒng)已經(jīng)運行了多長時間  
要想知道系統(tǒng)已運行了多長時間,鍵入命令uptime,本地系統(tǒng)的時間、用戶數(shù)、平均負數(shù)均顯示出來  
panda%uptime  
11:18am up 5 day(s),16:12 users,load average:16.46.15.92.15.55  
panda%  
要想知道系統(tǒng)是何時啟動的,鍵入who -b,最后一次啟動的月、日、時等信息顯示出來。  
panda%who -b  
system boot Ju1 14 08:49  
panda%  
8.1.7確定系統(tǒng)的日期和時間(date)  
要顯示系統(tǒng)的日期和時間,鍵入date,系統(tǒng)的日期和時間就顯示出來。  
panda%date  
Tue Ju1 14 19:40:47 PST 1992  
panda%  
8.1.8設(shè)置系統(tǒng)的日期和時間  
下面是重新設(shè)置系統(tǒng)日期和時間的步驟:  
1、變成超級用戶  
2、鍵入date,這里mm是月,dd是天,hh是時,mm是分,yy是年,于是系統(tǒng)的日期和時間按你指定的參數(shù)重新設(shè)置。  
panda%su  
Password:  
#date  
Tue ju1 14 16:07:01pst 1992  
#date 07141552  
tue ju1 14 15:52 :00 pst 1992  
#  
8.1.9改變系統(tǒng)的時區(qū)(/etc/TIMEZONE)  
時區(qū)在/etc/TIMEZONE文件中設(shè)置,可用的U.S時區(qū)變量如下。完整的時區(qū)變量表見usr/share/lib/zoneinfo目錄。  
Us/arizona  
US/central  
US/east-indiana  
US/Hawaii  
US/Mountain  
US/Pacific  
US/Pacific-New  
US/Yukon  
下面是改變時區(qū)的步驟:  
1、 成為超級用戶。  
2、 編輯/etc/timezone文件,改變tz=,必須使用絕對的路徑來指定交換文件,這樣交換區(qū)就變大,可以使用了;  
3、 鍵入swap -1證實交換文件已增加;  
#swap –a /files1/swap  
#swap -1  
swapfile dev swaplo blocks free  
swapfs - 0 94520 93512  
/dev/dsk/cot3d0s1 32.25 8 65512 45048  
/files1/swap 8 20402040  
下面是刪除指定交換文件的步驟:  
1、 成為超級用戶;  
2、 鍵入swap –d ,當(dāng)交換文件不再使用時,它只從表中刪除,使得不再用作交換區(qū),文件本身并沒刪除。  
panda%su  
password:  
#swap -d /files1/SWAP  
#swap -1  
swapfile dev swplo  
blocks free  
swpfs- 0  
94520 93512  
/dev/dsk/c0t30s1 32.25 8  
65512 45048  
#ls –1 /files1/swap  
-rw-----1 root root 104857 jan 31 13:56 swap  
#  
當(dāng)創(chuàng)建附加的交換空間時,如果希望重新啟動系統(tǒng)時這個空間仍可用,那么,必須在/etc/vfstab文件中增加一項。下面是在文件/etc/vfstab中增加一個交換文件項的步驟:  
1、成為超級用戶;  
2、編輯/etc/vfstab文件,增加一行: - - swap – no  
-。保證這一行跟在交換文件所在的硬盤分割項安裝說明的后面。下次系統(tǒng)重新啟動時,交換文件大小自動增加,下面的例子將增加交換文件/files1/swap的說明項放到/etc/vfstab文件中,它在安裝文件/files1說明項之后。  
/files1/swap - swap – no -  
8.3創(chuàng)建一個本地郵件別名(/etc/mail/aliases)  
在網(wǎng)絡(luò)環(huán)境中,很可能用一個集中的方法去管理郵件別名,另外,用戶常常希望建立本地別名。下面是在本地系統(tǒng)上創(chuàng)建郵件別名的步驟:  
1、成為超級用戶;  
2、編輯文件/etc/mail/aliases;  
3、 在文件的末端,在本地別名分類下,鍵入:,.......;  
4、保存修改后的文件。  
例如,如果你想創(chuàng)建一個叫做friends的別名,就編輯/etc/mail/aliases文件,并增加如下項:  
friends:dexter@elm,ogden@willow,mary@maple  
第9章、文件存取問題分析  
本章描述的是與查找路徑、存取數(shù)據(jù)以及所有權(quán)等有關(guān)的問題。  
當(dāng)用戶無法訪問一個程序、一個文件或者是一個目錄時,可以從以下兩個方面來進行檢查:  
1、 用戶的查找路徑是否已被改變,或者查找路徑中所列的目錄次序是否正確。  
2、 文件或目錄是否有合適的權(quán)限和所有者。  
該章簡單地描述如何判斷以上問題,并指出可能的解決方法。  
9.1 診斷與查找路徑有關(guān)的問題  
如果用戶鍵入一個不在查找路徑中的命令,系統(tǒng)將提示"Command not  
found"信息,通常導(dǎo)致命令無法找到的原因有兩點:系統(tǒng)中根本沒有這一命令,或者命令不在查找路徑中。  
如果在查找路徑的某個目錄中存在同名或者錯誤版本的命令,系統(tǒng)也將無法正確執(zhí)行該命令。  
為了診斷和解決與查找路徑有關(guān)的問題,可采用以下方法:  
1、 顯示當(dāng)前的查找路徑;  
2、 編輯設(shè)置查找路徑的文件(C Shell的.cshrc或.login,Bourne和Korn  
shell的.profile文件),在路徑中加入所需目錄名或者重新安排路徑的次序。注意:對于C  
shell,應(yīng)該同時檢查.cshrc和.login文件,以確保路徑設(shè)置的一致性,重復(fù)定義將導(dǎo)致路徑難以查找并降低用戶查找命令的效率。  
3、 對C Shell用source命令操作該文件,對Bourne和Kron Shell使用.命令,使路徑設(shè)置生效;  
4、 檢查該命令是否在正確路徑中;  
5、執(zhí)行該命令。  
9.1.1顯示當(dāng)前查找路徑  
為了顯示當(dāng)前的查找路徑,可鍵入echo $PATH,如:  
$echo $path  
/sbin:/usr/sbin:/usr/bin:/etc  
$  
9.1.2為Bourne和Korn shells設(shè)置路徑  
為Bourne和Korn shells設(shè)置的路徑在用戶的$HOME/.profile文件中:  
PATH=.:/usr/bin:$HOME/BIN;export path  
路徑表開始的點(.)表示系統(tǒng)首先要查找的是當(dāng)前目錄。  
9.1.3Source Bourne和Korn shell的初始化文件  
當(dāng)改變了.profile文件中的內(nèi)容后,需要使文件中的修改內(nèi)容生效,此時可鍵入:  
$. ./.profile  
9.1.4為C shell設(shè)置路徑  
C shell中的路徑設(shè)置在用戶的$Home/.cshc或.login文件中。  
set path=(./usr/bin $home/bin)  
路徑名開始的點(.)表示系統(tǒng)首先要查找的是當(dāng)前目錄。  
9.1.5Source C shell初始化文件  
當(dāng)你改變了.cshrc或.login文件中的內(nèi)容后,為變量設(shè)置生效,可鍵入:  
$source.login  
9.1.6檢查當(dāng)前的查找路徑  
當(dāng)修改完.cshrc文件后,可以使用which命令來加以驗證。該命令可自動檢查.cshrc文件,如果在Bourne或Korn  
shell中執(zhí)行which命令,并且在.cshrc文件中有一個which的別名,那么執(zhí)行which命令可能導(dǎo)致錯誤的結(jié)果,為保證正確執(zhí)行,Which命令應(yīng)在C  
shell中執(zhí)行。當(dāng)然也可以在Korn shell中運行直應(yīng)的Whence命令。  
為了檢查查找路徑,可以鍵入which ,當(dāng)系統(tǒng)在路徑名表中找到該命令時,該命令的名稱和路徑就被顯示出來。  
以下例子表明openwin命令不在搜索路徑中。  
panda% which openwin  
no openwin in  
/home/ingnatz/$bin/usr/sbin/usr/bin/etc/home/ignater/bin/bin/home/bin/usr/etc  
panda%  
以下例子則表明找到了openwin命令  
panda% which openwin  
/usr/openwin//bin/openwin  
panda%  
如果找不到某個命令,就需要查看有關(guān)手冊。例如找不到lpsched命令,那么手冊中的lpsched(1M)節(jié)中會告訴你lpsched命令的路徑是/usr/lib/lp/lpsched。  
9.1.7執(zhí)行一個命令  
鍵入即可執(zhí)行一個命令,如果該命令在查找路徑中,那么在任何路徑下,該命令均可執(zhí)行。如果不在查找路徑,那么必須鍵入該命令的整個路徑名。  
9.2分析與權(quán)限和所有權(quán)有關(guān)的問題  
用戶不能存取文件或目錄的最大可能是它們的權(quán)限或所有權(quán)被修改過了。例如,當(dāng)用戶作為根用戶編輯文件時,文件和目錄的所有權(quán)就可能改變,在為新用戶建立主目錄時,特別要注意將主目錄下點(.)文件的所有者設(shè)置成該用戶,如果用戶不是點(.)文件的所有者,他們就?/span>


本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/22249/showart_152079.html

論壇徽章:
0
2 [報告]
發(fā)表于 2009-12-21 11:15 |只看該作者
不錯?纯础

論壇徽章:
0
3 [報告]
發(fā)表于 2010-02-09 10:10 |只看該作者
我是來學(xué)習(xí)的 多謝

論壇徽章:
0
4 [報告]
發(fā)表于 2010-02-23 09:24 |只看該作者
好多內(nèi)容,慢慢看。

論壇徽章:
0
5 [報告]
發(fā)表于 2010-04-14 01:40 |只看該作者
不錯

論壇徽章:
0
6 [報告]
發(fā)表于 2010-04-15 15:47 |只看該作者
學(xué)習(xí)中,收藏了!!

論壇徽章:
0
7 [報告]
發(fā)表于 2010-06-03 12:24 |只看該作者
看看,謝謝

論壇徽章:
0
8 [報告]
發(fā)表于 2010-06-14 12:21 |只看該作者
不錯不錯,謝謝分享!

論壇徽章:
0
9 [報告]
發(fā)表于 2010-07-08 10:34 |只看該作者
多謝分享,好好學(xué)學(xué)!

論壇徽章:
0
10 [報告]
發(fā)表于 2011-11-15 22:37 |只看該作者
收藏了,謝謝樓主了!
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP