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

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 4373 | 回復(fù): 3
打印 上一主題 下一主題

完整的“Solaris高級(jí)系統(tǒng)管理員指南”,轉(zhuǎn)載自“SUN技術(shù)社區(qū)” [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2006-10-10 17:03 |只看該作者 |倒序?yàn)g覽

Solaris高級(jí)系統(tǒng)管理員指南
目 錄
第1章、前言
1.1了解超級(jí)用戶狀態(tài)
1.1.1成為超級(jí)用戶(su)
1.1.2退出超級(jí)用戶狀態(tài)
1.1.3以root注冊(cè)
1.2與用戶通信
1.2.1在注冊(cè)時(shí)顯示系統(tǒng)專用信息
1.2.2將信息發(fā)送給單個(gè)用戶
1.2.2.1發(fā)送一個(gè)短消息給一個(gè)單獨(dú)的用戶
1.2.2.2將作為一個(gè)文件的消息發(fā)給個(gè)別用戶
1.2.3將消息發(fā)送給一個(gè)系統(tǒng)或網(wǎng)絡(luò)中的所有用戶
1.2.4通過(guò)電子郵件發(fā)送消息
1.3啟動(dòng)和關(guān)閉系統(tǒng)
1.3.1選擇init狀態(tài)
1.3.1.1查看系統(tǒng)運(yùn)行級(jí)
1.3.1.2使用掉電狀態(tài),運(yùn)行級(jí)0
1.3.1.3使用系統(tǒng)管理員狀態(tài),運(yùn)行級(jí)1
1.3.1.4使用多用戶狀態(tài),運(yùn)行級(jí)2
1.3.1.5使用遠(yuǎn)程資源共享狀態(tài),運(yùn)行級(jí)3
1.3.1.6使用替換多用戶狀態(tài),運(yùn)行級(jí)4
1.3.1.7使用交互重引導(dǎo)狀態(tài),運(yùn)行級(jí)5
1.3.1.8使用重引導(dǎo)狀態(tài),運(yùn)行級(jí)6
1.3.1.9使用單用戶狀態(tài),運(yùn)行級(jí)s或S
1.3.1.10改變運(yùn)行級(jí)
1.3.2選擇所用的關(guān)閉命令
1.3.2.1 shutdown
1.3.2.2 telinit和init
1.3.2.3 halt
1.3.2.4 reboot
1.3.3 引導(dǎo)系統(tǒng)
1.3.3.1 引導(dǎo)到多用戶狀態(tài)
1.3.3.2 引導(dǎo)到單用戶狀態(tài)
1.3.3.3交互式引導(dǎo)
1.3.3.4查看引導(dǎo)信息
1.3.3.5增加新的硬件后引導(dǎo)系統(tǒng)
1.3.3.6退回引導(dǎo)進(jìn)程
1.3.4關(guān)閉系統(tǒng)
1.3.4.1關(guān)閉一個(gè)多用戶系統(tǒng)
1.3.4.2關(guān)閉系統(tǒng):可選方式
1.4監(jiān)視進(jìn)程
1.4.1 ps命令報(bào)告的內(nèi)容
1.4.2使用ps報(bào)告
1.4.3殺死進(jìn)程
1.5基本管理工具
1.5.1經(jīng)常使用的命令
1.5.1.1在文件系統(tǒng)中移動(dòng)
1.5.1.2查看在文件系統(tǒng)中所處的位置
1.5.1.3改變目錄
1.5.1.4查看文件的有關(guān)信息
1.5.1.5顯示文件信息
1.5.1.6查找一個(gè)文件
1.5.1.7查看一個(gè)文件的類型
1.5.1.8查看文件中的信息
1.5.1.9查找文件中的字符串
1.5.1.10查看文件
1.5.1.11瀏覽文件
1.5.1.12查看文件尾
1.5.1.13查看文件頭
1.5.1.14改變文件的所有權(quán)和許可權(quán)
1.5.1.15改變文件組
1.5.1.16設(shè)置或顯示系統(tǒng)環(huán)境
1.5.1.17定義Bourne和Korn shell環(huán)境變量
1.5.1.18定義C shell環(huán)境變量
1.5.1.19顯示環(huán)境變量的設(shè)置
1.5.1.20使用PATH變量
1.5.1.21設(shè)置Bourne和Korn shell路徑
1.5.1.22設(shè)置C shell路徑
1.5.2使用管理工具
第2章、基本OS命令
2.1查找用戶信息
2.1.1確定系統(tǒng)中有誰(shuí)注冊(cè)
2.1.1.1使用who命令
2.1.1.2使用finger命令
2.1.1.3使用rusers -1命令
2.1.1.4使用whodo命令
2.1.2檢查用戶的用戶號(hào)和組號(hào)(id命令)
2.2查尋環(huán)境信息
2.3創(chuàng)建和編輯文件
2.3.1使用cat命令
2.3.2使用touch命令
2.3.3文件拷貝(cp)或改名(mv)
2.3.4文本編輯器的使用
2.3.5 vi的使用
2.4命令組合及輸出重新定向
2.4.1在同一命令行里鍵入多個(gè)命令
2.4.2輸出重新定向(

2.4.3組合命令(|)
2.5使用手冊(cè)
2.5.1顯示手冊(cè)(man)
2.5.2找命令節(jié)號(hào)(whatis、man)
2.6查閱磁盤信息
2.6.1顯示磁盤空間的信息(df -k)
2.6.2判別某文件系統(tǒng)是否為本地文件系統(tǒng)(df)
2.6.3找出某種類型已安裝的文件系統(tǒng)(df -F)
第3章、設(shè)備管理
3.1磁帶的使用
3.1.1磁帶設(shè)備的命名習(xí)慣
3.1.1.1使用缺省密度規(guī)定驅(qū)動(dòng)器號(hào)
3.1.1.2為磁帶機(jī)指定密度
3.1.1.3指定"不倒帶"選項(xiàng)
3.1.1.4不同磁帶控制器和介質(zhì)的設(shè)備名縮寫
3.1.1.5 1/2英寸卷繞式非SCSI內(nèi)接(Rack mounted)磁帶機(jī)
3.1.1.6 1/4英寸SCSI盒式和1/2英寸前部裝入的卷繞式磁帶機(jī)
3.1.1.7 螺線掃描磁帶機(jī)
3.1.2讀寫磁帶的命令
3.1.2.1拉緊磁帶
3.1.2.2倒帶
3.1.2.3列出磁帶機(jī)狀態(tài)
3.2 磁帶與軟盤操作
3.2.1 tar命令
3.2.1.1向磁帶寫文件(tar)
3.2.1.2列出磁帶上的文件(tar)
3.2.1.3向磁帶上增加文件(tar)
3.2.1.4從磁帶中析取文件(tar)
3.2.2cpio命令
3.2.2.1將某目錄下的所有文件拷入磁帶(cpio)
3.2.2.2列出磁帶上的文件(cpio)
3.2.2.3析取磁帶上所有文件(cpio)
3.2.2.4自磁帶中析取個(gè)別文件(cpio)
3.2.2.5軟盤的使用
3.2.3軟驅(qū)設(shè)備名
3.2.4ufs文件系統(tǒng)的軟盤
3.2.4.1格式化ufs軟盤
3.2.4.2自軟驅(qū)中取出軟盤
3.2.4.3將ufs文件拷入單張格式化過(guò)軟盤
3.2.4.4列出軟盤上的文件
3.2.4.5向一個(gè)格式化好的軟盤上附加文件(tar)
3.2.4.6從軟盤上拷出文件(tar)
3.2.4.7自軟盤上拷出bar格式的文件(cpio)
3.2.5使用多張軟盤存檔
3.2.5.1在軟盤上創(chuàng)建一個(gè)ufs文件系統(tǒng)(newfs /dev/rdiskette)
3.2.6pcfs(DOS)文件系統(tǒng)的軟盤
3.2.6.1 格式化pcfs(DOS)文件系統(tǒng)軟盤
3.2.6.2安裝pcfs軟盤
3.2.6.3卸下pcfs軟盤
3.3硬盤命名管理
3.3.1硬盤命名習(xí)慣
3.3.1.1帶有總線控制器的硬盤的使用
3.3.1.2帶有直接驅(qū)動(dòng)器的硬盤的使用
3.3.2檢查硬盤使用狀況
3.3.3檢查硬盤信息(Prtvtoc)
3.3.3.1將文件存檔
3.3.3.2將硬盤上文件拷出
3.3.3.3修復(fù)壞塊
3.3.3.4重新格式化硬盤
3.3.3.5換下舊硬盤
3.3.3.6加入錯(cuò)誤表對(duì)硬盤進(jìn)行格式化、分區(qū)及標(biāo)記
3.3.3.7重建文件系統(tǒng)(newfs)
3.3.3.8在臨時(shí)安裝點(diǎn)安裝文件系統(tǒng)(mount)
3.3.3.9向文件系統(tǒng)轉(zhuǎn)儲(chǔ)文件(ufsrestore)
3.3.3.10自臨時(shí)裝入點(diǎn)拆卸文件系統(tǒng)(umount)其方法如下:
3.3.3.11檢查文件系統(tǒng)的不一致性(fsck)
3.3.3.12對(duì)恢復(fù)文件系統(tǒng)做0級(jí)備份
3.3.3.13在永久安裝點(diǎn)安裝文件系統(tǒng)(mount)
第4章、文件系統(tǒng)管理
4.1文件系統(tǒng)類型
4.1.1磁盤文件系統(tǒng)
4.1.2網(wǎng)絡(luò)文件系統(tǒng)
4.1.3偽文件系統(tǒng)
4.1.3.1臨時(shí)文件系統(tǒng)(tmpfs)
4.1.3.2循環(huán)文件系統(tǒng)(lofs)
4.1.3.3進(jìn)程文件系統(tǒng)(procfs)
4.1.3.4別的偽文件系統(tǒng)
4.2 SunOS 5.x缺省的文件系統(tǒng)
4.3虛擬文件系統(tǒng)表(/etc/vfstab)
4.3.1 文件系統(tǒng)表項(xiàng)的建立
4.4文件管理命令
4.4.1普通命令語(yǔ)法規(guī)則
4.4.2普通文件系統(tǒng)命令和特別文件系統(tǒng)命令手冊(cè)
4.4.3利用文件系統(tǒng)命令確定文件系統(tǒng)類型
4.4.4文件系統(tǒng)類型
4.5如何使文件系統(tǒng)有效
4.5.1安裝與拆卸
4.5.1.1安裝與拆卸文件系統(tǒng)命令
4.5.1.2查找已安裝的文件系統(tǒng)
4.5.1.3安裝/etc/vfstab文件中的全部文件系統(tǒng)
4.5.1.4安裝特定類型的文件系統(tǒng)
4.5.1.5安裝單個(gè)文件系統(tǒng)(mount)
4.5.1.6拆卸所有的遠(yuǎn)程文件系統(tǒng)(umountall -F nfs)
4.5.1.7拆卸個(gè)別的文件系統(tǒng)(umount)
4.5.2自動(dòng)安裝程序
4.5.3共享服務(wù)器文件
4.6檢查文件系統(tǒng)的數(shù)據(jù)一致性(fsck)
4.6.1決定文件系統(tǒng)是否需檢測(cè)
4.6.2以交互方式檢測(cè)文件系統(tǒng)
4.7備份和恢復(fù)文件系統(tǒng)
4.7.1用QIC-150盒式磁帶備份文件系統(tǒng)(ufsdump)
4.7.1.1實(shí)現(xiàn)增量備份
4.7.2恢復(fù)備份文件系統(tǒng)
4.7.2.1決定使用哪一備份帶
4.7.2.2恢復(fù)全部備份
4.7.2.3交互式恢復(fù)文件
4.7.2.4從備份帶中恢復(fù)單個(gè)文件( ufsrestore)
第5章、管理網(wǎng)絡(luò)服務(wù)
5.1檢查遠(yuǎn)程系統(tǒng)狀態(tài)
5.1.1確定一個(gè)遠(yuǎn)程系統(tǒng)已運(yùn)行了多長(zhǎng)時(shí)間
5.1.2確定一個(gè)遠(yuǎn)程系統(tǒng)是否在運(yùn)行(ping\rup\rpcinfo-p)
5.2注冊(cè)到一個(gè)遠(yuǎn)程系統(tǒng)(rlogin)
5.3系統(tǒng)之間傳送文件(rcp、ftp)
5.3.1使用RCP命令
5.3.2使用文件傳送程序(ftp)
第6章、管理用戶帳號(hào)和用戶組
6.1增加和管理用戶帳號(hào)
6.1.1增加用戶帳號(hào)
6.1.1.1編輯Passwd數(shù)據(jù)庫(kù)
6.1.1.2定義用戶組
6.1.1.3建立主目錄(home director)
6.1.1.4自動(dòng)安裝目錄
6.1.1.5用nfs安裝主目錄
6.1.1.7定義初化文件
6.1.1.8建立用戶的郵件帳號(hào)
6.1.1.9建立口令
6.1.2管理用戶帳號(hào)
6.1.2.1修改用戶帳號(hào)
6.1.2.2取消用戶帳號(hào)
6.1.2.3凍結(jié)用戶帳號(hào)
6.2設(shè)置和管理用戶組
6.2.1設(shè)置Group數(shù)據(jù)庫(kù)中的域值
6.2.1.1設(shè)置組名(Group Name)域
6.2.1.2設(shè)置Group ID域
6.2.1.3設(shè)置成員表域
6.2.2建立缺省的UNIX用戶組
6.2.3建立新的組
6.2.4修改或刪除用戶組
6.2.4.1修改某個(gè)組
6.2.4.2刪除某個(gè)組
第7章、UNIX的shell命令
7.1各種shell的公共命令
7.1.1設(shè)置某種缺省shell
7.1.2在命令行中改變shell類型(sh,csh,ksh)
7.1.3從shell解釋器中退出(exit)
7.1.4清除一個(gè)shell窗口(clear)
7.2標(biāo)準(zhǔn)shell
7.2.1標(biāo)準(zhǔn)shell的初始文件
7.2.2定義標(biāo)準(zhǔn)shell的環(huán)境變量
7.3 C shell
7.3.1C shell的初始文件
7.3.2C shell環(huán)境變量的定義
7.3.3建立C shell的別名
7.3.4設(shè)置C shell的歷史功能
7.3.5使用C shell歷史功能
7.3.6設(shè)置C shell的退格鍵(stty erase)
7.3.7新命令的嵌入
7.3.8Cshell歷史命令的編輯
7.4 Korn shell
7.4.1Korn shell的初始化文件
7.4.2Korn shell的選擇項(xiàng)
7.4.3創(chuàng)建Korn shell的別名
7.4.4用Korn shell的聯(lián)機(jī)編輯器編輯命令
7.4.5設(shè)置Korn shell的歷史
7.4.6顯示Korn shell的歷史命令
7.4.7使用Korn shell的歷史命令
7.4.8編輯Korn shell的歷史命令
第8章、管理系統(tǒng)
8.1顯示系統(tǒng)專有信息
8.1.1確定主機(jī)ID號(hào)(sysdef -h)
8.1.2確定硬件類型(uname -m)
8.1.3確定處理機(jī)類型(uname -p)
8.1.4確定OS版本號(hào)(uname -r)
8.1.5顯示系統(tǒng)配置信息(prtconf)
8.1.6確定系統(tǒng)已經(jīng)運(yùn)行了多長(zhǎng)時(shí)間
8.1.7確定系統(tǒng)的日期和時(shí)間(date)
8.1.8設(shè)置系統(tǒng)的日期和時(shí)間
8.1.9改變系統(tǒng)的時(shí)區(qū)(/etc/TIMEZONE)
8.2配置附加的交換空間(mkfile,swap)
8.3創(chuàng)建一個(gè)本地郵件別名(/etc/mail/aliases)
第9章、文件存取問(wèn)題分析
9.1 診斷與查找路徑有關(guān)的問(wèn)題
9.1.1顯示當(dāng)前查找路徑
9.1.2為Bourne和Korn shells設(shè)置路徑
9.1.3Source Bourne和Korn shell的初始化文件
9.1.4為C shell設(shè)置路徑
9.1.5Source C shell初始化文件
9.1.6檢查當(dāng)前的查找路徑
9.1.7執(zhí)行一個(gè)命令
9.2分析與權(quán)限和所有權(quán)有關(guān)的問(wèn)題
9.2.1改變文件的所有權(quán)
9.2.2改變文件的權(quán)限
9.2.3改變文件組的所有權(quán)
第1章、前言
本手冊(cè)主要供Solaris系統(tǒng)管理員使用,所提供的內(nèi)容包含SUN OS操作系統(tǒng)系統(tǒng)的安裝、環(huán)境的建立及重要文件的創(chuàng)建,以及系統(tǒng)管理員在網(wǎng)絡(luò)系統(tǒng)環(huán)境下如何建立、維護(hù)、管理網(wǎng)絡(luò)系統(tǒng)下的工作環(huán)境,還包括系統(tǒng)管理的日常使用命令、主要命令、文件的索引等。
本章將介紹:系統(tǒng)管理員的職責(zé)、了解超級(jí)用戶狀態(tài)、如何與用戶通信、啟動(dòng)和關(guān)閉系統(tǒng)、進(jìn)程管理、基本管理工具。
SunOS 5.x操作系統(tǒng),是Sun公司所推出的Solaris 2.x軟件系統(tǒng)環(huán)境的主要組成部份,Solaris 2.x可運(yùn)行于SPARC和Intel硬件平臺(tái),是一個(gè)支持對(duì)稱式多處理機(jī)的UNIX系統(tǒng)環(huán)境。
系統(tǒng)管理員的職責(zé)
系統(tǒng)管理員的職責(zé)是確保一個(gè)獨(dú)立(Standalone)系統(tǒng)或網(wǎng)絡(luò)上的一組系統(tǒng)能正常運(yùn)行(主要指軟件)。 不同領(lǐng)域的系統(tǒng)管理員,其責(zé)任也不相同,一個(gè)系統(tǒng)管理員可能在一個(gè)或多個(gè)領(lǐng)域是專家,而在別的領(lǐng)域卻顯生疏。
下面列出本手冊(cè)所描述的系統(tǒng)管理員的工作:
1、 管理設(shè)備
*磁帶機(jī)的使用
*格式化磁盤
*監(jiān)視盤的使用
2、 了解服務(wù)訪問(wèn)機(jī)制
*建立一個(gè)雙向調(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ù)庫(kù)
5、 管理打印服務(wù)
*設(shè)置一個(gè)打印客戶和打印服務(wù)器
*使用打印命令
6、 管理用戶和用戶組
*增加用戶
*?jiǎng)h除用戶
*改變用戶信息
*建立新組帳號(hào)
7、 了解shell
*使用Generic shell命令
*使用Bourne shell命令
*使用C Shell命令
*使用Korn shell命令
8、 管理系統(tǒng)
*查找系統(tǒng)信息
*建立局部郵件別名
*配置額外的交換空間(swap space)
*管理系統(tǒng)日期和時(shí)間
*識(shí)別文件存取故障
*搜索路徑的問(wèn)題
*存取權(quán)和所有權(quán)問(wèn)題
*網(wǎng)絡(luò)存取問(wèn)題
*獲得存取全部文件系統(tǒng)和資源的權(quán)限
*與用戶通信
*關(guān)閉和啟動(dòng)系統(tǒng)
*監(jiān)視進(jìn)程
本手冊(cè)的章節(jié)按照以上給出的標(biāo)題順序安排,你還必須了解何時(shí)及如何進(jìn)行如下管理工作:(本手冊(cè)不包含如下系統(tǒng)管理工作:安裝系統(tǒng)軟件、安裝第三廠家軟件、建立和管理網(wǎng)絡(luò)服務(wù)、建立和管理郵件服務(wù)、擴(kuò)充和刪除硬件、管理安全性和記帳、監(jiān)視系統(tǒng)和網(wǎng)絡(luò)性能。)這章其余部分將描述如何完成系統(tǒng)管理員的工作,并介紹一些基本命令和管理工具。
1.1了解超級(jí)用戶狀態(tài)
超級(jí)用戶是一個(gè)具有特權(quán)的用戶,它可不受任何限制地使用全部文件和命令,超級(jí)用戶有一個(gè)特定的UID(=0),這個(gè)帳號(hào)的用戶名為root(其實(shí)只要是 UID為0的用戶就是超級(jí)用戶)。許多系統(tǒng)管理任務(wù)都必須在超級(jí)用戶下完成,如安裝和拆卸文件系統(tǒng)、改變文件和目錄的存取權(quán)和所有權(quán)、備份和恢復(fù)文件系統(tǒng)、創(chuàng)建設(shè)備文件,以及關(guān)閉系統(tǒng)。
我們可以用如下辦法進(jìn)入超級(jí)用戶:
1、 在其它用戶狀態(tài)下,用不帶任何參數(shù)的su命令,并按需要鍵入root的口令。
2、 在login提示下,鍵入root及其口令。
在入進(jìn)超級(jí)用戶后,shell將給出一個(gè)特殊的提示符“#”,提醒你對(duì)系統(tǒng)有著至高無(wú)上的存取權(quán),做任何事情都要小心,通過(guò)查詢記錄文件/var/adm/sulog,可以跟蹤誰(shuí)正在使用超級(jí)用戶帳號(hào)。
最好在必要時(shí)才進(jìn)入超級(jí)用戶,應(yīng)該避免在超級(jí)用戶下做一般的事情。如果某項(xiàng)任務(wù)需要你是超級(jí)用戶,它會(huì)提示你應(yīng)該進(jìn)入超級(jí)用戶。當(dāng)你完成必要的工作后,應(yīng)立即回到一般用戶狀態(tài)。
由于超級(jí)用戶非保護(hù)的存取權(quán)限嚴(yán)重威脅系統(tǒng)的安全,所以root帳號(hào)總是設(shè)有一個(gè)口令,而且為了增加安全性,要經(jīng)常更換口令。
1.1.1成為超級(jí)用戶(su)
僅當(dāng)需要使用root權(quán)限完成一定的工作時(shí),你才進(jìn)入超級(jí)用戶,下面是從普通用戶成為root的方法:
1、 在Shell的$或%提示符下,輸入su。如果root帳號(hào)有口令的話,系統(tǒng)會(huì)提示你鍵入口令。
2、 鍵入超級(jí)用戶口令,如果口令正確,你就具有了超級(jí)用戶權(quán)限,系統(tǒng)顯示“#”提示符。
gtxa%su
Password:
#
如果想使用root本身的環(huán)境變量,鍵入su -。
1.1.2退出超級(jí)用戶狀態(tài)
要退出超級(jí)用戶狀態(tài),就簡(jiǎn)單地鍵入exit。
#exit
gtxa%
1.1.3以root注冊(cè)
要直接注冊(cè)成root,必須在login提示下完成:
1、 在login提示下,輸入root,于是系統(tǒng)提示你輸入root口令。
2、 輸入root的口令,如果口令正確,系統(tǒng)將出現(xiàn)root提示符#:
login: root
Password:
#
1.2與用戶通信
系統(tǒng)管理員工作的一個(gè)重要部分是與用戶通信,使用戶了解管理員所做的事情對(duì)系統(tǒng)功能所造成的影響,要讓用戶及時(shí)知道你所做的管理工作(如:重新引導(dǎo)系統(tǒng),安裝新的軟件,或以某種方式改變系統(tǒng)環(huán)境)何時(shí)將對(duì)它們產(chǎn)生影響。
管理員可以口頭與用戶通訊,但最普遍的方式是:
;在注冊(cè)時(shí)顯示當(dāng)前系統(tǒng)專用信息.
;用write命令直接將消息發(fā)送到某個(gè)用戶終端上.
;用wall使用將消息發(fā)送給一個(gè)系統(tǒng)上的所有用戶.
;用rwall命令將消息發(fā)送給網(wǎng)絡(luò)上的所有用戶.
;通過(guò)電子郵件將消息發(fā)送一個(gè)或一組用戶.
1.2.1在注冊(cè)時(shí)顯示系統(tǒng)專用信息
每次用戶注冊(cè)進(jìn)系統(tǒng),屏幕上都會(huì)顯示當(dāng)天的系統(tǒng)消息,這個(gè)消息存貯在文件/etc/motd中。已經(jīng)注冊(cè)進(jìn)系統(tǒng)和正在使用系統(tǒng)的用戶看不見(jiàn)此信息,可使用 motd命令查看此消息,這些信息包括:操作系統(tǒng)版本號(hào),系統(tǒng)軟件的變化,新安裝(或刪除)的第三廠家文件的名稱,或系統(tǒng)的調(diào)度時(shí)間表。必須確保motd 文件是最新的,如果motd顯示的是過(guò)時(shí)的消息,用戶會(huì)因此而失掉一個(gè)關(guān)鍵信息,消息應(yīng)盡量簡(jiǎn)短,如果其長(zhǎng)度超過(guò)一屏,用戶就讀不到開(kāi)頭部分。 /etc/motd文件所在者應(yīng)該是root, 而且root應(yīng)是唯一對(duì)此文件具有寫權(quán)限的用戶。
gtxa% ls -1 /etc/motd
-rw-r--r-- root sys 49 Jan 1 1970 /etc/motd
gtxa%
注意:系統(tǒng)軟件安裝后,有幾個(gè)文件(包括/etc/motd 在內(nèi))的更新時(shí)間為“Jan 1 1970”這個(gè)日期是UNIX的起始日期,當(dāng)你對(duì)這些文件編輯后,這個(gè)時(shí)間會(huì)隨之改變。
1.2.1.1建立日期消息
用如下步驟建立日期消息:
1、 成為超級(jí)用戶
2、 用編輯工具(如vi)編輯/etc/motd文件
3、 刪除不用的消息,輸入新的消息
4、 保存修改后的文件,這些消息在用戶下次登錄進(jìn)系統(tǒng)時(shí)顯示
1.2.2將信息發(fā)送給單個(gè)用戶
可以使用write命令將信息發(fā)送到用戶的終端上,當(dāng)使用窗口系統(tǒng)(如Open Windows)時(shí),每個(gè)窗口都有一個(gè)獨(dú)立的帳號(hào),如果用戶登錄多次,則信息會(huì)直接顯示在控制臺(tái)窗口中。
1.2.2.1發(fā)送一個(gè)短消息給一個(gè)單獨(dú)的用戶
用以下步驟將一個(gè)一次性的短消息發(fā)送給單個(gè)用戶:
1、 鍵入write username,username是用戶的注冊(cè)名。
2、 鍵入要發(fā)送的消息。
3、 輸完消息后,鍵入Control-D. 則在username用戶的控制臺(tái)窗口中顯示你鍵入的內(nèi)容。
下面給出系統(tǒng)管理員發(fā)送消息的例子:
gtxa% write ignatz@elm
I'll come by at 12:00 to look at your problem.
gtxa%
下面是在用戶控制臺(tái)窗口顯示的消息:
Message from fred@gtxa on ttypl 11:20...
I'll come by at 12:00 to look at your problem.
EOF
1.2.2.2將作為一個(gè)文件的消息發(fā)給個(gè)別用戶
如果你想發(fā)送消息給一些用戶,建立一個(gè)消息文件,再使用帶參數(shù)的write命令來(lái)實(shí)現(xiàn),其中的一個(gè)參數(shù)是消息文件名。
建立一個(gè)文件,此文件含有想要發(fā)送的消息。 鍵入write username ; message
I'll 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òng)器上啟動(dòng)自動(dòng)引導(dǎo)過(guò)程,顯示一系列啟動(dòng)信息,最后系統(tǒng)進(jìn)入多用戶狀態(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)
如果想對(duì)系統(tǒng)文件或核心作暫時(shí)改動(dòng),可以采用交互式引導(dǎo),在這種情況下,可以測(cè)試所作的改動(dòng),且當(dāng)出現(xiàn)問(wèn)題時(shí)很容易恢復(fù)。
1、 在ok>;的PROM提示下,鍵入boot-a,引導(dǎo)過(guò)程會(huì)按交互式方式提示你。
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無(wú)盤客戶。
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]:
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選擇項(xiàng),以便使操作系統(tǒng)在引導(dǎo)過(guò)程中查看并裝入新的設(shè)備驅(qū)動(dòng)程序。
1、 按硬件中的說(shuō)明裝入新的設(shè)備驅(qū)動(dòng)程序。
2、 關(guān)閉系統(tǒng)且安裝新的硬件。
3、 鍵入boot -r并回車,則運(yùn)行重配置shell程序,裝入在模塊目錄中的所有的設(shè)備驅(qū)動(dòng)程序且建立相應(yīng)的硬件結(jié)點(diǎn)(nodes)。
1.3.3.6退回引導(dǎo)進(jìn)程
在有些情況下,你也許想退出或中斷引導(dǎo)過(guò)程,具體的中斷鍵依鍵盤類型不同而有所不同,例如,可鍵入stop -A或L1 -A。在tty 終端上,鍵入Break鍵。要中斷引導(dǎo)過(guò)程,鍵入系統(tǒng)對(duì)應(yīng)的中斷鍵,當(dāng)中斷引導(dǎo)過(guò)程后,監(jiān)視器將顯示ok PROM提示

