SCO UNIX 講座
第一講Unix簡(jiǎn)介 文:Santa Cruz Operation, Inc.
UNIX向來(lái)是強(qiáng)勁的作業(yè)系統(tǒng),屹立多年不倒,但是,對(duì)一般使用個(gè)人電腦的用戶來(lái)說(shuō),確是比較陌生,有見(jiàn)及此,編輯部選擇了在個(gè)人電上也可運(yùn)行自如,毋須龐大的Mainframe或甚麼大機(jī)器的SCO UNIX,介紹給大家,讓各位對(duì)另一廣闊無(wú)限的作業(yè)領(lǐng)域探首一下,也許玩起Internet時(shí),會(huì)有另一番天地,別錯(cuò)過(guò)這一連十二期的「UNIX自學(xué)篇」了。
可能有些人會(huì)誤以為UNIX只是那些功能強(qiáng)勁的龐然大機(jī)方會(huì)使用的作業(yè)系統(tǒng),誰(shuí)不知道在個(gè)人電腦上,一樣可以使用,只不過(guò)所使用的是特別為個(gè)人電腦設(shè)計(jì)的PC UNIX,SCO UNIX就是其中的表表者。
對(duì)於慣用Dos或視窗環(huán)境的朋友來(lái)說(shuō),UNIX的第一重關(guān)卡就是那些「敏感標(biāo)號(hào)」(Sensitive Case),字母的大小寫俱有不同的意思,Ls、IS、LS或Is這些指令全不相同,所謂「差之毫□,謬之千里」,它對(duì)大小寫可是絕對(duì)敏感的。
文件名稱
在SCO UNIX下,建立的文件檔案名稱,可以是包含最多十四個(gè)字母數(shù)字字符的任意組合,既可使用下橫「□」,也可使用句號(hào)「.」。不過(guò),文件名稱卻不能使用某些特定字符,因?yàn)樗鼈儗?duì)Shell來(lái)說(shuō)有特定意義。這些不能用作文件名的字符,分別是「;」「|」、「〈」、「〉」、「'」「$」、「!」 、「%」、「(」和「)」,而文件名稱中也不能含有空白空格等。
文件存取權(quán)
每個(gè)文件都可以擁有不同的存取權(quán)限,界定其它用戶能否存取文件和目錄。
每個(gè)文件分為三類所有權(quán):文件的屬性、屬主所在小組的成員(即組員),可存取系統(tǒng)的其它用戶。用「|」的指令,就可以查看文件的權(quán)限。 drwxrwx… 好像上列的文件存取權(quán)限,第一個(gè)符號(hào)指示文件類型,減號(hào)為普通文件,d則表示目錄文件。接著的九個(gè)字符分成三組,分別表示屬主、組員和其它用戶的存取權(quán);每組有三種存取權(quán):「代表讀(Read)、w代表寫(Write)和x代表執(zhí)行(Execute)。而沒(méi)有存取權(quán)的相應(yīng)位置則會(huì)出現(xiàn)減號(hào)(-)代替。
目錄存取權(quán)
基本上,文件與目錄之間的存取權(quán)的設(shè)置大致一樣,但仍有些微分別。
首先,要查看目錄的存取權(quán)限,就要在「|」之後,加一個(gè)空白處,再加上「-d」。如果要改變當(dāng)前目錄,則用「cd」。
改變存取權(quán)限
要加文件或目錄的存取權(quán)限,可用「chmod」的指令,例子如下: $chmod g+rw filename g代表更改組員可以享有的存取權(quán)限,+rw就是讓組員可以讀與寫該文件。而u則代表文件的屬性,o代表其它用戶;減號(hào)(-)則代表取消某類人的某些存取權(quán)限。另一種更改權(quán)限的方法,就是使用八進(jìn)制的數(shù)值指定存取權(quán)。每個(gè)符號(hào)賦與一個(gè)數(shù)值,r是4,w是2和x是1。例如組合讀與寫,其存取權(quán)的數(shù)值就是6。又譬如欲使文件對(duì)文件屬主、組員和其它用戶均具讀寫權(quán),指令如下: $chmod 666 filename
更改用戶屬主
每當(dāng)創(chuàng)建新檔案與目錄時(shí),標(biāo)記你是屬主,你的同組人員為組員,如果要把文件的使用權(quán)交給別人,只有屬主方可更改,指令如下: $chown owner file chown改變了文件的身分ID(UID) 改變屬組要改變文件所屬的組別--文件組ID(GID),指令變?yōu)椋? $chgrp group file
瀏覽文件內(nèi)容
需要求助,可按?鍵。至於,瀏覽文件內(nèi)容有幾種方法,可使用more,顯示大文件,指令如下: $more filename 按〈space bar〉,顯示正文的下一全螢?zāi)唬话础磖eturn〉,轉(zhuǎn)往下一行;按q進(jìn)出文件;鍵入模式前綴(/),就可鍵入需要查找的匹配模式,若模式找不到,則會(huì)顯示「pattern not found」的信息。按pg則逐次翻一個(gè)螢?zāi)唬總€(gè)全螢?zāi)会幔茧S提示符(:),按〈return〉,看下一螢?zāi)唬I入+n,向前移動(dòng)n個(gè)螢?zāi)唬唬璶,向後移動(dòng)n個(gè)螢?zāi)唬淮蛉?,則移到文件尾。
如果使用Cat看文件內(nèi)容,就可以在全熒幕上滾動(dòng)文件內(nèi)容。在任何位置,按<ctrl>s,文件就會(huì)停止?jié)L動(dòng);按<ctrl>q,則會(huì)繼續(xù)滾動(dòng);按〈del〉則中斷不看。
處理文件
cp指令為復(fù)制文件,可以有多種用法:
$cp old.file new. file 備份一個(gè)文件
$cp file 1 file 2 Test 將file 1和file 2復(fù)制到Test目錄下
至於,mv則為改名指令,譬如: $mv fruit apples 就是fruit改名為apples
rm則是刪除文件的指令。文件一經(jīng)刪除,就不能恢復(fù)它,故此,要加倍小心。 $rm- i filename 加上「-i」,刪除前,系統(tǒng)需要確認(rèn)。
第二講shell環(huán)境 文:Santa Cruz Operation,Inc.
何謂shell shell是用戶與作業(yè)系統(tǒng)之間的交互層,用戶修改其環(huán)境,設(shè)置或取消shell的環(huán)境變量,迎合用戶的需要和愛(ài)好。
shell本身就是一個(gè)電腦程序,用C語(yǔ)言編寫,為協(xié)助用戶與作業(yè)系統(tǒng)之間通訊而設(shè)計(jì),管理用戶與核心(Dernel)之間對(duì)話,并把作業(yè)系統(tǒng)指令換成機(jī)器代碼,其實(shí)PC用戶常用的DOS,本身就是一個(gè)shell。
sshell的用途
shell的主要任務(wù)是:提示用戶打入指令,讀指令,轉(zhuǎn)換指令為核心所能理解的語(yǔ)言。其實(shí),shell可以看作為指令解釋程序,提供一些工具,亦可以利用shell的編寫工具,構(gòu)造電腦程序。
System V shell類
SCO System V的shell可分為四大類:Bourne shell;C shell;Korn Shell;和菜單驅(qū)動(dòng)shell。而菜單驅(qū)動(dòng)shell可再細(xì)分為三類,分別是Open Desktop,Sysadmsh或scoadmin和客戶應(yīng)用程序。每個(gè)shell都有自己特定的環(huán)境文件,可以自行修改至合用,這些環(huán)境文件就仿如DOS的批次檔案(Batch File)。
Bourne shell
對(duì)普遍用戶來(lái)說(shuō),Bourne shell可以說(shuō)是第一個(gè)UNIX shell ,它是由AT&T貝爾實(shí)驗(yàn)室Stephen Bourne所編寫。默認(rèn)提示(Prompt)是美元符($),其環(huán)境文件為profile文件,由於文件檔案不大,可以馬上啟動(dòng)執(zhí)行。
profile是存放在主目錄下的普通正文文件(Text File),通過(guò)設(shè)置環(huán)境變量(Variable)和終端模式,可以使環(huán)境個(gè)人化,每次注冊(cè)進(jìn)入系統(tǒng)時(shí),shell會(huì)讀入profile文件,并執(zhí)行所列出的指令。每當(dāng)系統(tǒng)管理員創(chuàng)建新用戶的戶口時(shí),系統(tǒng)都會(huì)自動(dòng)構(gòu)造一個(gè)相應(yīng)的.profile文件;而整個(gè)系統(tǒng)的環(huán)境文件就放置在/etc/.profile中。用戶可以使用vi或其他正文編器修改。若要使用env命令顯示,由於注冊(cè)時(shí)已設(shè)置了這些變量,也不一定需要另行設(shè)置。
C shell
C shell是由Berkeley的Bill Joy編寫,是標(biāo)準(zhǔn)BSD(Berkeley System Distributou)命令解釋,其默認(rèn)提示是份符(%),環(huán)境文件則是cshrc和.login。
C shell采用C語(yǔ)言,是UNIX和XENIX系統(tǒng)上公共軟件的開發(fā)語(yǔ)言,提供了方便工具,快速打入,校正和再打入命令行。
.login是C shell的注冊(cè)環(huán)境文件,負(fù)責(zé)啟動(dòng)shell,注冊(cè)時(shí)執(zhí)行一次,而.cshrc則存放常用指令如alias等指令。譬如我們要?jiǎng)?chuàng)建一個(gè)永久別名,把命令who|sort|more別名化為wh,在提示(%)後,只需要鍵入wh即可。用戶可在.cshrc□鍵入下面一行: alias wh 'who/sort/more'
Korn shell
Korn shell是AT&T貝爾實(shí)驗(yàn)室David Korn所開發(fā),是Bourne shell的增強(qiáng)版本,綜合了Bourne shell和C shell的特點(diǎn)和約定,而Korn shell則比Bourne和C shell執(zhí)行得更快。
Korn shell的默認(rèn)提示與環(huán)境文件,跟其前身--Bourne shell一樣,同為美元符號(hào)($)和.profile文件。
進(jìn)程控制
雖然同一時(shí)間,系統(tǒng)中運(yùn)行許多進(jìn)程,但是某一特定時(shí)刻,CPU只會(huì)讓一個(gè)進(jìn)程使用,而CPU則在行使中的進(jìn)程之間快速輪換,每個(gè)進(jìn)程所占用的時(shí)間,稱為時(shí)間片。SCO System V為了保持、跟蹤或調(diào)度每個(gè)進(jìn)程,會(huì)給每個(gè)進(jìn)程一個(gè)進(jìn)程標(biāo)識(shí)號(hào)ID或PID。
要確定哪些進(jìn)程正在運(yùn)行,用戶可以使用ps顯示閣下的進(jìn)程;或加上-e選項(xiàng),顯示所有進(jìn)程;加-f選項(xiàng),則顯示的進(jìn)程還包括已啟動(dòng)指令的執(zhí)行中進(jìn)程;-u login顯示某注冊(cè)用戶的進(jìn)程。在SCO UNIX System V中,如果閣下?lián)碛衦oot指令的作用權(quán),就更可以看到所有進(jìn)程。
當(dāng)一個(gè)指令需要較長(zhǎng)時(shí)間完成,可以在指令行後尾加入&元字符,該指令就會(huì)在後臺(tái)執(zhí)行,但對(duì)交互工作方式的指令就不適用了。
菜單驅(qū)動(dòng)shell
菜單驅(qū)動(dòng)(Menu-Driven)shell可再細(xì)分為三項(xiàng):
一、Open Desktop
Open Desktop采用XWindow圖形用戶介面,用戶可用圖符(Icon)窗口和菜單操作,如Open Desktop的作業(yè)系統(tǒng)就是SCO UNIX System V/386。
二、系統(tǒng)管理員Shell:Sysadmsh或scoadmin
Sysadmsh或scoadmin則是字符介面,用戶可不用學(xué)習(xí)指令行語(yǔ)法和選項(xiàng),就可以執(zhí)行大批指令。大多數(shù)系統(tǒng)管理任務(wù)僅由系統(tǒng)管理處理,系統(tǒng)管理員則有特定的根口令(root passWord)。
三、客戶應(yīng)用程序
某些用戶為了存取內(nèi)部郵件、字處理或報(bào)表等應(yīng)用程序時(shí),方會(huì)使用SCO System V,系統(tǒng)管理員可以裝上這些程序,令它們?cè)谧?cè)時(shí)呈現(xiàn)。許多程序提供一個(gè)菜單選項(xiàng),用簡(jiǎn)單打鍵選取一個(gè)選項(xiàng),
第三講vi editor 文:Santa Cruz Operation,Inc任何用戶最常做的事要數(shù)創(chuàng)建和編輯文件,包括文檔、報(bào)告和文字,vi(Visual Editor)是一個(gè)有效而相對(duì)簡(jiǎn)單的全熒幕編輯,使用vi,只要記著少量基本指令,就可以開始起步,再學(xué)習(xí)其他更復(fù)雜的指令,而系統(tǒng)管理員則使用vi管理和維護(hù)系統(tǒng)。
vi是包含在SCO System V作業(yè)系統(tǒng)中的全熒幕編輯,其實(shí),vi不獨(dú)存在於SCO UNIX內(nèi),而是UNIX內(nèi)相當(dāng)普及的文件編輯。開啟文件無(wú)論是開啟新檔或修改舊文件,都可以使用vi,所需指令為: $ vi filemane 如果文件是新的,就會(huì)在熒幕底部看到一個(gè)信息,告訴用戶正在創(chuàng)建新文件。如果文件早已存在,vi則會(huì)顯示文件的首廿四行,用戶可再用游標(biāo)(cursor)移動(dòng)文件。 This is what vi looks like.
~
~
上面是一個(gè)經(jīng)vi開啟的模擬文件,一行開始處的波折號(hào)(~)表示文件的結(jié)尾。指令態(tài)與插入態(tài)
vi使用了兩種狀態(tài),一是指令態(tài)(Command Mode),另一是插入態(tài)(Insert Mode)。當(dāng)vi處?kù)吨噶顟B(tài)時(shí),打入的內(nèi)容會(huì)視作指令來(lái)解釋;另一方面,當(dāng)vi處?kù)恫迦霊B(tài)時(shí),就可以打入正文(text)給文件。
大多數(shù)vi指令是單字符,由插入態(tài)改變?yōu)橹噶顟B(tài),指〈Esc〉鍵;而由命令態(tài)轉(zhuǎn)為插入態(tài),則可以使用下面的插入令,直接打入,無(wú)需再按〈Return〉鍵。 —指令i在游標(biāo)處插入正文 —指令I(lǐng)在一行開始處插入正文 —指令a在游標(biāo)後追加正文 —指令A(yù)在行尾追加正文 —指令o在游標(biāo)下面新開一行 —指令O在游標(biāo)上面新開一行 要記著一點(diǎn),在插入態(tài)處,不能打入指令,必需先按〈Esc〉鍵,返回指令態(tài)。假若戶不知身處何態(tài),也可以按〈Esc〉鍵,不管處?kù)逗螒B(tài),都會(huì)返回指令態(tài)。
存檔及退出
在修改文件時(shí),如何存檔及退出指定文件都非常重要。在vi內(nèi),行使存檔或退出的指令時(shí),要先按冒號(hào)(:),改變?yōu)橹噶顟B(tài),用戶就可以看見(jiàn)在熒幕左下方,出現(xiàn)冒號(hào)(:),顯示vi已經(jīng)改為指令態(tài),可以進(jìn)行存檔或退出等工作。下面就是一些這方面常用的指令。 :q!放棄任何改動(dòng)而退出vi,也就是強(qiáng)行退出 :w存檔 :wq存檔并退出vi :x與wq的工作一樣 :zz與wq的工作一樣刪除正文 刪除或修改正文都是利用插入態(tài),故此,下面所提及的指令只需在插入態(tài)內(nèi),直接選入指令即行。 —x刪除游標(biāo)處字符(Character) —nx刪除游標(biāo)處後n個(gè)字符 —nX刪除游標(biāo)處前n個(gè)字符 —ndw刪除游標(biāo)處下n個(gè)單詞(word) —dd刪除整行 —d$或D刪除由游標(biāo)至該行最末 —u恢復(fù)前一次所做的刪除
修改正文
當(dāng)使用vi修改正文,加減字符時(shí),就會(huì)采用另一組在插入態(tài)操作 的指令。 — r char由char代替游標(biāo)處的字符 —Rtext〈Esc〉由text代替游標(biāo)處的字符 —cwtext〈Esc〉由text取代游標(biāo)處的單詞 —Ctext〈Esc〉由text取代游標(biāo)處至該行結(jié)尾處 —cc使整行空白,但保留游標(biāo)位置,讓你開始打入 —如刪除指令一樣,在指令前打入的數(shù),表示執(zhí)行該指令多少次。
正文模式檢索
要檢索文件,必需在指令態(tài)下進(jìn)行。所謂「模式」,就是一個(gè)特定字符串,其中可含空格符。 —/str〈Return〉向前搜尋str直至文件結(jié)尾處 —?str〈Return〉往後搜尋str直至文件開首處 —n同一方向上重復(fù)檢索 —N相反方向上重復(fù)檢索 —vi纏繞整個(gè)文件,不斷檢索,直至找到與模式相匹配的下一個(gè) 出現(xiàn)。
其他
如果要在 vi執(zhí)行期間,轉(zhuǎn)到shell執(zhí)行,使用驚嘆號(hào)(!)執(zhí)行系統(tǒng)指令,例如在vi期間,列出當(dāng)前目錄內(nèi)容,可以打入 :!If 另一方面,用戶可以在主目錄中創(chuàng)建.exrc環(huán)境文件,用set打入選項(xiàng),每次調(diào)用vi時(shí),就會(huì)讀入.exrc中的指令與設(shè)置。下面是.exrc環(huán)境文件的實(shí)例: set wrapmarging=8 set showmode set autoindent set number
SCO第四講:系統(tǒng)管理 文:Santa Cruz Operation, Inc.
今次要談的系統(tǒng)管理員負(fù)責(zé)管理SCO UNIX的系統(tǒng),擁有獨(dú)特的注冊(cè)名--root,能夠讀取任何文件,寫入和刪除任何文件,執(zhí)行任何實(shí)用程序和指令,亦可以執(zhí)行和終止任何用戶程序。系統(tǒng)管理員的工作包括系統(tǒng)控制的任務(wù),例如後援加鎖和解鎖終端和記帳號(hào)、增加、隱退和撤消用戶。亦可以給用戶一些特權(quán),讓他們實(shí)現(xiàn)特權(quán)系統(tǒng)任務(wù)。
基本指令
shell指令的基本數(shù)據(jù)結(jié)構(gòu)是文件,因此,基本指令和操作包含以下功能: -顯示及管理文件中的指令 -管理目錄的指令 -輸入輸出重新定向和管道,重定向標(biāo)準(zhǔn)I/O,并執(zhí)行組合指令 $W|grep 'john'〉john,file -輸出重定向符(>)把標(biāo)準(zhǔn)輸出重新定向輸出到文件 --輸入重定向符(<)把標(biāo)準(zhǔn)輸入重定向從文件輸入 -管道符(|)把標(biāo)準(zhǔn)輸出重定向輸出到別一指令
尋找文件 find(c)指令可以在層次目錄中查找文件,例如: $find/-name filename -exec rm {}; -name filename指定filename -exec rm表示在所找的文件中執(zhí)行rm移動(dòng)這個(gè)指令 另外,用戶亦可以加入,-print表達(dá)式,顯示找到文件的全路徑名。除此之外,find(c)也可以用來(lái)找出特定用戶或用戶組所持有的文件,譬如: $find/-user bin -print $find/-group mmdf -print 又或者,用find(c)重新定向過(guò)濾程序,輸出錯(cuò)誤信息,例如: $find/-name motd -print 2〉/dev/null
SCO shell
使用SCO shell,可以讓用戶從單個(gè)菜單中選出應(yīng)用程序,管理文件和目錄,運(yùn)行系統(tǒng)實(shí)用程序,要調(diào)用SCO shell,可鍵入: $scosh 可以利用空格條鍵〈Space Bar〉或箭頭鍵〈Pointer〉移動(dòng)光標(biāo),加亮所選的菜單項(xiàng) -按〈Esc〉 回到上一級(jí),或放棄當(dāng)前操作 -按〈F3〉 顯示所在字段中可用選項(xiàng)表 -按〈Ctrl〉v 在字段選項(xiàng)表中選出每一項(xiàng) -按〈F1〉 顯示求助信息 -按Quit或打入q 退出SCO shell
系統(tǒng)管理shell
需要調(diào)用系統(tǒng)管理員shell,應(yīng)該打入:$sysadmsh或$scoadmin。雖然每個(gè)用戶都可以調(diào)用sysadmsh,但是,只有實(shí)權(quán)的用戶才可執(zhí)行有關(guān)特權(quán)管理任務(wù)。基本上,使用方法與SCO shell差不了多少,只是多了幾個(gè)功能鍵(Function Key),例如〈F5〉搜索,〈F6〉改變目綠和〈F7〉執(zhí)行格式。而且,scoadmin更可以在XWindow的圖形環(huán)境下執(zhí)行,用戶在圖符(lcon)上找到不同的管理任務(wù)。
多重注冊(cè)螢?zāi)?
控制臺(tái)上,可以允許用戶最多具有十二個(gè)不同注冊(cè)期的螢?zāi)弧6嘀匚災(zāi)涣钕到y(tǒng)管理員可以同時(shí)執(zhí)行幾個(gè)任務(wù)。系統(tǒng)啟動(dòng)時(shí),控制臺(tái)上的多重螢?zāi)痪蜁?huì)自動(dòng)活動(dòng)起來(lái)。同時(shí)按〈Alt〉鍵與〈F1〉至〈F12〉功能鍵,實(shí)現(xiàn)螢?zāi)恢g轉(zhuǎn)換。至於,在終端上,啟動(dòng)多重注冊(cè)螢?zāi)唬瑒t可用mscreen實(shí)用程序,為正確工作,mscreen要求為tty。例如啟動(dòng)兩個(gè)螢,應(yīng)該打入 $mscreen-n2 然後按〈Shift〉鍵與〈F1〉或〈F2〉鍵,在兩個(gè)螢?zāi)恢g轉(zhuǎn)換,當(dāng)注銷時(shí),確保所有螢?zāi)蛔N。
SCO第五講:電子郵件 文:Santa Cruz Operation,Inc.在SCO System V下,每個(gè)用戶都有一個(gè)系統(tǒng)維護(hù)的私人郵箱,用戶能夠與系統(tǒng)任何用戶或用戶組之間收發(fā)電子郵件,所收發(fā)的信息可以保留在郵箱內(nèi)或作獨(dú)立文件處理。
發(fā)送郵件
打入mail指令,後跟收件人注冊(cè)名,就可發(fā)送郵件。假如發(fā)送郵件給多個(gè)收件人,名字用空格符〈space〉分隔,而不是逗號(hào)。收件人可以是一個(gè)單獨(dú)注冊(cè)名或一個(gè)別名,別名代表用戶組,例如: $mail peter amy 接著,螢?zāi)簧蠒?huì)出現(xiàn)subject:的提示符,用戶即可打入簡(jiǎn)短的信息說(shuō)明,完成後,按〈Return〉鍵,然後,就可以編寫郵件內(nèi)容。
需要校正錯(cuò)誤,就該使用空格符或左箭頭鍵,用不當(dāng)?shù)目崭穹虿缓线m的箭頭鍵,即使在螢?zāi)簧峡雌饋?lái)對(duì),但是收件人可能只收到不可讀和篡改了的信息。請(qǐng)記著,mail內(nèi)的內(nèi)容編寫,不是「所見(jiàn)即所得」(What You See is What You Get)。假若需要取消整個(gè)信息,按〈del〉鍵兩次。寫完郵件內(nèi)容,按〈Return〉鍵,取得新行後,按〈Ctrl〉d,發(fā)送郵件。d就是done(完成)的縮寫。
閱讀郵件
每次注冊(cè)進(jìn)入系統(tǒng)時(shí),系統(tǒng)都會(huì)通知閣下,在閣下的郵箱中可有郵件,需要翻閱郵件,打入 $mail 若有郵件,每每郵件都會(huì)顯示出相應(yīng)的信息標(biāo)題,包括信息數(shù),送件人及發(fā)送日期。下面是郵件范例: $mail SCO System V mail(Versin 3.2)Type? for Help '/usr/spool/mail/joesco':2 messages/new/unread u2 mary Sun Aug 05 23:48 47/2109 level 2500 n1 paul Fri Aug 03 08:01 23/6332 Tardy reports!
要閱讀來(lái)件,可以使用箭頭鍵移動(dòng)選取,按〈Return〉鍵閱讀,或在提示處,直接按入來(lái)件編號(hào)。若已讀到郵箱中最後一批信息,mail在螢?zāi)簧蠒?huì)顯示'Can't go beyond last message' 。
處理mail
當(dāng)打入一個(gè)無(wú)效指令時(shí),mail會(huì)回答一個(gè)問(wèn)號(hào),或'What' 的信息,顯示指令不清。假若用戶想顯示mail指令表,可以打入?;或打入h,顯示郵牛標(biāo)題表;打入l,則會(huì)發(fā)送信息至打印機(jī)。另有一些常用的指令,協(xié)助處理mail:
一、保留郵件 's filename'按普通正文文件保存整個(gè)信息至filename內(nèi),連同 郵件的標(biāo)題信息,一并送入文件內(nèi)。 'w filename'撇除郵件標(biāo)題後,保存信息到filename內(nèi)。
二、刪除郵件 'd x' 刪除信息x這個(gè)信息號(hào)數(shù) 'u x'恢復(fù)被刪除的x信息
三、覆件 'r'發(fā)信回答給送件人 'R'發(fā)送回答給To:和Cc:表上的所有用戶
四、轉(zhuǎn)發(fā)郵件 'f login'轉(zhuǎn)發(fā)信息,予其它用戶,并分送來(lái)件正文(Original Message);login乃用作的注名 'F login'只轉(zhuǎn)發(fā)信息,不分送來(lái)件正文
五、退出郵件 'q'退出mail程序,并更新所有改變 'x'退出mail程序,但不作任何改動(dòng)
其它處理郵件的方法 除了以上所提到的基本指令處理郵件外,SCO UNIX尚有其他較復(fù)雜的指令可整理郵件。在mail內(nèi),所有指令前都要加上波折號(hào)~v,調(diào)用vi編輯,一旦完成編輯信息,通過(guò)vi的指令,例如保存和退出指令:wq,就可返回mail程序;按〈Ctrl〉d,就可以直接發(fā)送郵件信息。
其它mail的增強(qiáng)指令如下 -~m messate-no.把郵箱中指定信息(message-no.)放到所編寫的信息中 -~r filename讀入指定文件(filename),送到當(dāng)前信息中 -~p察看信息中的當(dāng)前內(nèi)容 -~?求助 為了方便mail通訊,系統(tǒng)管理員能夠定義不同的特定單用戶或組別名,通過(guò)這些單個(gè)組、別名或名字,就可以把郵件信息發(fā)送給全組用戶。發(fā)送給別名成員,可鍵入如下指令: $mail aliasname 如果要限制組員和其它用戶的私人郵件的存取權(quán)限,可以使用chmod指令,例子如下: $chmod 600mbox 在普通電子郵件提示處打入set,可以控制選項(xiàng),改變讀和發(fā)送郵件,這些選項(xiàng)可以由系統(tǒng)管理員為用戶自動(dòng)建立,也可以自己修改這些設(shè)置,例如: set page=10
mailrc環(huán)境文件
mail的環(huán)境文件叫做mailrc,負(fù)責(zé)保存所要文件的永久記錄。與其它環(huán)境文件一樣,mailrc必需放在主目錄中,它是正文文件,包涵有效的mail指令,mailrc通常包括set指令和alias 定義。不過(guò),運(yùn)行mail程序,倒不一定要有.mailrc文件。如要查看.mailrc,可以打入more .mailrc,下面是.mailrc的一個(gè)實(shí)例: cd -在mail內(nèi),改變主目錄nset autombox刪除自動(dòng)把所讀件轉(zhuǎn)送到私人郵箱 set page=20 -若信息大於二十行,用more顯示 alias crew john wanda frank -發(fā)送給crew的郵件轉(zhuǎn)發(fā)給表中列出的用戶 set EDITOR=/us/lib/word -把word作為mail默認(rèn)編輯 unset chron -顯示當(dāng)前最新郵件 上述的.mailrc例的□面,當(dāng)打入$mail crew,就能夠把郵件發(fā)送給john,wanda和frank。監(jiān)視mbox是默認(rèn)設(shè)置,如果不想設(shè)置的話,應(yīng)該使用unset autombox,而當(dāng)mbox的內(nèi)容很快增長(zhǎng)時(shí),通常會(huì)刪去舊信息。如果要讀mbox中的郵件,可以使用如下指令:$mail -f mbox
第六講:後援復(fù)制 Santa Cruz Operation,Inc.電腦系統(tǒng)內(nèi),數(shù)據(jù)可是相當(dāng)重要的一環(huán)。貯存數(shù)據(jù)的方法,可以經(jīng)軟盤、硬盤或盒式帶(Cartridge),盒式帶通常為大量數(shù)據(jù)提供後援(Backup)。
復(fù)制目錄
在安裝的文件系統(tǒng)中,把一個(gè)目錄內(nèi)容復(fù)制到另一個(gè)目錄中,用copy 指令: $copy source> destination> #copy -mor source> destination>
轉(zhuǎn)換并復(fù)制文件
使用 dd(c)指令,可以把一個(gè)文件轉(zhuǎn)換成另一個(gè)文件,也可以選擇文件的一部份傳輸,在傳輸?shù)臄?shù)據(jù)中,也可以交換字節(jié)順序。 $dd if=/dev/fd0 of=/temp/save skip=5 count=86 bs=5k 上面的指令″/dev/fd0″ 是指電腦上的軟盤,″skip=n″代表在復(fù)制到輸出文件之前,跳過(guò)輸入文件上的幾個(gè)記錄。″bs=n″則表示設(shè)置輸入輸出字節(jié)塊長(zhǎng)度,用 k 表示 1024 字節(jié)。″count=n″只復(fù)制輸入記錄的指定數(shù)。同時(shí),也可以利用 dd 指令檢查歸檔(archive)情況,指令如下: $dd if=dev/fd0 of=/dev/null bs=1k 1200+0 record read in 1200+0 record read out
歸檔文件:tar(c)
tar 是對(duì)非特權(quán)用戶最易用和最可靠的實(shí)用程序(utility),從歸檔介質(zhì)上保留和恢復(fù)文件,亦能從多文件歸檔中抽取單個(gè)文件。tar 歸檔使用文件和目錄的相對(duì)或絕對(duì)路徑名。打入 tar,即會(huì)顯示所有變量選項(xiàng);”cv”是創(chuàng)建歸檔;”cv#”用於來(lái)自 /etc/default/tar 的設(shè)備號(hào) #;”rv”追加已有歸檔;”uv”更新在已有歸檔上的文件;”tv”顯示歸檔內(nèi)容表;”xv”從歸檔中抽取文件;”f”從指定文件中讀入或?qū)懗觯弧盠”使 tar跟隨符號(hào)連接繼續(xù)追查下去,默認(rèn)情況下則會(huì)忽略符號(hào)連接。譬如要?dú)w檔指定文件,而復(fù)蓋盤上的已有數(shù)據(jù),指令如下: $cd pub $tar cv6 ascii greek volume end at 1199k, block factor=5k seek=0k a ascii 3k seek=3k a greek 1k
要列出 tar 歸納的內(nèi)容: $tar tv6 rw-r--r-- 2/22114 Jan 2 13:41 1996 ascii rw-r--r-- 2/2475 Jan 2 13:41 1996 greek
創(chuàng)建 tar 歸檔,使用相對(duì)路徑名,否則,恢復(fù)另一系統(tǒng)就會(huì)蓋寫其他系統(tǒng)的文件。 #tar cv6 /etc/motd #cd /tmp #tar xv6 x /etc/motd, 943 bytes,2k
歸納文件
當(dāng)需要後援指定設(shè)備、後援空設(shè)備與使用匹配符的時(shí)候,就不能使用操作容易的 tar,而需要轉(zhuǎn)用比較復(fù)雜的 cpio,用以歸納文件。譬如,需要選取文件建立歸檔,指令如下: $find /u/bill -print| cpio -oB -O /dev/fd0 20 blocks
又例如,需要抽取 cpio 歸檔文件名時(shí): $cpio -idmuBv -I /dev/fd0 .profile ascii eqnchar greek 20 blocks
cpio 主要選項(xiàng)為: -v 顯示工作 -i 讀歸檔 -o 寫入歸檔 -t 內(nèi)容表 -d 創(chuàng)建目錄 -m 保留原修改日期 -U 無(wú)條復(fù)制 -B 分割因子置為 5k -Cn 分割因子置為 n -Kn 介質(zhì)長(zhǎng)度置為 n
後援復(fù)制
後援就是要平衡運(yùn)行一般後援的代價(jià)與損失數(shù)據(jù)的代價(jià),確定要?dú)w檔的數(shù)據(jù)類,并確定要用何級(jí)實(shí)現(xiàn),以及確定所要求磁帶的盤數(shù)和帶的容量,多久存儲(chǔ)一次後援等等問(wèn)題。一般來(lái)說(shuō),後援復(fù)制可在 sysadminsh 或 scoadmin 執(zhí)行。
所謂增量後援(Incremental Backup Levels),就是只需要以上次歸檔後發(fā)生改變的那部分?jǐn)?shù)據(jù)後援。當(dāng)實(shí)現(xiàn)調(diào)度後援時(shí),在/usr/lib/sysadmin/last/中,將文件記錄下來(lái),可以透過(guò)使用後援級(jí)來(lái)實(shí)現(xiàn)。後援級(jí)的 0 級(jí)就是後援文件系統(tǒng)上全部文件;1 級(jí)則後援以上次0 級(jí)後援以來(lái)改變的文件:2 級(jí),後援以上次 0 級(jí)或 1 級(jí)後援以來(lái)改變的文件;3 級(jí),後援以上級(jí) 0級(jí)、1 級(jí)或 2 級(jí)後援以後改變文件。
經(jīng)定義後援工具後,後援調(diào)度(Backup Schedule)就可以更方便地執(zhí)行,配置檔案則會(huì)被安置在 /usr/lib/sysadmin/schedule 中。假若在緊急關(guān)頭或特殊情況下,用戶亦可以使用非調(diào)度放援,進(jìn)行緊急後援。
第七講:用戶管理系統(tǒng)管理員的用戶理工作包括:為系統(tǒng)中所有用戶建立帳號(hào);以及當(dāng)改變用戶環(huán)境、口令與組別時(shí),進(jìn)行維護(hù)。
分析用戶需求
每當(dāng)需要增加用戶時(shí),系統(tǒng)管理員都會(huì)先分析用戶需求,對(duì)每個(gè)帳號(hào)成分,通過(guò)使用默認(rèn)選項(xiàng)來(lái)滿足用戶需求。要從sysadmsh中查看默認(rèn)記帳選項(xiàng)時(shí),可以使用以下選擇。 Accounts□□〉Defaults 或scoadmin□□〉A(chǔ)ccount Manager 當(dāng)建立帳號(hào)時(shí),評(píng)估用戶需求,查看是否需要修改記帳成分。若用戶僅用一個(gè)應(yīng)用程序,編輯用戶的.profile文件,在用戶注冊(cè)時(shí),每次均執(zhí)行此文件。
默認(rèn)值建立用戶帳號(hào)(Default Parameter)
首先,打入用戶注冊(cè)名,小寫與三至八個(gè)字符;填寫注解欄時(shí),應(yīng)包含標(biāo)識(shí)信息,如用戶全名、單位、電話號(hào)碼等。另外,指出是否愿意用系統(tǒng)默認(rèn)方式建立帳號(hào),抑或?qū)ぬ?hào)修改默認(rèn)值,若使用默認(rèn)方法,則選No。確定你要增加的用戶後,給出創(chuàng)建後的文件和目錄,再執(zhí)行/tcb/lib/useshell指令,建立用戶帳號(hào),不過(guò),在UNIX系統(tǒng)指令中,要通過(guò)sysadmsh或scoadmin才能運(yùn)行此指令。
若決定改變用戶記帳默認(rèn)方式,則在建立帳號(hào)時(shí)選Yes,那麼就需要填寫每欄,在合適位置上,按〈F3〉或〈Esc〉,下面是關(guān)於非默認(rèn)的設(shè)定。
指定用戶組
每個(gè)用戶必須至少屬於一個(gè)組。默認(rèn)情況下,用戶注冊(cè)組是group。在一個(gè)組內(nèi)還包括讀、寫和執(zhí)行文件的權(quán)限,附加用戶權(quán)限給那個(gè)組,作為指定組員的存取權(quán)限集。如要改變成組別,可用newgrp(c)指令。
增加用戶時(shí),可以創(chuàng)建一個(gè)新組,或附加到一個(gè)已存在的組內(nèi)。有關(guān)組別的信息則存放在/etc/group中。凡增加用戶創(chuàng)建新組時(shí),組名會(huì)自動(dòng)遞加到/etc/group文件內(nèi)。組ID能夠由系統(tǒng)產(chǎn)生或人工指定,但必須在100到60,000范圍內(nèi),100號(hào)以下的ID留給子系統(tǒng)和其他默認(rèn)組用。當(dāng)管理一個(gè)網(wǎng)絡(luò)系統(tǒng)時(shí),常需要指定GID(Group ID,組ID),避免混同各網(wǎng)絡(luò)結(jié)點(diǎn),所以,最好先選用默認(rèn)組ID。
指定邏輯shell
要知道用戶打算選用哪個(gè)shell工作,SCO系統(tǒng)可選用以下幾種不同的shell工作: csh: C shell。 ksh:Korn shell,組合了Bourne shell和C shell的特點(diǎn)以及指令行編輯。 rksh:加限制的Korn shell。 rsh:加限制的Bourne shell。 scosh:SCO shell(圖型化桌面)。 sh:Bourne shell。 uucp:UNIX到UNIX拷貝功能,它本身不是shell,而是成功注冊(cè)後運(yùn)行的程序。
默認(rèn)shell在/etc/default/authsh中指定,從/usr/lib/mkuser目錄結(jié)構(gòu)內(nèi)文件中,取到可采用的注冊(cè)shell表。
指定主目錄
默認(rèn)主目錄在/etc/default/authsh中定義,從/usr/lib/mkuser/homepaths文件中,取到可采用主目錄的選擇。以及為用戶創(chuàng)建一個(gè)新的主目錄。指定用戶ID(UID)必須是在200到60000范圍內(nèi),指定在/etc/default/authsh文件中,UID必須是獨(dú)一無(wú)二的,防止在網(wǎng)絡(luò)上有相同的UID,而且,UID一旦設(shè)置,永不改變。
指定用戶類
另外,還需要為用戶設(shè)立他們的類別,種類如下: -individual:個(gè)人記帳類。 -pseudo-usr:為各子系統(tǒng)任務(wù)設(shè)置帳號(hào),注冊(cè)時(shí)個(gè)人不應(yīng)給pseudo□usr記帳類,Operator、security Officer和administrator記帳類是pseudo□usr的其他名字。 -不能設(shè)置superuser和retired記帳類。 如果要能使用su(C)(所變用戶身分命令),該用戶必需被指定為用戶類individual,才能取用此域,為了用su另外記帳,用戶必須有su授權(quán),知道帳號(hào)口令。low、traditional和improved為安全默認(rèn)值,被賦予su授權(quán)。在high 安全默認(rèn)值下,則不賦予su授權(quán)。
賦予用戶被始口令
當(dāng)創(chuàng)建新用戶帳號(hào)時(shí),就需要為用戶設(shè)立或不選擇不設(shè)立初始口令。 -New:現(xiàn)在賦予口令,用戶在注冊(cè)時(shí)必需打入這個(gè)口令。 -Later:現(xiàn)在不賦予口令,在賦予口令前,用戶不能注冊(cè)。 -Blank:賦予空口令,用戶能注冊(cè),但在注冊(cè)時(shí),強(qiáng)迫用戶給出一個(gè)口令。 -Remove:不賦予口令,用戶能不用口令注冊(cè)。 -Force Password Change:決定在用戶首次注冊(cè)時(shí)是否要用戶強(qiáng)迫改變口令。
在high安全性下,必須為每個(gè)用戶產(chǎn)生一個(gè)口令。若賦予初始口令,就應(yīng)該告訴用戶他的口令,希望他在首次注冊(cè)時(shí),立即修改這個(gè)口令,修改口令時(shí),不要選用別人能夠輕易猜出來(lái)的口令,如姓名或生日日期等,最好在口令中,加有一個(gè)非字符。
系統(tǒng)安全保護(hù):修改用戶默認(rèn)帳號(hào)
為了防止被人濫用別人的用戶帳號(hào)注冊(cè)進(jìn)入系統(tǒng)內(nèi),保障系統(tǒng)的完整性,系統(tǒng)管理員需要修改一些用戶的默認(rèn)帳號(hào),以及檢查用戶的注冊(cè)情況。首先,管理員會(huì)設(shè)定不成功注冊(cè)最大次數(shù),計(jì)算使用不正確口令注冊(cè)的次數(shù);當(dāng)不成功注冊(cè)超過(guò)最大次數(shù),就設(shè)定加鎖用戶帳號(hào)和終端。如果在完成注冊(cè)時(shí)間之內(nèi),仍未能設(shè)置口令,也可加鎖用戶的系統(tǒng),甚至根戶用也一樣。在成功注冊(cè)後,希望享受優(yōu)先CPU調(diào)度,則可以用nice(C)值,給用戶she ll及由它啟動(dòng)的進(jìn)程,以調(diào)整優(yōu)先級(jí)。設(shè)定值會(huì)存放在/etc/system/default中。
Unix自學(xué)篇--第八講:監(jiān)視進(jìn)程管理 文:Santa Gruz Operation, Inc.程序是一個(gè)可執(zhí)行文件(Process)是正在運(yùn)行程序一個(gè)實(shí)例。SCO UNIX System V支持許多進(jìn)程同時(shí)運(yùn)行,各種系統(tǒng)通過(guò)調(diào)用可用進(jìn)程去創(chuàng)建新進(jìn)程,與其他進(jìn)程通訊,以及終止其他進(jìn)程。
進(jìn)程族系
新進(jìn)程創(chuàng)建時(shí),內(nèi)核會(huì)分配一個(gè)進(jìn)程標(biāo)識(shí)號(hào)(PID)給它,并對(duì)進(jìn)程表中添加說(shuō)明訊息。由一個(gè)進(jìn)程創(chuàng)建另一新進(jìn)程,老進(jìn)程為父進(jìn)程,新進(jìn)程為子進(jìn)程。用戶Shell執(zhí)行的大多數(shù)指令又是它的子進(jìn)程,子進(jìn)程則運(yùn)行指令。而父進(jìn)程允許有多個(gè)子進(jìn)程來(lái)實(shí)現(xiàn)任務(wù)等,待子進(jìn)程完成。一個(gè)父進(jìn)程可以有多個(gè)子進(jìn)程,但是,一個(gè)子進(jìn)程只有一個(gè)父進(jìn)程。
前臺(tái)及後臺(tái)進(jìn)程
在Shell提示處打入指令後,創(chuàng)建一子進(jìn)程運(yùn)行命令,Shell等待命令退出,然回到對(duì)用戶提出提示符,這道指令與Shell同步運(yùn)行,即在前臺(tái)運(yùn)行。在Shell提示 處打入的指令,若隨一個(gè)&,Shell創(chuàng)建的子進(jìn)程運(yùn)行此指令,但不等待指令退出,而直接返回到對(duì)用戶提出提示。這道指令與Shell同步運(yùn)行,即在臺(tái)運(yùn)行。 $sleep 10 &
精靈進(jìn)程
精靈進(jìn)程是一個(gè)進(jìn)程,它與終端和用戶都無(wú)聯(lián)系,也有人喜歡稱他為管家婆。精靈完成一些周期性的事,平時(shí)它睡眠。用ps (C)指令可看到精靈,它在tty區(qū)域中帶有問(wèn)號(hào)(?)。 -Sched:PID 0,它完成進(jìn)程的程序在存儲(chǔ)局和盤交換局之間交換工作。 -init:PID 1,系統(tǒng)自動(dòng)建的第一用戶進(jìn)程,它負(fù)責(zé)初始化引導(dǎo)和注冊(cè)過(guò)程,也就是所有非系統(tǒng)進(jìn)程的祖先。它會(huì)在終端口上,啟動(dòng)getty (M)進(jìn)程。 -vhand:PID 2,頁(yè)面精靈,它頻繁地把儲(chǔ)頁(yè)面內(nèi)容送往交換區(qū)。 -bdfush:PID 3,定期刷新高速緩到盤(默認(rèn)情況,每13秒刷新一次) -logger:歸檔系統(tǒng)出錯(cuò)訊息。 -cron:在調(diào)度時(shí)運(yùn)行作業(yè)。 -Ipsched:脫機(jī)打印精靈。
孤兒進(jìn)程
孤兒進(jìn)程在父進(jìn)程終止仍舊活動(dòng),由init (M)認(rèn)它為乾兒子。僵□進(jìn)程則是進(jìn)程已終止,但進(jìn)程還未撤消,因?yàn)楦高M(jìn)程并未「等待」它,進(jìn)程表仍保留著這□體,進(jìn)程表的□體是僵□進(jìn)程所消耗的資源。隨著新進(jìn)程的創(chuàng)建,出現(xiàn)大量□體,但總數(shù)是有限制的,因此影響新進(jìn)程的產(chǎn)生。而孩兒進(jìn)程與僵□進(jìn)程不同,并不會(huì)影響系統(tǒng)效率。通常,在父進(jìn)程死去時(shí),才會(huì)移去僵□進(jìn)程。若他們還未移去,應(yīng)由init (M)繼承并移去它。
監(jiān)視進(jìn)程
監(jiān)視進(jìn)程監(jiān)注冊(cè)戶的數(shù)量,用以記系統(tǒng)的性能;亦會(huì)監(jiān)視用戶進(jìn)程,包括掛起進(jìn)程;以及裝載均值等系統(tǒng)性能問(wèn)題。要顯示進(jìn)程信息,可以利ps (C)指令報(bào)告,進(jìn)程狀態(tài)。在默認(rèn)情況下,僅會(huì)報(bào)告與當(dāng)前終端有聯(lián)系的有關(guān)訊息。若用戶沒(méi)有root權(quán)限,ps僅限以說(shuō)明運(yùn)行進(jìn)程,報(bào)告用戶的進(jìn)程訊息。若用戶有root權(quán)限,則會(huì)報(bào)告在所有終端上所有用戶的進(jìn)程訊息。 $ps-u joana --u 〈username〉選項(xiàng)顯示指定用戶的訊息。 --t 〈ttynamt〉選項(xiàng)顯示指定終端有關(guān)的進(jìn)程訊息。 而ps -elf指令則提供了需有F、S、C、PRI、NI、TIME字段的使用訊息。 -F是標(biāo)記,指示進(jìn)程位置,20表示在內(nèi)存,0表示交換在盤上,31是系統(tǒng)進(jìn)程。 -S是狀態(tài)訊息,指示進(jìn)程狀態(tài),睡眠還是正在運(yùn)行。 -C是進(jìn)程占有CPU的百分率 -TIME是花費(fèi)CPU的總時(shí)間。 -PRI是進(jìn)程當(dāng)前優(yōu)先數(shù) -NI是進(jìn)程的nice (ADM)菜單
如何創(chuàng)建進(jìn)程
當(dāng)進(jìn)程分岔一個(gè)子進(jìn)程,自己就會(huì)進(jìn)入睡眠狀態(tài)。開始時(shí),子進(jìn)程運(yùn)行父進(jìn)程的同一程序,由內(nèi)核分配一個(gè)新的PID。當(dāng)子進(jìn)程再去執(zhí)行新的程序,保持新分配的PDI,新程序就會(huì)替代子進(jìn)程的原先程序。當(dāng)子進(jìn)程完成後,內(nèi)核會(huì)把它從系統(tǒng)中移去,再喚醒父進(jìn)程,子進(jìn)程就會(huì)退出。
監(jiān)視系統(tǒng)裝載
uptime(C)指令顯示裝載均值(一分鐘、五分鐘和十五分鐘),即在預(yù)定時(shí)間上,排隊(duì)運(yùn)行進(jìn)程的平均數(shù):$uptime
w(C)指令產(chǎn)生如uptime(C)一樣的裝載均值訊息,并顯示誰(shuí)在系統(tǒng)上做甚麼,若用戶擁有root權(quán)限,W報(bào)告所有用戶的有關(guān)訊 息。若沒(méi)有 ,僅顯示與用戶進(jìn)程有關(guān)竹的訊息。
PCPU(Process CPU,進(jìn)程CPU時(shí)間 )顯示某道特定指令已運(yùn)行多久了。對(duì)控制不了的進(jìn)程,這種檢查是很有用的。JCPU(Joint CPU,連合CPI時(shí)間),顯示一個(gè)終端所涉的所有進(jìn)程的總時(shí)間。
sar (ADM)指令是一個(gè)系統(tǒng)活動(dòng)報(bào)告程序,顯示系統(tǒng)資源累積利用率。為指示系統(tǒng)瓶頸口(Bottleneck),sar 是非常好的實(shí)用程序,指令語(yǔ)法如下:$sar〔-option〕 〔sample-interval-samples〕例如:$sar-u120 -u選項(xiàng)顯示CPU利用情況。如果%idle一致地低,使用效能是上升,不過(guò),運(yùn)行的進(jìn)程偷不到未用的CPU周期。又例如使用-q選項(xiàng)顯示進(jìn)程吞吐量。假若%swpocc大於20,就發(fā)生交換(Swapping),可以使用大內(nèi)存能減少交換 /請(qǐng)負(fù)活動(dòng)。
UNIX自學(xué)篇:第九講:管理進(jìn)程 文:Santa Cruz Operation, Inc.
用低優(yōu)先級(jí)運(yùn)行進(jìn)程
nice(C)指令用於以較低的調(diào)度優(yōu)先級(jí)執(zhí)行命令,每個(gè)進(jìn)程都有一個(gè) nice 值,用於計(jì)算它的優(yōu)先級(jí)。nice 值在 0 到 39 范圍內(nèi),高值獲得低優(yōu)先級(jí),不給實(shí)參的默認(rèn)情況是 nice值 20。超級(jí)用戶可指定負(fù)值,以提高優(yōu)先級(jí)。
在注銷進(jìn)程後進(jìn)程繼續(xù)執(zhí)行
後臺(tái)啟動(dòng)的進(jìn)程,默認(rèn)情況下,當(dāng)注銷後就不再存在,但是,可以使用 nohup(c)指令,讓進(jìn)程不受掛起和注銷影響,得以繼續(xù)運(yùn)行,例如: $ nohup sort bigfile>sortfile & 4567 $ exit 當(dāng)用戶注銷時(shí),用戶未用輸出改向,輸出將送到當(dāng)前目錄下的nohup.out 文件中,如果當(dāng)前目錄不可寫,則輸出改向到$HOME/nohup.out。
重新啟動(dòng)安全級(jí)精靈進(jìn)程
根據(jù) C2 安全級(jí)要求,某些精靈進(jìn)程用 LUID (Login User IdentifIEr)標(biāo)記運(yùn)行,如此只能用 sd(ADM)實(shí)用程序重新啟動(dòng)他們。如果 LUID 限制有效的話(高安全級(jí)),只能用 sd(ADM),例如 cron(C)這樣的精靈,在高安全級(jí)下要 sd 重新啟動(dòng)它。
進(jìn)程終止實(shí)用程序
需要終止實(shí)用程序時(shí),可以通過(guò)發(fā)信息給進(jìn)程,使它自殺,通常會(huì)用在終止一些已掛起的或是運(yùn)行的進(jìn)程。語(yǔ)法如下: $ kill [-signal] 例如 $ kill 4411 4411:terminated
這樣,只能終止運(yùn)行優(yōu)先級(jí)大於 25 的進(jìn)程,小於 25 優(yōu)先級(jí)的進(jìn)程只能在重新引導(dǎo)系統(tǒng)中撤注它。
調(diào)度單個(gè)作業(yè)執(zhí)行
at(C)指令使得在某指定時(shí)間執(zhí)行一組命令一次,主要用於在系統(tǒng)活動(dòng)較少的情況下,在預(yù)定時(shí)限(例如在半夜後或每日固定時(shí)間)內(nèi)運(yùn)行指令。要重新定向,可以使用標(biāo)準(zhǔn)輸入,或可文件輸入;在打入完整的at 指令後,就會(huì)顯示出將要運(yùn)行的作業(yè)號(hào)與時(shí)間。語(yǔ)法如下: $ at time [date] [increment] < [filename] 任何用戶都能運(yùn)行一個(gè) at 作業(yè),但必須給予授權(quán)。
指定單個(gè)作業(yè)調(diào)度時(shí)間
時(shí)間格式為 hr:min 或 min,hr ,用 a.m 或 p.m 指定上午或下午,有效時(shí)間包括 no on,midnight 和 now,指定日期則用「月日〔年〕」格式,例如 Feb14。一星期那一天也可用monday、mon、today 或 tomorrow 代替。at 指令從標(biāo)準(zhǔn)輸入中,讀入打算在以後某一時(shí)刻所執(zhí)行的命令: $ at 14:00 Jan sort /u/user1/file /u/user1/sort ctrl>d job 61202778.a at Thu Jan 4 14:00:00 1996
記著使用時(shí),要用全路徑名指定文件。指令輸出以電子郵件發(fā)送給用戶,也可輸出改向到文件或終端。
列出單個(gè)調(diào)度作業(yè)
使用命令 $ at -1 job 612027780.a at Wed Jan 24 08:43:00 1996 job 612027900.a at Wed Jan 24 08:43:00 1996
若指定 jod_id,一般用戶會(huì)得到一張自己所有作業(yè)的表,根用戶則能取得全部作業(yè)的表。
撤消單個(gè)調(diào)度作業(yè)
使用以下指令撤消作業(yè): $ at -r 可以使用匹配符撤銷多個(gè)作業(yè)。at 的作業(yè)存放在usr/spool/cron/atjobs
在一般數(shù)據(jù)庫(kù)上調(diào)度作業(yè)
用 crontab (C)指令,從指定文件或標(biāo)準(zhǔn)輸入拷貝或編輯成用戶的 crontab 文件,該文規(guī)定了在指定日期和時(shí)間調(diào)度運(yùn)行一些指令。
crontab 指令提供了對(duì) cron 系統(tǒng)精靈要執(zhí)行的作業(yè),清理 /tmp ,撤銷在一般數(shù)據(jù)上日記文件或不想要的文件,以及檢查空間,郵寄警告予用戶等。/usr/lib/cron/cron.allow 文件列出了能使用 cron 的用戶,/usr/lib/cron/cron.deny 文件列出了拒絕存取 cron 的用戶,僅當(dāng) cron.allow 文件不存在時(shí),cron.deny 文件才起作用。
指定作業(yè)及其調(diào)度時(shí)間
作業(yè)可能是單個(gè)指令或包含多道指令的 shell 腳本,指令輸出郵寄給用戶,也可輸出改向到文件或終端。在文件中打入作業(yè)及運(yùn)行時(shí)間,以運(yùn)行此作業(yè)。文件可取任何名字,但是,不允許包括首尾部和空白行,而且,最好取 .cronfile ,這種取名反映其功能,易記易理解。.cronfile 文件可用正文編輯或 vi 創(chuàng)建。每個(gè)用戶僅提供一個(gè) .cronfile文件,每當(dāng)執(zhí)行 crontab 指令時(shí),新文件會(huì)蓋寫原先文件。編輯已存在的 .cronfile 文件,增加或修改一個(gè)作業(yè),然後用 crontab 重新提交 .cronfile 。而每個(gè)用戶的登記項(xiàng)會(huì)存放在/usr/spool/crontabs/。
列出或修改 cron 作業(yè)
要列出當(dāng)前提供的 cron 作業(yè),可以打入:$ crontab -1 修改 cron 項(xiàng),使用指令:$ crontab -1 >.cronfile $ vi .cronfile $ crontab .cronfile
如要撤銷 cron 作業(yè),則打入:$ crontab -r 但有一樣,請(qǐng)留意,根用戶沒(méi)有 .cronfile 文件。
Unix自學(xué)篇第十講:打印管理 Santa Cruz Operation, Inc.
打印假脫機(jī)(Spooler)程序在系統(tǒng)引導(dǎo)時(shí)自動(dòng)啟動(dòng),負(fù)責(zé)打印服務(wù)的安裝、配置和管理,在指定打印機(jī)上,將用戶打印請(qǐng)求進(jìn)行排隊(duì),能在不丟失排隊(duì)打印請(qǐng)求下暫停打印。
打印機(jī)隊(duì)列
打印機(jī)會(huì)被分組,每組共同存取一個(gè)隊(duì)列(class)。而打印請(qǐng)求可以送入一個(gè) class ,也可送往指定打印機(jī)上。在一個(gè) class 中,可隨時(shí)移去或增加打印機(jī),用 sysadmsh 菜單或scoadmin 的 Print Manager,可以增加打印機(jī)往已有的 class 中,又或增加一個(gè)新 class。
打印機(jī)過(guò)濾程序
使用打印機(jī)過(guò)濾程序,可以轉(zhuǎn)換用戶文件或數(shù)據(jù)流,在給定打印機(jī)上,合適地打印出來(lái);處理兩邊打印,草圖或高質(zhì)量文字打印等;如發(fā)現(xiàn)打印失敗,會(huì)通知打印服務(wù),然後告訴用戶使用上出現(xiàn)問(wèn)題。打印機(jī)過(guò)濾程序又稱為打印機(jī)定義的接口腳本,存放在/usr/spool/lp/bin。
安裝和配置打印機(jī)
要把打印機(jī)接到并行埠(Parallel Port)上,SCO UNIX System V 支持兩個(gè)物理并行設(shè)備(/dev/lp[0-2])。當(dāng)用主并行埠時(shí),用 LP0 或 LP1,中斷向量為 7。第二個(gè)并行埠,/dev/lp2,中斷向量同為 7。
要把打印機(jī)接在串行埠(Serial Port)上,最好接上智能卡工作,打印機(jī)能用任意有效串行埠名聯(lián)系。若不要求硬件流控制,可以使用非調(diào)制解調(diào)器控制埠名。另一方面,可以從終端輔助埠上做局部打印,指令 lprint (C)使用戶從附在終端上的打印機(jī)上打印。
安裝打印機(jī)
要安裝打印機(jī),先找一個(gè)未用的串行線路接上打印機(jī),連好導(dǎo)線,打開打印機(jī)開關(guān),檢查硬件連接。然後,調(diào)用 sysadmsh 菜單或 Print Manager 上,加入打印機(jī),用合適的信息填好格式,指定打印機(jī)的 Class,若所指定的不存在,就建立一新 Class,包含接口腳本路徑名。許多打印機(jī)都能用standard 接口腳本。
打印機(jī)管理
修改打印機(jī)配置時(shí),可以增加或撤消目的地;改變打印機(jī)接口腳本、設(shè)備等;以及改變默認(rèn)打印機(jī)目的地。管理打印機(jī)調(diào)度時(shí),有幾種選項(xiàng)需要注意: -Stop:為實(shí)現(xiàn)某種打印機(jī)維護(hù),必需將假脫打印機(jī)轉(zhuǎn)換成 off。 -Begin:假脫機(jī)轉(zhuǎn)換成 on。 -Accept :允許把打印請(qǐng)求送往打印機(jī)或 class 中。 -Reject:阻止請(qǐng)求假脫機(jī)打印。 -Enable:允許從打印機(jī)或 class 上打印。 -Disable:阻止打印,但允許假脫機(jī)出現(xiàn)。
每個(gè)打印請(qǐng)求都會(huì)賦予一個(gè)優(yōu)先數(shù),決定何時(shí)打印,優(yōu)先數(shù)據(jù)取值范圍為 0(最高)到 39 (最低)。默認(rèn)優(yōu)先數(shù)值同樣是 20。所有打印請(qǐng)求或單個(gè)打印請(qǐng)求都能移到不同的隊(duì)列或打印機(jī)上,若打印機(jī)的隊(duì)列阻塞或打印機(jī)不能用,就要移去打印請(qǐng)求;打印機(jī)要維護(hù),也要移去打印請(qǐng)求。如果已移去了所有請(qǐng)求,這個(gè)打印機(jī)就不再接受新請(qǐng)求,直到打印機(jī)啟用為止。
要清理打印機(jī)請(qǐng)求,先要指出打印機(jī)或請(qǐng)求 ID ,若指定了打印機(jī),則當(dāng)前正在打印的作業(yè)也被清除,但是,不能使用通配符去匹配清理打印請(qǐng)求。
第十一講:TCP/IP 管理 文:Santa Cruz Operation,Inc.
IP(Internet Protocol)地址是 TCP/IP 網(wǎng)上為主機(jī)之間數(shù)據(jù)選擇路徑(交換)的基礎(chǔ),但是,用戶通常不甚喜歡使用由數(shù)字組成的 IP 地址,而比較喜歡使用多由英文字母組成的主機(jī)名字--URL(Uniform Resource Location)。不過(guò),主機(jī)名字必需映像到 IP 地址,而方法就是通過(guò) /etc/hosts文件完成。
配置 /etc/hosts
/etc/hosts 的格式是:地址--名字--別名。 例如: 127.0.0.1 localhost localhost 132.147.18.1 vision vision.sco.com
IP 地址必需是一行上的第一項(xiàng),在它前面不應(yīng)有任何字符,例如空格符或制表符;名字是簡(jiǎn)單的主機(jī)名字;別名則在很多情況下都不需要,但是,全限主機(jī)名字、簡(jiǎn)單主機(jī)名字和轄區(qū)名字都?xì)w入別名之列。
檢測(cè) TCP/IP 配置
TCP/IP 協(xié)議的軟件部份包括 TCP/IP 協(xié)議層架的頂三級(jí),即應(yīng)用級(jí)(Application Protocol)、傳送級(jí)(Transport Protocol)和網(wǎng)際網(wǎng)級(jí)(Internet Protocol)。特定的主機(jī)名字”Localhost”是特殊網(wǎng)絡(luò)”loopback”上的本地主機(jī)的別名。要檢測(cè) TCP/IP 協(xié)議層架的軟件部份,使用 ping 指令: #ping localhost 如果 Ping localhost 失敗,則使用 netstat -i[n],檢查網(wǎng)絡(luò)接口的狀況,顯示網(wǎng)絡(luò)接口上分組傳輸?shù)慕y(tǒng)計(jì)訊息,指令如下: #netstat -i[n] n 選項(xiàng)強(qiáng)行顯示編號(hào),而不是名字。netstat 查看自環(huán)驅(qū)動(dòng)器 lo0 ,如果 lo0 失敗,則在 /etc/tcp 中”ifconfig lo0”行指示壞了或有錯(cuò)誤。
檢測(cè) TCP/IP 硬件
審核引導(dǎo)過(guò)程中,會(huì)對(duì)所職別的網(wǎng)絡(luò)接口產(chǎn)生的配置報(bào)告,而TCP/IP 協(xié)議的硬件部分包括 TCP/IP 協(xié)議層架的底兩級(jí),即網(wǎng)絡(luò)接口級(jí)和物理/硬件級(jí)。對(duì)網(wǎng)上另一主機(jī)的任何通訊都是在「物理」網(wǎng)絡(luò)接口上傳輸,并不會(huì)引起數(shù)據(jù)傳輸?shù)健缸原h(huán)」網(wǎng)絡(luò)上。使用 ping 指令檢測(cè) TCP/IP 協(xié)議層架的硬件部份。 #ping hostname 或 #ping IP-address
如果 ping 指令失敗,則改用 netstat -i[n] 審核網(wǎng)絡(luò)接口。了解 netstat -i 的輸出 如果遠(yuǎn)地主機(jī)上使用 ping 之後,Opkts 和 Ipkts 仍然是零,那麼,網(wǎng)絡(luò)接口大概使用了不同的中斷(Interrupt),而不是它的設(shè)備驅(qū)動(dòng)程序。如果 Ipkts 不是零,而 Opkts 等於Oerrs,那麼,網(wǎng)卡的 I/O 地址可能不正確。如果 Ipkts 是零,而 Opkts 等於 Oerrs ,那麼,可能是網(wǎng)絡(luò)電纜連接的不合格。通過(guò)用 Opkts 除 Cloois ,再用 100 乘所得的結(jié)果,計(jì)算沖突的百份比。如果沖突的百份比少於百份之五到十,那麼,所有網(wǎng)絡(luò)接口是有效運(yùn)行。如果 ping 失敗,并查出網(wǎng)絡(luò)接口有問(wèn)題,那麼,就該驗(yàn)證網(wǎng)絡(luò)介質(zhì)操作。
調(diào)整 TCP/IP 的核心參數(shù)
沒(méi)有足夠的流資源(Stream Parameter),網(wǎng)絡(luò)程序是不能進(jìn)行通訊;流資源不充份的話,經(jīng)常會(huì)導(dǎo)致較慢的吞吐率。
要核查流資源,使用 netstat -m ;也可以使用 crash 指令考察流資源,在出現(xiàn) crash 發(fā)出的提示符'>”時(shí),打入”strstat”。如果在 FAIL 列的下面有不等於零的項(xiàng)目,那麼,同一行中的ITEM 的項(xiàng)目可能需要調(diào)整。如果 FAIL 列下的數(shù)目大於或等於TOTAL 列中數(shù)目的百份之十,該資源每次應(yīng)增加一或二,但不能將該數(shù)目加倍。
由於流資源使用 RAM,當(dāng)增加流資源時(shí),應(yīng)加倍小心。用戶亦可以使用 configure 或sysadmsh 增加特定的流資源,重新連接核心或重新引導(dǎo)。
限制通過(guò) ftp 訪問(wèn)系統(tǒng)的權(quán)限
對(duì)於不想令其使用 ftp 跨網(wǎng)訪問(wèn)系統(tǒng)的人,可以通過(guò)建立/etc/ftpusers 文件和設(shè)立系統(tǒng)帳戶名字的方法,阻止他獲得利用 ftp 訪問(wèn)系統(tǒng)的權(quán)限。
如果 /etc/ftpusers 不存在的話,先要建立。在單獨(dú)的行上,加上系統(tǒng)帳戶的名字,表明不能從網(wǎng)中其它系統(tǒng)使用 ftp 訪問(wèn)該系統(tǒng),在安全系統(tǒng)中,不允許 ftp 訪問(wèn)用戶權(quán)和 uucp,列出任何其限制使用 ftp 的用戶名字。
第十二講:使用 TCP/IP 文:Santa Cruz Operation,Inc.
向遠(yuǎn)地注冊(cè)的能力非常有用,它讓我們不用到遠(yuǎn)地系統(tǒng)所在處,就能運(yùn)行遠(yuǎn)地主機(jī)上的程序,執(zhí)行遠(yuǎn)地系統(tǒng)管理,有兩道指令可用於遠(yuǎn)地主機(jī)注冊(cè),就是 rlogin 和 telnet。
使用 rlogin 向遠(yuǎn)地主機(jī)注冊(cè)
rlogin 允許向具有 UNIX 作業(yè)系統(tǒng)和 TCP/IP 協(xié)議的任何系統(tǒng)注冊(cè),而 rlogin 只能注冊(cè)到 UNIX 作業(yè)系統(tǒng)環(huán)境,指令如下: $rlogin remot-host-name 要避免 rlogin 因沒(méi)有提供遠(yuǎn)地主機(jī)上的同名帳戶,可以使用下述指令: $rolgin remote-host-name -1 remote-user-name -1 選項(xiàng)用於指出遠(yuǎn)地用戶帳戶。
要中止 rlogin ,則要打入 ~.,并按 Enter/Return>鍵;亦可使用logout 或 exit 指令。
使用 telnet 向遠(yuǎn)地主機(jī)注冊(cè)
不管其作業(yè)系統(tǒng)類型,只要能支援 TCP/IP 協(xié)議,都可以使用telnet 指令,允許注冊(cè)。 $telnet hostname 或 $telnet ip-address
使用 ftp 復(fù)制或傳送文件
ftp(File Transfer Protocol)允許用戶對(duì)遠(yuǎn)地主機(jī)復(fù)制文件,用戶毋須考慮作業(yè)系統(tǒng)類型,即能向或從任何具有 TCP/IP 的系統(tǒng)復(fù)制文件。ftp指令允許復(fù)制目錄中的一個(gè)文件或所有文件,但不能復(fù)制多層次目錄。使用 ftp時(shí),必需在遠(yuǎn)地主機(jī)上設(shè)有帳戶。當(dāng) ftp 注冊(cè)到遠(yuǎn)地系統(tǒng)時(shí),并未得到 shell ,而是通過(guò) ftp 指令解釋程序同遠(yuǎn)地主機(jī)進(jìn)行通訊。 $ftp remote-host-name 或 $ftp remote-host-ip-address 一旦注冊(cè)成功,就會(huì)出現(xiàn) ftp 指令解釋程序的提示。 ftp> 用戶可以在此,使用打開指令連接主機(jī):ftp>open remote-host-name 復(fù)制某一文件回自己的系統(tǒng)中,則用:ftp>get filename 如果只想傳送某一文件往遠(yuǎn)地主機(jī),則用:ftp>put filename 需要復(fù)制遠(yuǎn)地主機(jī)的全部文件進(jìn)入自己的系統(tǒng)內(nèi),可以使用如下指令:ftp>mget * 相反,如果想傳送自己的文件往遠(yuǎn)地主機(jī),則使用如下指令:ftp>mput *
rcmd
rcmd 允許用戶不必向遠(yuǎn)地主機(jī)注冊(cè),而直接運(yùn)行該主機(jī)上的指令,實(shí)際上,也要進(jìn)行注冊(cè),只不過(guò)用戶毋須作其它操作。當(dāng)使用 rcmd在遠(yuǎn)地主機(jī)上運(yùn)行任何指令時(shí),其輸出的默認(rèn)設(shè)備就會(huì)被更改為終端。 $rcmd remote-host-name man sh 請(qǐng)求特殊終端處理的指令,將不含設(shè)備自身的功能,因?yàn)閷?duì)遠(yuǎn)地指令沒(méi)有定義終端的類型,要求在遠(yuǎn)地主機(jī)上配置受托訪問(wèn)。要列表輸出遠(yuǎn)地主機(jī)上磁盤的利用情況,則使用下述指令: $rcmd remote-host-name df
要列表輸出遠(yuǎn)地主機(jī)上的目錄,使用如下指令: $rcmd remote-host-name ls /usr/games
要把遠(yuǎn)地主機(jī)上的文件備份到遠(yuǎn)地主機(jī)上的袖珍磁帶內(nèi)時(shí),指令如下: #rcmd remote-host-name tar cvf /dev/rct0/usr 或 #rcmd remote-host-name 'find /usr -depth -print|cpio -oc> /dev/rct0
要把本地系統(tǒng)上的文件備份到遠(yuǎn)地主機(jī)上的袖珍磁帶內(nèi)時(shí),使用下述指令: #tar cvf -/usr|rcmd remote-host-name dd of=/dev/rct0 或 #find /usr -depth -print|cpio -oc|rcmd remote-host-name dd of=/dev/rct0
另一方面,如果要把遠(yuǎn)地主機(jī)上的文件備份到本地系統(tǒng)上的袖珍磁帶內(nèi)時(shí),可以使用如下指令: #rcmd remote-host-name 'tar cvf -/usr' > /dev/rct0 或 #rcmd remote-host-name 'find /usr -depth -print|cpio -oc' > /dev/rct0?
