操作系統(tǒng)應(yīng)用課件_第1頁
操作系統(tǒng)應(yīng)用課件_第2頁
操作系統(tǒng)應(yīng)用課件_第3頁
操作系統(tǒng)應(yīng)用課件_第4頁
操作系統(tǒng)應(yīng)用課件_第5頁
已閱讀5頁,還剩430頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

操作系統(tǒng)應(yīng)用第一章概論操作系統(tǒng)是如何工作的微軟操作系統(tǒng)緒論UNIX操作系統(tǒng)緒論Linux操作系統(tǒng)緒論操作系統(tǒng)的第一個(gè)工作--啟動(dòng)和結(jié)束程式操作系統(tǒng)的第二個(gè)工作--用戶程式對(duì)操作系統(tǒng)的調(diào)用操作系統(tǒng)的第三個(gè)工作--對(duì)常用基本操作提供現(xiàn)成程式操作系統(tǒng)的第四個(gè)工作--解決效率和安全的問題第一節(jié)操作系統(tǒng)是如何工作的OS工作1:負(fù)責(zé)啟動(dòng)和結(jié)束程式

程式的六種啟動(dòng)方式

滑鼠方式啟動(dòng)

命令方式啟動(dòng)

批方式啟動(dòng)

程式中啟動(dòng)方式

純硬體啟動(dòng)方式

自啟方式(OS本身的啟動(dòng)方式)

程式的兩種結(jié)束方式

正常結(jié)束

非正常結(jié)束程式的啟動(dòng)程式執(zhí)行的兩個(gè)前提1.程式在內(nèi)存中2.PC被置為程式在內(nèi)存的入口地址程式由誰、以何種方式來啟動(dòng)和裝入?這兩個(gè)問題的答案形成六種啟動(dòng)方式。程式第1種啟動(dòng)方式:滑鼠方式啟動(dòng)簡單形象免記交互性強(qiáng)實(shí)現(xiàn)相對(duì)繁瑣些回應(yīng)相對(duì)慢些操作有時(shí)比命令方式慢(帶參數(shù)的非交互程式時(shí),例如格式化盤)程式第2種啟動(dòng)方式:命令方式通過鍵入程式名(及參數(shù))來啟動(dòng)程式。例如:C>FORMATA:或#mkfs/dev/fd1命令方式在不同OS下的不同體現(xiàn):LINUX、UNIX、DOS下:命令提示符與命令行WINDOW下:

開始

運(yùn)行:命令行窗口

開始

程式

MSDOS:MSDOS窗口命令方式的實(shí)現(xiàn):命令解釋器(程式)命令方式的特點(diǎn)和評(píng)價(jià):過去最常用的啟動(dòng)方式需記程式名和位置

交互性較強(qiáng)有時(shí)操作比滑鼠方式快(需參數(shù)的非交互程式,如格式化盤)命令啟動(dòng)方式的工作過程用戶使用過程內(nèi)部實(shí)現(xiàn)過程關(guān)於命令方式的幾個(gè)思考問題提問1:既然開機(jī)通電狀態(tài)任一時(shí)刻都有程式在運(yùn)行,或者說是有指令在執(zhí)行,那麼在PC上當(dāng)C>後空(即當(dāng)游標(biāo)緊挨在C>後閃)而操作者走開已久未歸時(shí),機(jī)器上是在運(yùn)行程式嗎?如果是的話,是什麼程式?提問2:當(dāng)你為了以參數(shù)P執(zhí)行程式A,而在C>後打入一條命令“AP回車”,從你開始打命令到打下了命令尾的回車,直到程式A內(nèi)的第一條指令執(zhí)行前,電腦在做些什麼?提問3:(如PC機(jī)上)從你的程式的最後一條指令執(zhí)行完到下一C>出現(xiàn)之間,電腦在做些什麼?程式第3種啟動(dòng)方式:批方式批方式是指將若干條命令放在一個(gè)檔中,該檔可以在需要時(shí)象程式一樣被啟動(dòng)執(zhí)行,其執(zhí)行過程是由電腦自動(dòng)連續(xù)順序地執(zhí)行該檔中的這組命令。引例:

批方式的實(shí)現(xiàn)和工作過程:

有關(guān)概念:批文件(腳本檔或程式;SHELL程式或檔(SHELLscript)),作業(yè)與作業(yè)步批方式的特點(diǎn)和用途:

批文件的名字與位置:少數(shù)由系統(tǒng)規(guī)定,多數(shù)由用戶自定批方式之引例(教材P71)#!/bin/sh#例題

checkerr.shdate>>datelogiftest-rerrorfile

thencaterrorfile>>datelogrm

errorfile

elseecho“Noerrorthishour”>>datelogfi批方式的實(shí)現(xiàn)

(通常由命令解釋器實(shí)現(xiàn))批方式的特點(diǎn)和用途批方式的優(yōu)點(diǎn):程式間可以連續(xù)執(zhí)行,無需人工干涉。命令可以設(shè)計(jì)成有順序、分支和迴圈控制的形式,使程式可以組合執(zhí)行。批方式的用途:把現(xiàn)有的程式組合起來實(shí)現(xiàn)更複雜的功能特別的自動(dòng)執(zhí)行批文件(放在根目錄下或用戶主目錄下),用來自動(dòng)執(zhí)行每次開機(jī)或登錄時(shí)的例行工作,例

啟動(dòng)一些集成軟體或一些參數(shù)複雜的軟體,簡單方便,不必要求用戶瞭解相應(yīng)啟動(dòng)步驟和參數(shù),例

自動(dòng)批文件例MSDOS下自動(dòng)批文件AUTOEXEC.BAT在開機(jī)時(shí)第一個(gè)命令提示符出現(xiàn)前自動(dòng)執(zhí)行。

pathc:\dosprompt$p$g通過批文件啟動(dòng)中文環(huán)境的例子:MSDOS下通過.BAT檔而啟動(dòng)一個(gè)中文環(huán)境。

C:\UCDOS\RD16%1C:\UCDOS\KNL%2C:\UCDOS\PYc:\ucdos\wb程式第4種啟動(dòng)方式:

程式中啟動(dòng)方式What:在一個(gè)程式中啟動(dòng)另一程式Why:編譯器、併發(fā)程式設(shè)計(jì)、窗口程式等hoW:被啟動(dòng)的程式名由用戶鍵入,或由啟動(dòng)方預(yù)存或動(dòng)態(tài)計(jì)算產(chǎn)生

特點(diǎn)與作用:實(shí)際應(yīng)用中經(jīng)常需要程式中啟動(dòng)方式便於程式的靈活方便啟動(dòng)與動(dòng)態(tài)自動(dòng)啟動(dòng)前三種啟動(dòng)方式在內(nèi)部實(shí)現(xiàn)時(shí)最終都是由程式中啟動(dòng)方式實(shí)現(xiàn)的程式中啟動(dòng)方式的工作過程程式第5種啟動(dòng)方式:

純硬體啟動(dòng)方式最早期的電腦工作方式工作過程:

為什麼那時(shí)用、而現(xiàn)在不用?純硬體裝入要求用戶程式順序連續(xù)存放,且一個(gè)存儲(chǔ)介質(zhì)限存一個(gè)檔,否則硬體太複雜純硬體啟動(dòng)方式下,每運(yùn)行一個(gè)程式都要經(jīng)過人工判斷和操作,效率低且不靈活硬體有限的複雜程度不能對(duì)讀入的程式和數(shù)據(jù)做充分的正確性檢查純硬體啟動(dòng)方式的工作過程程式第6種啟動(dòng)方式:自啟自啟方式是指由程式自身來裝入與啟動(dòng)自己工作過程:

引導(dǎo)程式和程式主體特點(diǎn)與作用:早期用的較多,現(xiàn)除OS外已基本不用要求順序連續(xù)存放,且獨(dú)佔(zhàn)一個(gè)存儲(chǔ)介質(zhì)編程麻煩,操作麻煩,存放受限保密性好,佔(zhàn)用記憶體少,啟動(dòng)快,獨(dú)立性強(qiáng),適應(yīng)性強(qiáng),相容性強(qiáng)所有操作系統(tǒng)都是自啟程序自啟與自動(dòng)批文件的比較回小節(jié)首自啟方式的工作過程程式結(jié)束引問:程式執(zhí)行完最後一條指令後,下一條執(zhí)行什麼指令?——這與程式是否正常結(jié)束有關(guān)程式結(jié)束正常結(jié)束非正常結(jié)束思考問題:自啟程序如何結(jié)束?非正常結(jié)束處理及監(jiān)控需要、運(yùn)行幫助等原因,導(dǎo)致OS須常駐記憶體。對(duì)比分析表正常結(jié)束與非正常結(jié)束對(duì)比分析OS工作2:用戶程式中對(duì)OS的調(diào)用

—系統(tǒng)調(diào)用(systemcall)和中斷(interrupt)

系統(tǒng)調(diào)用的功能內(nèi)容、作用和使用方式

系統(tǒng)調(diào)用指令的實(shí)現(xiàn)及其特殊性

中斷一.系統(tǒng)調(diào)用的功能、作用和用法系統(tǒng)調(diào)用就是用戶程式對(duì)操作系統(tǒng)的調(diào)用,其功能內(nèi)容是與中斷一起完成程式中所有硬件相關(guān)應(yīng)用無關(guān)工作,例

系統(tǒng)調(diào)用的作用:

為什麼我很少接觸系統(tǒng)調(diào)用?(高級(jí)語言程式員觀點(diǎn))--函數(shù)與系統(tǒng)調(diào)用(OS)的關(guān)係:

系統(tǒng)調(diào)用指令的功能內(nèi)容列舉系統(tǒng)調(diào)用包括:外存檔與目錄的讀寫各種I/O設(shè)備的使用在一個(gè)程式中啟動(dòng)另一個(gè)程式查詢和統(tǒng)計(jì)系統(tǒng)資源使用情況硬體相關(guān)應(yīng)用無關(guān)涉及物理地址、設(shè)備介面寄存器、設(shè)備介面緩衝區(qū)代碼量大,需硬體知識(shí)需隨硬體的變化而變化所有應(yīng)用、用戶共需工作過程雷同與應(yīng)用無直接關(guān)係函數(shù)(庫)與系統(tǒng)調(diào)用(OS)的關(guān)係通常僅組合語言程式員才會(huì)接觸到系統(tǒng)調(diào)用,而高級(jí)語言程式員通常接觸不到系統(tǒng)調(diào)用,只接觸函數(shù)。函數(shù)與系統(tǒng)調(diào)用(OS)的層次關(guān)係

函數(shù)庫完成的工作通常是硬體無關(guān)、應(yīng)用相關(guān)的;系統(tǒng)調(diào)用(OS)完成的工作是硬相應(yīng)無的。函數(shù)實(shí)現(xiàn)代碼中硬相應(yīng)無工作通過系統(tǒng)調(diào)用實(shí)現(xiàn)

特殊情況:系統(tǒng)調(diào)用函數(shù)庫函數(shù)與系統(tǒng)調(diào)用(OS)的層次關(guān)係高級(jí)語言中對(duì)操作系統(tǒng)的“間接”調(diào)用二.系統(tǒng)調(diào)用指令的實(shí)現(xiàn)及其特殊性

機(jī)器、OS與系統(tǒng)調(diào)用指令間的關(guān)係

系統(tǒng)調(diào)用指令的實(shí)現(xiàn)機(jī)制(借助中斷機(jī)制)

系統(tǒng)調(diào)用指令的特殊性機(jī)器、OS和系統(tǒng)調(diào)用指令間的關(guān)係每種OS提供幾十至幾百個(gè)系統(tǒng)調(diào)用每種機(jī)器都提供一對(duì)系統(tǒng)調(diào)用與返回指令:SC指令用於從AP進(jìn)入OS,SC返回指令用於從OS返回APSC指令由機(jī)器提供,而其調(diào)用的功能由OS提供機(jī)器、OS和系統(tǒng)調(diào)用指令間的關(guān)係同一種機(jī)器上同一OS中,不同SC用同一條SC指令,但指令參數(shù)(功能號(hào)或寄存器)約定不同不同機(jī)器,若CPU同則SC指令名(碼)同,若不同CPU則SC指令名(碼)不同。同一機(jī)器不同OS中SC指令(格式)相同(但功能號(hào)對(duì)應(yīng)關(guān)係不同,參數(shù)含義不同)同一種操作系統(tǒng)在不同機(jī)器上的不同版本,其系統(tǒng)調(diào)用指令是不同的三.中斷中斷是指電腦在執(zhí)行程式過程中,當(dāng)遇到需馬上處理的事件時(shí)暫停當(dāng)前正在運(yùn)行的程式,轉(zhuǎn)去執(zhí)行有關(guān)服務(wù)程式,處理完後自動(dòng)返回原程式

為什麼用戶程式有時(shí)需以中斷方式進(jìn)入OS中斷的實(shí)現(xiàn)機(jī)制:中斷的檢測、中斷向量表、多級(jí)中斷與中斷遮罩、可搶先與不可搶先中斷類型:外部與內(nèi)部中斷,中斷和異常中斷機(jī)制的流程變化(圖)OS工作3:為常用操作提供實(shí)用程式常用基本操作:查看磁片內(nèi)容,檔複製,檔刪除與移動(dòng),目錄建刪等。操作系統(tǒng)所提供的實(shí)用程式Windows的資源管理器現(xiàn)代UNIX和LINUX提供上千條命令內(nèi)部命令與外部命令OS工作4:解決效率和安全問題OS負(fù)責(zé)電腦使用中的效率和安全問題中的硬相應(yīng)無內(nèi)容操作系統(tǒng)採用了大量技術(shù)來提高機(jī)器效率和人的效率,並確保安全問題併發(fā),多任務(wù),多用戶,分時(shí)多道,虛存,檔或設(shè)備的共用技術(shù),鏈接,假脫機(jī)等OS的總體運(yùn)行過程第二節(jié)微軟操作系統(tǒng)緒論

發(fā)展史

Windows2000系統(tǒng)的主要特徵

Windows2000系統(tǒng)的基本結(jié)構(gòu)

微軟OS產(chǎn)品的發(fā)展:Windows系列及DOSWindows2000系統(tǒng)的主要特徵基於PC的客戶/伺服器OS平臺(tái)用戶介面友好具有全面的Internet和應(yīng)用軟體服務(wù)支持多用戶多任務(wù)的運(yùn)行具有網(wǎng)路特性Windows2000系統(tǒng)的基本結(jié)構(gòu)系統(tǒng)支持進(jìn)程服務(wù)進(jìn)程應(yīng)用程式環(huán)境子系統(tǒng)子系統(tǒng)動(dòng)態(tài)鏈接庫用戶態(tài)執(zhí)行體核心設(shè)備驅(qū)動(dòng)程式硬體抽象層圖形引擎核心態(tài)第三節(jié)UNIX操作系統(tǒng)緒論Unix系統(tǒng)概述發(fā)展史Unix系統(tǒng)的基本結(jié)構(gòu)