k
鍵入boot重新啟動(dòng)引導(dǎo)過(guò)程,或鍵入help顯示一組幫助信息。如果終端示出>;提示,鍵入n獲得ok提示。
1.3.4關(guān)閉系統(tǒng)
下面介紹如何用shutdown和init命令關(guān)閉系統(tǒng)。
1.3.4.1關(guān)閉一個(gè)多用戶系統(tǒng)
在關(guān)閉一個(gè)多用戶系統(tǒng)之前,要通知系統(tǒng)中的用戶,給用戶完成一些處理過(guò)程的時(shí)間。
1、 鍵入who,顯示出注冊(cè)的所有用戶清單。
2、 鍵入ps-ef,顯示出系統(tǒng)活動(dòng)進(jìn)程表,如果系統(tǒng)進(jìn)程允許關(guān)閉,轉(zhuǎn)到下一步。
3、 變成超級(jí)用戶。
4、 鍵入cd /,必須在根目錄下運(yùn)行關(guān)閉命令。
5、 鍵入shutdown,系統(tǒng)要你確認(rèn)是否要關(guān)閉系統(tǒng)。
6、 鍵入y,所有的用戶將接收到一個(gè)消息,等待60秒后,系統(tǒng)關(guān)閉,進(jìn)入單用戶狀態(tài)且提示鍵入root口令。
7、 鍵入root口令,系統(tǒng)處于單用戶狀態(tài),這時(shí)可以進(jìn)行維護(hù)工作。
8、 鍵入Control-D返回到缺省運(yùn)行系統(tǒng)級(jí)。
# 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命令的缺省功能,選擇以下所述的六種方式之一來(lái)完成。
1、 在不確認(rèn)的情況下關(guān)閉系統(tǒng):
*變成超級(jí)用戶
*鍵入cd /,必須在root目錄下運(yùn)行shutdown命令。
*鍵入shutdown等待時(shí)間(Grace Period)
2、 為了改變shutdown等待時(shí)間(Grace Period),用以下幾步:
*變成超級(jí)用戶。
*鍵入cd /,必須在root目錄下運(yùn)行shutdown命令。
*鍵入shutdown -t .系統(tǒng)在等待用戶確定的秒數(shù)后關(guān)閉。
*下面是改變等待時(shí)間(Grace Period)例子:
# cd /
# shutdown -g 120
3、 關(guān)閉且重新引導(dǎo)多用戶系統(tǒng)
*變成超級(jí)用戶。
*鍵入cd /, 必須在root目錄下運(yùn)行shutdown命令。
*鍵入shutdown -i6 將一條消息發(fā)送給所有的用戶且執(zhí)行re6 shell程序;系統(tǒng)關(guān)閉為掉電狀態(tài),然后恢復(fù)到多用戶狀態(tài)。
4、 關(guān)閉單用戶系統(tǒng)
要關(guān)閉一個(gè)單用戶系統(tǒng),鍵入telinit 0(或init 0)命令運(yùn)行shell程序使系統(tǒng)很快地關(guān)閉,沒(méi)有警告信息。
5、 關(guān)閉且重新引導(dǎo)單用戶系統(tǒng)
要關(guān)閉且重新引導(dǎo)單用戶系統(tǒng),鍵入telinit 6 (或init 6)。此時(shí)系統(tǒng)信息寫到硬盤上,殺死所有的活動(dòng)進(jìn)程且系統(tǒng)回到掉電狀態(tài)。系統(tǒng)再重新引導(dǎo)到缺省級(jí)(通常是多用戶級(jí))。
6、 緊急關(guān)閉系統(tǒng)
要緊急關(guān)閉一個(gè)系統(tǒng),鍵入uadmin 2 0. 將系統(tǒng)信息寫到硬盤上,系統(tǒng)回到掉電狀態(tài),且顯示PROM提示。
1.4監(jiān)視進(jìn)程
某一時(shí)刻在系統(tǒng)中運(yùn)行的程序稱為進(jìn)程。用戶可以監(jiān)視進(jìn)程的狀態(tài),控制一個(gè)進(jìn)程獲得的CPU時(shí)間,掛起或終止一個(gè)進(jìn)程的執(zhí)行。
ps命令是獲得進(jìn)程信息的主要工具?梢杂胮s和grep命令查尋所需要的信息,可以確定哪些進(jìn)程正在(或沒(méi)有)運(yùn)行,而且可以獲得一個(gè)進(jìn)程的詳細(xì)信息,這些信息包括:
*PID;
*UID;
*優(yōu)先級(jí)
*控制終端
*存貯器的使用
*CPU時(shí)間
*當(dāng)前狀態(tài)
ps命令反映的是命令被鍵入時(shí)的系統(tǒng)狀態(tài),因此當(dāng)你正在監(jiān)視系統(tǒng)時(shí)間的活動(dòng)情況時(shí),必須明白當(dāng)你讀結(jié)果時(shí)它們已經(jīng)有點(diǎn)過(guò)時(shí),表1.2列出了ps(1)手冊(cè)。
表1.2 ps 命令最常用的選擇項(xiàng)目
可選項(xiàng)說(shuō)明
-e 報(bào)告所有的進(jìn)程
-l 生成一個(gè)長(zhǎng)報(bào)告,此報(bào)告中包括除STIME之外的所有域。
-f 顯示進(jìn)程啟動(dòng)程序的全路徑名
1.4.1 ps命令報(bào)告的內(nèi)容
當(dāng)鍵入ps-e時(shí),可獲得如下所示的信息
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)容說(shuō)明如下:
*PID: 進(jìn)程標(biāo)識(shí)號(hào)
*TTY: 啟動(dòng)此進(jìn)程(或其父進(jìn)程)的終端。如果進(jìn)程沒(méi)有控制終端這一欄顯示一個(gè)問(wèn)號(hào);──顯示問(wèn)號(hào)的進(jìn)程常常是系統(tǒng)進(jìn)程。
*TIME: 進(jìn)程所用的CPU時(shí)間
*COMD: 產(chǎn)生此進(jìn)程的命令名,注意:ps-e 命令僅顯示出文件名的頭八個(gè)字符。
當(dāng)鍵入ps -el時(shí),可看到如下的顯示內(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長(zhǎng)報(bào)告中各域的說(shuō)明表
域說(shuō)明
F 十六進(jìn)制標(biāo)示,加在一起表示進(jìn)程目前的狀態(tài)
     00進(jìn)程已經(jīng)終止,它對(duì)應(yīng)的進(jìn)程表項(xiàng)已空
     01此進(jìn)程是一個(gè)進(jìn)程且總是在內(nèi)存中
     02此進(jìn)程正被它的父進(jìn)程跟蹤
     04此進(jìn)程在被它的父進(jìn)程跟蹤,且已經(jīng)停止運(yùn)行
     08此進(jìn)程不能用信號(hào)激活
     10進(jìn)程正在內(nèi)存中且在一個(gè)文件完成之前被鎖住
     20此進(jìn)程不可換出
S 進(jìn)程的當(dāng)前狀態(tài),由下列字母之一表示:
     O正在處理器上運(yùn)行
     S睡眠;等待IO事件完成
     R運(yùn)行就緒。
     I空閑狀態(tài),進(jìn)程正在創(chuàng)建
     Z僵尸狀態(tài);進(jìn)程已經(jīng)終止且父進(jìn)程不再等待,但此死進(jìn)程仍留在進(jìn)程表中。
     T因父進(jìn)程正在跟蹤它而停止執(zhí)行
     X等待獲得更多的內(nèi)存
UID 進(jìn)程所有者的用戶ID號(hào)
PID 進(jìn)程標(biāo)識(shí)號(hào)
PPID 父進(jìn)程的標(biāo)識(shí)號(hào)
C 進(jìn)程所用的CPU時(shí)間(該進(jìn)程所用CPU時(shí)間的百分比估計(jì)值)
PRI 進(jìn)程調(diào)度優(yōu)先級(jí),數(shù)字越大表示優(yōu)先級(jí)越低
NI 進(jìn)程的nice數(shù),影響其調(diào)度優(yōu)先級(jí),提高進(jìn)程的nice數(shù)意味著降低其優(yōu)先級(jí)、使用更少的CPU時(shí)間
SZ 進(jìn)程所需虛存數(shù)量,它很好地表示出進(jìn)程對(duì)系統(tǒng)存貯器的要求。
TTY 啟動(dòng)此進(jìn)程(或父進(jìn)程)的終端,或者是“?”表示無(wú)控制終端(通常表示系統(tǒng)進(jìn)程)。
TIME 進(jìn)程從啟始到目前所使用的CPU時(shí)間總和
COMD 產(chǎn)生此進(jìn)程的命令。
1.4.2使用ps報(bào)告
當(dāng)需要哪些進(jìn)程或系統(tǒng)管理進(jìn)程正在運(yùn)行時(shí),使用ps -e選擇項(xiàng),如果還想得到過(guò)程的更詳細(xì)信息,用ps -el選擇項(xiàng)。各選擇項(xiàng)的詳細(xì)說(shuō)明參考ps(1)命令手冊(cè)。
下面是如何發(fā)現(xiàn)潛在問(wèn)題的指南:
*查看有沒(méi)有由同一用戶所有的相同作業(yè),若有,這可能是由于某用戶運(yùn)行了啟動(dòng)一組后臺(tái)作業(yè)的shell程序,但沒(méi)有等待作業(yè)終止,找用戶談?wù),看是否是這種情況,如果必要,用kill命令殺死其中一些進(jìn)程,有關(guān)殺死一個(gè)進(jìn)程的詳細(xì)介紹參見(jiàn)后面幾節(jié)。
*查看TIME域,看哪些進(jìn)程占用了大量的CPU時(shí)間,這樣的進(jìn)程可能導(dǎo)致死循環(huán)。
*查看C域,找出占用大量CPU時(shí)間且不重要的進(jìn)程,如果認(rèn)為此進(jìn)程確實(shí)不值占用如此多的CPU時(shí)間,可以用priocntl命令降低它的優(yōu)先級(jí),有關(guān)priocntl命令的詳細(xì)信息,參考prioentl(1)手冊(cè)。
*查看SZ域,找出占用太大內(nèi)存的進(jìn)程。如果某個(gè)進(jìn)程占用了過(guò)于大的內(nèi)存,將它殺死,如果系統(tǒng)中有許多進(jìn)程都需要大量?jī)?nèi)存,則可能需要擴(kuò)充內(nèi)存。
*查找占用CPU時(shí)間越來(lái)越多的失控進(jìn)程,可以用帶-f可選項(xiàng)的ps命令查看其超始時(shí)間(STIME),也可直接看其TIME域所指的CPU累計(jì)時(shí)間。
1.4.3殺死進(jìn)程
有時(shí)用戶需要徹底地消除一個(gè)進(jìn)程,這時(shí)用kill命令,kill命令的格式為kill-,此處是一個(gè)數(shù)或一個(gè)名稱。
注意:僅當(dāng)進(jìn)程不能正常退出時(shí)用kill命令。
有時(shí)用kill命令后進(jìn)程仍未死掉,最常見(jiàn)的三種情況:
;進(jìn)程退出前正在等待一個(gè)設(shè)備(如磁帶機(jī))完成某種操作。
;進(jìn)程正在等待由于nfs出現(xiàn)問(wèn)題而無(wú)效的資源,在這種情況應(yīng)該用kill-QUIT命令來(lái)殺死一個(gè)進(jìn)程。
;進(jìn)程處于僵尸態(tài),正如ps報(bào)告的消息所顯示,僵尸進(jìn)程已經(jīng)釋放了它所占資源,但還沒(méi)有接收到父進(jìn)程的回應(yīng),一般接收到回應(yīng)后刪除對(duì)應(yīng)的進(jìn)程表項(xiàng),在下次啟動(dòng)系統(tǒng)時(shí),僵尸進(jìn)程被消除,僵尸(Zombies)進(jìn)程不影響系統(tǒng)性能,所以用戶不必刪除它們。
要?dú)⑺酪粋(gè)進(jìn)程:
1、 變成超級(jí)用戶,要?dú)⑺酪粋(gè)非你擁有的進(jìn)程,你必須成為超級(jí)用戶。
2、 鍵入ps -e,將顯示出一組進(jìn)程,使用第一欄的PID(進(jìn)程ID)號(hào)作為下一步的輸入,如果你知道是哪個(gè)進(jìn)程出了問(wèn)題,則可以鍵入:
ps -e | grep 來(lái)找到其進(jìn)程ID
3、 鍵入kill-15 ,若僅鍵入kill,無(wú)參數(shù),則缺省的信號(hào)是15。
4、 鍵入ps -e,檢查進(jìn)程是否已經(jīng)終止,如果進(jìn)程還存在,則到第5步。
5、 鍵入kill-9 ,這個(gè)進(jìn)程應(yīng)該被終止。 鍵入man -s5 signal,查看kill所使用的信號(hào)描述。
例如:如果gtxa系統(tǒng)上的Open Windows 死了,你必須從另一個(gè)系統(tǒng)遠(yuǎn)程注冊(cè)來(lái)殺死此進(jìn)程。
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é)簡(jiǎn)單地介紹基本的Solaris命令,你很可能會(huì)使用它們作為系統(tǒng)管理例程的一部分,更詳細(xì)的介紹參見(jiàn)第二章中的“Basic OS Commands”及附錄A列出的SunOS 4.x命令與SunOS 5.x命令的對(duì)照表。
1.5.1.1在文件系統(tǒng)中移動(dòng)
Solaris系統(tǒng)軟件是有一個(gè)層次結(jié)構(gòu)的文件系統(tǒng),當(dāng)管理系統(tǒng)時(shí),你需要了解目前處于文件系統(tǒng)的哪個(gè)位置、如何轉(zhuǎn)到不同的目錄。
1.5.1.2查看在文件系統(tǒng)中所處的位置
要知道目前處于文件系統(tǒng)的哪一層,鍵入pwd。pwd(打印工作目錄)命令顯示當(dāng)前目錄:
gtxa&pwd
/etc
gtxa%
1.5.1.3改變目錄
要改變目錄,鍵入cd 。cd(改變目錄)命令使你進(jìn)入所鍵入的目錄中:
gtxa% cd /usr
gtxa%% pwd
/usr
gtxa%
如果僅鍵入cd而沒(méi)鍵入路徑名,你就返回注冊(cè)目錄下。
1.5.1.4查看文件的有關(guān)信息
用ls命令可以顯示目錄內(nèi)容以及文件的許可權(quán)、符號(hào)鏈、所有者、組、文件長(zhǎng)度(字節(jié)數(shù))、修改日期及時(shí)間和文件名,許多用戶存取文件出錯(cuò)的原因,追根底在于擁有不正確的許可權(quán)或所有權(quán),有關(guān)此類問(wèn)題的詳細(xì)說(shuō)明見(jiàn)第10章“識(shí)別文件存取問(wèn)題”。
1.5.1.5顯示文件信息
要顯示某個(gè)文件的有關(guān)信息,鍵入ls -1 ,則顯示許可權(quán)、符號(hào)鏈、所有者、組、文件長(zhǎng)度(字節(jié)數(shù))、修改日期及時(shí)間和文件名。
要看目錄中的全部文件,鍵入ls -1a,有關(guān)ls的選擇項(xiàng)清單可參見(jiàn)命令手冊(cè)。
gtxa% ls -1 /etc/passed
-r--r--r--lrootsys659 Feb 24 17:28/etc/passed
gtxa%
1.5.1.6查找一個(gè)文件
要從根目錄開(kāi)始搜索尋找到一個(gè)文件, 就鍵入find $HOME -name -print. $HOME變量表示查找從根目錄開(kāi)始。 -name選項(xiàng)表示要查找指定的文件名,-print 選項(xiàng)要求顯示出查找的結(jié)果。如果沒(méi)找到中指定的文件則系統(tǒng)回到提示符狀態(tài)。
下面例子是查找文件core:
gtxa% find $HOME -name core -print
/home/ignatz/core
gtxa%
表1.4 find命令的可選項(xiàng)
可選項(xiàng) 說(shuō)明
-fstype 查找指定類型的文件系統(tǒng),通常用ufs或nfs中的文件
-prune 限制搜索到指定的目錄
-nouser 查找不屬于/etc/passwd中用戶的文件
-nogroup 查找不屬于/etc/group中組的文件
-atime 查找在最后天被存取過(guò)的文件
-mtime 查找在最后天被修改過(guò)的文件
-ctime 查找在最后天被改變過(guò)的文件, 這種改變包括改變文件的屬性。如鏈接數(shù)、所有者或組
-Xdev 限制只對(duì)一個(gè)文件系統(tǒng)搜索
有關(guān)find命令可選項(xiàng)的完整說(shuō)明見(jiàn)find(1)。
1.5.1.7查看一個(gè)文件的類型
某些情況下需要確定一個(gè)文件的類型,如要查看一個(gè)文件的類型,則鍵入file 。輸出結(jié)果是指定文件的文件類型。
例如:如果一個(gè)用戶試圖執(zhí)行一個(gè)無(wú)執(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命令報(bào)告該文件可執(zhí)行,且是文本文件。
gtxa%chmod 777 junk
gtxa% file junk
junk: commands text
gtxa%
你也可以用ls -1命令來(lái)查看某文件是否有執(zhí)行許可權(quán)。
可以用file *命令查看一個(gè)目錄中全部文件的類型。文件按字母順序列出,后面跟文件類型:
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%
同時(shí)查找多個(gè)文件的方法是:在命令中輸入多個(gè)文件名,它們之間以空格分開(kāi);或者用無(wú)字符代文件名(或與文件名一起使用)。
為顯示出不包含某字符串的行,可以鍵入grep -v 。
查找具有某種模式的輸入行,可以將grep以管道的方式與許多管理命令結(jié)合起來(lái)使用。
例如:要查找某一用戶當(dāng)前的全部進(jìn)程,可以將ps命令和grep結(jié)合起來(lái)使用,并查找該用戶名,鍵入ps -e│grep 。即顯示該用戶名的清單。可用下面的命令查找Open Windows的全部進(jìn)程:
gtxa%ps -e │grep openwin
PID TTY TIME COMD
2212 pts/0 0:00 openwin
gtxa%
1.5.1.10查看文件
毫無(wú)疑問(wèn),人們要花很時(shí)間查看文件的內(nèi)容,需要查看整個(gè)文件時(shí)可以用more命令,當(dāng)只需看文件尾的內(nèi)容時(shí)(如日志(log)文件),可用tail命令來(lái)顯示文件的最后10行,當(dāng)重要信息在文件頭時(shí),可用head命令顯示文件的前10行。
1.5.1.11瀏覽文件
可以鍵入more 來(lái)瀏覽文件,文件一次只顯示一屏,按空格鍵顯示下一屏。當(dāng)你用more瀏覽文件時(shí),若想查找文件中的某個(gè)字符串,可以鍵入/。屏幕滾到你要查找的字符串的位置, 并在窗口頂部顯示要找的字符串的“... skippin”信息。如果未找到,則屏幕不滾動(dòng)并顯示出“Pattern not found”。
例如:要查找/etc/mail/aliasses文件中的Local aliases串, 可鍵入/Local aliases.
/Local aliases
... skipping
# # # # # # # # # # # #
# Local aliases below #
# # # # # # # # # # # #
注意:在more命令中一定要用正確的大小寫字母。上例中,如果你鍵入了/local aliases,則會(huì)告訴你沒(méi)有找到。
為了查找下一個(gè)匹配的字符串,鍵入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

:-: s5: -:n:10:-:-:SVR4.0 OS
# fubar

:-bsd:10:n-:-:BSD OS
# Galialeo

:-:s5:-30:10-:-:
# # # # #
billboard

-:bsd:-:n:10:-:-:
homeboyl

-:s5:-:n:10-:-:
regal

:-:s5:-:n:10-:-:
mrplod

:-:s5:-:n:10:-:-:
gtxa%
缺省時(shí),head和tail命令顯示10行,可靠用-n任項(xiàng)來(lái)控制顯示行數(shù),用你要顯示的行數(shù)代替n。例如:要顯示最后20行, 可鍵入tail -20 。
注意:tail命令最多能顯示4096字節(jié)(大約400行)。
1.5.1.13查看文件頭
若要查看文件頭,可鍵入head這時(shí)顯示出頭10行
下例中顯示/etc/password文件:
gtxa% /usr/bin/head /etc/pased
rood

:0:1:0000-Admin(0000):/:sbin/sh
daemon

:1:1:0000-Admin(0000):/:
bin

: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)
用戶的許多問(wèn)題可能是由文件的所有權(quán)和許可權(quán)問(wèn)題產(chǎn)生的,用ls命令可查看文件的所有權(quán)和許可權(quán),如果要改變它們,可用:chown、chmod和chgrp命令。
*改變文件所有權(quán)
你必須擁有一個(gè)文件或目錄(或者你是超級(jí)用戶)你才能成為屬主
1>;鍵入ls -1 。文件的屬主顯示在第三列中
2>;進(jìn)入超級(jí)用戶
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
#
更詳細(xì)的介紹請(qǐng)參見(jiàn)第10章。
* 改變文件的許可權(quán)
表1.5列出的設(shè)置文件許可權(quán)的8進(jìn)制值?梢杂萌齻(gè)這樣的數(shù)來(lái)分別設(shè)置屬主、組和其它用戶的許可權(quán)。例如:644 說(shuō)明屬主有讀/寫權(quán)限,同組用戶和其它用戶有只讀權(quán)限。
表1.5 文件權(quán)限的八進(jìn)制值
值 說(shuō)明
0 無(wú)權(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)槟阒付ǖ闹怠?
注意:可以用元字符(如* ?)替換文件名,或與它們一起使用來(lái)更改多個(gè)文件或一個(gè)目錄中所有文件的權(quán)限。
下例中,將一個(gè)文件權(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號(hào)在Group數(shù)據(jù)庫(kù)或本地/etc/group文件中定義, 關(guān)于組的詳細(xì)信息請(qǐng)參見(jiàn)第7章。
1.5.1.16設(shè)置或顯示系統(tǒng)環(huán)境
shell使用shell初始化文件中給出的一組說(shuō)明來(lái)維護(hù)環(huán)境,用戶也可以直接發(fā)命令給shell來(lái)修改shell從環(huán)境變量中得到有關(guān)環(huán)境的信息。Solaris系統(tǒng)軟件提供7個(gè)缺省的環(huán)境變量。
*PSI:定義shell提示符。Bourne和Korn shell的缺省提示符是$。C shell的缺省提示符是%,任何shell中root的缺省提示符皆是#。用戶可以在.profile,.login 或.cshrc 文件中下義不同的shell提示符。
*HOME:定義用戶主目錄的絕對(duì)路徑。作為注冊(cè)進(jìn)程的一部分,自動(dòng)定義HOME的缺省值,并且設(shè)置為/etc/passwd 文件中說(shuō)明的注冊(cè)目錄。當(dāng)鍵入cd命令且無(wú)參數(shù)時(shí),shell轉(zhuǎn)到HOME 變量所確定的目錄之下。
*LOGNAME:定義用戶的注冊(cè)名。作為注冊(cè)進(jìn)程的一部分,LOGNAME的缺省值被自動(dòng)定義且設(shè)置為/etc/passwd文件中說(shuō)明的注冊(cè)名。
*PATH:列出一組目錄。當(dāng)用戶敲入命令后,shell 按順序從這些目錄中查找要執(zhí)行的程序。如果一個(gè)命令所在的目錄不在該查找路徑中,則用戶必須鍵入該命令的全部路徑。做為注冊(cè)進(jìn)程的一部分,PATH的缺省值是按.profile(Bourne和Korn shell)或.cshrc(C shell)文件中的說(shuō)明設(shè)置。查找路徑的順序是非常重要的。當(dāng)同名的命令在不同的目錄存在時(shí),執(zhí)行的是第一個(gè)找到的命令。例如:假設(shè)PATH(以 Bourne 和Korn shell方式)定義為PATH =/bin:/usr/bin/:usr/sbin:$HOME/bin,在usr/bin和/home/jean/bin目錄中均有名為sample的程序,當(dāng)用戶不鍵入路徑,而只是鍵入sample命令時(shí),則執(zhí)行/usr/bin目錄中的sample程序。
其它環(huán)境變量包括:
*LPDEST:設(shè)置用戶的缺省打印機(jī)
*OPENWINHOME:設(shè)置Open Wimdows可執(zhí)行碼的路徑
*DESKSET:設(shè)置DESKSET的可執(zhí)碼的路徑
*LANG:設(shè)置本地語(yǔ)言,可能值是:english、japanese、German、French、Swedish和Italian等
*HZ:設(shè)置Borne和Korn shell的歷史
*TZ:設(shè)置時(shí)區(qū)
*SHELL:設(shè)置make,vi或其它工具所使用的缺省shell
*MAIL:告訴shell到哪去查找新的郵件
*MANSECTS:設(shè)置手冊(cè)的有效章節(jié)
用戶和系統(tǒng)管理員可另外定義自己使用的環(huán)境變量,當(dāng)用戶從shell命令中定義環(huán)境變量時(shí),只要用戶不退出shell,則定義的環(huán)境變量就一直起作用。退 shell,則不再起作用?蓪ⅰ坝谰谩杯h(huán)境變量存在.profile、.login或.cshrc文件中,定義環(huán)境變量的語(yǔ)法依不同的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í)行一個(gè)帶有全路徑名的命令,shell按給定的全路徑名去查找命令,當(dāng)用戶只給出命令名時(shí),shell就按PATH環(huán)境變量給定的路徑順序去查找目錄,若在某一目錄中找到該命令時(shí),就執(zhí)行它。
缺省的根PATH(sbin:/usr/sbin:/usr/bin:/etc)是由系統(tǒng)設(shè)置的,但許多用戶還在上面添加一些別的命令目錄,用戶的許多問(wèn)題,如有關(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)
更詳細(xì)說(shuō)明請(qǐng)參閱有關(guān)手冊(cè)和第10章。
1.5.2使用管理工具
管理工具是Open Windows的一個(gè)具有圖形用戶接口的工具。它用來(lái)管理主機(jī)系統(tǒng)和/etc下的17個(gè)數(shù)據(jù)庫(kù)。使用這一管理工具可以管理用戶和組,可以管理NIS+數(shù)據(jù)庫(kù)和本地/etc目錄下的文件。
第2章、基本OS命令
本章將介紹:查找用戶信息、查找環(huán)境信息、創(chuàng)建和編輯文件、命令組合和輸出定向、使用手冊(cè)、查找硬盤信息 。
本章解釋基本的操作系統(tǒng)命令,提供查找有關(guān)用戶和系統(tǒng)環(huán)境信息的方法,同時(shí)講述建立和編輯文件、命令組合、輸入重定向,顯示手冊(cè)以及查尋基本磁盤信息的各種方法。
2.1查找用戶信息
在管理系統(tǒng)時(shí),經(jīng)常需要知道誰(shuí)在使用系統(tǒng)及他們?cè)谧鲂┦裁础1竟?jié)描述了解用戶信息的命令:who、finger、rusers -1、whodo、id等。
2.1.1確定系統(tǒng)中有誰(shuí)注冊(cè)
(who、finger、rusers -1、whodo、id)可以使用上述四個(gè)命令之中的一個(gè)來(lái)發(fā)現(xiàn)誰(shuí)注冊(cè)進(jìn)入系統(tǒng)。每個(gè)命令還顯示各種不同附加信息。
2.1.1.1使用who命令
who命令顯示注冊(cè)進(jìn)入系統(tǒng)的用戶名單,注冊(cè)的tty端口,以及日期和時(shí)間,如果某用戶是遠(yuǎn)程注冊(cè)的,那么本命令還顯示該用戶的遠(yuǎn)程系統(tǒng)名,使用who命令的方法是:鍵入who。
在下例中,用戶irving是遠(yuǎn)程注冊(cè)的,用戶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命令顯示注冊(cè)進(jìn)入系統(tǒng)的用戶注冊(cè)名,同時(shí)顯示用戶全名(取名/etc/passwd文件對(duì)應(yīng)項(xiàng)的information域),tty端口,星期幾,注冊(cè)時(shí)間,如果是遠(yuǎn)程注冊(cè)的用戶,還顯示遠(yuǎn)程系統(tǒng)名。使用finger命令的方法是:鍵入finger
在這個(gè)例子里,用戶winsor從系統(tǒng)castle遠(yuǎn)程注冊(cè)
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(遠(yuǎn)程用戶注冊(cè))命令,顯示從遠(yuǎn)程系統(tǒng)注冊(cè)的用戶名清單,同時(shí)顯示用戶注冊(cè)的系統(tǒng)名,tty端口,日期,登錄時(shí)間以及空閑時(shí)間(idle time)。如果主機(jī)不空閑,那么最后一列不顯示,使用本命令的方法是:鍵入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命令顯示日期、時(shí)間和系統(tǒng)名。它為每一個(gè)注冊(cè)的用戶顯示設(shè)備名、UID、注冊(cè)時(shí)間以及一個(gè)與此UID相聯(lián)系的活動(dòng)進(jìn)程表。此表的內(nèi)容包含設(shè)備名、PID、使用的CPU時(shí)間(分、秒)以及進(jìn)程名。
鍵入Whodo,可以看到誰(shuí)注冊(cè)了,以及注冊(cè)者在做什么。
gtxa%whodo
Tue Mar 12 15:48

3 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檢查用戶的用戶號(hào)和組號(hào)(id命令)
使用id命令可以顯示注冊(cè)用戶的用戶id和組id號(hào),當(dāng)用戶不能訪問(wèn)他們認(rèn)為屬于自己的文件時(shí),使用這些信息來(lái)查找錯(cuò)原因,據(jù)此信息也可知道用戶所屬的組。使用id命令時(shí),用戶先注冊(cè),然后鍵入id命令。如果uid和uid與出現(xiàn)問(wèn)題的文件的uid或gid不匹配,就需要改變文件的屬主或組,或者將用戶加入相應(yīng)的組中。詳見(jiàn)第5章。
gtxa%id
uid=6693(winsor)gid=10(staff)
gtxa%su
Password:
#id
uid=0(rood) gid=1(other)
#
2.2查尋環(huán)境信息
每個(gè)系統(tǒng)都有一個(gè)運(yùn)行環(huán)境,這些環(huán)境說(shuō)明在用戶初始化文件標(biāo)準(zhǔn)shell和Korn shell的.profile或C shell的.cshrc和.login中定義,也可通過(guò)shell直接定義環(huán)境變量。環(huán)境變量可以規(guī)定諸如用戶主目錄,注冊(cè)名,缺省打印機(jī),電子郵件地址以及訪問(wèn)Open Windows環(huán)境的路徑。本講講述如何查到環(huán)境變量的設(shè)置。這方面的更詳細(xì)信息請(qǐng)見(jiàn)第8章。
為了顯示用戶的環(huán)境變量設(shè)置,鍵入env命令。這樣系統(tǒng)地顯示出環(huán)境變更的設(shè)備清單,關(guān)于環(huán)境變量的缺省設(shè)置值及如何設(shè)置環(huán)境變量,請(qǐng)見(jià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命令來(lái)創(chuàng)建和編輯文件。
2.3.1使用cat命令
使用cat命令可創(chuàng)建短文件或附加少量文本信息到一個(gè)已存在的文件末尾。用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命令將每個(gè)文件的訪問(wèn)和改動(dòng)時(shí)間設(shè)為當(dāng)前時(shí)間,如果文件不存在,就創(chuàng)建一個(gè)新文件?梢杂胻ouch命令創(chuàng)建一個(gè)空文件來(lái)檢查允許權(quán)和屬主,或創(chuàng)建一個(gè)文件用于以后錄入文本。
要?jiǎng)?chuàng)建一個(gè)空文件,只需鍵入touch 這樣一個(gè)新的空文件就創(chuàng)建出來(lái)了,如果此文件已存在,那么文件的修改時(shí)間就變?yōu)楫?dāng)前的日期和時(shí)間。
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)
可以通過(guò)一對(duì)一已存在的文件進(jìn)行拷貝或改名來(lái)創(chuàng)建一個(gè)新文件。
拷貝已存在的文件的方法是:鍵入cp ,這樣就得到了原文件的拷貝,而且保留了原來(lái)的文件。
mv
原文件被改名,原名文件就不再存在。
gtxa%mv quest /tmp/quest。old
gtxa%
2.3.4文本編輯器的使用
可以使用Open Windows的文體編輯來(lái)創(chuàng)建和編輯文件。然而普通用戶在使用文本編輯器來(lái)編輯具有根允許權(quán)限(root pemissions )的文件時(shí)可能會(huì)出現(xiàn)一些問(wèn)題。
進(jìn)入Open Windows工作區(qū)的主菜單中選擇programs,再在programs菜單中選擇Editor來(lái)打開(kāi)文體編輯器,也可以在命令行鍵入: textedit &來(lái)打開(kāi)文體編輯器。打開(kāi)之后,顯示一個(gè)文本編輯器窗口。進(jìn)行編輯時(shí),可使用鍵盤上Cut、Copy、Paste、Undo鍵來(lái)加快文本的編輯速度。
2.3.5 vi的使用
全屏幕編輯器vi,通常是由系統(tǒng)管理員編輯文本文件。有專門的一些書講述vi使用法。本節(jié)僅提供其中最常用的編輯命令供用戶參考。只需鍵入 vi 。就可啟動(dòng)vi,如果文件不存在,那么就打開(kāi)一個(gè)新文件,當(dāng)存入內(nèi)容時(shí),此新文件就創(chuàng)建出來(lái),如果文件已經(jīng)存在,則在啟動(dòng)完vi以后,就在屏幕上顯示此文件的開(kāi)頭一部分內(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
在上一行開(kāi)始加入新文本O
在下一行開(kāi)始加入新文本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在同一命令行里鍵入多個(gè)命令
在命令之間用分號(hào)(

隔開(kāi),就可以在同一命令行中鍵入多個(gè)命令,例如,可以用cd /usr/bin;ls命令先轉(zhuǎn)到一個(gè)目錄中,再列出此目錄中的目錄和文件,另外一個(gè)例子是為Bourne shell設(shè)定環(huán)境變量再輸出(export)該變量。
PATH=。:/usr/bin:$HOME/;export PATH
2.4.2輸出重新定向(


除非另外說(shuō)明,命令結(jié)果通常顯示在屏幕上,使用重新定向符(“;”),可以將輸出結(jié)果重新定向,例如:將結(jié)果存入一個(gè)文件而不是將它顯示在屏幕上,只需使用重新定向符“>;”,指示shell將內(nèi)容放入一個(gè)文件,下面的例子中,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%
也可以重新定向輸入。例如,將一個(gè)文件的內(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、 進(jìn)入含有欲拷文件的目錄;
2、 插入有寫權(quán)限的磁帶到磁帶機(jī)中;
3、 鍵入tar cvf /dev/rmt/
注意: 使用c選項(xiàng)寫帶,將破壞磁帶上原有文件,如果欲保護(hù)磁帶上原有文件,則需使用后面講述的"r"選擇項(xiàng)來(lái)附加文件。
c選項(xiàng)表示拷貝(copy)指定的文件,v選項(xiàng)(verbose)表示在拷貝過(guò)程中顯示文件信息,f選項(xiàng)(files)后面加上磁帶設(shè)備名,指定文件向何處拷貝,被指定的文件拷貝到磁帶上,覆蓋磁帶上原有文件。
注: 可以使用元字符(?和*)作為文件名的一部分。例如,為了拷貝所有具有.doc后綴的文件,在文件名部分鍵入*.doc即可,如果指定文件名部分是一目錄名,那么此目錄及其所有子目錄均遞歸地拷入帶中。
4、 自磁帶機(jī)中取出磁帶,填寫標(biāo)簽。
在下面的例子中,將兩個(gè)文件拷入0號(hào)磁帶機(jī)中的磁帶
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、 將磁帶插入磁帶機(jī);
2、 鍵入tar tvf ./dev/rmt/
t選項(xiàng)(table)表示將指定文件列出,v選項(xiàng)(vevbose)表示在列文件時(shí)仿ls -l的格式顯示文件信息,f選項(xiàng)(files)表示在此選項(xiàng)后的磁帶機(jī)設(shè)備名表示文件所在設(shè)備。
在下列中顯示0號(hào)磁帶機(jī)中所放磁帶的內(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ù),第四、五、六、七列是文件最后修改的月、日、時(shí)間和年號(hào),最后一列是文件名。
3.2.1.3向磁帶上增加文件(tar)
依下列步驟可以向磁帶上拷入文件而不破壞磁帶原來(lái)內(nèi)容:
1、 進(jìn)入含拷貝文件的子目錄;
2、 將具有寫權(quán)限的磁帶插入磁帶機(jī);
3、 鍵入tar rvf /dev/rmt/ ......
則指定文件被拷入指定磁帶中;
注:可以使用元字符(?和*)作為文件各的一部分。例如,拷貝所有具有.doc后綴的文件,只需在指定文件名部分鍵入*.doc即可。
4、 自磁帶機(jī)中取出磁帶,填寫標(biāo)簽。
下例中,向0號(hào)磁帶機(jī)中的磁帶上增加文件:
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選項(xiàng)(不倒帶),可以讓用戶多次使用tar命令順序向磁帶上拷文件,例如:拷文件后不倒帶,下次使用此磁帶拷貝時(shí),文件就寫在前次拷貝的文件后面。
3.2.1.4從磁帶中析取文件(tar)
1、 進(jìn)入欲存文件的子目錄;
2、 將磁帶插入磁帶機(jī);
3、 鍵入tar xvf /dev/rmt/
磁帶上所有的文件都拷入當(dāng)前目錄。
此例中,0號(hào)磁帶機(jī)中磁帶內(nèi)容全部被拷貝出來(lá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%
自磁帶中析取個(gè)別文件,只需鍵入tar xvf /dev/vmt/ ......指定文件則從磁帶中拷貝出,并放入當(dāng)前目錄,此例中前綴是evaluation文件自0號(hào)磁帶機(jī)的磁帶中拷貝出:
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%
下面步驟表示如何自磁帶中析取整個(gè)子目錄:
1、進(jìn)入欲放文件的目錄,如果拷入的子目錄已存在,那么,應(yīng)進(jìn)入該子目錄的父目錄中,而且應(yīng)保證原子目錄中的內(nèi)容可以覆蓋掉,例如,將磁帶中的目錄Book拷入/home/winsor/Book中,應(yīng)鍵入cd /home/sinsor; tar xvf /dev/rmt/Book,若原先就進(jìn)入/home/winsor/Book中,則拷入內(nèi)容則存于/home/winsor/Book/Book中。
2、 鍵入tar xvf /dev/rmt/ 則此目錄與其所有子目錄遞歸地自磁帶上拷出。
注意: 自磁帶中拷出的文件名就是所存的文檔文件名,如果對(duì)文件名不清楚,可以先列出磁帶上的文件名,步驟詳見(jiàn)"列出磁帶上的文件(tar)"或tar(1)手冊(cè)。
3.2.2cpio命令
使用cpio命令建立磁帶文檔時(shí),它自標(biāo)準(zhǔn)輸入設(shè)備取得一串文件或路徑名, 然后將它們寫到標(biāo)準(zhǔn)輸出設(shè)備上,輸出通常反向到文件或設(shè)備,后面講述怎樣使用cpio命令將文件拷入盒式磁帶,列出盒式磁帶文件,及析取磁帶上的某個(gè)文件子集。
3.2.2.1將某目錄下的所有文件拷入磁帶(cpio)
依下列步驟將某目錄下的所有文件拷入磁帶:
1、 將具有寫權(quán)限的磁帶插入磁帶機(jī);
2、 鍵入ls l cpio –oc >; /dev/rmt/
當(dāng)目錄中所有文件則拷入指定磁帶機(jī)中的磁帶內(nèi),覆蓋磁帶上已有文件,顯示拷貝總塊數(shù);
3、 取出磁帶,填好標(biāo)簽。
在下列中,/home.winsor/TOI目錄的文件均拷入0號(hào)磁帶機(jī)內(nèi)的磁帶。
gtxa%cd /home/winsor/TOI
gtxa%ls -1 cpio –oc >; /dev/rmt/0
31 blocks
gtxa%
3.2.2.2列出磁帶上的文件(cpio)
依下列步驟:
1、 將磁帶插入磁帶機(jī);
2、 鍵入cpio -civt 3.2.2.2列出磁帶上的文件(cpio)
依下列步驟:
1、 將磁帶插入磁帶機(jī);
2、 鍵入cpio -civt ;"為提示符的format菜單;
4、 鍵入defect
5、 鍵入primary原來(lái)的錯(cuò)誤表就被加到硬盤中;
defect>;primary
Extracring primary drfect list...Extraction complete.
Current Defect list updated.\
total of 30 defdcts.
6、 鍵入quit回到format>;提示符
7、 鍵入format開(kāi)始格式化硬盤,一個(gè)容量為10MB的硬盤格式化10分鐘,硬盤容量越大,格式化時(shí)間越長(zhǎng);
8、 當(dāng)format>;提示符又出現(xiàn)了時(shí),鍵入partition
9、 重建與損壞的硬盤的分區(qū)相匹配的分區(qū)表;
10、 鍵入label硬盤被標(biāo)記好;
11、 鍵入quit回到format>;提示符下;
12、 再鍵入quit回到shell提示符下。
gtxa%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. - change'0'partition
1. - change'1'partition
2. - change'2'partition
3. - change'3'partition
4. - change'4'partition
5. - change'5'partition
6. - change'6'partition
7. - change'7'partition
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)過(guò)格式化,分區(qū)和標(biāo)記以后,就可以在上面建立ufs文件系統(tǒng), 在重建原已存在的ufs文件系統(tǒng)時(shí),必須先將此系統(tǒng)卸下(unmount)。
重建文件系統(tǒng)需依下列步驟:
1、 成為超級(jí)用戶;
2、 鍵入newfs /dev/rdsk/cWtXdYsZ
系統(tǒng)提問(wèn)是否繼續(xù)。注意: 必須保證設(shè)備名中的分區(qū)號(hào)正確,否則會(huì)將其它分區(qū)中的內(nèi)容刪掉。
3、 鍵入"y"確認(rèn),newfs命令使用優(yōu)化的缺省值創(chuàng)建文件系統(tǒng)。
下面例子在/dev/rdsk/c0t3d0s7上創(chuàng)建一個(gè)文件系統(tǒng)。
gtxa%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在臨時(shí)安裝點(diǎn)安裝文件系統(tǒng)(mount)
鍵入mount /dev/dsk/cWtXdYsZ /mnt文件系統(tǒng)安裝到臨時(shí)安裝點(diǎn)/mnt上,安裝硬盤時(shí),使用塊設(shè)備目錄(/dev/dsk),而不是原始設(shè)備目錄。
3.3.3.9向文件系統(tǒng)轉(zhuǎn)儲(chǔ)文件(ufsrestore)
下列步驟用于恢復(fù)最新的完整備份,然后由最低級(jí)到最高級(jí)依次恢復(fù)增量備份。
1、 鍵入cd /mnt;
2、 將磁帶置于寫保護(hù)狀態(tài);
3、 將0級(jí)磁帶的第一卷插入磁帶機(jī);
4、 鍵入ufsrtore rvf /dev/rmt/若有多卷磁帶需恢復(fù),則在出現(xiàn)提示時(shí)插入下卷,這樣就恢復(fù)了0級(jí)磁帶;
5、 將0磁帶取出,將下一最低級(jí)別的磁帶插入,記住從0級(jí)磁帶開(kāi)始恢復(fù),直到最高級(jí);
6、 鍵入ufsrtore rvf /dev/rmt/則下一級(jí)別的磁帶被恢復(fù);
7、 對(duì)每卷磁帶重復(fù)步驟5、6;
8、 鍵入ls命令;
9、 顯示文件和目錄列表,確認(rèn)所有文件都已恢復(fù);
10、 鍵入rm restore symtable刪去為恢復(fù)而創(chuàng)建的restore sysmtable文件。
3.3.3.10自臨時(shí)裝入點(diǎn)拆卸文件系統(tǒng)(umount)其方法如下:
1、鍵入cd /
2、鍵入umount /mnt將文件系統(tǒng)自臨時(shí)安裝點(diǎn)卸下。
3.3.3.11檢查文件系統(tǒng)的不一致性(fsck)
鍵入fsck /dev/rdsk/cWtXdYsZ本命令檢查文件系統(tǒng)一致性。
3.3.3.12對(duì)恢復(fù)文件系統(tǒng)做0級(jí)備份
由于ufsrestore命令改變文件的位置及inode的分配,所以對(duì)新建的文件系統(tǒng)應(yīng)立即做備份。
1、將具有寫權(quán)限的新磁帶插入磁帶機(jī);
2、鍵入ufsdump ouf /dev/rmt/
3.3.3.13在永久安裝點(diǎn)安裝文件系統(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)有效、檢測(cè)文件系統(tǒng)數(shù)據(jù)一致性(fsck)、備份與恢復(fù)文件系統(tǒng)
文件系統(tǒng)是用于查找和存貯文件的目錄結(jié)構(gòu),文件系統(tǒng)這一術(shù)語(yǔ)可有下列不同的含義:
;描述由根目錄向下的整個(gè)文件樹(shù)
;描述文件系統(tǒng)的特定類型:磁盤文件系統(tǒng)、網(wǎng)絡(luò)文件系統(tǒng)以及偽文件系統(tǒng)
;描述硬盤和其它存貯設(shè)備的數(shù)據(jù)結(jié)構(gòu)
;描述安裝在主文件樹(shù)中可被訪問(wèn)的某一部分文件樹(shù)的結(jié)構(gòu)
通常你可通過(guò)上下文判斷文件系統(tǒng)具體是哪個(gè)含義。
SunOS 5.x系統(tǒng)軟件采用了虛擬文件系統(tǒng)(VFS)結(jié)構(gòu),這一結(jié)構(gòu)為不同類型的文件系統(tǒng)提供了一個(gè)標(biāo)準(zhǔn)接口,核心處理基本操作時(shí),如: 讀、寫、列表文件等,不需要用戶或是程序知道具體的文件系統(tǒng)類型。
文件系統(tǒng)管理命令提供了一個(gè)公共的接口,這一接口可用于管理不同類型的文件系統(tǒng),文件系統(tǒng)管理命令由兩部分組成: 普通命令和針對(duì)每一類文件系統(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)
*如何使用戶的本地和遠(yuǎn)程文件系統(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)可以采用不同的格式進(jìn)行讀寫操作,這幾種格式是:
*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是第一個(gè)CD-ROM文件系統(tǒng),ISO9660是一官方標(biāo)準(zhǔn),hsfs文件系統(tǒng)用在CD-ROM上,是只讀文件系統(tǒng),SunOS 5.x hsfs支持RockRidge擴(kuò)展,該擴(kuò)展提供除可寫性和硬鏈接以外的所有ufs文件系統(tǒng)語(yǔ)義和文件類型。
*pcfs,PC文件系統(tǒng),該文件系統(tǒng)可以存取微機(jī)上基于DOS格式軟盤上的數(shù)據(jù)和程序。
在SunOS 5.x系統(tǒng)軟件中,沒(méi)有包含由系統(tǒng)V版本提供的傳統(tǒng)的System V(S5)文件系統(tǒng),這是由于此文件系統(tǒng)最多為64,000個(gè)文件;文件名最長(zhǎng)14個(gè)字符和分配限額(quota)等限制造成的。
每一種類型的磁盤文件系統(tǒng)通常與某一特定的存貯介質(zhì)相對(duì)應(yīng):
*ufs與硬盤和其它介質(zhì)(如: 磁帶,CD-ROM,軟盤)相對(duì)應(yīng):
*hsfs與CD-ROM相對(duì)應(yīng)
*pcfs與軟盤相對(duì)應(yīng)
這些對(duì)應(yīng)也并不是絕對(duì)的,如: ufs文件系統(tǒng)也可以安裝在CD-ROM和軟盤上。
4.1.2網(wǎng)絡(luò)文件系統(tǒng)
網(wǎng)絡(luò)文件系統(tǒng)是指可通過(guò)網(wǎng)絡(luò)進(jìn)行訪問(wèn)的文件系統(tǒng),典型的基于網(wǎng)絡(luò)的文件系統(tǒng)是指安裝在一個(gè)系統(tǒng)上,可由其它系統(tǒng)通過(guò)網(wǎng)絡(luò)進(jìn)行訪問(wèn)的文件系統(tǒng),基于網(wǎng)的文件系統(tǒng)有:
•;nfs----網(wǎng)絡(luò)或分布式文件系統(tǒng)
•;rfs----遠(yuǎn)程文件共享
SunOS 5.x缺省的分布式文件系統(tǒng)是nfs。管理分布式文件系統(tǒng)是通過(guò)共享文件系統(tǒng)(從服務(wù)器輸出)或者是將文件系統(tǒng)到各個(gè)系統(tǒng)中實(shí)現(xiàn)的,詳細(xì)內(nèi)容請(qǐng)參見(jiàn)后面的"使文件系統(tǒng)有效"一節(jié)。
4.1.3偽文件系統(tǒng)
偽文件系統(tǒng)是虛擬的或基于存貯器的文件系統(tǒng),它提供訪問(wèn)特殊的核心信息和功能,偽文件系統(tǒng)并不需要文件系統(tǒng)盤空間,一些偽文件系統(tǒng)可以使用物理盤中的交換區(qū),例如臨時(shí)文件系統(tǒng)。
4.1.3.1臨時(shí)文件系統(tǒng)(tmpfs)
臨時(shí)文件系統(tǒng)(tmpfs)利用本地存貯器進(jìn)行盤的讀寫,所以訪問(wèn)tmpfs文件系統(tǒng)的文件比訪問(wèn)ufs文件系統(tǒng)中的文件快得多,臨時(shí)文件系統(tǒng)中的文件不是永久的,當(dāng)文件系統(tǒng)被拆掉、系統(tǒng)關(guān)機(jī)或重新啟動(dòng)時(shí),它們就被自動(dòng)刪掉。
SunOS 5.x目錄中的缺省文件系統(tǒng)類型是tmpfs,與ufs類型的/tmp文件系統(tǒng)一樣,可以將文件拷貝或移動(dòng)到tmpfs類的/tmp文件系統(tǒng)中,或是從其中拷出,移出到其它的目錄中。
使用tmpfs文件系統(tǒng)節(jié)省了本地盤或網(wǎng)絡(luò)讀寫臨時(shí)文件的開(kāi)銷,所以提高了系統(tǒng)性能,例如: 編譯程序時(shí)生成很多臨時(shí)文件,當(dāng)使用這些文件時(shí),操作系統(tǒng)產(chǎn)生大量的磁盤或網(wǎng)絡(luò)的輸入和輸出請(qǐng)求,利用臨時(shí)文件系統(tǒng)事先保存這些臨時(shí)文件,可以明顯地加快文件的創(chuàng)建、存取和刪除的速度。
tmpfs文件系統(tǒng)利用交換區(qū)做為臨時(shí)存貯區(qū),如果帶有tmpfs文件系統(tǒng)的系統(tǒng)沒(méi)有足夠的交換區(qū),可能會(huì)產(chǎn)生下面兩個(gè)問(wèn)題:
*象一般的文件一樣,tmpfs文件系統(tǒng)沒(méi)有可用空間;
*由于tmpfs申請(qǐng)分配交換區(qū)存放數(shù)據(jù)(如果必要的話),有些程序就可能會(huì)因?yàn)闆](méi)有足夠的交換區(qū)而不能執(zhí)行。
4.1.3.2循環(huán)文件系統(tǒng)(lofs)
用循環(huán)文件系統(tǒng)(lofs)可創(chuàng)建一個(gè)新的虛擬的原文件系統(tǒng),然后用另一個(gè)路徑名來(lái)存取文件,例如,可對(duì)/tmp/newroot目錄進(jìn)行循環(huán)安裝 (loopback mount),整個(gè)文件系統(tǒng),包括任何從nfs服務(wù)器上安裝的文件系統(tǒng),看起來(lái)就像在/tmp/newroot下被復(fù)制了,全部文件可以用以/開(kāi)始的路徑進(jìn)行存。换蛘哂靡/tmp/newroot開(kāi)始的路徑名進(jìn)行存取,兩者都一樣,直到另一文件安裝到/tmp/newroot或其子目錄中。
4.1.3.3進(jìn)程文件系統(tǒng)(procfs)
進(jìn)程文件系統(tǒng)(procfs)駐留在內(nèi)存中,/proc目錄中有一活動(dòng)進(jìn)程號(hào)的清單,ps等命令會(huì)用到/proc目錄中的信息,調(diào)試器或其它開(kāi)發(fā)工具也可能通過(guò)文件系統(tǒng)調(diào)用來(lái)訪問(wèn)這些過(guò)程的地址和空間,下面例子列出了/proc目錄中的一部分內(nèi)容:
gtxa%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
注意: 千萬(wàn)不要?jiǎng)hproc目錄中的文件,希望你不要用刪除/proc目錄中進(jìn)程的方法來(lái)殺掉進(jìn)程,關(guān)于殺掉進(jìn)程的方法,請(qǐng)參見(jiàn)第一章,記住/proc目錄不占用磁盤空間,所以沒(méi)有必要?jiǎng)h除/proc目錄下的文件,/proc目錄不需任何系統(tǒng)管理。
4.1.3.4別的偽文件系統(tǒng)
下面列出了偽文件系統(tǒng)的其它類型,注意并不需要對(duì)這些文件系統(tǒng)進(jìn)行管理。
•;fifofs(先進(jìn)先出文件系統(tǒng))命名管道文件,用于進(jìn)程對(duì)數(shù)據(jù)的公共訪問(wèn)。
•;fdfs(文件描述符文件系統(tǒng))提供用文件名打開(kāi)文件,這是通過(guò)文件描述符來(lái)實(shí)現(xiàn)的。
•;namefsSTREAMS使用它在文件頂端對(duì)文件描述符動(dòng)態(tài)安裝。
•;specfs(特別文件系統(tǒng))提供對(duì)特別的設(shè)備和塊設(shè)備的訪問(wèn)。
•;swapfs用mkfile和swap命令建立附加的交換區(qū)時(shí),核心所用的文件系統(tǒng)。
4.2 SunOS 5.x缺省的文件系統(tǒng)
SunOS 5.x文件是以"/"根目錄開(kāi)始,向下擴(kuò)展為一系列目錄的層次結(jié)構(gòu),SunOS 5.x系統(tǒng)軟件安裝了一些缺省的目錄,并按一定的約定將相同類型的文件放在一起,表4.1介紹了缺省的SunOS 5.x文件系統(tǒng),并對(duì)每一文件系統(tǒng)類型進(jìn)行相應(yīng)的說(shuō)明。
缺省的SunOS 5.x文件系統(tǒng)
文件系統(tǒng) 文件系統(tǒng)類型 說(shuō)明
/ ufs 整個(gè)文件樹(shù)的頂,根目錄包含系統(tǒng)操作的關(guān)鍵目錄和文件,如:核心(/kernel/unix),設(shè)備驅(qū)動(dòng)程序和啟動(dòng)系統(tǒng)(boot)的程序,根也包括本地和遠(yuǎn)程文件系統(tǒng)到該文件樹(shù)的安裝點(diǎn)目錄。
/etc ufs 包括用于系統(tǒng)管理的系統(tǒng)文件。
/usr ufs 包括可和其它用戶共享的系統(tǒng)文件和目錄,只可運(yùn)行于某類系統(tǒng)上的文件放在/usr目錄中(如:SPARC可執(zhí)行文件),可運(yùn)行于所有系統(tǒng)上的文件(如: 聯(lián)機(jī)手冊(cè))放在/usr/share 目錄中。
/home nfs,ufs 用戶主目錄的安裝點(diǎn),它存貯用戶的工作文件,缺省時(shí),/home是一個(gè)自動(dòng)安裝的文件系統(tǒng),單機(jī)系統(tǒng)中,/home可以是本地磁盤中的一個(gè)ufs文件系統(tǒng)。
/var ufs 包含本地系統(tǒng)中經(jīng)常變化和增長(zhǎng)的系統(tǒng)文件和目錄,包括logs、vi和ex備份文件、uucp文件、郵件和日歷文件等。
/opt nfs,ufs 可選的安裝點(diǎn),用于安裝第三方廠家的軟件,在某些系統(tǒng)中,/opt可以是本地盤上的ufs文件系統(tǒng)。
/tmp tmpfs 臨時(shí)文件,當(dāng)系統(tǒng)重新啟動(dòng)或關(guān)機(jī)時(shí),被清除。
/proc procfs 包含按進(jìn)程號(hào)排列的活動(dòng)的系統(tǒng)進(jìn)程清單。
根(/)和/usr文件系統(tǒng)中是必須的,/usr文件系統(tǒng)中最基本的命令(如: mount)也包含在根文件系統(tǒng)中,這樣便于系統(tǒng)啟動(dòng)到單用戶狀態(tài)時(shí)能使用這些命令。
4.3虛擬文件系統(tǒng)表(/etc/vfstab)
每一系統(tǒng)均有一虛擬文件系統(tǒng)表(即/etc/vfstab),它列出了系統(tǒng)中存在的全部磁盤區(qū)文件系統(tǒng),該表還列出了每一個(gè)文件的安裝點(diǎn)和可選項(xiàng), SunOS 4.x中,文件系統(tǒng)表是/etc/fstab,現(xiàn)在/etc/vfstab代替了/etc/fstab,但功能卻是相似的,缺省的文件系統(tǒng)配置表 (/etc/vfstab)依賴于系統(tǒng)軟件安裝時(shí)所做的選擇,對(duì)每個(gè)系統(tǒng),通過(guò)編輯/etc/vfstab文件可自動(dòng)地安裝本地的ufs文件系統(tǒng)、必需的 nfs文件系統(tǒng)和其它的文件系統(tǒng)。
下面介紹/etc/vfstab表的內(nèi)容,并說(shuō)明如何編輯和使用該文件,文件系統(tǒng)表是ASSCII文件,注釋行以#開(kāi)頭,下面的/etc/vfstab文件說(shuō)明了:系統(tǒng)中有兩個(gè)硬盤,并安裝了兩個(gè)nfs文件系統(tǒng)說(shuō)明。
#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的自動(dòng)安裝(automount)域說(shuō)明為no,這是因?yàn)樵趍ountall命令運(yùn)行前,在系統(tǒng)啟動(dòng)時(shí)/和/usr已被安裝上了,如果將此值定義為yes,則mountall命令試圖再去安裝這兩個(gè)已經(jīng)安裝的文件系統(tǒng)。/etc/vfstab文件中的每個(gè)域必須有值,若無(wú)值(即值為 no)必須填上一個(gè)"-"號(hào)。
/etc/vfstab文件的域
域 說(shuō)明
Device to mount 可安裝的設(shè)備有:
*本地ufs文件系統(tǒng)的塊設(shè)備 (如:/dev/dsk/c0t0d0s0)
*遠(yuǎn)程文件系統(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, 這一域也用于說(shuō)明swap文件系統(tǒng)
Device to fsck 對(duì)應(yīng)于則域說(shuō)明的文件系統(tǒng)的原始(字符)特別設(shè)備(例如:/dev/dsk/c0t0d0s0)定義了fsck使用的原始接口,當(dāng)沒(méi)有對(duì)應(yīng)的設(shè)備時(shí)用“-”號(hào)說(shuō)明,例如只讀文件系統(tǒng)或網(wǎng)絡(luò)文件系統(tǒng)。
Mount point 缺省的安裝點(diǎn)目錄(如/usr目錄下安裝/dev/dsk/c0t4d0s6)。
FS type 由域說(shuō)明的文件系統(tǒng)類型。
fsck pass Fsck檢測(cè)次數(shù),用于決定是否需要檢測(cè)文件系統(tǒng),當(dāng)該域是"-"號(hào)時(shí)不檢測(cè)文件系統(tǒng),當(dāng)該域的值大于1時(shí),則檢查文件系統(tǒng);等于0時(shí),則檢查非ufs文件系統(tǒng),而不檢查ufs文件系統(tǒng),當(dāng)fsck作用多個(gè)ufs文件系統(tǒng),而fsck pass值大于1,并且使用了-op選擇項(xiàng)時(shí),fsck 自動(dòng)以最高的效率并行檢測(cè)不同盤上的文件系統(tǒng),當(dāng)fsck pass值為1時(shí),則順序檢測(cè)文件系統(tǒng),否則fsck pass值無(wú)效。
Automount? 系統(tǒng)啟動(dòng)時(shí),若需mountall命令自動(dòng)安裝文件系統(tǒng),則為yes,否則為no.注意該域與自動(dòng)安裝軟件毫無(wú)關(guān)系。
Mount options 安裝文件系統(tǒng)統(tǒng)的選擇項(xiàng)列表,它們以","號(hào)分隔(無(wú)空格),"-"號(hào)說(shuō)明無(wú)任選項(xiàng),任選項(xiàng)的值請(qǐng)參見(jiàn)mount-(1M)手冊(cè)。
4.3.1 文件系統(tǒng)表項(xiàng)的建立
下面建立文件系統(tǒng)表的步驟:
1、 進(jìn)入超級(jí)用戶;
2、 用vi等命令編輯/etc/vfstab文件;
3、 加入各項(xiàng)。用空格或Tab鍵分隔其中每個(gè)域,如果某個(gè)項(xiàng)沒(méi)有值,則填上”-”號(hào);
4、 保存該文件;
5、 檢查安裝點(diǎn)目錄是否存在,不存在則建一個(gè):改變目錄到需要安裝的地方然后鍵入mkdir
6、 鍵入mount 此項(xiàng)被安裝上
下面的例子說(shuō)明了將/dev/dsk/c0t3d0s7盤區(qū)作為ufs文件系統(tǒng)安裝到/test1目錄中,安裝任選項(xiàng)(讀/寫)為缺省值,fsck設(shè)備是/dev/rdsk/c0t3d0s7字符設(shè)備,fsck pass值為2,說(shuō)明該文件系統(tǒng)不采用順序方式檢測(cè)
#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 -
下面的例子說(shuō)明將gtxa系統(tǒng)的/export/man目錄作為nfs文件系統(tǒng)安裝到/usr/man上,對(duì)nfs文件系統(tǒng)不必說(shuō)明fsck devices和fsck pass域,這一例中,安裝任選項(xiàng)是ro(只讀)軟方式,為提高可靠性,對(duì)讀/寫的nfs文件系統(tǒng)應(yīng)采用硬式。
#device device mount FS fsck auto- mount
#to mount to fsck point type pass mount? options
gtxa:/export/man - /usr/man nfs - yes ro.soft
下面的例子說(shuō)明將CD-ROM安裝到/hsfiles目錄上,一般情況下CD-ROM文件是只讀的,所以安裝任選項(xiàng)應(yīng)設(shè)置為ro,目前流行的是CDROM 自動(dòng)安裝,所以automount項(xiàng)為yes,由于hsfs是只讀的,所以fsck device和fsck pass均為無(wú)值。
#device device mount FS fsck auto- mount
#to mount to fsck point type pass mount? options
/dev/dsk/c0t6d0s2 - /hsfiles hsfs - yes ro
下面的例子說(shuō)明將軟盤安裝到/pcfiles上,autmount項(xiàng)為無(wú)值,是由于經(jīng)常在命令行中安裝和拆卸,pcfs文件系統(tǒng)不支持fsck,所以fsck device和fsck pass均定為無(wú)值。
#device device mount FS fsck auto- mount
#to mount to fsck point type pass mount? options
/dev/diskette - /pcfiles pcfs - no rw
下面例子說(shuō)明安裝根文件系統(tǒng)到循環(huán)安裝點(diǎn)/etc/newroot上,automount項(xiàng)為yes,fsck device項(xiàng)和fsck pass項(xiàng)為無(wú)值,循環(huán)文件系統(tǒng)必須在組成它的文件系統(tǒng)安裝好后才能安裝,要確保循環(huán)項(xiàng)是/etc/vfstab 文件中的最后一項(xiàng),使其跟隨在它所依賴的項(xiàng)的后面。
#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)管理命令及其語(yǔ)法規(guī)則、大部分文件系統(tǒng)管理命令包含普通文件系統(tǒng)命令和特別文件系統(tǒng)命令兩部分。普通文件系統(tǒng)命令,可加到特別文件系統(tǒng)部分一起使用,表4.3列出了普通文件管理命令,這些命令在/usr/sbin目錄中,它們大部分有一個(gè)對(duì)應(yīng)的特別文件系統(tǒng)命令。
注意:在要直接使用特別文件系統(tǒng)命令,如果你使用了一個(gè)文件系統(tǒng)不支持的操作,普通命令會(huì)顯示出錯(cuò)信息::Operation not applicable for FSType。
4.4.1普通命令語(yǔ)法規(guī)則
大部分普通命令的語(yǔ)法是:
[-F][-v][][-o] [][operands]
普通文件系統(tǒng)管理命令
命令 說(shuō)明
clri(1M) 清除inode
df(1M) 報(bào)告磁盤空間、空閑磁盤塊和文件數(shù)
ff(1M) 列出一個(gè)文件系統(tǒng)的文件名和統(tǒng)計(jì)信息
fsck(1M) 檢測(cè)一文件系統(tǒng)的完整性,并修復(fù)發(fā)現(xiàn)的損壞
fsdb(1M) 文件系統(tǒng)調(diào)試器
fstyp(1M) 確定文件系統(tǒng)的類型
labelit(1M) 當(dāng)文件系統(tǒng)拷貝到磁帶上時(shí),列出或提供文件系統(tǒng)的標(biāo)號(hào)(適用于volcopy命令)
mkfs(1M) 建立新的文件系統(tǒng)
mount(1M) 安裝文件系統(tǒng)和遠(yuǎn)程資源
mountall(1M) 安裝文件系統(tǒng)表中說(shuō)明的全部文件系統(tǒng)
ncheck(1M) 用inode號(hào)產(chǎn)生路徑名清單
umount(1M) 拆卸文件系統(tǒng)和遠(yuǎn)程資源
umountall(1M) 拆卸文件系統(tǒng)表說(shuō)明的全部系統(tǒng)
volcopy(1M) 產(chǎn)生文件系統(tǒng)映象
4.4.2普通文件系統(tǒng)命令和特別文件系統(tǒng)命令手冊(cè)
普通文件系統(tǒng)命令和特別文件系統(tǒng)均有手冊(cè),在手冊(cè)中特別命令緊接普通命令。查看特別命令,在普通命令名后附加一個(gè)下劃線和文件系統(tǒng)類型的縮寫即可, 例如:為了查看安裝hsfs文件系統(tǒng)特別命令手冊(cè),鍵入
man mount -hsfs
lofs pcfs 以及procfs的文件系統(tǒng)沒(méi)有mount特別命令手冊(cè)
4.4.3利用文件系統(tǒng)命令確定文件系統(tǒng)類型
普通文件系統(tǒng)命令確定文件系統(tǒng)類型的步驟是:
1、 如果有-F選擇項(xiàng),由它決定.
2、 通過(guò)匹配/etc/vfstab中的項(xiàng)和特別設(shè)備來(lái)決定任選項(xiàng),例如:fsck 首先查找與fsck device域的一個(gè)匹配,如果未找到,則查設(shè)備域。
3、 對(duì)本地文件系統(tǒng)使用/etc/default/fs中說(shuō)明的缺省值,對(duì)遠(yuǎn)程文件系統(tǒng)使用/etc/dfs/fstypes中說(shuō)明有缺省值。
普通文件系統(tǒng)命令句法描述
任選項(xiàng) 說(shuō)明
-F 說(shuō)明文件系統(tǒng)類型,如果不使用該任選項(xiàng),則尋找/etc/vfstab表中與特別原始設(shè)備或安裝點(diǎn)相匹配的項(xiàng),否則:從/etc/default/fs取本地文件系統(tǒng)缺省值,從/etc/dfs/fstypes中取遠(yuǎn)程文件系統(tǒng)缺省值。
-v 回顯完整的命令行,顯示行可能包括來(lái)自/etc/vfstab中的附加信息,用這一任選項(xiàng)來(lái)驗(yàn)證命令行,它并不執(zhí)行命令。
各類文件系統(tǒng)共同的選擇項(xiàng)。
-o 特定某類文件系統(tǒng)的任選項(xiàng),其格式是

跟一空格,然后是由","號(hào)分隔并且無(wú)空格插入的一系列 [=]對(duì)。
說(shuō)明文件系統(tǒng),給出存貯文件系統(tǒng)磁盤的安裝點(diǎn)或設(shè)備文件和名稱,對(duì)一些命令,文件必須是原始(字符)設(shè)備.對(duì)一些命令,則必須是塊設(shè)備,關(guān)于盤的命名請(qǐng)參見(jiàn)第三章。這個(gè)參數(shù)有時(shí)用來(lái)做關(guān)鍵字與/etc/vfstab表中某項(xiàng)相匹配,從而得到別的信息,大多數(shù)情況,這一參數(shù)是需要的,并且緊跟在之后,然而當(dāng)你希望一個(gè)命令作用于/etc/vfstab 文件中說(shuō)明的所有文件系統(tǒng)時(shí),則不需要這一參數(shù)。
4.4.4文件系統(tǒng)類型
如果你想確定某文件系統(tǒng)類型,可以從上述普通命令所使用的文件中來(lái)獲取信息。
*文件系統(tǒng)表(/etc/vfstab)中的FS類型域
*對(duì)本地文件系統(tǒng)使用/etc/default/fs文件
*對(duì)遠(yuǎn)程文件系統(tǒng)使用/etc/dfs/fstypes文件
為了從/etc/vfstab中找出文件系統(tǒng)類型,鍵入grep /etc/vfstab,安裝點(diǎn)信息顯示如下:
gtxa%grep /tmp /etc/vfstab
swap - /tmp tmpfs - yes -
gtxa%
如果vfstab中不含要找的文件系統(tǒng)項(xiàng),則用下面的命令決定文件系統(tǒng)類型。為了查出安裝的文件系統(tǒng)類型,鍵入grep /etc/mnttab,安裝點(diǎn)的信息顯示如下:
gtxa% grep /home /etc/mnttab
gtxa

pid129) /home nfs fo ,ignore,map=/etc/auto-home,indirect,dev21c0004693606637
bigriver:/export/home/bigriver/tmp-mnt/home/bigriver nfs rw,dev21c0005695409833
gtxa%
或鍵入mount所有安裝的文件系統(tǒng)及其類型即可列出:
gtxa%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
gtxa%
或者用下列步驟:
1、 鍵入devnm 原始設(shè)備名顯示出來(lái);
2、 成為超級(jí)用戶;
3、 鍵入fstyp /dev/rdsk/cWtXdYsZ文件系統(tǒng)的類型顯示如下:
gtxa% devnm /usr
/dev/dsk/cotldos6 /usr
gtxa%su
Password:
# fstyp /dev/rdsk/cot3doso
ufs
#
4.5如何使文件系統(tǒng)有效
為了使已創(chuàng)建的一個(gè)文件系統(tǒng)有效,必須將其進(jìn)行安裝。一個(gè)已安裝的文件系統(tǒng),就意味著它被加到系統(tǒng)目錄樹(shù)中指定的某個(gè)安裝點(diǎn)上,并且是有效的。根文件系統(tǒng)總是被安裝好的。其它任何文件系統(tǒng)可連到根文件系統(tǒng)上或從根中拆掉。
可以用下列步驟安裝本地文件系統(tǒng):
在/etc/vfstab(虛擬文件系統(tǒng)表)文件中加一項(xiàng)。/etc/vfstab中包含的一系列文件系統(tǒng),在系統(tǒng)以多用戶方式啟動(dòng)時(shí)被自動(dòng)安裝。/etc/vfstab文件已在前面介紹過(guò)。
在命令行中用mount命令安裝。
其它系統(tǒng)訪問(wèn)某文件系統(tǒng)之前,必須將該文件系統(tǒng)安裝到網(wǎng)絡(luò)服務(wù)器文件系統(tǒng)中,并使其成為可共享的文件系統(tǒng)(輸出exported)。后面將會(huì)介紹怎樣共享服務(wù)器文件,當(dāng)服務(wù)器上的文件系統(tǒng)可共享時(shí),客戶則可以以下列三種方式將共享文件系統(tǒng)安裝為nfs系統(tǒng):
*在/etc/vfstab表中加一項(xiàng),以便系統(tǒng)以多用戶方式啟動(dòng)時(shí),能夠自動(dòng)安裝該文件系統(tǒng).
*使用自動(dòng)安裝程序。當(dāng)用戶進(jìn)入或退出一個(gè)自動(dòng)安裝目錄時(shí),自動(dòng)安裝程序就會(huì)自動(dòng)安裝或拆卸對(duì)應(yīng)的文件系統(tǒng).
*在命令行中使用mount命令.
4.5.1安裝與拆卸
文件系統(tǒng)可加到系統(tǒng)的目錄層次結(jié)構(gòu)中,這一過(guò)程稱為安裝(mounting),為了安裝一個(gè)文件系統(tǒng)需要:
*成為超級(jí)用戶。
*本地系統(tǒng)的一個(gè)安裝點(diǎn),安裝點(diǎn)是指與安裝的文件系統(tǒng)相聯(lián)結(jié)的一個(gè)目錄。
*要安裝的文件系統(tǒng)資源名。(例:/usr)
一般情況,本地硬盤總是包含在/etc/vfstab文件中,而服務(wù)器上的軟件,如openwindows聯(lián)機(jī)手冊(cè)或服務(wù)器上的主目錄,是在/etc/vfstab中安裝還是自動(dòng)安裝,取決于你所采用的策略。
當(dāng)安裝文件系統(tǒng)時(shí),只要文件系統(tǒng)一安裝好,那么安裝點(diǎn)上原來(lái)存在的任何文件或目錄就不再有效。被屏蔽掉的文件并不永久受安裝過(guò)程的影響,當(dāng)文件系統(tǒng)拆卸后,原來(lái)的文件或目錄又恢復(fù)為有效。安裝目錄最好是采用空目錄,這樣不會(huì)屏蔽掉原來(lái)的文件。
系統(tǒng)在/etc/mnttab(mount表)文件中記錄了已安裝的文件系統(tǒng)。可以用cat或more命令列出mount表的內(nèi)容。但決不能編輯修改mnttab文件。(/etc/vfstab是可以編輯的)。下面是一個(gè)mount表的例子:
gtxa%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
gtxa