Unix操作系統(tǒng)概述多用戶操作系統(tǒng)目前三大主流操作系統(tǒng)之一跨越從PC到巨型機(jī)範(fàn)圍的唯一操作系統(tǒng)變種與克隆UNIX操作系統(tǒng)的發(fā)展Unix操作系統(tǒng)的基本結(jié)構(gòu)傳統(tǒng)UNIX系統(tǒng)是層次型結(jié)構(gòu)現(xiàn)代UNIX系統(tǒng)結(jié)構(gòu)多採用微內(nèi)核,體系結(jié)構(gòu)採用Client/Server方式核心構(gòu)成用戶程式系統(tǒng)調(diào)用介面程式庫檔子系統(tǒng)緩存硬體控制硬件設(shè)備驅(qū)動(dòng)字元塊進(jìn)程控制子系統(tǒng)IPC調(diào)度程式存儲(chǔ)管理陷入核心部分第四節(jié)Linux操作系統(tǒng)緒論自由軟體Linux概述Linux的特點(diǎn)Linux的未來Linux概述多任務(wù)多用戶的自由OSUNIX的克?。╟lone)全球用戶上千萬內(nèi)核版本奇偶最新內(nèi)核版本2.4(2.6即將發(fā)佈)發(fā)行套件版本Linux的特點(diǎn):①免費(fèi)、源代碼開放②具有出色的穩(wěn)定性和速度性能③功能完善,尤其網(wǎng)路功能豐富④硬體需求低⑤用戶程式眾多(而且大部分是免費(fèi)軟體),硬體支持廣泛,程式相容性好第一節(jié)UNIX系統(tǒng)的基本常識(shí)控制臺(tái)和終端機(jī)控制臺(tái)(console):與主機(jī)相連,顯示系統(tǒng)引導(dǎo)、系統(tǒng)運(yùn)行、多用戶運(yùn)行、系統(tǒng)錯(cuò)誤警告等資訊;終端(terminal):是普通用戶的操作臺(tái),顯示本用戶登錄、與系統(tǒng)交互的資訊。2.用戶和帳戶管理帳戶(Account)一個(gè)電腦化的記錄,其中包含了用戶在Unix系統(tǒng)中註冊(cè)時(shí)所有必要的資訊。超級(jí)用戶(root)和普通用戶Passwd檔和ShadowPassword檔增加用戶(useradd命令)刪除用戶(userdel命令)對(duì)用戶進(jìn)行空間限制(quota命令)其他相關(guān)命令admintool

超級(jí)用戶帳戶擁有系統(tǒng)最高許可權(quán),可以執(zhí)行一個(gè)Unix系統(tǒng)中所有的命令,讀取所有檔;超級(jí)用戶擁有的特權(quán)如下:更改檔主人設(shè)置系統(tǒng)時(shí)鐘增加或刪除電腦資源使用的限制管理檔系統(tǒng)管理所有用戶的進(jìn)程建立設(shè)備檔指定網(wǎng)路工作介面關(guān)閉系統(tǒng)普通用戶帳戶管理自己的檔和目錄。

Passwd檔

系統(tǒng)認(rèn)可的用戶的清單,它建立在/etc目錄中。這個(gè)檔的每一行對(duì)應(yīng)於一個(gè)用戶。這個(gè)檔是文本檔可用任何適當(dāng)?shù)木庉嬈骶庉?。?biāo)準(zhǔn)的步驟是在編輯passwd檔之前,先將它拷貝出來,這樣在出錯(cuò)的時(shí)候很容易將它恢復(fù)。

username:x:uid:gid:comment:homedir:loginshell

(1)

(2)(3)(4)(5)(6)(7)例如:zhang:x:103:100:zhanghongguang:/home/zhang:/bin/csh(1):用戶名(2):口令,加密顯示(3):用戶標(biāo)識(shí),低於100的UID通常用作系統(tǒng)使用的專用UID(4):用戶組標(biāo)識(shí)(5):用戶註冊(cè)描述(6):用戶主目錄(7):進(jìn)入系統(tǒng)後第一步完成的工作

Passwd檔的格式:

ShadowPassword檔

出於特別的安全型的需要,Unix系統(tǒng)提供的,用來存放用戶加密口令的檔,只有超戶有讀取的權(quán)力,必要時(shí)超級(jí)用戶可以強(qiáng)制修改該檔。這個(gè)檔通常為/etc/shadow檔。Shadow檔的格式:

username:password:lastchg:min:max:warn:inactive:expire(1)(2)(3)(4)(5)(6)(7)(8)(1):用戶名(2):加密後的口令(3):口令最後修改日期(4):可修改口令的最少天數(shù)(5):可修改口令的最多天數(shù)(6):口令到期提前提示天數(shù)(7):允許不登錄天數(shù)(8):口令到期確定日期useradd命令格式:useradd[option]用戶名userdel命令格式:userdel

[-r]用戶名注意:確信用戶的有用數(shù)據(jù)資訊已備份出來;對(duì)於已經(jīng)離開的用戶應(yīng)及時(shí)將他的帳戶凍結(jié)或刪除。-d主目錄

-g用戶組-u

uid-sShell…例:#useradd–d/home/stud–gusers–u101–s/bin/bashstudpasswd命令(教材P12)設(shè)置用戶密碼,格式:

passwd

[用戶名]su命令擁有其他用戶的許可權(quán),格式:

su[-][用戶名][arg]who命令(教材P23)顯示系統(tǒng)當(dāng)前的線上用戶資訊w命令和last命令-c“commandargs”3.用戶組

/etc/group檔存儲(chǔ)與用戶帳戶相關(guān)的組資訊,檔格式:

groupname:password:gid:user-list用戶組名稱用戶組口令用戶組標(biāo)識(shí)組中的用戶列表

管理命令

groupadd命令格式:groupadd[-g

gid]用戶組名

groupdel命令格式:groupdel用戶組名4.用戶的系統(tǒng)登錄與退出用戶進(jìn)入系統(tǒng):login:zhangpasswd:******用戶退出UNIX系統(tǒng):%exit或者輸入:Ctrl-d/logout

也可完成系統(tǒng)註銷,系統(tǒng)提示:login:用戶名口令上一次你登錄的情況系統(tǒng)提示符:%或$符第二節(jié)UNIX的shell

作為OS的外殼,是用戶和操作系統(tǒng)之間的介面。是命令語言、命令解釋程式及程式設(shè)計(jì)語言的統(tǒng)稱。廣泛使用的UNIXShell:

BournShell:縮寫為sh,命令提示符$Cshell:縮寫為csh,命令提示符%

kornShell:縮寫為ksh,命令提示符$bashAgainpdkshtcsh具有csh的特徵,使用bsh的語法保留命令的歷史;任務(wù)控制;命令編輯等

Shell命令和DOS命令的區(qū)別在DOS下,檔案名必須遵循8.3格式的規(guī)則;而UNIX中可以使用長文件名。UNIX中區(qū)分大小寫。DOS環(huán)境中使用“\”作為路徑中目錄間的分割符;而UNIX中使用“/”。UNIX中以“.”開始的檔案名的檔被視為隱藏檔。DOS中是否可執(zhí)行檔由檔的擴(kuò)展名來區(qū)分;而UNIX中由檔的訪問許可權(quán)控制。DOS中命令參數(shù)(選項(xiàng))由“/”打頭給出;而UNIX中由“-”打頭。Linux中的Bash的特點(diǎn)和使用具有命令行編輯功能有內(nèi)建的幫助資訊具有命令補(bǔ)齊功能支持命令行中的通配符具有命令的歷史記錄history命令和.bash_history檔支持別名alias命令和unalias命令第三節(jié)

Unix系統(tǒng)中的命令命令執(zhí)行方式用命令行方式執(zhí)行執(zhí)行程式存放在shell環(huán)境的查詢路徑中,直接輸入執(zhí)行程式名;執(zhí)行程式不在shell環(huán)境的查詢路徑中,輸入執(zhí)行程式的全路徑名。

用圖形用戶介面執(zhí)行命令GUI提供更靈活的操作方式,linux中提供:GNOME/Enlightenment(缺省)

KDE(KDesktopEnviroment)2.命令輸入方式

UNIX命令格式command[-options][arguments]多命令行多個(gè)命令用“;”分割,OS順序執(zhí)行多行命令使用轉(zhuǎn)義符“\”例:%cd/usr/sbin;pwd;

ls–l例:%cchello_world.c-lxm-lxt-lx11–lm\

-ohello_world3.常用命令獲得聯(lián)機(jī)幫助的方法man命令(教材P22)