pid127)/nse nfs
ro,ignore,map=/etc/auto.nse,indirect,dev=21c0002 69318449
gtxa

pid127)/net nfs ro,ignore,map=-
hosts,indirect,dev=21c0003 693186449
gtxa

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
gtxa%
4.5.1.1安裝與拆卸文件系統(tǒng)命令
表4.5列出了/usr/sbin目錄下的安裝和拆卸文件系統(tǒng)命令。
Mount命令不能安裝一個(gè)數(shù)據(jù)不一致的讀/寫文件系統(tǒng),所以當(dāng)mount命令或mountall命令返回一個(gè)出錯(cuò)信息時(shí),就需要去檢查文件系統(tǒng)。
表4.5安裝與拆卸文件系統(tǒng)命令
命令 說(shuō)明
mount(1M) 安裝文件系統(tǒng)和遠(yuǎn)程資源
Mountall(1M) 安裝文件系統(tǒng)表中說(shuō)明的全部文件系統(tǒng)
Umount(1M) 拆卸文件系統(tǒng)及遠(yuǎn)程資源
Umountall(1M) 拆卸文件系統(tǒng)表中說(shuō)明全部文件系統(tǒng)
文件系統(tǒng)忙時(shí),umount命令不會(huì)拆卸它。所謂文件系統(tǒng)忙是指用戶正在該文件系統(tǒng)的某個(gè)目錄中操作,或是某個(gè)程序找開(kāi)了該文件系統(tǒng)中的文件。
4.5.1.2查找已安裝的文件系統(tǒng)
為了顯示已安裝的文件系統(tǒng),可鍵入mount命令,這時(shí)當(dāng)前安裝的文件系統(tǒng)將顯示出來(lái)
gtxa%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
gtxa%
4.5.1.3安裝/etc/vfstab文件中的全部文件系統(tǒng)
下面是安裝/etc/vfstab文件中全部文件系統(tǒng)的步驟:
1、 進(jìn)入超級(jí)用戶;
2、 鍵入mountall /etc/vfstab中所有的本地文件系統(tǒng)被安裝上。
gtxa%su
Password:
#mountall
#
4.5.1.4安裝特定類型的文件系統(tǒng)
下面說(shuō)明/etc/vfstab文件中,特定類型的文件系統(tǒng)的安裝步驟,最常見(jiàn)的是本地硬盤的ufs文件系統(tǒng)和網(wǎng)絡(luò)文件系統(tǒng)nfs。
1、 進(jìn)入超級(jí)用戶
2、 鍵入mountall -F,/etc/vfstab中的此種類型的文件系統(tǒng)被安裝上。
下面是安裝nfs類型文件系統(tǒng)的例子。
gtxa%su
Password
#mountall -F nfs
#
4.5.1.5安裝單個(gè)文件系統(tǒng)(mount)
安裝/etc/vfstab中單個(gè)文件系統(tǒng)的步驟是:
1、進(jìn)入超級(jí)用戶:
2、鍵入mount
gtxa%su
Password:
#mount /opt
#
4.5.1.6拆卸所有的遠(yuǎn)程文件系統(tǒng)(umountall -F nfs)
下面是拆卸遠(yuǎn)程文件系統(tǒng)的步驟:
1、進(jìn)入超級(jí)用戶;
2、鍵入umountall -F nfs,拆掉/etc/vfstab中全部遠(yuǎn)程文件系統(tǒng)。
gtxa%/su
password:
#umountall -F nfs
#
注意:如果你要拆掉全部文件系統(tǒng)(用umountall命令且不帶參數(shù)),系統(tǒng)就不能再使用。必須重新啟動(dòng)。
4.5.1.7拆卸個(gè)別的文件系統(tǒng)(umount)
不能拆卸正在使用的安裝目錄,若想拆卸一個(gè)正在使用的目錄,必須讓所有的用戶轉(zhuǎn)出這一目錄。
1、進(jìn)入超級(jí)用戶;
2、如果必要,讓用戶轉(zhuǎn)出你要拆除的目錄;
3、鍵入umount 指定的文件系統(tǒng)就被拆除了。
下面是用mount命令查找安裝點(diǎn),并拆掉這一安裝點(diǎn)的例子:
gtxa%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] gtxa%su
Password:
#cd /
#umount /home
#
4.5.2自動(dòng)安裝程序
可以通過(guò)nfs實(shí)現(xiàn)共享文件系統(tǒng)的安裝,這種方法稱為自動(dòng)安裝(automounting)。自動(dòng)安裝程序在后臺(tái)運(yùn)行,根據(jù)需要安裝或拆卸遠(yuǎn)程目錄。正在運(yùn)行自動(dòng)安裝程序的客戶系統(tǒng),一旦用戶存取自動(dòng)安裝程序可訪問(wèn)的遠(yuǎn)程文件或目錄,自動(dòng)安裝程序就自動(dòng)將用戶要訪問(wèn)的文件系統(tǒng)安裝到該用戶系統(tǒng)。只要用戶在遠(yuǎn)程目錄中或正在使用其中的文件,遠(yuǎn)程目錄或文件就是安裝著。如果一定的時(shí)間內(nèi)沒(méi)訪問(wèn)遠(yuǎn)程文件系統(tǒng),則它自動(dòng)地被拆掉。自動(dòng)安裝程序根據(jù)需要自動(dòng)地安裝或拆卸文件系統(tǒng),除了進(jìn)入或轉(zhuǎn)出目錄的操作外,不需用戶進(jìn)行任何干預(yù)。
可以用自動(dòng)安裝程序安裝一些文件,用/etc/vfstab文件和mount命令安裝另外一些文件,對(duì)于無(wú)盤節(jié)點(diǎn),/etc/vfstab表中必須有/ (根),/usr,/usr/kvm幾項(xiàng),共享文件系統(tǒng)應(yīng)一直保持有效,所以不要用自動(dòng)安裝程序安裝/usr/share。
自動(dòng)安裝程序根據(jù)映象表中的說(shuō)明對(duì)文件系統(tǒng)進(jìn)行操作,這些映象表可作為NIS,NIS+或本地文件來(lái)維護(hù)。自動(dòng)安裝程序映象表可說(shuō)明文件的多個(gè)遠(yuǎn)程位置。由于采用了這種方法,當(dāng)其中一個(gè)服務(wù)器出問(wèn)題時(shí),自動(dòng)安裝程序會(huì)再?gòu)钠渌鼨C(jī)器上安裝,在映象表中可為每一服務(wù)器分配一個(gè)加權(quán)因子,用它來(lái)決定哪個(gè)服務(wù)器對(duì)映象表中的資源有較高的優(yōu)先級(jí)。
當(dāng)系統(tǒng)進(jìn)入運(yùn)行第三級(jí)(run level 3)時(shí),將自動(dòng)啟動(dòng)自動(dòng)安裝程序。當(dāng)然也可以從命令行中啟動(dòng)自動(dòng)安裝程序。缺省時(shí),sunos5.x系統(tǒng)軟件自動(dòng)安裝/home。(如何建立和管理自動(dòng)安裝程序的內(nèi)容已超出本手冊(cè)的范圍)。
4.5.3共享服務(wù)器文件
nfs是一個(gè)分布式文件系統(tǒng),通過(guò)nfs可將運(yùn)行不同操作系統(tǒng)的機(jī)器聯(lián)結(jié)在一起例如,運(yùn)行DOS的系統(tǒng)可與運(yùn)行UNIX的系統(tǒng)共享文件。
nfs使得文件系統(tǒng)的實(shí)際物理位置與用戶無(wú)關(guān)。用戶可通過(guò)nfs查看所有相關(guān)文件,而不管它們的位置。由于采用了nfs共享文件,用戶只需在一個(gè)系統(tǒng)的盤中放一個(gè)拷貝,其它系統(tǒng)可以通過(guò)網(wǎng)絡(luò)進(jìn)行存取,而不需在每個(gè)系統(tǒng)中均放一個(gè)拷貝。在nfs下,遠(yuǎn)程文件系統(tǒng)與本地文件系統(tǒng)看起來(lái)沒(méi)什么區(qū)別,一個(gè)系統(tǒng)稱為 nfs服務(wù)器是指該系統(tǒng)上的某些文件系統(tǒng)可通過(guò)網(wǎng)絡(luò)共享或輸出(export),服務(wù)器內(nèi)保留著當(dāng)前已輸出的文件系統(tǒng)表及其存取權(quán)限(如讀/寫或只讀)。
用戶可以通過(guò)網(wǎng)絡(luò)共享其它機(jī)器(通常是服務(wù)器)的資源,如文件、目錄或設(shè)備等,例如可以與其它機(jī)器上的用戶共享第三方廠家的應(yīng)用軟件。
當(dāng)你準(zhǔn)備讓其它用戶共享你的資源時(shí),必須保證其它的遠(yuǎn)程系統(tǒng)安裝你的資源。
下面的方法可實(shí)現(xiàn)資源共享:
1、用share或shareall命令。
2、在/etc/dfs/dfstab(分布式文件系統(tǒng)表)文件中加一項(xiàng)。缺省的/etc/dfs/dfstab文件給出了資源共享的語(yǔ)法規(guī)則和實(shí)例:
gtxa%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
gtxa%
4.6檢查文件系統(tǒng)的數(shù)據(jù)一致性(fsck)
ufs文件系統(tǒng)根據(jù)一些內(nèi)部表來(lái)來(lái)跟蹤inode、已用掉的塊和可用的塊,當(dāng)這引起內(nèi)部表與磁盤的數(shù)據(jù)沒(méi)有適當(dāng)同步(synochronized)時(shí),就產(chǎn)生了不一致,這時(shí)就需要修復(fù)文件系統(tǒng)。
下面是操作系統(tǒng)突然終止時(shí)使文件系統(tǒng)毀壞或產(chǎn)生不一致的幾種情況:
*電源出故障
*系統(tǒng)故障性阻塞(unplugging)
*不正常的關(guān)機(jī)
*核心中的軟件錯(cuò)誤
文件系統(tǒng)損壞雖然嚴(yán)重,但并不經(jīng)常發(fā)生,系統(tǒng)啟動(dòng)時(shí)會(huì)自動(dòng)檢測(cè)文件系統(tǒng),大部分情況下能修復(fù)檢測(cè)到的問(wèn)題。
文件系統(tǒng)檢測(cè)是用fsck(file system check)程序?qū)崿F(xiàn)的。fsck命令將已分配的但沒(méi)有說(shuō)明其來(lái)源的文件和目錄放在lost+found目錄下,如果該目錄不存在,則由fsck建立。如果lost+found中沒(méi)有足夠的空間,fsck也會(huì)自動(dòng)增大其空間。
下列情況發(fā)生時(shí)需要檢測(cè)文件系統(tǒng):
*文件系統(tǒng)不能安裝
*正在使用的文件系統(tǒng)產(chǎn)生問(wèn)題
*正在使用著的文件系統(tǒng)出現(xiàn)不一致時(shí),控制臺(tái)窗口會(huì)提示出非常醒目的出錯(cuò)信息,嚴(yán)重情況會(huì)發(fā)生系統(tǒng)癱瘓。使用fsck前請(qǐng)?jiān)敿?xì)閱讀fsck(1M)手冊(cè)。
4.6.1決定文件系統(tǒng)是否需檢測(cè)
按下列步驟測(cè)定文件系統(tǒng)是否需檢測(cè):
1、 進(jìn)入超級(jí)用戶;
2、 鍵入fsck –m /dev/rdsk/cWtXdYsZ命令,上述命令通過(guò)檢查指定的文件系統(tǒng)超級(jí)塊中的狀態(tài)標(biāo)志來(lái)判斷文件系統(tǒng)是否有問(wèn)題,是否進(jìn)一步修復(fù)檢測(cè)。如果省略了設(shè)備參數(shù),/etc/vfstab文件中列出的fsck pass數(shù)大于0的全部ufs文件系統(tǒng)均需檢測(cè)。
下例中說(shuō)明第一個(gè)文件系統(tǒng)需要檢測(cè),第二個(gè)不需要檢測(cè):
#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以交互方式檢測(cè)文件系統(tǒng)
下面是以交互方式檢測(cè)文件系統(tǒng)的步驟:
*進(jìn)入超級(jí)用戶;
*拆卸文件系統(tǒng);
*鍵入fsck,/etc/vfstab文件中fsck pass域值大于0的文件系統(tǒng)全部被檢測(cè),也可以和安裝點(diǎn)目錄或/dev/rdsk/cWtXdYsZ作參數(shù)進(jìn)行檢測(cè)。檢測(cè)中任何不一致處將顯示出來(lái)。
下面的例子中檢測(cè)/dev/rdsk/c0t0d0s6并校正其不正確的塊計(jì)數(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)
備份是指做文件的拷貝,作為原文件被刪除或毀壞時(shí)的安全措施,通常是將其拷到可移動(dòng)的介質(zhì)中。備份文件后可方便地恢復(fù)誤刪的文件,但最重要的是用于處理嚴(yán)重的硬件故障和其它災(zāi)難性故障。
備份文件是最關(guān)鍵的系統(tǒng)管理功能之一,按照一定的步驟和計(jì)劃實(shí)現(xiàn)系統(tǒng)文件的備份有下述三個(gè)主要原因:
*確保系統(tǒng)癱瘓時(shí)文件系統(tǒng)的完整性;
*防止用戶文件被誤刪;
*作為重新安裝系統(tǒng)或修復(fù)系統(tǒng)的重要保護(hù)措施。
當(dāng)按計(jì)劃備份文件系統(tǒng)時(shí),應(yīng)保證能夠?qū)浞菸募謴?fù)為適當(dāng)?shù)漠?dāng)前狀態(tài),另外,你可能也想將備份好的文件系統(tǒng)從一個(gè)系統(tǒng)傳到另一個(gè)系統(tǒng)中或做為文檔,將文件保存到可移動(dòng)的介質(zhì)上,你就能夠移動(dòng)或改變系統(tǒng)上的文件。
按計(jì)劃備份文件需考慮下面幾方面的內(nèi)容:
*用哪個(gè)命令備份文件系統(tǒng)
*用何種介質(zhì)
*使用什么備份計(jì)劃
*這一系統(tǒng)中哪些文件對(duì)用戶是至關(guān)重要的
*這些要備份的文件在什么地方:它們是在一個(gè)單獨(dú)的文件系統(tǒng)中嗎?
*這些文件經(jīng)常變化嗎?
*當(dāng)文件丟失或損壞時(shí)需要多快恢復(fù)?
*為備份文件,相關(guān)文件系統(tǒng)可經(jīng)常拆卸嗎?
介紹可能的備份策略已超出本手冊(cè)范圍,參見(jiàn)聯(lián)機(jī)手冊(cè)u(píng)fsdump(1M)命令中提供的轉(zhuǎn)貯(dump)策略。
下面介紹如何用ufsdump命令備份文件,用ufsrestore命令恢復(fù)文件。
4.7.1用QIC-150盒式磁帶備份文件系統(tǒng)(ufsdump)
為了備份完整的文件系統(tǒng),所有的用戶必須退出,并使系統(tǒng)進(jìn)入單用戶方式。(磁帶設(shè)備命名的內(nèi)容請(qǐng)參見(jiàn)第三章"磁帶設(shè)備命名約定"

。
可以在磁帶設(shè)備名之前加從遠(yuǎn)程驅(qū)動(dòng)器上進(jìn)行備份和恢復(fù)。下面是語(yǔ)法:/dev/rmt/。
例如:遠(yuǎn)程系統(tǒng)gtxa上的磁帶機(jī)名是/dev/rmt/0,則遠(yuǎn)程設(shè)備名應(yīng)為gtxa:/dev/rmt/0。
下列步驟說(shuō)明如何實(shí)現(xiàn)文件系統(tǒng)級(jí)(完整)備份:
*鍵入init s這時(shí)系統(tǒng)進(jìn)入單用戶方式,這樣就保證了備份全部文件系統(tǒng)時(shí)沒(méi)有用戶修改文件系統(tǒng)。
*插入QIC-150磁帶。
*鍵入ufsdump 0 cuf /dev/rmt/ /dev/dsk/cWtXdYsZ。
任選項(xiàng)0說(shuō)明的0級(jí)(全部)備份。C任選項(xiàng)說(shuō)明是盒式磁帶;U任選項(xiàng)更新轉(zhuǎn)貯記錄;f任選項(xiàng)說(shuō)明隨后是設(shè)備文件名。也可以鍵入硬盤區(qū)代替?zhèn)浞莸奈募到y(tǒng),例如用c0t0d0s7代替/files1。
gtxa%su
Password:
# init s
#ufsdump 0 cuf /dev/rmt/0 /dev/dsk/c0t0d0s7
DUMP