查找並顯示指定的Unix命令、函數(shù)、一些配置檔的參考手冊(cè)(我們通常稱之為man頁)。 格式:mannamehelp命令(教材P24)-help參數(shù)-a-l…目錄和文件操作pwd命令(教材P23)

顯示當(dāng)前的工作目錄,類似於DOS中無參數(shù)的cd命令。 格式:pwdls命令(教材P22)

列出指定的檔資訊或指定的目錄中的檔和子目錄清單。

格式:ls

[options][names]-alcd命令(教材P21)改變工作目錄,格式:cd

或cd

dirname(類似於DOS的cd)mkdir命令(教材P24)創(chuàng)建指定的新目錄,格式:mkdir[options]dirnames-p-m-i-r-f…rm命令刪除指定的檔或目錄,格式:rm

[options]dirfilenamesmv命令移動(dòng)/更名檔或目錄,移動(dòng)格式:mv

[options]srcnametargetname更名格式:mv

[options]srcnametargetdir移動(dòng)更名格式:mv

[options]srcnametargetdir/targetname-i-f-p-r…-i-fcp命令(教材P22)複製檔或目錄,格式:cp

[options]srcnametargetnamecat命令(教材P20)對(duì)指定的檔在標(biāo)準(zhǔn)輸出上顯示內(nèi)容或連接。格式:catfilename1filename2filename3…more命令分屏顯示指定的檔內(nèi)容,格式:more

[options]filename顯示完一屏後,可以鍵入一些命令動(dòng)態(tài)的根據(jù)需要選擇顯示的部分,其中:h 顯示各命令的幫助資訊head命令顯示指定檔開始部分的內(nèi)容,格式:head

[options]filename-numbertail命令顯示指定檔末尾部分的內(nèi)容,格式:tail

[+number或-number][options]filename-f-r…從第number行開始倒數(shù)followReversefind命令(教材P28)按條件在指定的目錄下查找檔或目錄。格式:find起始目錄

尋找條件

操作-name字串-mtime

天數(shù)-group

用戶組名-nogroup-nouser-a-o!…-print-ls-exec命令名稱{}-ok命令名稱{}例:%find/-namehosts-printgrep命令(教材P29)

按給定的模式搜索檔,並顯示所有包含模式的文本行,格式:

grep

[options]patternfil-v-l-i…

其他同組命令fgrep命令:搜索固定字串不能匹配正則運(yùn)算式,是快速搜索命令;egrep命令:支持完全正則運(yùn)算式搜索及快速演算法,是grep的擴(kuò)展形式。例:%grepapple/etc/hosts

%grep-vapple/etc/hosts

tar命令(教材P30)

tar命令是用來將檔歸檔到一個(gè)被稱為tar檔的檔中或從tar檔中取出檔。一個(gè)tar檔通常是磁帶,也可以是任一個(gè)檔。因此,tar命令即是Unix中磁帶拷貝的工具,也是檔打包、解包的工具。

如何拷貝檔到磁帶上或打包檔

tarcvf

tarfilefilenamefilename…c選項(xiàng)表示建立一個(gè)新檔案。v選項(xiàng)表示顯示所有被處理過的檔案名。f選項(xiàng)表示檔案將被寫進(jìn)指定的檔或設(shè)備中。

如何列出檔包或磁帶裏的檔tartvf

tarfile

t選項(xiàng)是列出磁帶中所有的檔。如何將檔添加到檔包或磁帶中

tarrvf

tarfilefilenamefilenamefilename…r選項(xiàng)表示檔將被添加到一個(gè)已存在的文檔的末尾。

如何從檔包或磁帶中恢復(fù)檔tarxvf

tarfile

x選項(xiàng)表示從檔案中取出檔。壓縮命令:compress和uncompress

gzip和gunzipRPM(RadHat

PakageManager)軟體安裝工具主要用於軟體的安裝升級(jí);安裝格式:rpm–ivh軟體包卸裝軟體包:rpm–e

軟體包查詢軟體包:rpm–q[查詢選項(xiàng)][資訊選項(xiàng)]驗(yàn)證軟體包:rpm–V[驗(yàn)證選項(xiàng)]其他date命令(教材P30)crontab命令檔系統(tǒng)管理命令進(jìn)程管理命令設(shè)備管理命令網(wǎng)路管理命令

….第四節(jié)系統(tǒng)的啟動(dòng)與關(guān)閉UNIX系統(tǒng)的啟動(dòng)什麼是引導(dǎo)?打開電腦,導(dǎo)致加載其操作系統(tǒng)的過程。UNIX啟動(dòng)的幾個(gè)過程加電後的PROM啟動(dòng)過程PROM自檢並裝入引導(dǎo)塊過程引導(dǎo)塊加載UNIX核心程式過程核心程式開始工作過程啟動(dòng)讀引導(dǎo)塊完成bootblk自舉由bootblk裝入內(nèi)核程式bootblk將程式計(jì)數(shù)器內(nèi)容換成內(nèi)核程式的起始地址內(nèi)核裝入根檔系統(tǒng)(檢查檔系統(tǒng))內(nèi)核在後臺(tái)啟動(dòng)init程式內(nèi)核自解壓內(nèi)核檢測硬體(顯卡、硬碟、軟碟、網(wǎng)路適配器等等),配置相應(yīng)的設(shè)備驅(qū)動(dòng)程式;輸出檢測資訊init切換到多用戶模式,啟動(dòng)

getty等進(jìn)程,等待用戶登錄,系統(tǒng)啟動(dòng)完成

系統(tǒng)啟動(dòng)流程用戶登錄、退出迴圈過程通過終端登錄通過網(wǎng)路登錄inetd進(jìn)程:處理所有網(wǎng)路登錄的進(jìn)程。daemon UNIX中的一種程式,用於打開特定端口,並等待進(jìn)入的連接。如果有連接接入,它就會(huì)創(chuàng)建一個(gè)用於接受該連接的子進(jìn)程,父進(jìn)程則繼續(xù)監(jiān)聽別的連接請(qǐng)求。開始init:fork+exec(“/sbin/getty”)getty:等待用戶getty:讀用戶名exec(“/bin/login”)login:讀密碼是否匹配login:exec(“/bin/sh”)sh:讀命令並執(zhí)行退出login:退出否是登錄的意義對(duì)用戶進(jìn)行身份驗(yàn)證;為用戶設(shè)置初始化環(huán)境;輸出用戶上次登錄的資訊,檢查用戶的電子郵件;在系統(tǒng)日誌檔中記錄用戶的登錄情況(失敗嘗試和成功登錄)utmp檔:記錄當(dāng)前已經(jīng)登錄的用戶,系統(tǒng)啟動(dòng)時(shí)會(huì)被清除,使用who、w等命令查看;wtmp檔:記錄所有成功的登錄,使用last命令查看。3.UNIX系統(tǒng)的關(guān)閉UNIX系統(tǒng)為什麼不能貿(mào)然地關(guān)閉電源?UNIX系統(tǒng)有一個(gè)磁片緩存區(qū),這個(gè)緩存區(qū)不是立即將所有數(shù)據(jù)寫入磁片的,而是隔段時(shí)間後,再將數(shù)據(jù)寫入磁片。因此,隨手關(guān)掉電源可能會(huì)導(dǎo)致緩存沒有回寫,磁片上的檔系統(tǒng)不完整;在UNIX的多任務(wù)系統(tǒng)中,可能有許多程式正置於後臺(tái)運(yùn)行,只有通過正確的關(guān)機(jī)順序,才可以保證所有的後臺(tái)進(jìn)程都能保存自己的數(shù)據(jù)。Linux中的關(guān)閉系統(tǒng)命令以root身份在根目錄下,運(yùn)行命令:shutdown-htime[warning-message]now+min例:#shutdown-h+10'Wewillinstallanewdisk.Systemshouldbebackon-lineinthreehours.'#Broadcastmessagefromroot(tty0)WedJul1620:18:362003…Wewillinstallanewdisk.Systemshouldbebackon-lineinthreehours.ThesystemisgoingDOWNforsystemhaltin10minitues!!Linux中重新啟動(dòng)系統(tǒng)的命令

shutdown-rnowUNIX中其他關(guān)閉系統(tǒng)的命令haltrebootinit0進(jìn)程號(hào)為1(即pid=1),完成系統(tǒng)的初始化,是系統(tǒng)中所有其他用戶進(jìn)程的祖先進(jìn)程。兩個(gè)相關(guān)檔:/sbin/init——系統(tǒng)初始化程式;/etc/inittab——系統(tǒng)初始化控制表,描述了系統(tǒng)初始化中的各種參數(shù)指標(biāo),例如init程式運(yùn)行的級(jí)別、進(jìn)程執(zhí)行的命令名、命令執(zhí)行的方法等。4.initinit的運(yùn)行級(jí)別0主要實(shí)施關(guān)閉系統(tǒng)1單用戶模式(系統(tǒng)管理模式)2多用戶模式3擴(kuò)展的多用戶模式,所有網(wǎng)路服務(wù)程式一起運(yùn)行4用戶自定義的,不常用5halt系統(tǒng)6重新啟動(dòng)系統(tǒng)到運(yùn)行級(jí)別3init的工作系統(tǒng)啟動(dòng)時(shí)的工作:檢查檔系統(tǒng);清除/tmp;分析inittab並根據(jù)需要或缺省的運(yùn)行級(jí)別來運(yùn)行/etc/rc.d目錄中的腳本,而每個(gè)腳本又運(yùn)行不同的服務(wù)程式。系統(tǒng)關(guān)閉時(shí)的工作:殺死所有用戶進(jìn)程;關(guān)閉所有後臺(tái)進(jìn)程;卸裝所有檔系統(tǒng)和交換區(qū);列印可以關(guān)機(jī)的資訊;停止處理器。系統(tǒng)運(yùn)行過程中的工作:確認(rèn)getty的正常運(yùn)行;收養(yǎng)“孤兒”進(jìn)程(父進(jìn)程已死的進(jìn)程)。Samba(教材P285)修改並測試samba配置檔

/etc/samba/smb.conf使用testparm命令檢查配置的正確性創(chuàng)建samba帳號(hào)並設(shè)置密碼啟動(dòng)samba服務(wù)

第五節(jié)Linux的安裝及其相關(guān)知識(shí)硬體是否相容?http://hardware.redhat.com/hcl/是否有足夠的硬碟空間?空間需求:Workstation:如果安裝GNOME或KDE,至少需要1.5GB;若GNOME和KDE都裝,至少要1.8GB。Server:不安裝圖形介面的最小安裝,至少要1.3GB;除了圖形介面外其餘都裝,至少要1.4GB;全裝,至少要2.1GB。Laptop:安裝GNOME或KDE,至少要1.5GB,兩者都裝,至少要1.8GB。Custom:最小安裝至少要350MB,所有軟體包都裝,至少3.7GB。在現(xiàn)有系統(tǒng)上安裝,需要一些可刪除的現(xiàn)有分區(qū)能夠騰出足夠的硬碟空間或足夠的未分區(qū)的空間來安裝Linux系統(tǒng)除此之外還需要額外的空間存放自己的數(shù)據(jù)。安裝方式直接使用系統(tǒng)光碟安裝具有可自啟的系統(tǒng)光碟,有光驅(qū),BIOS支持從光碟啟動(dòng)用軟碟啟動(dòng),從光碟安裝有光驅(qū)但BIOS不支持光碟啟動(dòng),有軟驅(qū)製作啟動(dòng)軟碟:一張格式化過的3吋空白軟碟使用dosutils目錄中的rawrite命令將images目錄中的boot.img引導(dǎo)映像檔傳輸?shù)杰浀?。使用軟碟啟?dòng),通過ftp網(wǎng)路安裝在局域網(wǎng)內(nèi)有一個(gè)放有RedHatLinux安裝樹的ftp伺服器製作啟動(dòng)軟碟一張格式化過的3吋空白軟碟在MS-DOS環(huán)境下使用dosutils目錄中的rawrite命令將images目錄中的bootnet.img引導(dǎo)映像檔傳輸?shù)杰浀?。C:\>d:D:\>cd\dosutilsD:\dosutils>rawriteEnterdiskimagesourcefilename:..\images\bootnet.imgEntertargetdiskettedrive:a:PleaseinsertaformatteddisketteintodriveA:andpress--ENTER--:沒有軟碟的安裝系統(tǒng)從MS-DOS啟動(dòng),運(yùn)行以下命令(假定光驅(qū)是D盤):C:\>d:D:\>cd\dosutilsD:\dosutils>autoboot.bat硬碟驅(qū)動(dòng)器:類型,標(biāo)籤、大小等,如:IDEhda=1.2GB分區(qū):分區(qū)圖及掛載點(diǎn),如:/dev/hda1=/home記憶體大?。喝纾?4M光驅(qū):介面類型,如:IDE(ATAPI)、SCSI網(wǎng)卡:製造商及型號(hào),如:3COM滑鼠:類型、協(xié)議及鍵數(shù),如:3鍵PS/2滑鼠顯示器:製造商、型號(hào)及廠商規(guī)格視頻卡:商標(biāo)、型號(hào)及VRAM的大小聲卡:商標(biāo)、晶片集和型號(hào)IP、DHCP和BOOTP的地址子網(wǎng)掩碼網(wǎng)關(guān)IP地址一個(gè)或多個(gè)DNS伺服器地址功能變數(shù)名稱主機(jī)名系統(tǒng)資訊滑鼠類型串口滑鼠:PS/2滑鼠:USB滑鼠:AT滑鼠:安裝系統(tǒng)後的配置修改命令/usr/sbin/kbdconfig命令/usr/sbin/mouseconfig/usr/sbin/setup命令磁片分區(qū)硬碟的基本概念未格式化過的新盤格式化後的磁片格式化:製作一個(gè)檔系統(tǒng)Block管理費(fèi)用:驅(qū)動(dòng)器上被用來存儲(chǔ)與檔系統(tǒng)有關(guān)的數(shù)據(jù)的空間1-14個(gè)檔存儲(chǔ)在硬碟上

碎段:已用的塊和未用的塊交錯(cuò)分佈。分區(qū)(partition)(Why&What)將一個(gè)磁片驅(qū)動(dòng)器變成多個(gè),即,每個(gè)分區(qū)都可以像一個(gè)獨(dú)立的磁片一樣被訪問。通過“分區(qū)表”實(shí)現(xiàn),分區(qū)表通常被保存在磁片的最前面,在任何檔系統(tǒng)或用戶數(shù)據(jù)之前。分區(qū)表項(xiàng)包括分區(qū)的起止點(diǎn)、分區(qū)的狀態(tài)(是否“活躍”)以及類型等資訊。例:分區(qū)中的分區(qū)——擴(kuò)展分區(qū)擴(kuò)展分區(qū)邏輯分區(qū)4個(gè)無限制為Linux系統(tǒng)分區(qū)空間的使用情況

使用未分區(qū)空間

使用可用的未使用分區(qū)

使用活躍分區(qū)中的空閒空間破壞性重分:非破壞性重分:fips基於Inter的分區(qū)的命名Unix中使用字母和數(shù)字的組合來指代磁片分區(qū)。Linux中的命名格式:

/dev/xxyN/dev/

所有設(shè)備檔所在的目錄名xx

分區(qū)所在磁片的類型,通常:hd(IDE)或sd(SCSI)y

標(biāo)明分區(qū)所在的設(shè)備,如:/dev/hda(第一個(gè)IDE磁片),/dev/sdb(第二個(gè)SCSI磁片)N

代表第幾個(gè)分區(qū),如/dev/hda3磁片分區(qū)與掛載點(diǎn)掛載(mounting):UNIX中將分區(qū)關(guān)聯(lián)到某一目錄的過程;被關(guān)聯(lián)的目錄稱為掛載點(diǎn)(mountpoint)。掛載的作用:使得起始於掛載點(diǎn)(目錄)的存儲(chǔ)區(qū)能夠被直接使用。Linux中應(yīng)有多少分區(qū)?自動(dòng)分區(qū)workstation:swap 1-2倍於記憶體大小

/boot 50M

/

取決於可用的磁片空間大小server:swap 1-2倍於記憶體大小

/ 384M

/usr

取決於可用的磁片空間大小

/var 256M

/boot 50M

/home

取決於可用的磁片空間大小

Laptop、Custom:同workstation自動(dòng)分區(qū)的選項(xiàng):RemoveallLinuxpartitionsonthissystemRemoveallpartitionsonthissystemKeepallpartitionsanduseexistingfreespace注:選擇“自動(dòng)分區(qū)”後也可進(jìn)行手工修改一.ed編輯器1.ed的基本情況產(chǎn)生於70年代,特點(diǎn):

介面陳舊,使用不方便在所有UNIX系統(tǒng)中通用匹配模式採用正則運(yùn)算式運(yùn)行速度快,佔(zhàn)用空間小2.使用ed的基本常識(shí)ed中包含的所有命令用字符表示,且命令前可輸入行號(hào)編輯時(shí)在檔副本上工作3.示例4.ed中的命令ed中命令由字元組成,命令前面可以冠以零個(gè)、一個(gè)或兩個(gè)行號(hào),命令格式為:

[addr1[,addr2]]command[parameter]

常用命令:a :增加文本,直到一個(gè)包含.的行為止 c :改變行中內(nèi)容,新文本的結(jié)束方式同a d :刪除行 行號(hào)可以是指定行或範(fàn)圍(教材P43表3-4)命令參數(shù)e

檔:編輯新檔,重新設(shè)置檔並不包括檔修改f

檔:列印指定的檔

i :在行前插入文本,結(jié)束方式同a .kc :用字母c標(biāo)記行

l :顯示行,把不可見的字元標(biāo)記成可見的 m行

:把當(dāng)前行移動(dòng)到指定行後 Q :退出,Q為不保存改變而退出 1,$w檔:所有行寫到檔,w表示添加操作而不覆蓋s:字串替換,如:s/string1/string2指定替換

或s/string1/string2/g替換所有行二.全螢?zāi)痪庉嫻ぞ遶ivi(visualinterpreter)是UNIX中基本編輯工具。1.vi的操作方式“ZZ”命令“vi”命令“i,a”等命令UnixShellESC鍵vi的命令行方式“:/或?”命令自動(dòng)返回vi的末行命令方式vi的插入方式“:q或:wq”等命令2.命令行方式的常用命令(教材P45)3.末行方式下常用命令(教材P46)4.進(jìn)入插入編輯方式常用命令(教材P46)5.使用vi中應(yīng)注意事項(xiàng)1)插入方式與命令方式的切換查對(duì)當(dāng)前方式,可用[Esc]2)文檔編輯時(shí),螢?zāi)划a(chǎn)生混亂螢?zāi)凰⑿掠姓`,用ctrl-l/ctrl-r重新刷新3)對(duì)螢?zāi)恢酗@示資訊進(jìn)行操作時(shí)沒反應(yīng)可能螢?zāi)惠敵鲞M(jìn)程被掛起,用ctrl-q解脫4)編輯完成後不能正確退出vi

系統(tǒng)有問題,應(yīng)先存盤(:wnewfile),利用/tmp目錄5)突發(fā)掉電的檔補(bǔ)救%

vi-rfile-to-be-edit三.編輯器中的元字元和正則運(yùn)算式元字元出現(xiàn)在搜索模式或“s”命令左邊的具有特殊意義的字元。常用元字元(教材P42表3-1)正則運(yùn)算式(refularexpessions)使用元字元的模式,表示字串查找的語法。常用正則運(yùn)算式模式(教材P42表3-2)第一節(jié)Shell的基本概念一.Shell的基本功能Shell命令解釋輸入輸出定向建立連通管道用戶環(huán)境設(shè)置程式語言設(shè)計(jì)檔案名替換通配符*?[]二.UNIX系統(tǒng)中的標(biāo)準(zhǔn)流命令處理中的數(shù)據(jù)資訊流UNIX中的3個(gè)標(biāo)準(zhǔn)檔(資訊流標(biāo)準(zhǔn))檔描述標(biāo)準(zhǔn)定義檔默認(rèn)實(shí)際對(duì)象

0標(biāo)準(zhǔn)輸入stdin鍵盤

1標(biāo)準(zhǔn)輸出stdout終端顯示器

2標(biāo)準(zhǔn)錯(cuò)誤stderr終端顯示器第二節(jié)Shell的命令解釋功能向標(biāo)準(zhǔn)輸出檔中輸出提示符從標(biāo)準(zhǔn)輸入檔中接收資訊完成讀、分析命令的過程轉(zhuǎn)向執(zhí)行相應(yīng)命令或程式一條命令結(jié)束一.Shell命令解釋程式的執(zhí)行過程:二.輸入/輸出的重定向?yàn)槭颤N需要重定向輸入/輸出?輸入重定向的格式

命令<

檔例:%Mailzs@seu.edu.cn<letter$cat<abc.c輸出重定向格式1:命令>

檔格式3:命令>>

檔格式2(包括stderr):命令>&

檔輸入輸出重定向結(jié)合使用:格式:命令

<

輸入檔>

輸出檔例:%date>>dir1例:%ls-l>dir1例:$lsa.c>&log三.管道線的處理

用管道線“|”將命令隔開,實(shí)現(xiàn)將一個(gè)程式(或命令)的輸出作為另一程式(命令)的輸入。例:$ls-l>tempfile

$wc-ltempfile

$rmtempfile$ls-l|wc-l替換例:$catsample.txt|grep“High”|wc-l命令|more四.命令中其他常用特殊字元&放在命令行的尾部,表示命令後臺(tái)執(zhí)行||放在兩個(gè)命令之間,表示左邊的命令輸出為假時(shí),執(zhí)行右邊的命令&&放在兩個(gè)命令之間,表示左邊的命令輸出為真時(shí),執(zhí)行右邊的命令()生成一子進(jìn)程完成括弧內(nèi)的命令!放在命令行首,取歷史記錄中的命令$shell變數(shù)的取值與訪問

\轉(zhuǎn)義符,使緊跟其後的字元失去shell中的特殊含義五.三通管道命令

從標(biāo)準(zhǔn)輸入中讀取,寫到標(biāo)準(zhǔn)輸出中和檔中。例:$ps-ef|teeproc.log六.命令替換格式:命令1`命令2`功能:將命令2的輸出作為命令1的參數(shù)。例:$cd`pwd`第三節(jié)用戶環(huán)境設(shè)置一.系統(tǒng)如何設(shè)置用戶的登錄環(huán)境?用戶登錄成功系統(tǒng)執(zhí)行環(huán)境設(shè)置檔/etc/profile系統(tǒng)執(zhí)行用戶主目錄下的.profile檔ksh、bsh系統(tǒng)執(zhí)行環(huán)境設(shè)置檔/etc/.login系統(tǒng)執(zhí)行用戶主目錄下的.cshrc檔、.login檔cshbash:.bash_profile檔

(.bash_login.profile).bash_bashrc檔

.bash_logout.bash_history二.環(huán)境變數(shù)定制用戶本身的工作環(huán)境,分為兩類:1)永久變數(shù),10--30個(gè),與用戶的登錄標(biāo)識(shí)相關(guān)聯(lián),由shell統(tǒng)一維護(hù),隨用戶的註銷而消失;2)用戶的私有環(huán)境變數(shù),具有特殊目的,並給用戶很大的設(shè)置自由度。三.相關(guān)命令查看環(huán)境變數(shù)的值:echo$變數(shù)名例:查看當(dāng)前的shell類型%echo$SHELL查看所有的環(huán)境變數(shù):env清除變數(shù):unset變數(shù)名設(shè)置環(huán)境變數(shù)ksh、bsh中的格式:變數(shù)名=值;export變數(shù)名export命令的作用:將變數(shù)自動(dòng)輸出給後繼執(zhí)行命令的環(huán)境中。csh中的格式:setenv

變數(shù)名=值變數(shù)設(shè)置後的作用期和作用域:在本Shell環(huán)境中有效。四.如何長久修改自己的環(huán)境變數(shù)?修改自己主目錄下的環(huán)境變數(shù)配置檔ksh、bsh中環(huán)境變數(shù)配置檔.profile.profile實(shí)例PATH=/usr/bin:/etc:/usr/sbin:/usr/lib:$HOME/bin:/sbin/binMAIL=/usr/spool/mail/user/MAILMSG=“youhavenewmail/a”exportPATHMAILPATHMAILMSGexportTMOUT=200exportPS1=‘$PWD>’iftest-s“$MAIL” thenecho“$MAILMSG”fiset-oignoreeofset-ovialiasdir=“l(fā)s-l”PATH—查詢程式的路徑PS1—shell的主提示符PS2—shell的第二提示符MAILPATH—用戶的電子郵箱路徑SHELL—shell程式的路徑PWD—當(dāng)前工作目錄TMOUT—無命令輸入退出等待時(shí)間(秒)TERM—終端類型HOME—用戶主目錄EDITOR—缺省的編輯器HISTFILE—?dú)v史命令檔案名環(huán)境變數(shù)which命令vt100開關(guān)選項(xiàng)變數(shù)ksh中與.profile執(zhí)行有密切關(guān)係的另外兩檔:.kshrc檔:存放其他環(huán)境變數(shù),由.profile提交執(zhí)行;.logout檔:存放退出shell時(shí)應(yīng)執(zhí)行的操作變數(shù),也由.profile提交執(zhí)行。csh中的環(huán)境變數(shù)配置檔.cshrc檔:用戶註冊(cè)後,每用csh創(chuàng)建一個(gè)進(jìn)程時(shí),系統(tǒng)執(zhí)行一次此檔;.login檔:用戶註冊(cè)時(shí)執(zhí)行一次,通常存放固定環(huán)境變數(shù)。.cshrc檔的示例#@(#)cshrc1.1189/11/29SMIumask022setpath=(/bin/usr/sbin/usr/bin/usr/local/bin/usr/ccs/bin/usr/ucb/etc.)setenvLD_LIBRARY_PATH/usr/lib:/usr/local/lib:/usr/ucblib:/usr/openwin/libsetenvEDITOR/bin/viif($?prompt)thensethistory=32endif

aliashhistoryaliasrm`rm-I`.login檔的示例stty-istrip#setenvTERM`tset-Q-`if("`tty`"=="/dev/console")thenif("$TERM"=="sun"||"$TERM"=="AT386")thenif(${?OPENWINHOME}==0)then

setenvOPENWINHOME/usr/openwinendif

echo""echo-n"StartingOpenWindowsin5seconds(typeControl-Ctointerrupt)"sleep5echo""$OPENWINHOME/bin/openwin

clear#getridofannoyingcursorrectangle

logout#logoutafterleavingwindowssystem

endifendifcsh中的幾點(diǎn)注意事項(xiàng):1)習(xí)慣上將shell變數(shù)的設(shè)置和賦值放在.cshrc中,將環(huán)境變數(shù)及終端特性放在

.login中;2)有些變數(shù)可在命令行中直接輸入,修改原有設(shè)置,例:%setpath=($path/home/chr/temp)3)用戶修改後的設(shè)置檔可用以下命令使其立即起作用:%source.login%source.cshrc第四節(jié)shell程式設(shè)計(jì)Bshell的程式設(shè)計(jì)功能較強(qiáng)。1.Shell程式的設(shè)計(jì)與執(zhí)行Shell腳本程式:將命令序列組合由系統(tǒng)自動(dòng)執(zhí)行。Shell程式的執(zhí)行方式:利用輸入輸出重定向

例:$sh<file1.sh把Shell程式當(dāng)作sh命令的執(zhí)行參數(shù)

例:$shfile1.sh將Shell程式的許可權(quán)改為可執(zhí)行,然後直接運(yùn)行例:$file1.shShell腳本示例#!/bin/sh#Ashellscriptforcreateandprintthebookcatchap1chap2chap3>bookwc-lbooklpbook2.

Shell變數(shù)Shell變數(shù)以字母開頭,由字母、數(shù)字及下劃線組成Shell變數(shù)的賦值變數(shù)名=值或cshell賦值:set變數(shù)名=值注:?

如果值中含有空格或跳位字元,需要將值用引號(hào)括起;

?

等號(hào)右邊也可以是其他Shell變數(shù)的引用;

?

bsh中不允許等號(hào)兩邊有空格(csh中無此限制)。Shell程式中變數(shù)值外三種引號(hào)的作用:單引號(hào)‘:其中內(nèi)容是字串,沒有shell的特殊含義;雙引號(hào)“:其中特殊字元作shell含義解釋,其他作字元;反引號(hào)`:其中的命令可作為執(zhí)行結(jié)果進(jìn)行賦值例:$file=report$echo‘Thetimeis`date`,thefileis$file’回顯:Thetimeis`date`,thefileis$file$echo“Thetimeis`date`,thefileis$file”

回顯:ThetimeiswedAug1615:11:42CST2000,thefileisreport.shell變數(shù)的引用在變數(shù)名前加“$”;在某些情況下,為明確表示Shell變數(shù)的引用可以用大括弧將變數(shù)引起來。例:%echo${UNIX}tm

變數(shù)的作用域預(yù)定義變數(shù)和環(huán)境變數(shù)SYSTEMVSYSTEMVtm第四節(jié)shell程式設(shè)計(jì)Bshell的程式設(shè)計(jì)功能較強(qiáng)。1.Shell程式的設(shè)計(jì)與執(zhí)行2.

Shell變數(shù)Shell變數(shù)Shell變數(shù)的賦值Shell程式中變數(shù)值外三種引號(hào)的作用shell變數(shù)的引用變數(shù)的作用域預(yù)定義變數(shù)和環(huán)境變數(shù)位置變數(shù)與C語言類似,shell把輸入的命令字符串分解,並給每一段標(biāo)上號(hào),標(biāo)號(hào)從0開始。這樣,每個(gè)命令參數(shù)(包括命令本身)都有相應(yīng)的位置變數(shù),它們的引用為$N。例:$echoarg.shfirstsecondthird

($0)$1$2$3預(yù)定義的特殊變數(shù)Bshell變數(shù)作用$#位置參數(shù)的個(gè)數(shù)$?前命令返回的狀態(tài),0表示無錯(cuò)$$當(dāng)前進(jìn)程的pid$!最近訪問的後臺(tái)進(jìn)程pid$*顯示所有參數(shù)的值,但是加引號(hào)使用時(shí),將作為一個(gè)字串變數(shù),示例$@與$*相同,但是加引號(hào)使用時(shí),其值依然為一系列獨(dú)立的變數(shù),示例$-顯示shell使用的當(dāng)前選項(xiàng)綜合示例例:test1.sh檔如下:#!/bin/sh

cat$*echo“”cat“$*”執(zhí)行結(jié)果:$test1.shf1f2cat:f1:Nosuchfileordirectorycat:f2:Nosuchfileordirectorycat:f1f2:Nosuchfileordirectory例:test2.sh檔如下:#!/bin/sh

cat$@echo“”cat“$@”執(zhí)行結(jié)果:$test1.shf1f2cat:f1:Nosuchfileordirectorycat:f2:Nosuchfileordirectorycat:f1:Nosuchfileordirectorycat:f2:Nosuchfileordirectory例程echoarg.sh如下:

echo$#forVARin$*doecho$VARdone執(zhí)行結(jié)果:$echoarg.shfirstsecondthird3firstsecondthird對(duì)未賦值變數(shù)的替換輸出方法:${var:-word}:若var有值且非空,取該值;否則取word,var不變。${var:=word}:若var有值且非空,取該值;否則取word,同時(shí)將word值賦給var。${var:+word}:若var有值且非空,取word,否則var仍為空。例:echo“TheCDPATHis${CDPATH:-Undefined}”測試命令test命令分支語句if語句case語句迴圈語句for語句while語句until語句3.編程結(jié)構(gòu)(1)test命令格式:testexpression

或[expression]當(dāng)運(yùn)算式的值為真時(shí),命令返回0,否則返回非0??赏瓿蓪?duì)檔、字串、數(shù)字、運(yùn)算式進(jìn)行判別和求值。注:後一種簡單格式中表達(dá)式與中括弧之間必須有空格。對(duì)檔的測試test-[dfrLmxus]file其中:-dfile判檔存在且為目錄檔-ffile

判檔存在且為普通檔

-rfile判檔存在且為可讀檔

-wfile判檔存在且為可寫檔

-xfile判檔存在且為可執(zhí)行檔

-ufile判檔存在且有suid位設(shè)置

-sfile判檔存在且長度為非零

-Lfile判檔存在且為符號(hào)連接例:test-d/home/usera

&&echo“目錄usera

存在”

test-d/home/usera||echo“目錄usera不存在或無此目錄”對(duì)字串的測試test“string”teststring_operator

“string”test“string1”string_operator“string2”[string_operatorstring][string1string_operatorstring2]其中,string_operator可為:=

兩個(gè)字串相等。!=

兩個(gè)字串不等。-z

空串。-n

非空串。例:$[-z$EDITOR]

$echo$?

0對(duì)整數(shù)的測試test"number1"numeric_operator"number2"["number1"numeric_operator"number2"

]其中,numeric_operator可為:-eq

數(shù)值相等。-ne

數(shù)值不相等。-gt

第一個(gè)數(shù)大於第二個(gè)數(shù)。-lt

第一個(gè)數(shù)小於第二個(gè)數(shù)。-le

第一個(gè)數(shù)小於等於第二個(gè)數(shù)。-ge

第一個(gè)數(shù)大於等於第二個(gè)數(shù)。測試整數(shù)時(shí)注意的問題:x1=“005”x2=5test$x1=$x2echo$?

系統(tǒng)顯示:1測試結(jié)果為假,兩者不同test$x1-eq$x2echo$?系統(tǒng)顯示:0測試結(jié)果為真,兩者相同字串測試數(shù)值測試測試時(shí)使用邏輯操作符-a

邏輯與,操作符兩邊均為真,結(jié)果為真,否則為假。-o

邏輯或,操作符兩邊一邊為真,結(jié)果為真,否則為假。!

邏輯否,條件為假,結(jié)果為真。例:[-wresults.txt-a-xscores.txt][“990”-le“995”-o“123”-gt“33”]注:使用邏輯操作符只能使用一對(duì)中括弧,否則,將返回錯(cuò)誤資訊“toomanyarguments”。(2)if語句if條件1 then命令1

elif

條件2 then命令2 else命令3fi注意:使用if語句時(shí),必須將then部分放在新的一行,否則會(huì)產(chǎn)生錯(cuò)誤。如果要不分行,必須使用命令分隔符號(hào)。shell腳本中if語句允許嵌套。if條件;

then

命令fiif語句的使用示例1將test-d/home/usera&&echo“目錄..”改寫:iftest-d/home/usera

thenecho“目錄usera

存在”fi或if[-d/home/usera]thenecho“目錄usera存在”fi將位置參數(shù)中的內(nèi)容傳遞到系統(tǒng)命令中#!/bin/sh#將$1傳遞到命令的變數(shù)表中DIREC=$1if[“`ls-a$DIREC`”=“”];thenecho“$DIRECisindeedempty”elseecho“$DIRECisnotempty”fiif語句的使用示例2if[-z“`ls-a$DIREC`”](3)case語句case值

in

模式1)命令1...;;

模式2)命令2...;;

……

*)缺省命令

;;esac表示匹配結(jié)束可以包含通配符[]*?等也可沒有case語句示例提示輸入1到3,輸入數(shù)字傳入case語句進(jìn)行測試。#!/bin/shecho-n“enteranumberfrom1to3”readNUMcase$NUMin1)echo“youselect1”;;2)echo“youselect2”;;3)echo“youselect3”;;*)echo“$0:Thisisnotbetween1and3.”;;esac

(4)for語句for迴圈變數(shù)

in列表

do

命令1

命令2

……done注:列表中的內(nèi)容是迴圈變數(shù)的值的列舉,它決定了迴圈的次數(shù)。每次循環(huán)體中命令執(zhí)行之前,迴圈變數(shù)都被重新賦值為列表中相應(yīng)的值。 當(dāng)列表為$*或$@時(shí),可略寫。 允許嵌套。for迴圈變數(shù)

do

命令1

命令2

……done也可是檔案名的正則運(yùn)算式或命令的結(jié)果集for語句的兩個(gè)簡單示例示例1:forIin123doecho$Idone示例2:forloopin`ls`doecho$loopdone執(zhí)行結(jié)果:123執(zhí)行結(jié)果:myprogtest1.shtest2.sh(5)while語句while[condition]do

命令

……done例:while迴圈使用輸入重定向從檔中讀取數(shù)據(jù)。#!/bin/shwhilereadLINEdoecho$LINEdone<names.txt(6)until語句until[condition]do

命令

……done例:查詢輸入以後是否在系統(tǒng)中。#!/bin/shuntilwho|grep“$1”>/dev/nulldosleep30doneecho“$1isloggedon.”exit04.常用Shell內(nèi)部命令break和continueexitread[name…]從標(biāo)準(zhǔn)輸入中讀入一行,依次賦給變數(shù)nameexpr

argumentoperatorargument對(duì)shell變數(shù)進(jìn)行算術(shù)運(yùn)算alias、unalias、set、export、unset、echo、test等命令5.Shell程式的調(diào)試1)交互調(diào)試先手工執(zhí)行命令驗(yàn)證,再引入shell編程中2)在編輯過程中執(zhí)行程式打開多個(gè)窗口,邊編輯邊執(zhí)行3)用shell程式跟蹤執(zhí)行使用shell的-v,-x選項(xiàng)可對(duì)shell程式進(jìn)行跟蹤$sh-vtest.sh$sh-xtest.sh作業(yè)在CShell中如何建立一個(gè)有自己特色的運(yùn)行環(huán)境?在BourneShell中又如何?試述export命令的作用。在shell的命令解釋中,默認(rèn)的系統(tǒng)標(biāo)準(zhǔn)流有哪些?它們與系統(tǒng)中的設(shè)備是如何對(duì)應(yīng)的?可以用哪些方法將輸出重定向?比較下麵兩組命令並加以討論:(1)echo‘Typea$*,please’echo‘Typea\$*,please’(2)echo“Typea$*,please”echo“Typea\$*,please”普通檔目錄檔特殊檔UNIX檔的許可機(jī)制檔管理命令第一節(jié)UNIX系統(tǒng)中的檔位元組為單位的數(shù)據(jù)資訊流數(shù)據(jù)空間,包括:文本檔、源代碼檔、數(shù)據(jù)檔、可執(zhí)行檔等。檔的屬性:

檔存取許可權(quán)、屬主名、屬組名、檔索引號(hào)、位元組數(shù)、最後訪問時(shí)間、檔案名使用ls-l命令查看檔屬性使用od命令查看檔內(nèi)碼表示資訊普通檔例:創(chuàng)建一個(gè)簡單檔瞭解檔屬性及檔內(nèi)碼表示$

vitestnowisthetimeforallgoodpeople$

ls-ltest-rw-r--r--1zhang

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論