ate of this level 0dump:Wed Mar 11 10:16:53 1992
DUMP

ate of last level 0 dump:the epoch
DUMP

umping /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

UMP IS DONE
#
如果一盒帶存不下,則ufsdump命令會(huì)提醒你什么時(shí)候該換一盒新帶。在磁帶上標(biāo)明命令、文件系統(tǒng)名及備份日期等信息。
4.7.1.1實(shí)現(xiàn)增量備份
用ufsdump命令可指定不同的備份級(jí)別,這樣就可只備份那些上次備份過(guò),而又已經(jīng)修改了的比較低級(jí)別的文件,下列步驟說(shuō)明在最后一次完整的轉(zhuǎn)貯上增量式備份的過(guò)程:
1、 使系統(tǒng)進(jìn)入單用戶模式;
2、 進(jìn)入超級(jí)用戶;
3、 將磁帶放入磁帶機(jī)中;
4、 鍵入ufsdump [1-9] ucf /dev/rmt/ /dev/rdsk/ctds在ufsdump參數(shù)前加上級(jí)數(shù),例如:9級(jí)備份,鍵入9ucf;
5、 執(zhí)行完ufsdump命令后取出磁帶并貼上標(biāo)簽。
4.7.2恢復(fù)備份文件系統(tǒng)
ufsrestore命令可以將用ufsdump命令備份的文件拷貝到當(dāng)前工作目錄中,可以用ufsrestore命令重裝使用0級(jí)備份后使用增量備份的文件系統(tǒng),或從任何備份帶中恢復(fù)一個(gè)或多個(gè)文件,文件是以原始的所有者、最后的修改時(shí)間和模式(許可權(quán))進(jìn)行恢復(fù)的;謴(fù)文件或文件系統(tǒng)之前需要知道:
*需要哪個(gè)帶或盤;
*備份文件系統(tǒng)的設(shè)備名、你使用的磁帶設(shè)備類型;
*磁帶設(shè)備名(本地或遠(yuǎn)程)。
4.7.2.1決定使用哪一備份帶
在開(kāi)始恢復(fù)文件或文件系統(tǒng)之前,必須決定使用哪一備份磁帶,當(dāng)需要恢復(fù)全部文件系統(tǒng)時(shí),需要最新的0級(jí)備份帶。同樣,如果是部分備份就需要最新的在較高級(jí)別上做的增量備份帶,具體情況需要參考你使用的備份計(jì)劃來(lái)確定你需要的級(jí)別和磁帶號(hào)。例如,如果做了0級(jí)和9級(jí)的備份,就需要0級(jí)和9級(jí)的最新的備份帶。
下面是決定用哪個(gè)帶恢復(fù)單獨(dú)的文件或整個(gè)文件系統(tǒng)的步驟:
1、 向用戶尋問(wèn)有關(guān)文件或文件系統(tǒng)丟失的日期,或文件要被復(fù)原到的大概時(shí)間。
2、 參考你的備份計(jì)劃找出最后備份的日期,不一定用最新的備份版本恢復(fù)。為了恢復(fù)文件的適當(dāng)?shù)陌姹荆獜哪嫦虿榭丛隽總浞菸募瑥淖罡呒?jí)看到最低級(jí),從最新的看到最舊的。
3、 如果有用ufsdump -a命令產(chǎn)生的在線存檔文件,則鍵入ufsrestore ta /path/一定要用文件的全程路徑,這時(shí)存貯的文件和介質(zhì)就會(huì)顯示出來(lái)。
4、 找出包含備份的介質(zhì),要知道存貯介質(zhì)是找到數(shù)月甚至數(shù)年所前的備份介質(zhì)。
5、 這步是可選的,將存貯介質(zhì)插入驅(qū)動(dòng)器中,鍵入ufsrestore tf /path/,對(duì)一定用完整的路徑名。如果一個(gè)文件在備份介質(zhì)中,則顯示出它的文件名和inode號(hào),否則顯示信息說(shuō)明此文件不在該介質(zhì)中。
6、 如果一個(gè)帶上有多個(gè)備份文件,可以用-sn任選項(xiàng)來(lái)定位,選擇需要的備份文件。例如鍵入ufsrestore xfs /dev/rmt/05將磁帶定位在第五個(gè)備份文件上并將其恢復(fù)。
4.7.2.2恢復(fù)全部備份
下列步驟說(shuō)明,采用QIC-150盒式磁帶恢復(fù)一個(gè)文件系統(tǒng)的完整備份的過(guò)程,注意:這一過(guò)程將生成一新的文件系統(tǒng),并將毀掉盤上原來(lái)存在全部文件系統(tǒng)。
1、 進(jìn)入超級(jí)用戶;
2、 鍵入init s系統(tǒng)進(jìn)入單用戶模式,保證了沒(méi)有人使用你將恢復(fù)的文件系統(tǒng);
3、 鍵入umount 命令將相應(yīng)的安裝點(diǎn)(mount-point)(例:/files1)拆卸下來(lái);
4、 鍵入newfs /dev/rdsk/cWtXdYsZ將磁盤區(qū)對(duì)應(yīng)的原始設(shè)備文件(例如:/de/rsk/c0t0d0s7對(duì)應(yīng)/home)清掉并重建文件系統(tǒng);
5、 鍵入mount /dev/dsk/cWtXdYsZ將相應(yīng)的塊文件設(shè)備的文件系統(tǒng)(例如:/dev/dsk/c0t0d0s7對(duì)應(yīng)的/home)重新安裝在相應(yīng)的安裝點(diǎn);
6、 鍵入cd 則進(jìn)入你希望做恢復(fù)的目錄中;
7、 插入QIC-150盒式磁帶;
8、 鍵入ufsrestore rvf /dev/rmt/0h將文件系統(tǒng)恢復(fù)。
下例說(shuō)明恢復(fù)/files1對(duì)應(yīng)的c0t0d0s7盤區(qū):
gtxa%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ù)單個(gè)文件或目錄時(shí),將它們存入臨時(shí)目錄(例如:/var/tmp)是個(gè)好方法,經(jīng)過(guò)確認(rèn)后才執(zhí)行恢復(fù)操作,事實(shí)上要確保不會(huì)用備份帶上的舊版本文件重寫已有的新版本。下面是交互式恢復(fù)文件的步驟:
1、 進(jìn)入超級(jí)用戶;
2、 將磁帶寫保護(hù);
3、 將備份帶放入磁帶驅(qū)動(dòng)器中;
4、 鍵入cd /var/tmp,如果你希望將文件存放在其它目錄下,則用相應(yīng)的目錄名代替/var/tmp;
5、 鍵入ufsrestore if /dev/rmt/,一些提示信息和提示號(hào)顯示出來(lái);
6、 建立要恢復(fù)的文件清單;
7、 用ls命令列出一個(gè)目錄的內(nèi)容:
*鍵入cd 改變目錄
*加一個(gè)目錄名或文件名到將要恢復(fù)的文件清單,鍵入add
*若要?jiǎng)h除將要恢復(fù)的文件清單中的目錄名或文件名,鍵入delete
*保持當(dāng)前目錄的模式不變,鍵入setmodes然后鍵入n并回車;
8、 建完清單后,鍵入extract,ufsrestore會(huì)問(wèn)你用哪一卷;
9、 鍵入卷號(hào)回車,如果只有1卷,鍵入1并回車,清單中的文件或目錄就被取出并恢復(fù)到當(dāng)前工作目錄中;
10、 鍵入quit則顯示shell提示符;
11、 用ls -l命令列出已恢復(fù)的文件或目錄;
12、 檢查文件列表,確保所有文件或目錄均被恢復(fù);
13、 用mv命令將文件移到合適的目錄中。
下例說(shuō)明從pubs目錄中恢復(fù)backup.example和junk文件的過(guò)程:
#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ù)單個(gè)文件( ufsrestore)
下面是從備份帶上恢復(fù)單個(gè)文件的過(guò)程:
1、 進(jìn)入超級(jí)用戶;
2、 將備份帶插入;
3、 鍵入cd /var/tmp進(jìn)入/var/tmp目錄下,如果要將備份文件恢復(fù)到不同的目錄中,用相應(yīng)的目錄代替/var/tmp即可;
4、 鍵入ufsrestore xf /dev/rmt/ ,x任選項(xiàng)說(shuō)明拷貝文件或目錄時(shí)是否設(shè)置所有者/模式的信息;
5、 鍵入n,目錄的模式保持不變;
6、 鍵入卷號(hào),如果只有1卷,鍵入1,這時(shí)文件被恢復(fù)到當(dāng)前工作目錄中;
7、 鍵入ls –l 文件清單顯示出來(lái);
8、 用mv命令將文件移到合適的目錄中。
第5章、管理網(wǎng)絡(luò)服務(wù)
本章將介紹:檢查遠(yuǎn)程系統(tǒng)狀態(tài)、向遠(yuǎn)程系統(tǒng)注冊(cè)(rlogin)、系統(tǒng)之間傳送文件(rcp,ftp)、管理NIS+數(shù)據(jù)庫(kù)(admintool)。
5.1檢查遠(yuǎn)程系統(tǒng)狀態(tài)
這一節(jié)說(shuō)明顯示遠(yuǎn)程系統(tǒng)狀態(tài)的命令:rup、ping及rcpinfo –d。
5.1.1確定一個(gè)遠(yuǎn)程系統(tǒng)已運(yùn)行了多長(zhǎng)時(shí)間
命令rup告訴你系統(tǒng)運(yùn)行的時(shí)間及平均負(fù)載。當(dāng)鍵入這個(gè)命令時(shí)系統(tǒng)顯示出主機(jī)名、運(yùn)行時(shí)間及平均負(fù)載。
gtxa%rup ash
ash up 59 days,3:42,load average:0.12,0.12,0.01
gtxa%
如果在命令后面不跟隨任選參數(shù),還可以顯示出子網(wǎng)上所有遠(yuǎn)程主機(jī)的一些信息,如果是以表的形式顯示,則可以使用表中的任選項(xiàng)對(duì)輸入分類。
表5.1 RUP命令的任選項(xiàng)
選項(xiàng) 功能
-h 按主機(jī)名字字母順序分類顯示
-l 按平均負(fù)載字母順序分類顯示
-t 按運(yùn)行時(shí)間長(zhǎng)短分類
下例說(shuō)明,輸出按主機(jī)名的字母順序分類;
gtxa%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
gtxa up 8 days, 15:44,load average.o.02,0.00.0.00
gtxa%
5.1.2確定一個(gè)遠(yuǎn)程系統(tǒng)是否在運(yùn)行(ping\rup\rpcinfo-p)
下面的步驟判斷一個(gè)遠(yuǎn)程系統(tǒng)是否在運(yùn)行:
*鍵入ping ,回答信息" is alive"。意指這個(gè)系統(tǒng)在網(wǎng)絡(luò)上是可以存取的,若出現(xiàn)信息"ping:unknown host",指這個(gè)系統(tǒng)可能不存在,因?yàn)槊纸馕鱿到y(tǒng)不能找到這個(gè)名字的機(jī)器。若出現(xiàn)信息"ping:no answer from ",指遠(yuǎn)程系統(tǒng)可能沒(méi)有在運(yùn)行。
*鍵入rup 顯示系統(tǒng)運(yùn)行時(shí)間及平均負(fù)載的信息。
*鍵入rpcinfo -p,顯示服務(wù)的相關(guān)信息。
*鍵入rlogin ,注冊(cè)到遠(yuǎn)程系統(tǒng)。
*以上以r開(kāi)頭的命令需要遠(yuǎn)程系統(tǒng)允許才可能得到相關(guān)信息。
openet%ping gtxa
gtxa is alive
openet%rup gtxa
gtxa up 3 days,15:10 load average:0.07,0.08.0.09
openet% rpcinfo-p gtxa
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 gtxa
password
last login; Mon Mar 2 10 :31 56 from cinderella
openet%
還可以鍵ping 的命令格式,系統(tǒng)會(huì)顯示信息"is alive",意指系統(tǒng)在網(wǎng)絡(luò)上是可存取的。若顯示信處息"ping:no answer from,即意指網(wǎng)絡(luò)上沒(méi)有激活。或顯示信息"ping:unreachable address from .... ",即意指這個(gè)系統(tǒng)在網(wǎng)絡(luò)上可能不存在,因?yàn)闆](méi)有路由可以到此地址。
gtxa%ping 129.144.52.199
129.144.52.199 is alive
gtxa% ping 129.144.52.200
unknown host 129.144.52.200
gtxa% ping 129.145.52.199
ping:no answer from 129.145.52.119
gtxa%
5.2注冊(cè)到一個(gè)遠(yuǎn)程系統(tǒng)(rlogin)
下面是注冊(cè)到遠(yuǎn)程系統(tǒng)的步驟:
1、鍵入rlogin ;,這時(shí)系統(tǒng)可能提示你鍵入口令。
2、如果你在想注冊(cè)的那個(gè)系統(tǒng)上有一個(gè)本地帳號(hào),則鍵入口令。否則,鍵入你NIS+口令。如果你在這上系統(tǒng)上有一個(gè)可存取的主目錄,就注冊(cè)進(jìn)入到那個(gè)目錄。否則只能注冊(cè)到根(/)目錄上。
gtxa%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命令
要使用遠(yuǎn)程拷貝命令從遠(yuǎn)程系統(tǒng)上傳送文件到本地機(jī)器上,鍵入RCP ; ;,如果你有存取這個(gè)遠(yuǎn)程系統(tǒng)的合法權(quán)限,那么,文件就拷貝到你指定的目標(biāo)路徑位置上。
下例說(shuō)明,將文件quest從系統(tǒng)ash的/tp目錄,拷貝到系統(tǒng)gtxa的當(dāng)前工作目錄中:
gtxa% rcp ash:/tmp/quest.
gtxa%
要從本地系統(tǒng)傳送一個(gè)文件到遠(yuǎn)程系統(tǒng),鍵入rcp ,如果你有存取遠(yuǎn)程系統(tǒng)權(quán)限的話,就將文件從本地系統(tǒng)拷貝到你指定的遠(yuǎn)程目標(biāo)路徑名中。
下例說(shuō)明,將文件quest從系統(tǒng)gtxa的當(dāng)前工作目錄拷貝到系統(tǒng)openet的/tmp目錄下:
gtxa%rcp quest openet:/tmp
gtxa%
如果需要改變文件名,可以將文件名作為目標(biāo)中徑名的一部分。例如,將文件quest改名為question,并將其放到/tmp目錄中,則鍵入/tmp/question作為目標(biāo)路徑名。
5.3.2使用文件傳送程序(ftp)
下面是使用文件傳送程序從本地系統(tǒng)傳送一個(gè)文件到遠(yuǎn)程系統(tǒng)的步驟。
注:要使用文件傳送程序,可能需要在每個(gè)系統(tǒng)上有一個(gè)你的帳號(hào),或在/.rhosts文件中有個(gè)入口,有些系統(tǒng)允許匿名登錄是以anonymous或ftp作為注冊(cè)名,并在口令提示時(shí)打入形如電子郵件地址的字符串。
如果有一個(gè)NIS或NIS+帳號(hào),可以使用注冊(cè)名及網(wǎng)絡(luò)口令通過(guò)FTP存取遠(yuǎn)程系統(tǒng)。
1、 鍵入ftp命令,則FTP>;提示符顯現(xiàn)
2、 鍵入open ;,系統(tǒng)顯示連接信息,并請(qǐng)求用戶輸入用戶名。
3、 鍵入遠(yuǎn)程系統(tǒng)上的用戶名。
4、 系統(tǒng)請(qǐng)求你輸入口令(如果無(wú)口令,也可能不出現(xiàn))。
5、 鍵入口令(如果需要),系統(tǒng)注冊(cè)信息及FTP>;提示出現(xiàn)。
6、鍵入bin設(shè)置二進(jìn)制格式,或asc設(shè)置ASCII格式,這個(gè)命令設(shè)置文件傳送時(shí)的類型。bin格式傳送時(shí)對(duì)文件不作任何更改。asc格式傳送時(shí),根據(jù)雙方系統(tǒng)的類型,自動(dò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)
gtxa%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.
gtxa%
可以使用send命令替代put命令,還可以使用mput命令拷貝多個(gè)文件,但沒(méi)有msend命令,詳細(xì)內(nèi)容請(qǐng)見(jiàn)ftp(1)手冊(cè)。注:你必須在對(duì)方系統(tǒng)上有一個(gè)帳號(hào)或?qū)Ψ较到y(tǒng)允許匿名登錄才能使用文件傳送程序
如果你有一個(gè)NIS或NIS+帳號(hào)的話,你可以使用你的注冊(cè)名及網(wǎng)絡(luò)口令通過(guò)ftp存取遠(yuǎn)程系統(tǒng)。下面是使用文件傳送程序?qū)⑦h(yuǎn)程系統(tǒng)的文件傳送到本地系統(tǒng)的步驟:
1、鍵入ftp命令,則ftp>;提示符出現(xiàn)
2、鍵入open;,系統(tǒng)顯示連接信息,并請(qǐng)求你的用戶名
3、鍵入遠(yuǎn)程系統(tǒng)上你的用戶名并按回車.如果需要口令的話,會(huì)請(qǐng)求你輸入
4、如果需要,鍵入口令,系統(tǒng)顯示注冊(cè)信息及ftp>;提示
5、鍵入bin設(shè)置二進(jìn)制格式,或asc設(shè)置ascii格式,這步設(shè)置文件類型
6、鍵入get ; ;并按回車,顯示傳送信息及ftp>;提示信息
7、鍵入quit,系統(tǒng)顯示goodbye信息,退出ftp命令,重新顯示shell提示符。
gtxa%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
gtxa%
注:可以使用mget命令拷貝多個(gè)文件,詳細(xì)資料見(jiàn)ftp(1)手冊(cè)
第6章、管理用戶帳號(hào)和用戶組
本章主要介紹如何使用管理工具(Administration Tool)來(lái)建立和管理用戶帳號(hào)以及用戶組,該管理工具用于編輯NIS+數(shù)據(jù)庫(kù)和本地/etc目錄下的文件,同時(shí),它還允許用戶查看NIS map中的信息,但不提供對(duì)這些信息的編輯功能。
注意: Solaris 2.x提供了以下的SVR4 useradd命令:useradd、userdel、usermod、groupadd、groupmod和groupdel。由于這些命令與網(wǎng)絡(luò)關(guān)系不大,因而不在本章中討論。如果想要在獨(dú)立系統(tǒng)中使用這些命令管理用戶帳號(hào),請(qǐng)參閱合適手冊(cè)。
6.1增加和管理用戶帳號(hào)
在下面幾節(jié)中我們將介紹如何使用管理工具來(lái)增加和刪除用戶帳號(hào),在Solaris 2.0下,可以通過(guò)編輯Passwd數(shù)據(jù)庫(kù)或本地的/etc/passwd文件來(lái)增加用戶,但管理工具不會(huì)自動(dòng)為用戶建立主目錄。而在Solaris 2.1下,用戶管理器(User Manager)則為用戶提供了編輯Passwd數(shù)據(jù)庫(kù)和建立用戶主目錄的功能。
6.1.1增加用戶帳號(hào)
在向網(wǎng)絡(luò)中增加用戶之前,必須首先建立并配置好用戶系統(tǒng),如果需要,還必須在網(wǎng)絡(luò)上安裝并運(yùn)行NIS+或NIS軟件。(只有4.x系統(tǒng)可以成為NIS服務(wù),而NIS客戶則可用4.x或5.x 系統(tǒng)來(lái)安裝)。
增加一個(gè)用戶需要完成以下兩步:設(shè)置用戶帳號(hào)、為用戶提供工作環(huán)境。
*編輯Passwd數(shù)據(jù)庫(kù)
*定義用戶組
*建立主目錄
*定義用戶環(huán)境
*建立口令
在以下幾節(jié)中,我們將介紹如何完成這些工作。
6.1.1.1編輯Passwd數(shù)據(jù)庫(kù)
在編輯Passwd數(shù)據(jù)庫(kù)或本地的/etc/passwd文件之前,必須首先成為系統(tǒng)管理組(GID14)的成員,如果系統(tǒng)中正在運(yùn)行NIS+,那么還必須具備建立或刪除NIS+數(shù)據(jù)的合適權(quán)限,之后就可以使用網(wǎng)絡(luò)上任何系統(tǒng)的管理工具來(lái)改變核心NIS+數(shù)據(jù)庫(kù)或本地系統(tǒng)的etc/passwd文件了。
增加一個(gè)用戶,需要知道以下信息:
*注冊(cè)名(login name)
*用戶號(hào)(UID)
*基本組號(hào)(GID)
*識(shí)別信息(姓名、辦公地點(diǎn)、家用電話及其它)
*主目錄(home directory)
*注冊(cè)shell
按以下步驟在NIS+網(wǎng)絡(luò)數(shù)據(jù)庫(kù)或本地的/etc/passwd文件中增加用戶:
1、鍵入openwin,啟動(dòng)Open Windows.
2、鍵入admintool,啟動(dòng)管理工具并顯示Adiminstration Tool窗口.
3、用鼠標(biāo)SELECT Database Manager圖標(biāo)顯示Database Manager窗口.
4、SELECT Passwd數(shù)據(jù)庫(kù),在NIS+命名設(shè)備或None(本地/etc文件)上用鼠標(biāo)點(diǎn)中并點(diǎn)擊Load按鈕,顯示出Passwd Database窗口.
5、如果是在一個(gè)大型的網(wǎng)絡(luò)中,那么可能需要搜索某個(gè)注冊(cè)名或UID,以確信它們沒(méi)有被使用過(guò),在View菜單中選擇Find,在文字域中鍵入注冊(cè)名或 UID,然后用鼠標(biāo)點(diǎn)擊Find按鈕,如果搜索到了一項(xiàng),那么該項(xiàng)就被點(diǎn)亮,否則在Passwd Database 窗口的底部顯示出"No match"信息.
6、在Edit菜單中選擇Add Entry一項(xiàng),顯示出Add Entry窗口.
7、在合適的文字域鍵入用戶名和用戶ID(UID).
8、當(dāng)用戶第一次注冊(cè)時(shí),其缺省情況是無(wú)口令狀態(tài),如果想要選擇一個(gè)不同的口令狀態(tài),可在Passwd Status菜單中選擇另外一項(xiàng),菜單中各項(xiàng)有含義如表6.1所示.
9、在文字域中鍵入其余的信息,表6.2 描述了每個(gè)域中的具體內(nèi)容,另外Database Manager也為用戶提供了聯(lián)機(jī)幫助信息,用戶只需將箭頭移到某一項(xiàng)標(biāo)簽上或文字域中,然后按鍵盤上的Help鍵,即可得到關(guān)于該項(xiàng)的詳細(xì)說(shuō)明.
10、當(dāng)所有信息都輸入完成以后,用鼠標(biāo)點(diǎn)擊Add 按鈕將它們存入Passwd 數(shù)據(jù)庫(kù)或/etc/passwd文件中,如果顯示了"...cannot execute method,access denied..."信息,那么就需要編輯NIS+組表或/etc/group文件,在系統(tǒng)管理員組(GID)中建立或增加你的注冊(cè)名.
編輯完P(guān)asswd數(shù)據(jù)庫(kù)后,還需建立一個(gè)主目錄并為用戶設(shè)置環(huán)境,這些過(guò)程將在下面幾節(jié)中介紹。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
表6.1 Password Status菜單中的口令狀態(tài)選擇
口令狀態(tài) 描述
Password is cleared 每個(gè)帳號(hào)需要一個(gè)口令,當(dāng)用戶第一次注冊(cè)時(shí),系統(tǒng)將
until first login 提示用戶輸入口令
Accunt is locked 當(dāng)輸入非法口令時(shí),帳號(hào)無(wú)效,此時(shí),用戶可通過(guò)指定
一個(gè)新的口令來(lái)講該帳號(hào)進(jìn)行解鎖,這種類型的帳號(hào)允
許用戶擁有文件但無(wú)法注冊(cè)
No password-rood setuid 帳號(hào)無(wú)法直接注冊(cè),它允許lp或uucp 等程序在某
access only 個(gè)帳號(hào)下運(yùn)行,但用戶無(wú)法注冊(cè)
Normal password is set 當(dāng)某帳號(hào)已經(jīng)有一個(gè)口令時(shí),可選擇該項(xiàng)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
注意: 一個(gè)沒(méi)有口令的帳號(hào)是無(wú)法建立的,同時(shí)其口令不能在數(shù)據(jù)庫(kù)管理器中直接定義而只能使用nispasswd、yppasswd或passwd命令來(lái)加以定義.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
表6.2 口令數(shù)據(jù)庫(kù)(Passwd Database)Add Entry窗口中各域的內(nèi)容
域 描述
User name 用字符(包括數(shù)字)組成一個(gè)唯一的注冊(cè)名
User ID 輸入一個(gè)100-60000之間的唯一整數(shù),用于在系統(tǒng)內(nèi)部標(biāo)
識(shí)用戶
Passwor Status 見(jiàn)表7.1
Comment(GOOS) 輸入可選信息,如用戶實(shí)際名稱、電話號(hào)碼或所在機(jī)構(gòu)
Home Path 輸入用戶主目錄的路徑,一般地,路徑為/home/
,注意,在Solaris 2.x系統(tǒng)中,系統(tǒng)名不再是用戶目錄
路徑中的一部分
Shell 輸入注冊(cè)時(shí)啟動(dòng)的shell全程路徑: Bourne shell的是
bin/sh C shell是bin/csh,Korn shell的是/bin/ksh
缺省值是Bourne shell
Group ID 輸入一個(gè)0-60000之間的唯一整數(shù),用于標(biāo)識(shí)用戶所屬的
基本組(primary group).
Max Days Valid 輸入口令有效最大天數(shù),如果該項(xiàng)空白,則口令不會(huì)失效
Days Warning 輸入在口令失效前開(kāi)始警告用戶的天數(shù)
Last Mod Date 顯示從1970年1月1日開(kāi)始一直到口令最近一次被修改
時(shí)間的天數(shù)(8085表示1992年2月28日)該域內(nèi)容是不
允許修改的
Expiration Date 輸入用戶帳號(hào)被注銷的絕對(duì)日期,該日期以1970年1月
1日起計(jì)算的天數(shù)來(lái)表示,(如8050表示1992年1日28
日)如果該域空白,則口令不會(huì)失效
Min Change Days 輸入兩次改變口令之間所允許的最小天數(shù)
Max Inactive Days 輸入某帳號(hào)被凍結(jié)前失效的天數(shù)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
6.1.1.2定義用戶組
如果想在某個(gè)組中增加用戶,必須編輯組數(shù)據(jù)庫(kù)(Group database),并在該組成員表增加用戶注冊(cè)名,本節(jié)描述了如何向某個(gè)組增加一個(gè)用戶的過(guò)程,在這之前,首先需要知道用戶注冊(cè)名,用戶ID(UID)以及組名和組ID。
1、 在Database Manager窗口中,點(diǎn)亮組數(shù)據(jù)庫(kù),用鼠標(biāo)選擇NIS+或None(本etc文件)并點(diǎn)擊Load按鈕。
2、 用鼠標(biāo)選擇想修改的一項(xiàng),該項(xiàng)被點(diǎn)亮。從Edit菜單中選擇Modify Entry,此時(shí)打開(kāi)Modify Entry窗口,并顯示出被選項(xiàng)在組數(shù)據(jù)庫(kù)(或文件)中的當(dāng)前信息。
3、 在成員文字域中增加用戶注冊(cè)名,當(dāng)你輸錯(cuò)時(shí),可按Reset按鈕,以便重輸信息。
4、用鼠標(biāo)選擇Modify后,組數(shù)據(jù)庫(kù)(或本地/etc/group文件)立刻修改。
5、如果你想讓該用戶屬于別的組,則重復(fù)以上步驟,在別的組中增加該用戶。
注意:如果你不使用命名服務(wù)(naming service),那么必須重復(fù)以上步驟,才能對(duì)屬于同一組所有用戶更新到其它系統(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)一部分,它分配給每個(gè)用戶用于存貯私人文件,按照用戶所創(chuàng)建的文件種類以及其工作性質(zhì)給每個(gè)用戶分配的主目錄空間可以是不同的,一般地,你可以為每個(gè)用戶的主目錄分配15Mb左右的磁盤空間。
用戶的主目錄可以在本地文件系統(tǒng)或遠(yuǎn)程文件服務(wù)器中,其路徑名約定如/export/home/。注意:這是Solaris 2.x的一種新的約定,服務(wù)器名不再包含在用戶的主目錄路徑中,在大型服務(wù)器的/export目錄下,可以為不同的用戶創(chuàng)建戶主目錄,如homel, home2,home3等,不管用戶的主目錄安放在哪里,他們都能通過(guò)名為/home/安裝點(diǎn)訪到自己的主目錄。
本節(jié)描述Solaris 2.x中主目錄的安裝方法,在這之前,我們先假設(shè)用戶注冊(cè)的系統(tǒng)是在網(wǎng)絡(luò)上,用Automount自動(dòng)安裝的用戶主目錄是可訪問(wèn)的,并且利用系統(tǒng)提供share共享命令可以使用戶在別的系統(tǒng)上通過(guò)網(wǎng)絡(luò)訪問(wèn)本地的用戶目錄。
主目錄的安裝方法有以下兩種:
*在NIS+Auto-home數(shù)據(jù)庫(kù),NIS auto-home表或本地/etc/auto-home文件中增加一項(xiàng),自動(dòng)安裝主目錄(推薦方法)。
*在用戶系統(tǒng)
6.1.1.3建立主目錄(home director)
主目錄是文件系統(tǒng)一部分,它分配給每個(gè)用戶用于存貯私人文件,按照用戶所創(chuàng)建的文件種類以及其工作性質(zhì)給每個(gè)用戶分配的主目錄空間可以是不同的,一般地,你可以為每個(gè)用戶的主目錄分配15Mb左右的磁盤空間。
用戶的主目錄可以在本地文件系統(tǒng)或遠(yuǎn)程文件服務(wù)器中,其路徑名約定如/export/home/。注意:這是Solaris 2.x的一種新的約定,服務(wù)器名不再包含在用戶的主目錄路徑中,在大型服務(wù)器的/export目錄下,可以為不同的用戶創(chuàng)建戶主目錄,如homel, home2,home3等,不管用戶的主目錄安放在哪里,他們都能通過(guò)名為/home/安裝點(diǎn)訪到自己的主目錄。
本節(jié)描述Solaris 2.x中主目錄的安裝方法,在這之前,我們先假設(shè)用戶注冊(cè)的系統(tǒng)是在網(wǎng)絡(luò)上,用Automount自動(dòng)安裝的用戶主目錄是可訪問(wèn)的,并且利用系統(tǒng)提供share共享命令可以使用戶在別的系統(tǒng)上通過(guò)網(wǎng)絡(luò)訪問(wèn)本地的用戶目錄。
主目錄的安裝方法有以下兩種:
*在NIS+Auto-home數(shù)據(jù)庫(kù),NIS auto-home表或本地/etc/auto-home文件中增加一項(xiàng),自動(dòng)安裝主目錄(推薦方法)。
*在用戶系統(tǒng)的/etc/vfstab文件中增加一項(xiàng),使系統(tǒng)可以通過(guò)nfs來(lái)安裝主目錄。為支持主目錄的自動(dòng)安裝,SunOS 5.x系統(tǒng)軟件在/etc/auto-master文件中設(shè)置了下面一項(xiàng):
/home/etc/auto-home
該項(xiàng)通知Automounter將auto-home數(shù)據(jù)庫(kù)中指定的目錄安裝到本地的/home上去,在auto-home中該項(xiàng)的使用格式如下:
:/export/home/
當(dāng)用戶以注冊(cè)時(shí),Automounter會(huì)自動(dòng)將指定系統(tǒng)(上的指定路徑/export/home/)安裝到用戶所在系統(tǒng)的/home安裝點(diǎn)上。
這種方法適用于主目錄在本地系統(tǒng)中,但更重要的是,一旦用戶在其他系統(tǒng)中注冊(cè)Automounter會(huì)自動(dòng)將其主目錄安裝到該系統(tǒng)的/home安裝點(diǎn)上。
注意:當(dāng)Automounter用于安裝主目錄時(shí),你不能在用戶系統(tǒng)的/home安裝點(diǎn)上建立任何目錄,當(dāng)Automounter處在運(yùn)行狀態(tài)時(shí),系統(tǒng)將自動(dòng)識(shí)別/home目錄的特殊狀態(tài)。
在建立主目錄之前,必須首先編輯Passwd database來(lái)建立用戶帳號(hào),它需要以下信息:
*用戶的注冊(cè)名和UID
*主目錄所在系統(tǒng)名稱,如果主目錄在網(wǎng)絡(luò)上是可訪問(wèn)的,那么主目錄系統(tǒng)必須象用戶的本地系統(tǒng)一樣在網(wǎng)絡(luò)的同一網(wǎng)段上(network segment),用df命令檢查服務(wù)器是否有足夠的空間來(lái)建立一個(gè)新的目錄。
*用戶帳號(hào)的目錄名,一般地,主目錄可取名為/export/home,在大型的文件服務(wù)器目錄還可以是多重的,例如/export/home1, /export/home2等等,在每個(gè)目錄下,不同的子目錄是為不同用戶建立的(例如: /export/home/、/export/home/、/export/hom1/、/export/home2/等等)。
下面介紹主目錄的安裝步驟,它適用于主目錄在本地系統(tǒng)中或在遠(yuǎn)程文件服務(wù)器上。
1、成為超級(jí)用戶
2、鍵入cd /export/,其中是用戶主目錄的名稱,例如,想進(jìn)入目錄/export/homel,可鍵入:#cd /exprt/homel
3、鍵入mkdir ,其中是用戶的注冊(cè)名,你可以建立一個(gè)與用戶注冊(cè)名匹配的目錄,例如建立一個(gè)名為ignatz的用戶目錄,可鍵入:#mkdir ignatz
4、鍵入chown ,此時(shí)用戶成了主目錄的所有者,例如,對(duì)于用戶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
注意:以下步驟描述了如何從一個(gè)運(yùn)行SunOS 5.x的服務(wù)器上共享主目錄,若想從運(yùn)行SunOS 4.x的服務(wù)器上共享主目錄,則必須使用export命令。
1、鍵入share檢查主目錄是共享的,則可以看到以下信息
gtxa%su
Password:
#share
- /export/home rw ""

如果沒(méi)有列出主目錄,則可按以下步驟建立一個(gè)可被其它系統(tǒng)共享的主目錄,一般地,可將主目錄命名為/export/home,/export/home1,或/export/home2等。
2、編輯/etc/dfstab文件,加入下面一行:
share -F nfs /export/
3、鍵入shareall -F nfs。這樣不需要重啟系統(tǒng),系統(tǒng)就能自動(dòng)執(zhí)行/etc/dfstab文件中的有share命令。
4、鍵入ps -ef|gerp mountd。如果系統(tǒng)管理進(jìn)程mountd在運(yùn)行,則結(jié)束,反之,繼續(xù)執(zhí)行步驟5。
下面是一個(gè)mountd未運(yùn)行時(shí)出現(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,啟動(dòng)共享文件目錄要求的系統(tǒng)管理進(jìn)程。
注意:如果網(wǎng)絡(luò)沒(méi)有運(yùn)行NIS或NIS+,就需要將主目錄服務(wù)器的IP地址和系統(tǒng)名加入到用戶系統(tǒng)的/etc/hosts文件中,本地/etc/hosts文件可用Database Manager來(lái)進(jìn)行編輯。
如果使用了硬盤配額(disk quotas),那么就應(yīng)該為用戶建立一個(gè)相應(yīng)的配額。
在建立了用戶的主目錄之后,要使之可用,可將它加入到Auto-home database 中由Automounter啟動(dòng),或者將它用為用戶系統(tǒng)中/etc/vfstab文件里的一項(xiàng)由nfs裝入。
6.1.1.4自動(dòng)安裝目錄
在按本節(jié)中所述步驟操作前,必須首先建立用戶主目錄并且Automounter,如果要用Automounter Tool Database Manager來(lái)編輯NIS+Auto-home數(shù)據(jù)庫(kù),那么必須是sysadmin group(GID 14)的成員,并對(duì)Auto-home database具有建立和刪除的合適權(quán)限。
只要有一合適的權(quán)限,就可通過(guò)網(wǎng)絡(luò)上的任何系統(tǒng)來(lái)修改NIS+Auto-home database或/etc/auto-home文件,在編輯Auto-home數(shù)據(jù)庫(kù)時(shí),必須知道用戶的注冊(cè)名和要安裝的主目錄名。
以下步驟適用于主目錄建立在本地系統(tǒng)或者遠(yuǎn)程文件服務(wù)器上。
1、啟動(dòng)Automounter Tool并選擇Database Manager。
2、窗口中缺省的域名(Domain Name)是Ecd.East.Sun.COM,如果此缺省域名不對(duì),則可在該字段中輸入別的域名;如果是在本地系統(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)用戶第一次注冊(cè)時(shí),主目錄將自動(dòng)地被安裝到/home/下。
6.1.1.5用nfs安裝主目錄
如果用戶的主目錄是在其它系統(tǒng)上并且Automounter無(wú)法分配用戶空間,那么可按以下方法用nfs來(lái)安 裝主目錄:
1、成為超級(jí)用戶;
2、編輯/etc/vfstab文件,為用戶主目錄建立相應(yīng)的項(xiàng)。例如,想要在服務(wù)器gtxa上為用戶ignatz建立主目錄,可在該文件中加入以下一項(xiàng):
gtxa: /export/homel/ignstz - /home/ignatz nfs - yes rw,inty
3、為了建立用戶系統(tǒng)的安裝點(diǎn),可以鍵入mkdir /home/。注意:主目錄的名稱在服務(wù)器和用戶系統(tǒng)上可以是不同的,例如,服務(wù)器上的主目錄名/export/home/ignatz/在用戶系統(tǒng)上可以是/home/ignatz;
4、鍵入chown /home/,此時(shí)主目錄為該用戶所有;
5、鍵入chgrp /home/,此時(shí)用戶的基本組(primary group)具有訪問(wèn)用戶主目錄的權(quán)限;
6、鍵入mountall,當(dāng)前vfstab文件中的所有項(xiàng)(它們的automount域被設(shè)成Yes)被啟動(dòng)裝入;
7、為了加以驗(yàn)證,可鍵入mount命令來(lái)顯示所在已安裝好的文件系統(tǒng)。
6.1.1.6定義用戶環(huán)境
為了建立用戶帳號(hào),需進(jìn)一步定義以下用戶環(huán)境:
*定義缺省初始化文件
*建立一個(gè)郵件帳號(hào)
*設(shè)置打印機(jī)
6.1.1.7定義初化文件
當(dāng)用戶注冊(cè)時(shí),注冊(cè)程序會(huì)自動(dòng)生成一系列變量,如HOME、LOGNAME和TZ,接著運(yùn)行初始化文件為用戶設(shè)置系統(tǒng)缺省值如PATH、日期信息、 umask等,然后再設(shè)置一些特定變量,例如通過(guò)修改某個(gè)用戶初始化文件中的PATH變量可以使某些應(yīng)用程序只能由該用戶執(zhí)行。
每一種shell都有自己的初始化文件,如表6.3所示。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
表7.3 shell 用戶初始化文件
shell 初始化文件 用途
C $HOME/.login 注冊(cè)時(shí)定義用戶環(huán)境
$HOME/.cshrc shell注冊(cè)后定義C shell要
求的用戶環(huán)境
Bourne $HOME/.profile 注冊(cè)時(shí)定義用戶環(huán)境
Korn $HOME/.profile 注冊(cè)時(shí)定義用戶環(huán)境
$HOME/. 在環(huán)境變量指定的文
件中定義注冊(cè)時(shí)的用戶環(huán)境
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SunOS5.x系統(tǒng)軟件為/etc/skel目錄下的每個(gè)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)境,為了簡(jiǎn)化每個(gè)用戶的初始化文件,可以在/etc/skel下的文件中設(shè)置盡量多的系統(tǒng)級(jí)缺省變量。
為了建立初始化文件,必須首先建立好用戶的主目錄并且知道Passwd數(shù)據(jù)庫(kù)中為該用戶設(shè)置的shell類型(C、Bourne或Korn),按以下步驟設(shè)置用戶的初始文件:
1、在用戶的主目錄下成為超級(jí)用戶;
2、鍵入cd //,進(jìn)入用戶主目錄,例如,要想進(jìn)入/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),該組號(hào)是在passwd數(shù)據(jù)庫(kù)為用戶帳號(hào)專門指定的,例如:
#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)沒(méi)用的shell初始化程序全部刪除;
9、安裝用戶主目錄;
10、在用戶系統(tǒng)中以該用戶注冊(cè);
11、為用戶指定一個(gè)臨時(shí)的口令(見(jiàn)下面如何建立口令一章中的"建立口令"

;
12、檢查用戶環(huán)境設(shè)置得是否正確;
13、編輯用戶初始化文件并按需要進(jìn)行修改;
為了編輯用戶初級(jí)化文件,需完成以下幾步:
1、 設(shè)置缺省路徑,該路徑包含用窗口環(huán)境應(yīng)用程序安裝點(diǎn)以及該用戶的主目錄;
2、 為了改變路徑設(shè)置,如下增加或修改PATH變量,對(duì)于C shell可鍵入setpath=(. / / /...),例如,可在用戶的$HOME/.cshrc 文件中加入以下一行:setpath=(. /usr/openwin/bin /usr/bin $home/bin /usr/lib /usr/sbin)。對(duì)于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語(yǔ)法顯示,輸入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è)量,對(duì)于C shell可鍵入setenv (或set =)。例如,設(shè)置100個(gè)命令的歷史表,可鍵入setenv HISTORY 100,對(duì)于Bourne或Korn shell,可以鍵入=;export。例如,設(shè)置用戶的缺省郵件路徑,可鍵入MALL=/var/mail/ignatz;export MAIL;
6、 檢查umask設(shè)置,如果需要對(duì)它進(jìn)行改變,可鍵入umask ,數(shù)字前面的可以省略,例如,要文件權(quán)限為755,可鍵入umask 022,表6.5列出了八進(jìn)制unask值對(duì)應(yīng)的文件權(quán)限。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
表6.5 umask值對(duì)應(yīng)的權(quán)限
八進(jì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è)置的,它們主要包含時(shí)區(qū)、collation orders、數(shù)據(jù)格式、時(shí)間、匯率和數(shù)字,LANG變量為某個(gè)指定的國(guó)家或地區(qū)所有可能的文化習(xí)慣和背景,LC變量可單獨(dú)使用,如果用 LC.COLLATE,LC-CTYPE,LC-MSEE AGES和LC-NUMERIC變量來(lái)設(shè)置本地的特性,表6.6列出了不同地區(qū)的值。
如果系統(tǒng)需要支持多字節(jié)字符(如日語(yǔ))那么需要在系統(tǒng)初始化文件(/etc/profile、etc/login)中加入命令stty cs8 defeucw命令,并重新注冊(cè)。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
表6.6 LANG和LC變量的取值
值 地點(diǎn)
de: German
fr: Frenah
iso-8995-1 English and Enropean
it Italian
Japanese Japanese
Korean Korean
sv Swedish
tchinese Taiwanese
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
6.1.1.8建立用戶的郵件帳號(hào)
每個(gè)用戶在本地系統(tǒng)或郵件服務(wù)器上都有一個(gè)郵箱并可能在/etc/mail/aliase文件中有一個(gè)郵件別名,它指向郵箱的具體位置,按以下步驟在郵件服務(wù)器上為用戶設(shè)置郵件客戶:
1、在郵件客戶服務(wù)器系統(tǒng)上成為超級(jí)及戶;
2、建立/var/mail安裝點(diǎn);
3、 編輯/etc/vfstab文件并在郵件服務(wù)器上增加/var/mail目錄,將文件安裝到該目錄上這樣系統(tǒng)每次重啟后,就會(huì)自動(dòng)掛上戶的郵箱;
4、鍵入mount -a命令安裝客戶的郵箱;
5、用Administration Tool編輯/etc/hosts文件并為郵件服務(wù)器增加相應(yīng)項(xiàng)。注意:當(dāng)信息第一次被傳送時(shí),/var/mail目錄下的sendmail程序會(huì)自動(dòng)為用戶建立郵箱。
6.1.1.9建立口令
口令是系統(tǒng)安全性的保障,每個(gè)用戶都應(yīng)該使用6--10個(gè)字符和數(shù)字的組合來(lái)構(gòu)成一個(gè)口令,關(guān)于改變口令和口令屬性的方法可參見(jiàn)手冊(cè)中的passwd(1)、yppassed(1)、或nispasswd(1)
在SunOS 4.x系統(tǒng)中,加密后的口令與有關(guān)用戶的其它信息一起存放在/etc/passwd文件中,在SunOS 5.x中,加密后的口令以及與口令有關(guān)的信息則被存放在NIS+Passwd數(shù)據(jù)庫(kù)的Shadow域(或本地的/etc/shadow文件)中, Shadow文件的權(quán)限是--r-------,只有根用戶才能讀該文件,同時(shí)也只有Passwd、ypasswd和nispasswd命令才能寫該文件。
以下是一個(gè)/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 ,用戶可以在任何時(shí)候建立和修改自己的口令,但是只有根用戶才能建立其他用戶的初始口令。注意:用戶可以用passwd命令來(lái)定義、更改和查看口令的有關(guān)屬性,例如口令的期限等,有前passwd命令的詳細(xì)信息說(shuō)明請(qǐng)參見(jiàn)手冊(cè)。輸入新口令時(shí)應(yīng)兩次輸入新口令。
6.1.2管理用戶帳號(hào)
管理用戶帳號(hào)包括對(duì)用戶帳號(hào)的修改、取消和凍結(jié)
6.1.2.1修改用戶帳號(hào)
當(dāng)有關(guān)用戶的信息變化時(shí),可以用Database Manager來(lái)編輯passwd database中信息,一般用戶帳號(hào)的登錄名和UID是不需要修改的,除非它與現(xiàn)有的某用戶名或UID沖突。
在網(wǎng)絡(luò)環(huán)境中,當(dāng)用戶從一個(gè)系統(tǒng)轉(zhuǎn)移到另一個(gè)系統(tǒng)中或者從一個(gè)服務(wù)器轉(zhuǎn)移互到另一個(gè)服務(wù)器上時(shí),需要用Database Manager來(lái)為用戶主目錄修改Auto-home數(shù)據(jù)庫(kù)。
如果需要修改用戶口令,就使用passwd。
6.1.2.2取消用戶帳號(hào)
以下是取消用戶帳號(hào)的步驟
1、 從NIS+Passwd數(shù)據(jù)庫(kù)NIS表或/etc/passwd文件中刪除該用戶項(xiàng);
2、 從NIS+Group數(shù)據(jù)庫(kù)、NIS map或/etc/group文件中取消該用戶名;
3、 從打印機(jī)訪問(wèn)或拒絕訪問(wèn)表中刪除或存檔;
4、 決定是否想對(duì)所有的用戶文件刪除或存檔;
5、 刪除用戶郵件文件;
6、 從Auto-home數(shù)據(jù)庫(kù)中刪除用戶;
6.1.2.3凍結(jié)用戶帳號(hào)
有時(shí),你可能想要臨時(shí)或永久地凍結(jié)某個(gè)注冊(cè)帳號(hào)。當(dāng)然,要這樣做你必須有充分理由,如用戶可能不來(lái)使用該帳號(hào)或者你有充分證據(jù)表明該帳號(hào)經(jīng)常被濫用或安全性受損。
凍結(jié)一個(gè)注冊(cè)帳號(hào)的最簡(jiǎn)單方法是使用Database Manager來(lái)對(duì)Password數(shù)據(jù)庫(kù)中的用戶口令進(jìn)行加鎖。
在本地系統(tǒng)中,你可以通過(guò)設(shè)定口令期限、注銷日期或規(guī)定用戶使用該帳號(hào)的固定間隙控制用戶帳號(hào),另一種凍結(jié)用戶的簡(jiǎn)單辦法是臨時(shí)地改變用戶帳號(hào)的口令。
6.2設(shè)置和管理用戶組
Group數(shù)據(jù)庫(kù)(表或本地/etc/group文件)存貯在關(guān)于用戶組的信息,通常稱為UNIX組。一個(gè)用戶組是能共享文件以及其它系統(tǒng)資源的一個(gè)用戶集合,例如, 同一課題組的用戶可以組成一個(gè)用戶組。
每個(gè)用戶組有一個(gè)GID號(hào)(組標(biāo)號(hào),類似于UID),它是系統(tǒng)的內(nèi)部標(biāo)識(shí)號(hào),一個(gè)組應(yīng)該有一個(gè)組名和一個(gè)用戶名表,用戶組可用以下兩種方法加以定義:
*在用戶帳號(hào)中使用GID來(lái)定義用戶有基本組,即在Passwd數(shù)據(jù)庫(kù)的Group域中增一個(gè)新的GID號(hào)。
*在Group數(shù)據(jù)庫(kù)中輸入該組的名稱、GID號(hào)和用戶表用上面的第二種方法定義用戶組比較合理,因?yàn)樗鼮槊總(gè)組定義了一個(gè)組名。
所有的用戶都至少屬于一個(gè)組即基本組,雖然這不是系統(tǒng)所要求的,但是你必須將用戶加入到基本組的成員表中,除基本組外用戶最多還可以同時(shí)屬于16個(gè)附加組,具體實(shí)現(xiàn)方法是將用戶加到所屬組的成員中。
group命令可用于列出包含該用戶的所有用戶組,對(duì)于任意用戶在某一時(shí)刻其基本組有一個(gè),但是用戶可以使用newgrp命令臨時(shí)地改變基本組。
某些應(yīng)用系統(tǒng)(如文件系統(tǒng))只關(guān)心用戶的基本組,比如,文件所有者、帳號(hào)數(shù)據(jù)只影響基本組,另外一些應(yīng)用系統(tǒng)則可能地考慮支持用戶共享的附加組,如只有sysadmin group的成員才能使用Administration tool來(lái)改變數(shù)據(jù)庫(kù)。
通常我們要對(duì)文件、目錄分別設(shè)置用戶、組及其它的讀/寫/執(zhí)行權(quán)限,這些權(quán)限是安全性的保證,如果你的基本組或附加組(secondary group)權(quán)限不夠,那么你就不能存取別人的文件,例如,可以為技術(shù)資料編寫人員建立的一個(gè)techwrite組,并為該組所在目錄建立相應(yīng)的權(quán)限,這樣,只有該組成員才能修改該目錄下的文件。
用戶組可以是本地系統(tǒng)有效,也可以貫穿于整個(gè)網(wǎng)絡(luò)。通過(guò)網(wǎng)絡(luò),用戶組可以允許網(wǎng)絡(luò)上的一組用戶存取一組文件,而其它用戶則無(wú)法對(duì)它們進(jìn)行操作。
6.2.1設(shè)置Group數(shù)據(jù)庫(kù)中的域值
Group數(shù)據(jù)庫(kù)(表或本地/etc/group文件)包含以下一些主要域項(xiàng):
*組名(Group Name)
*組號(hào)(Group ID)
*成員表(Member List)
另外,組口令(Group Password)也是其中的一項(xiàng),但很少使用,它是早期的UNIX遺留下來(lái)的,通常可將該項(xiàng)空著或者僅僅填入一個(gè)星號(hào)。
6.2.1.1設(shè)置組名(Group Name)域
該域包含一個(gè)組名,例如某大學(xué)化學(xué)系在成員可取名為chem,組名最多可由9個(gè)字組成。
6.2.1.2設(shè)置Group ID域
該域包含了一個(gè)組標(biāo)識(shí)號(hào),在系統(tǒng)中GroupID必須是唯一的,每個(gè)Group ID是一個(gè)0-65535之間的整數(shù),但通常在100-60000之間取值(60001和60002分別賦給了nobody和noaccess,100以下的整數(shù)是為系統(tǒng)缺省帳號(hào)保留的)、當(dāng)使用Administration Tool來(lái)增加用帳號(hào)時(shí),你必須指明用戶的基本組。
6.2.1.3設(shè)置成員表域
該域包含了某組所有用戶成員表,用戶名之間可用逗留隔開(kāi),這些用戶必須是在Passwd數(shù)據(jù)庫(kù)中定義的注冊(cè)名,如上所述,每個(gè)用戶可同時(shí)屬于17個(gè)組。
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ù)庫(kù)、本地的/etc/group文件中加入GID為14的sysadmin組,該組中所有用戶可以使用Administration Tool
6.2.3建立新的組
作為系統(tǒng)管理可能要經(jīng)常地建立新的用戶帳號(hào),在具體分配用戶之前,必須首先建立用戶組和GID號(hào)。Administration Tool可用來(lái)建立和維護(hù)網(wǎng)絡(luò)以及本地的用戶組,在使用Administration Tool建立或編輯組帳號(hào)時(shí),首先必須是sysadmin組(GID 14)的成員,如果網(wǎng)絡(luò)上正在運(yùn)行NIS+,那么還必須有對(duì)NIS+數(shù)據(jù)庫(kù)進(jìn)行操作的權(quán)限。
建立一個(gè)新的組,需要知道以下信息:
*組成員有用戶注冊(cè)名(Login names)
*組成員的用戶號(hào)(User IDs)
*組名(Group name)
*組號(hào)(Group ID)
按以下步驟在NIS+數(shù)據(jù)庫(kù)或本地/etc/group文件中增加用戶組:
1、 鍵入admintool啟動(dòng)Administration Tool;
2、 用鼠標(biāo)選擇Database Manager圖標(biāo),顯示Database Manager窗口;
3、 用鼠標(biāo)選擇Group數(shù)據(jù)庫(kù),并選擇NIS+命名服務(wù)或None(本地/etc文件);
4、 用鼠標(biāo)選擇Load按鈕,顯示Group Database窗口;
5、 從Edit菜單中選擇Add Entry一項(xiàng),顯示出Add Entry窗口;
6、 輸入組名、組號(hào)以及成員表(成員名之間用逗號(hào)隔開(kāi));
7、 用鼠標(biāo)點(diǎn)擊Add按鈕,將該組加入到Group數(shù)據(jù)庫(kù)(或本地的/etc/group文件)中,如要增加更多的用戶組,則重復(fù)以上兩步。
6.2.4修改或刪除用戶組
當(dāng)用戶組中有新的成員加入或者成員調(diào)離該組時(shí),就需要修改用戶組帳號(hào)的成員表,即在現(xiàn)有的帳號(hào)中增加或刪除用戶,當(dāng)某種課題完成后,該組便不再需要了,于是就可以將該組刪除,在重用已刪除組的GID時(shí)應(yīng)注意避免沖突。
6.2.4.1修改某個(gè)組
按以下步驟修改一個(gè)組項(xiàng):
1、 用鼠標(biāo)選擇Group按鈕,選擇NIS+或None,并按Load按鈕,顯示出Group Database窗口;
2、 用鼠標(biāo)選擇想要修改的數(shù)據(jù)庫(kù)名;
3、 從Edit菜單中選擇Modify Entry項(xiàng),彈出Modify Entry窗口,并顯示該組的當(dāng)前各項(xiàng)值。
4、 在相應(yīng)字段中增加或刪除用戶名,然后選擇Modify修改數(shù)據(jù)庫(kù)中的該項(xiàng)內(nèi)容。
6.2.4.2刪除某個(gè)組
如果某個(gè)組的組號(hào)不再需要,就可將該組刪除掉,按以下步驟刪除一個(gè)組:
1、 用鼠標(biāo)選擇Group,選擇NIS+或None并按Load按鈕,彈出Group Database窗口;
2、選擇需要?jiǎng)h除的數(shù)據(jù)庫(kù)名;
3、從Edit菜單中選擇Delete Entry,此時(shí)系統(tǒng)提示:
"Do you really want to delete this entry?"
5、 如果不想真正刪除此項(xiàng),由選擇Cancel,如果要?jiǎng)h除,則選擇Delete按鈕,這樣便可以將該組從組數(shù)據(jù)庫(kù)中刪除掉。
第7章、UNIX的shell命令
本章將介紹:各種shell解釋器共同點(diǎn)、標(biāo)準(zhǔn)shell介紹、C shell介紹、Korn shell介紹。
在Solaris 2.x軟件環(huán)境中提供給用戶三種命令解釋器:標(biāo)準(zhǔn)shell(缺省shell或Bourne shell,本手冊(cè)中我們稱為標(biāo)準(zhǔn)shell)、C shell和Korn shell。對(duì)每一個(gè)用戶而言都有一個(gè)缺省的shell命令解釋器,另外也可以在命令行中打入某種shell而重新進(jìn)入另外一種shell解釋器。本章首先介紹三種shell的公共命令,然后再分別對(duì)它們各自的特性作一些詳細(xì)介紹。
7.1各種shell的公共命令
本節(jié)描述各種shell所使用的命令
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
表7.1 各種shell解釋器的基本特性
特性 Bourne C Korn
別名 無(wú) 有 有
命令編輯 無(wú) 有 有
增強(qiáng)的cd 無(wú) 有 有
歷史 無(wú) 有 有
忽略CTRL-D 無(wú) 有 有
不同于profile的初始文件 無(wú) 有 有
作業(yè)控制 有 有 無(wú)
退出文件 無(wú) 有 有
文件的重寫保護(hù) 無(wú) 有 有
與標(biāo)準(zhǔn)shell的語(yǔ)義兼容性 是 否 是
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
7.1.1設(shè)置某種缺省shell
在用戶數(shù)據(jù)庫(kù)或/etc/passwd文件中,注冊(cè)shell是在每個(gè)用戶的登記項(xiàng)的最后一列中設(shè)置,用戶可以使用系統(tǒng)提供的管理工具或編輯本地的 /etc/passwd文件來(lái)修改注冊(cè)shell,但是此用戶必須是sysadm組的成員,即用戶的組號(hào)(GID)應(yīng)該是14,如果是在運(yùn)行NIS+,則必須有建立和刪除NIS+數(shù)據(jù)據(jù)庫(kù)的權(quán)限。
下面是用戶更改注冊(cè)shell的一些步驟:
1、按需要,從管理工具中打開(kāi)數(shù)據(jù)庫(kù)管理器窗口。
2、 在用戶數(shù)據(jù)上,按下SELECT,然后再接著按SELECT來(lái)選擇NIS+或無(wú)NIS+服務(wù)。若選擇NIS+則編輯Passwd數(shù)據(jù)庫(kù),否則編輯本地的/etc/passwd文件。
3、 點(diǎn)擊Load鍵,顯示用戶數(shù)據(jù)庫(kù)窗口。
4、 在想要編輯的用戶項(xiàng)上按SELECT鼠標(biāo)鍵,然后從編輯(Edit)菜單中選擇修改(Modify)項(xiàng)。
5、 修改shell項(xiàng)的文字域,/bin/sh是標(biāo)準(zhǔn)shell,/bin/csh是C shell或者輸入/bin/ksh作為Korn shell。
6、 點(diǎn)擊Modify按鈕,修改用戶缺省SHELL定義,只要用戶重新注冊(cè)進(jìn)入系統(tǒng),即使用新的shell。
7.1.2在命令行中改變shell類型(sh,csh,ksh)
如果用戶不修改用戶數(shù)據(jù)庫(kù)而想使用別的shell解釋器,則可以在命令行中簡(jiǎn)單地打入所需shell的命令名即可。
例如,要想使用C shell,打入csh即可,缺省C shell提示符是在系統(tǒng)名之后跟一個(gè)百分號(hào)(%)。
$csh
gtxa%
如果要改變?yōu)镵orn shell,則打入ksh,korn shell的缺省提示符是$
gtxa%ksh
$
7.1.3從shell解釋器中退出(exit)
如果用戶是在命令行中進(jìn)入某種shell解釋器,則只需打入exit和回車鍵,即可退出當(dāng)前的shell解釋器,而返回原先的shell解釋器。
$exit
gtxa%
7.1.4清除一個(gè)shell窗口(clear)
在某個(gè)shell窗口中,用戶可以清除一個(gè)shell窗口的內(nèi)容,并且重新顯示shell的提示符到此窗口的左上角,例如要清除一個(gè)窗口的內(nèi)容,可以打入clear和回車鍵:
gtxa%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
gtxa%clear
此時(shí)窗口的顯示內(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實(shí)驗(yàn)室工作時(shí)開(kāi)發(fā)的,標(biāo)準(zhǔn)shell相對(duì)而言,結(jié)構(gòu)緊湊,而且簡(jiǎn)單,但它也提供所有的程序設(shè)計(jì)功能,可以實(shí)現(xiàn)由各種命令和過(guò)程組成的shell文件(script)。因?yàn)槿绾尉帉憇hell文件已經(jīng)超越本文范圍,所以我們不在此贅述。
7.2.1標(biāo)準(zhǔn)shell的初始文件
標(biāo)準(zhǔn)shell只使用一個(gè)初始執(zhí)行文件,其名為.profile,一般放在用戶的基目錄(home directory)之下,它專門用來(lái)設(shè)置用戶的環(huán)境。當(dāng)用戶注冊(cè)或在命令行中啟動(dòng)標(biāo)準(zhǔn)shell時(shí),即讀.profile文件,一般來(lái)說(shuō),用戶通過(guò)此文件來(lái)設(shè)置用戶查找路徑和其它環(huán)境變量。
7.2.2定義標(biāo)準(zhǔn)shell的環(huán)境變量
對(duì)于標(biāo)準(zhǔn)shell和Korn shell而言,定義環(huán)境變量的語(yǔ)法都是一樣的,輸入命令=; export,例如:
$HZ=100;export HZ
$
7.3 C shell
C shell是Bill Joy先生在UCB工作學(xué)習(xí)時(shí)開(kāi)發(fā)的,它已被UNIX的眾多用戶所接受。C shell完全不同于標(biāo)準(zhǔn)shell和Korn shell,而且有自己獨(dú)特的語(yǔ)法規(guī)則,C shell最重要的優(yōu)點(diǎn)是具有歷史功能、命令編輯功能和別名功能。歷史功能的意義是C shell可以存貯用戶最近輸入的命令記錄,用戶可以顯示這些命令,也可以按原樣重新使用某條命令;而編輯功能是用戶可以通過(guò)編輯來(lái)改變某條命令;別名可以讓用戶用短的名字來(lái)表示經(jīng)常使用的長(zhǎng)命令,或幾條常用命令。
7.3.1C shell的初始文件
C shell使用兩個(gè)初始化文件,用于設(shè)置用戶的環(huán)境變量,這兩個(gè)初始文件名分別是.login和.cshrc,也放在用戶基本目錄之下。
當(dāng)用戶注冊(cè)時(shí),C shell首先讀.login,然后再讀.cshrc文件。當(dāng)用戶是從命令行中啟動(dòng)C shell時(shí),只讀.cshrc文件(C shell運(yùn)行控制)。因?yàn)?login文件不是每次啟動(dòng)C shell都讀入,因此用戶應(yīng)該在.login中設(shè)置環(huán)境變量,而在.cshrc文件中設(shè)置用戶的查找路徑名。
7.3.2C shell環(huán)境變量的定義
使用命令setenv ,例如:
gtxa%setenv display rogue:0
gtxa%
7.3.3建立C shell的別名
用戶可以在.cshrc文件中定義所需的別名。建立一個(gè)別名的語(yǔ)法為:
alias
例如,你想簡(jiǎn)寫別名(alias)這個(gè)命令成為a,則可以在.cshrc文件加入下列一行:
alias a alias
下面的實(shí)例選自.cshrc文件。注意,如果命令行中包含有空格,則必須把整個(gè)命令中用引號(hào)引起來(lái),引號(hào)可以是雙引號(hào),也可以是單引號(hào):
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ù)。舉例:
gtxa%set history=18
gtxa%
用戶既可在shell窗口中"臨時(shí)"設(shè)置歷史功能,也可以把它放在.cshrc文件中設(shè)置"永久"的歷史功能。
7.3.5使用C shell歷史功能
在命令行中,打入history命令,即可顯示已經(jīng)打入過(guò)的命令,這些命令是你打入的最后n條命令,n是像7.3.4節(jié)所述的方法設(shè)置的。
gtxa%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
gtxa%
要想重復(fù)執(zhí)行剛打入的命令,可打入!!和回車,即復(fù)執(zhí)行上一條命令:
gtxa% 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
gtxa%!!
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
gtxa%
要重復(fù)最后一條命令的最后一個(gè)詞,可打入!$,這樣上一條命令的最后一個(gè)詞即可作為當(dāng)前命令行中的一個(gè)變量。例如,你可能已經(jīng)輸入了某個(gè)文件的全程路徑,然后想用這個(gè)路徑名作為變量,來(lái)用vi編輯此文件或打印此文件:
gtxa%ls -l /home/ignatz/quest
gtxa%lp !$
gtxa%
!$可以用在命令行的任何地方,在下面的命令行中,文件/home/ignatz/quest將拷貝到/tmp目錄之下:
gtxa%ls -1 /home/ignatz/quest
gtxa%cp !$ /tmp
cp /home/ignatz/quest /tmp
gtxa%
要想重復(fù)C shell歷史令表中的某個(gè)序號(hào)的命令,則打入!,例如:
gtxa%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
gtxa%!32
cd Config/Art
gtxa%
7.3.6設(shè)置C shell的退格鍵(stty erase)
如果用戶想把刪除字符的鍵從Delete鍵變?yōu)锽ackspace鍵,則可以輸入下面的命令:
gtxa%stty erase ^H
gtxa%
此后,退格鍵(Backspace)即作為字符刪除鍵使用。
7.3.7新命令的嵌入
C shell為所有命令路徑變量建立一個(gè)內(nèi)部命令表,因此當(dāng)用戶把新命令放入某個(gè)目錄中時(shí),這個(gè)新命令并不在這個(gè)表中,這樣,C shell就不會(huì)執(zhí)行此新命令。C shell為了解決這個(gè)問(wèn)題,把用戶的新命令加入到查找路徑內(nèi)部表中,為用戶提供了rehash命令,用戶只需打入rehash命令,即可使這條新命令有效:
gtxa%newcommand
newcommand: Command not found
gtxa%rehash
gtxa%newcommand
gtxa%
7.3.8Cshell歷史命令的編輯
用戶可以從C shell的歷史表中編輯命令,其語(yǔ)法:
S//
下面我們舉例說(shuō)明:
gtxa% 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
gtxa%!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
gtxa%
在此例中,第39條命令行中用戶打錯(cuò)了一個(gè)字母,然后用戶用C shell編輯命令改正了打錯(cuò)的那個(gè)字母,命令執(zhí)行也就正常了。
7.4 Korn shell
Korn shell是AT&T Bell實(shí)驗(yàn)室的David Korn開(kāi)發(fā)的,是標(biāo)準(zhǔn)shell超集,Korn shell使用標(biāo)準(zhǔn)shell一樣的語(yǔ)法,只不過(guò)Korn shell本身又加入了許多新的功能, Korn shell 比C shell提供了更加方便的命令編輯方式,Korn shell一樣亦具有歷史和別名功能。
7.4.1Korn shell的初始化文件
korn shell使用兩個(gè)初始文件,它們都存放在用戶的基目錄之下,其名分別為.profile和.,第二個(gè)文件名是可以讓用戶自己選擇命名的,其主要功能是設(shè)置環(huán)境,同C shell類似,你可以把第二個(gè)文件名選擇為.kshrc,以后我們即用.kshrc這個(gè)名稱來(lái)說(shuō)明第二個(gè)文件。
當(dāng)用戶注冊(cè)時(shí),Korn shell首先讀.profile文件,然后讀.kshrc。.kshrc主要讓用戶建立使用Korn shell的習(xí)慣約定,在.kshrc應(yīng)該包括只有Korn shell才能執(zhí)行的命令。
用戶必須用ENV環(huán)境變量來(lái)指定這.文件的名稱,Korn shell設(shè)置環(huán)境變量的命令語(yǔ)法同標(biāo)準(zhǔn)shell:
=;export
其中export命令是必須的,它使此變量對(duì)Korm shell以及它的所有子進(jìn)程都有效,下面為.kshrc文件設(shè)置環(huán)境變量:
$ENV=$HOME/.kshrc;export ENV
$
很顯然,用戶必須將ENV這個(gè)環(huán)境變量在.profile中設(shè)置好,否則當(dāng)用戶注冊(cè)時(shí),Korn shell就會(huì)找不到.kshrc文件。注意,ENV環(huán)境變量是沒(méi)有缺省設(shè)置的,用戶不設(shè)置ENV,就不能使用這此性質(zhì)。
不論是在注冊(cè)時(shí),還是在命令行中啟動(dòng)Korn shell,.kshrc文件在每次啟動(dòng)Korn shell時(shí)都必須讀入。
7.4.2Korn shell的選擇項(xiàng)
Korn shell有許多變量可用來(lái)指定用戶的環(huán)境和控制命令的執(zhí)行,要想顯示當(dāng)前的選擇項(xià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
$
我們?cè)诒?.2中說(shuō)明這些缺省選擇項(xiàng)的具體意義。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
表7.2 Korn shell的選項(xiàng)
選擇 缺省值 說(shuō)明
allexport off 當(dāng)定義時(shí),自動(dòng)地報(bào)告變量
bgnice on 要低優(yōu)先級(jí)執(zhí)行所有的后臺(tái)作業(yè)
emacs off 設(shè)置emacs/gmacs為聯(lián)機(jī)編輯器
errexit off 如果命令返回偽值,則shell執(zhí)行ERR陷井并立即 退出
gnaces off 設(shè)置gmacs/gmacd為聯(lián)機(jī)編輯器
ignoreeof off 當(dāng)運(yùn)行在交互式shell 時(shí),則在文件的未尾也不退出shell,只有打入exit才退出shell
interactive on shell自動(dòng)進(jìn)入交互式方式,因此也立即顯示shell提示符
keyword off shell根據(jù)變量賦值語(yǔ)法將每個(gè)字放入變量賦值表中
markdirs off 在所有目錄名后顯示一個(gè)"/"
monitor on 使能作業(yè)控制
noclobber off 當(dāng)使用轉(zhuǎn)向輸出>;時(shí),不覆蓋一個(gè)已經(jīng)存在的文件
noexec off 只讀此命令,而不執(zhí)行它,利用此命令可以調(diào)試shell文件的語(yǔ)法錯(cuò)誤
noglob off 取消文件名的擴(kuò)充
nolog off 在歷史文件中不存貯功能定義
nounser off 當(dāng)shell想要擴(kuò)展一下已經(jīng)設(shè)置的變量時(shí),顯示一條錯(cuò)誤信息
privilrged off 當(dāng)此選擇項(xiàng)是off時(shí),使用實(shí)際UID和GID,若是on,則把UID和GID設(shè)置成啟動(dòng)此shell時(shí)有效值
restricted off 設(shè)置一種受限制的shell
trackall off 當(dāng)命令第一次出現(xiàn)時(shí),使得它成為別名
verbose off 當(dāng)讀入時(shí),即是顯示輸入
vi off 設(shè)置vi為聯(lián)機(jī)的編輯器
viraw 0ff 指定從vi中,每次只輸入一個(gè)字符
xtrace off 當(dāng)執(zhí)行命令的變時(shí)時(shí),顯示它們
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
按照korn shell的習(xí)慣用法,這些選擇都在.kskrc文件中設(shè)置。
要想使某選擇項(xiàng)有效,可輸入:
set -o
若要取消這個(gè)選擇項(xiàng),可輸入:
set +o
例如在.kshrc中輸入:
set -o vi
即設(shè)置聯(lián)機(jī)編輯器為vi,而是如果是下面這一行:
set +o vi
則是關(guān)閉vi作為聯(lián)機(jī)編輯器使用。
用戶亦可以用同樣的語(yǔ)法,在命令行中設(shè)置Korn shell的其它選擇項(xiàng)。
7.4.3創(chuàng)建Korn shell的別名
Korn shell創(chuàng)建別名的語(yǔ)法是:
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 定義一個(gè)自動(dòng)裝入函數(shù)
false let -0 返回非零狀態(tài),經(jīng)常用于產(chǎn)生無(wú)限循環(huán)
functions typeset -f 顯示函數(shù)表
hash alias –t - 顯示跟蹤別名表
history fc -1 從歷史文件中列出命令
integer typeset -i 整型變量的說(shuō)明
nohup nohup 即使退出系統(tǒng)(log out),也繼續(xù)執(zhí)行正在運(yùn)行的作業(yè)
r fc -e- 重復(fù)執(zhí)行前面的命令
stop kill -STOP 停止作業(yè)
suspend kill -STOP$$ 掛起作業(yè)
true ; 返回一個(gè)零退出狀態(tài)
type whence-v 顯示命令的信息
7.4.4用Korn shell的聯(lián)機(jī)編輯器編輯命令
使用Korn shell的聯(lián)機(jī)編輯器,用戶在執(zhí)行命令以前可以編輯當(dāng)前命令。Korn shell的聯(lián)機(jī)編輯器可以是emacs、gmacs或vi,利用Korn Shell的選擇項(xiàng)功能,使用下面命令:
set -o
或使用EDITOR或VISUAL環(huán)境變量來(lái)設(shè)置聯(lián)機(jī)編輯器。
Korn shell的在線(或聯(lián)機(jī))編輯器vi是普通vi程序改進(jìn)后的子集,使用聯(lián)機(jī)vi編輯器時(shí)會(huì)自動(dòng)進(jìn)入插入方式。
用戶在一般情況之下,不需要使用聯(lián)機(jī)vi編輯器,而可直接打入命令并執(zhí)行之。如果想要編輯某個(gè)命令,則打入Escape鍵進(jìn)入命令方式,用戶可以使用標(biāo)準(zhǔn)的光標(biāo)移動(dòng)命令向前移動(dòng),也可以使用vi編輯命令編輯這一行的內(nèi)容。當(dāng)用戶在編輯命令時(shí),按回車即執(zhí)行此命令,而打入Escape則是回到輸入方式。如果用戶想要編輯的命令行是在一個(gè)vi文件中,則打入v命令即可打開(kāi)一個(gè)含有命令行的文件。當(dāng)退出vi時(shí)即執(zhí)行命令,有關(guān)vi的常見(jiàn)命令請(qǐng)參見(jiàn)第2章的快速參考表。
7.4.5設(shè)置Korn shell的歷史
Korn shell在某個(gè)文件中存貯所有的歷史命令,這個(gè)文件用Korn shell的環(huán)境變量HISTFILE指定,如果沒(méi)有設(shè)置這個(gè)環(huán)境變量,則存貯在$HOME/.sh-history中。變量HISTSIZE指定存貯的命令個(gè)數(shù),若用戶沒(méi)有設(shè)置此環(huán)境變量,則保存最近輸入的128條命令,當(dāng)歷史表中達(dá)到了最大的命令個(gè)數(shù)時(shí),則繼續(xù)保存新命令,而把最老的命令從歷史表中刪除。
要設(shè)置一個(gè)歷史表的大小,可鍵入:
HISTSIZE=;export HISTSIZE
例如,下面命令行把歷史表的大小設(shè)置為200:
$HISTSIZE=200;EXPORT HISTSIZE
$
用戶可以在某個(gè)shell窗口中臨時(shí)設(shè)置歷史表的大小,也可以把這些設(shè)置命令放入.profile或.kshrc文件中使之“永久”有效。
7.4.6顯示Korn shell的歷史命令
用戶可以利用fc和history這兩條命令來(lái)顯示歷史表中的命令,這是因?yàn)閔istory已經(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命令還可以有附加的變量,這樣就可以讓用戶指定某個(gè)顯示范圍,例如可以顯示最后的條命令或以倒序顯示命令,有關(guān)ksh的詳細(xì)材料,請(qǐng)參見(jiàn)ksh的手冊(cè)。
7.4.7使用Korn shell的歷史命令
要想利用Korn shell歷史表中的命令,可以打入:
r
來(lái)重復(fù)使用由指定的這條命令,例如要重復(fù)使用第27條命令:
$r 27
tip -2400 5551212
(接著顯示連接好的一些信息),若是重復(fù)執(zhí)行歷史表中的最后一條命令,則只需打入r即可。
7.4.8編輯Korn shell的歷史命令
利用fc命令,用戶可以顯示特定的歷史命令和編輯此命令,其語(yǔ)法為:
fc[-e ][-r][]

fc- e-[=選擇項(xiàng)-e是用來(lái)指定某個(gè)編輯器,若不指定編輯器,則使用FCEDIT環(huán)境變量,這個(gè)環(huán)境變量的缺省值為/bin/ed。-r的選擇項(xiàng)是倒序顯示歷史表中的命令,即把最近的命令顯示在歷史表最上面,若不指定范圍,則編輯最后一條命令。
舉例來(lái)說(shuō),用戶想使用vi編輯歷史表中的最后一條命令,則打入:
fc -e vi
此時(shí)創(chuàng)建一個(gè)含有歷史表最后一項(xiàng)的文件,只要用戶編輯此命令并保存這些改變,就可執(zhí)行此命令了。
第8章、管理系統(tǒng)
本章將介紹:顯示系統(tǒng)專有信息、配置附加的交換空間、創(chuàng)建本地郵件別名
8.1顯示系統(tǒng)專有信息
使用本節(jié)的命令來(lái)獲得系統(tǒng)專有信息,如主機(jī)ID號(hào)、硬件類型、處理機(jī)類型、OS版本號(hào)、系統(tǒng)配置、系統(tǒng)運(yùn)行多長(zhǎng)時(shí)間、以及系統(tǒng)日期和時(shí)間,隨后還說(shuō)明如何設(shè)置系統(tǒng)日期和時(shí)間,以及改變系統(tǒng)時(shí)域。
8.1.1確定主機(jī)ID號(hào)(sysdef -h)
為了得到系統(tǒng)的主機(jī)ID號(hào),在命令行鍵入sysdef -h,系統(tǒng)就顯示主機(jī)ID。這個(gè)命令替代SunOS4.x的命令hostid,hostid命令同時(shí)也可以使用。
gtxa%sysdef -h
Hostid
554095cc
gtxa%
8.1.2確定硬件類型(uname -m)
鍵入uname -m,就獲得系統(tǒng)的硬件類型,提供相似信息的Sunos4.x命令arch,在sunos5.x中已不存在。
gtxa%uname -m
sun4c
gtxa%
8.1.3確定處理機(jī)類型(uname -p)
要獲得系統(tǒng)的處理機(jī)類型,鍵入uname -p,系統(tǒng)的處理器類型就是顯示出來(lái),這個(gè)命令替代sunos的mach命令。
gtxa%uname -p
sparc
gtxa%
8.1.4確定OS版本號(hào)(uname -r)
命令uname -r給出OS版本信息
gtxa%unam -r
5.5
gtxa%
8.1.5顯示系統(tǒng)配置信息(prtconf)
要顯示系統(tǒng)的配置信息,鍵入prtconf,系統(tǒng)配置信息就顯示出來(lái)。
gtxa%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.)
...
gtxa%
顯示系統(tǒng)配置信息的另一種方法是,鍵入命令sysdef,系統(tǒng)配置信息顯示出來(lái)。
gtxa%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
...
gtxa%
8.1.6確定系統(tǒng)已經(jīng)運(yùn)行了多長(zhǎng)時(shí)間
要想知道系統(tǒng)已運(yùn)行了多長(zhǎng)時(shí)間,鍵入命令uptime,本地系統(tǒng)的時(shí)間、用戶數(shù)、平均負(fù)數(shù)均顯示出來(lái)
gtxa%uptime
11:18am up 5 day(s),16:12 users,load average:16.46.15.92.15.55
gtxa%
要想知道系統(tǒng)是何時(shí)啟動(dòng)的,鍵入who -b,最后一次啟動(dòng)的月、日、時(shí)等信息顯示出來(lái)。
gtxa%who -b
system boot Ju1 14 08:49
gtxa%
8.1.7確定系統(tǒng)的日期和時(shí)間(date)
要顯示系統(tǒng)的日期和時(shí)間,鍵入date,系統(tǒng)的日期和時(shí)間就顯示出來(lái)。
gtxa%date
Tue Ju1 14 19:40:47 PST 1992
gtxa%
8.1.8設(shè)置系統(tǒng)的日期和時(shí)間
下面是重新設(shè)置系統(tǒng)日期和時(shí)間的步驟:
1、變成超級(jí)用戶
2、鍵入date,這里mm是月,dd是天,hh是時(shí),mm是分,yy是年,于是系統(tǒng)的日期和時(shí)間按你指定的參數(shù)重新設(shè)置。
gtxa%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)的時(shí)區(qū)(/etc/TIMEZONE)
時(shí)區(qū)在/etc/TIMEZONE文件中設(shè)置,可用的U.S時(shí)區(qū)變量如下。完整的時(shí)區(qū)變量表見(jiàn)usr/share/lib/zoneinfo目錄。
Us/arizona
US/central
US/east-indiana
US/Hawaii
US/Mountain
US/Pacific
US/Pacific-New
US/Yukon
下面是改變時(shí)區(qū)的步驟:
1、 成為超級(jí)用戶。
2、 編輯/etc/timezone文件,改變tz=;,必須使用絕對(duì)的路徑來(lái)指定交換文件,這樣交換區(qū)就變大,可以使用了;
3、 鍵入swap -1證實(shí)交換文件已增加;
#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、 成為超級(jí)用戶;
2、 鍵入swap –d ;,當(dāng)交換文件不再使用時(shí),它只從表中刪除,使得不再用作交換區(qū),文件本身并沒(méi)刪除。
gtxa%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)建附加的交換空間時(shí),如果希望重新啟動(dòng)系統(tǒng)時(shí)這個(gè)空間仍可用,那么,必須在/etc/vfstab文件中增加一項(xiàng)。下面是在文件/etc/vfstab中增加一個(gè)交換文件項(xiàng)的步驟:
1、成為超級(jí)用戶;
2、編輯/etc/vfstab文件,增加一行: - - swap – no -。保證這一行跟在交換文件所在的硬盤分割項(xiàng)安裝說(shuō)明的后面。下次系統(tǒng)重新啟動(dòng)時(shí),交換文件大小自動(dòng)增加,下面的例子將增加交換文件 /files1/swap的說(shuō)明項(xiàng)放到/etc/vfstab文件中,它在安裝文件/files1說(shuō)明項(xiàng)之后。
/files1/swap - swap – no -
8.3創(chuàng)建一個(gè)本地郵件別名(/etc/mail/aliases)
在網(wǎng)絡(luò)環(huán)境中,很可能用一個(gè)集中的方法去管理郵件別名,另外,用戶常常希望建立本地別名。下面是在本地系統(tǒng)上創(chuàng)建郵件別名的步驟:
1、成為超級(jí)用戶;
2、編輯文件/etc/mail/aliases;
3、 在文件的末端,在本地別名分類下,鍵入:;,;.......;
4、保存修改后的文件。
例如,如果你想創(chuàng)建一個(gè)叫做friends的別名,就編輯/etc/mail/aliases文件,并增加如下項(xiàng):
friends:dexter@elm,ogden@willow,mary@maple
第9章、文件存取問(wèn)題分析
本章描述的是與查找路徑、存取數(shù)據(jù)以及所有權(quán)等有關(guān)的問(wèn)題。
當(dāng)用戶無(wú)法訪問(wèn)一個(gè)程序、一個(gè)文件或者是一個(gè)目錄時(shí),可以從以下兩個(gè)方面來(lái)進(jìn)行檢查:
1、 用戶的查找路徑是否已被改變,或者查找路徑中所列的目錄次序是否正確。
2、 文件或目錄是否有合適的權(quán)限和所有者。
該章簡(jiǎn)單地描述如何判斷以上問(wèn)題,并指出可能的解決方法。
9.1 診斷與查找路徑有關(guān)的問(wèn)題
如果用戶鍵入一個(gè)不在查找路徑中的命令,系統(tǒng)將提示"Command not found"信息,通常導(dǎo)致命令無(wú)法找到的原因有兩點(diǎn):系統(tǒng)中根本沒(méi)有這一命令,或者命令不在查找路徑中。
如果在查找路徑的某個(gè)目錄中存在同名或者錯(cuò)誤版本的命令,系統(tǒng)也將無(wú)法正確執(zhí)行該命令。
為了診斷和解決與查找路徑有關(guān)的問(wèn)題,可采用以下方法:
1、 顯示當(dāng)前的查找路徑;
2、 編輯設(shè)置查找路徑的文件(C Shell的.cshrc或.login,Bourne和Korn shell的.profile文件),在路徑中加入所需目錄名或者重新安排路徑的次序。注意:對(duì)于C shell,應(yīng)該同時(shí)檢查.cshrc和.login文件,以確保路徑設(shè)置的一致性,重復(fù)定義將導(dǎo)致路徑難以查找并降低用戶查找命令的效率。
3、 對(duì)C Shell用source命令操作該文件,對(duì)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
路徑表開(kāi)始的點(diǎn)(.)表示系統(tǒng)首先要查找的是當(dāng)前目錄。
9.1.3Source Bourne和Korn shell的初始化文件
當(dāng)改變了.profile文件中的內(nèi)容后,需要使文件中的修改內(nèi)容生效,此時(shí)可鍵入:
$. ./.profile
9.1.4為C shell設(shè)置路徑
C shell中的路徑設(shè)置在用戶的$Home/.cshc或.login文件中。
set path=(./usr/bin $home/bin)
路徑名開(kāi)始的點(diǎn)(.)表示系統(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命令來(lái)加以驗(yàn)證。該命令可自動(dòng)檢查.cshrc文件,如果在Bourne或Korn shell中執(zhí)行which命令,并且在.cshrc文件中有一個(gè)which的別名,那么執(zhí)行which命令可能導(dǎo)致錯(cuò)誤的結(jié)果,為保證正確執(zhí)行, Which命令應(yīng)在C shell中執(zhí)行。當(dāng)然也可以在Korn shell中運(yùn)行直應(yīng)的Whence命令。
為了檢查查找路徑,可以鍵入which ,當(dāng)系統(tǒng)在路徑名表中找到該命令時(shí),該命令的名稱和路徑就被顯示出來(lái)。
以下例子表明openwin命令不在搜索路徑中。
gtxa% which openwin
no openwin in /home/ingnatz/$bin/usr/sbin/usr/bin/etc/home/ignater/bin/bin/home/bin/usr/etc
gtxa%
以下例子則表明找到了openwin命令
gtxa% which openwin
/usr/openwin//bin/openwin
gtxa%
如果找不到某個(gè)命令,就需要查看有關(guān)手冊(cè)。例如找不到lpsched命令,那么手冊(cè)中的lpsched(1M)節(jié)中會(huì)告訴你lpsched命令的路徑是/usr/lib/lp/lpsched。
9.1.7執(zhí)行一個(gè)命令
鍵入即可執(zhí)行一個(gè)命令,如果該命令在查找路徑中,那么在任何路徑下,該命令均可執(zhí)行。如果不在查找路徑,那么必須鍵入該命令的整個(gè)路徑名。
9.2分析與權(quán)限和所有權(quán)有關(guān)的問(wèn)題
用戶不能存取文件或目錄的最大可能是它們的權(quán)限或所有權(quán)被修改過(guò)了。例如,當(dāng)用戶作為根用戶編輯文件時(shí),文件和目錄的所有權(quán)就可能改變,在為新用戶建立主目錄時(shí),特別要注意將主目錄下點(diǎn)(.)文件的所有者設(shè)置成該用戶,如果用戶不是點(diǎn)(.)文件的所有者,他們就不能在自己的主目錄下建立文件。
另外,當(dāng)改變用戶組的所有權(quán)或?qū)⒂脩魪?etc/group數(shù)據(jù)庫(kù)中刪除時(shí),也會(huì)遇到同樣的問(wèn)題。
9.2.1改變文件的所有權(quán)
注意:當(dāng)你擁有某文件或目錄或者你是超級(jí)用戶時(shí),你才能修改它的所有權(quán)。
按以下步驟改變文件所有權(quán)。
1、鍵入ls –l 命令,在第三列顯示文件的所有者;
2、成為超級(jí)用戶;
3、 鍵入chown ,文件的所有權(quán)即指定給了新的所有者;
gtxa%ls - l quest
-rw-r-r-1 fred other 6023 Aug 512:06 quest
gtxa%su
Password:
#chown iqnatz:staff quest
#ls - l quest
-rw-r-r-l ignatz staff 6023 Aug 5 12:06 quest
#
9.2.2改變文件的權(quán)限
chmod命令可用于改變文件的權(quán)限。一般有兩種方法,一是使用字符,其語(yǔ)法如下:chmod [who] [permission(s)] ,其中who可以是u、g或者o(即用戶組或其它),你還可將它設(shè)成A用來(lái)改變所有權(quán)限(A缺省值),運(yùn)算符可以是+或-,+表示增加權(quán)限,-表示刪除權(quán)限,權(quán)限為R、W或X,即寫、執(zhí)行,有關(guān)權(quán)限的更多信息請(qǐng)參閱手冊(cè)中的chmod(1)。
例如:為每個(gè)人設(shè)置讀、寫執(zhí)行權(quán)限,可鍵入:
gtxa%chmod +wrx dog
gtxa%ls -l dog
-rwxrwxrwx 1 janice Staff 54 ju1 7 11:33 dog
gtxa%
為每個(gè)人設(shè)置讀和執(zhí)行權(quán)限,可鍵入:
gtxa%chmod +rx dog
gtxa%ls -l dog
-r-xr-xr-x l janice staff 54 ju1 7 11:34 dog
gtxa%
為了禁止任何人寫此文件,可鍵入:
gtxa%chmod -w dog
gtxa%ls -l dog
-r-xr-xr-x 1 janice staff 54 ju1 7 11:35 dog
gtxa%
在下面的例子中,對(duì)dog文件的所有者賦予讀寫執(zhí)行權(quán)限:
gtxa%chmod u+ wrx dog
gtxa% ls - l dog
-rwxr-x r-x 1 janice staff 54 ju1 7 11:36 dog
gtxa%
為限制同組成員和其它人員執(zhí)行該文件,可鍵入:
gtxa%chmod go -x dog
gtxa% ls - l dog
-rwxr-r-1 janice staff 54 ju1 7 11:37 dog
gtxa%
改變文件權(quán)限的第二種方法是使用chmod命令的數(shù)字形式。你可以使用3位數(shù)字來(lái)分別設(shè)置owner,group和other的權(quán)限,例如,644表示對(duì)所者設(shè)置讀寫權(quán)限,對(duì)同組用戶及其它用戶設(shè)置只讀權(quán)限。
1、 鍵入ls –1 ,系統(tǒng)將列出當(dāng)前各文件的權(quán)限。
2、 鍵入chmod ,改變文件權(quán)限。
注意:你可以通過(guò)使用匹配符(*,?)來(lái)改變某組文件或某個(gè)目錄下所有文件的權(quán)限。以下例子將文件權(quán)限666改為644:
gtxa%ls -l quest
-rw-rw-rw-1 ignatz staff 6023 Aubg 5 12 :16 quest
gtxa%chmod 644 quest
gtxa%ls -1 quest
-rw-r-r-1 ignatz staff 6023 Aug 5 12:16 quest
gtxa%
9.2.3改變文件組的所有權(quán)
如果某文件的組所有者不正確,那么該組成員就不能修改該文件。為了修改文件組的所有權(quán),你必須是該組成員或者是根用戶。為了改變文件的組ID,使用命令 chgrp 。在solaris2.x下,ls -1命令顯示文件夾所有者和用戶組。當(dāng)只需要顯示組所有者時(shí),可鍵入ls -lg命令。
$ls -lg junk
-wr-r-r-l other o Oct31 14:49 junk
$chgrp 10 junk
$ls- lg junk
-rw-r-r-1 staff o Oct 31 14:39 junk
GID可以在group數(shù)據(jù)庫(kù)或本地/etc/group文件中找到,你可以通過(guò)使用Administration Tool的Database Manager來(lái)查看或修改組成員。


本文來(lái)自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u/24390/showart_182252.html

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2011-11-25 17:05 |只看該作者
好多啊····

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
3 [報(bào)告]
發(fā)表于 2011-12-14 21:04 |只看該作者
學(xué)習(xí)了

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2012-08-08 14:49 |只看該作者
超級(jí)清楚
您需要登錄后才可以回帖 登錄 | 注冊(cè)

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP