操作系統(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),請進(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è)工作--用戶程序?qū)Σ僮飨到y(tǒng)的調(diào)用操作系統(tǒng)的第三個(gè)工作--對常用基本操作提供現(xiàn)成程序操作系統(tǒng)的第四個(gè)工作--解決效率和安全的問題第一節(jié)操作系統(tǒng)是如何工作的OS工作1:負(fù)責(zé)啟動(dòng)和結(jié)束程序

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

鼠標(biāo)方式啟動(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)方式:鼠標(biāo)方式啟動(dòng)簡單形象免記交互性強(qiáng)實(shí)現(xiàn)相對繁瑣些響應(yīng)相對慢些操作有時(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)和評價(jià):過去最常用的啟動(dòng)方式需記程序名和位置

交互性較強(qiáng)有時(shí)操作比鼠標(biāo)方式快(需參數(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í)行前,計(jì)算機(jī)在做些什么?提問3:(如PC機(jī)上)從你的程序的最后一條指令執(zhí)行完到下一C>出現(xiàn)之間,計(jì)算機(jī)在做些什么?程序第3種啟動(dòng)方式:批方式批方式是指將若干條命令放在一個(gè)文件中,該文件可以在需要時(shí)象程序一樣被啟動(dòng)執(zhí)行,其執(zhí)行過程是由計(jì)算機(jī)自動(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ì)成有順序、分支和循環(huán)控制的形式,使程序可以組合執(zhí)行。批方式的用途:把現(xiàn)有的程序組合起來實(shí)現(xiàn)更復(fù)雜的功能特別的自動(dòng)執(zhí)行批文件(放在根目錄下或用戶主目錄下),用來自動(dòng)執(zhí)行每次開機(jī)或登錄時(shí)的例行工作,例

啟動(dòng)一些集成軟件或一些參數(shù)復(fù)雜的軟件,簡單方便,不必要求用戶了解相應(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)方式最早期的計(jì)算機(jī)工作方式工作過程:

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

引導(dǎo)程序和程序主體特點(diǎn)與作用:早期用的較多,現(xiàn)除OS外已基本不用要求順序連續(xù)存放,且獨(dú)占一個(gè)存儲介質(zhì)編程麻煩,操作麻煩,存放受限保密性好,占用內(nèi)存少,啟動(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須常駐內(nèi)存。對比分析表正常結(jié)束與非正常結(jié)束對比分析OS工作2:用戶程序中對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)用就是用戶程序?qū)Σ僮飨到y(tǒng)的調(diào)用,其功能內(nèi)容是與中斷一起完成程序中所有硬件相關(guān)應(yīng)用無關(guān)工作,例

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

為什么我很少接觸系統(tǒng)調(diào)用?(高級語言程序員觀點(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ū)代碼量大,需硬件知識需隨硬件的變化而變化所有應(yīng)用、用戶共需工作過程雷同與應(yīng)用無直接關(guān)系函數(shù)(庫)與系統(tǒng)調(diào)用(OS)的關(guān)系通常僅匯編程序員才會接觸到系統(tǒng)調(diào)用,而高級語言程序員通常接觸不到系統(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)系高級語言中對操作系統(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ī)器都提供一對系統(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ù)(功能號或寄存器)約定不同不同機(jī)器,若CPU同則SC指令名(碼)同,若不同CPU則SC指令名(碼)不同。同一機(jī)器不同OS中SC指令(格式)相同(但功能號對應(yīng)關(guān)系不同,參數(shù)含義不同)同一種操作系統(tǒng)在不同機(jī)器上的不同版本,其系統(tǒng)調(diào)用指令是不同的三.中斷中斷是指計(jì)算機(jī)在執(zhí)行程序過程中,當(dāng)遇到需馬上處理的事件時(shí)暫停當(dāng)前正在運(yùn)行的程序,轉(zhuǎn)去執(zhí)行有關(guān)服務(wù)程序,處理完后自動(dòng)返回原程序

為什么用戶程序有時(shí)需以中斷方式進(jìn)入OS中斷的實(shí)現(xiàn)機(jī)制:中斷的檢測、中斷向量表、多級中斷與中斷屏蔽、可搶先與不可搶先中斷類型:外部與內(nèi)部中斷,中斷和異常中斷機(jī)制的流程變化(圖)OS工作3:為常用操作提供實(shí)用程序常用基本操作:查看磁盤內(nèi)容,文件復(fù)制,文件刪除與移動(dòng),目錄建刪等。操作系統(tǒng)所提供的實(shí)用程序Windows的資源管理器現(xiàn)代UNIX和LINUX提供上千條命令內(nèi)部命令與外部命令OS工作4:解決效率和安全問題OS負(fù)責(zé)計(jì)算機(jī)使用中的效率和安全問題中的硬相應(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的客戶/服務(wù)器OS平臺用戶界面友好具有全面的Internet和應(yīng)用軟件服務(wù)支持多用戶多任務(wù)的運(yùn)行具有網(wǎng)絡(luò)特性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ī)范圍的唯一操作系統(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)度程序存儲管理陷入核心部分第四節(jié)Linux操作系統(tǒng)緒論自由軟件Linux概述Linux的特點(diǎn)Linux的未來Linux概述多任務(wù)多用戶的自由OSUNIX的克隆(clone)全球用戶上千萬內(nèi)核版本奇偶最新內(nèi)核版本2.4(2.6即將發(fā)布)發(fā)行套件版本Linux的特點(diǎn):①免費(fèi)、源代碼開放②具有出色的穩(wěn)定性和速度性能③功能完善,尤其網(wǎng)絡(luò)功能豐富④硬件需求低⑤用戶程序眾多(而且大部分是免費(fèi)軟件),硬件支持廣泛,程序兼容性好第一節(jié)UNIX系統(tǒng)的基本常識控制臺和終端機(jī)控制臺(console):與主機(jī)相連,顯示系統(tǒng)引導(dǎo)、系統(tǒng)運(yùn)行、多用戶運(yùn)行、系統(tǒng)錯(cuò)誤警告等信息;終端(terminal):是普通用戶的操作臺,顯示本用戶登錄、與系統(tǒng)交互的信息。2.用戶和帳戶管理帳戶(Account)一個(gè)計(jì)算機(jī)化的記錄,其中包含了用戶在Unix系統(tǒng)中注冊時(shí)所有必要的信息。超級用戶(root)和普通用戶Passwd文件和ShadowPassword文件增加用戶(useradd命令)刪除用戶(userdel命令)對用戶進(jìn)行空間限制(quota命令)其他相關(guān)命令admintool

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

Passwd文件

系統(tǒng)認(rèn)可的用戶的清單,它建立在/etc目錄中。這個(gè)文件的每一行對應(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)識,低于100的UID通常用作系統(tǒng)使用的專用UID(4):用戶組標(biāo)識(5):用戶注冊描述(6):用戶主目錄(7):進(jìn)入系統(tǒng)后第一步完成的工作

Passwd文件的格式:

ShadowPassword文件

出于特別的安全型的需要,Unix系統(tǒng)提供的,用來存放用戶加密口令的文件,只有超戶有讀取的權(quán)力,必要時(shí)超級用戶可以強(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ù)信息已備份出來;對于已經(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文件存儲與用戶帳戶相關(guān)的組信息,文件格式:

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

管理命令

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ù)、一些配置文件的參考手冊(我們通常稱之為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)復(fù)制文件或目錄,格式:cp

[options]srcnametargetnamecat命令(教材P20)對指定的文件在標(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命令:搜索固定字符串不能匹配正則表達(dá)式,是快速搜索命令;egrep命令:支持完全正則表達(dá)式搜索及快速算法,是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)軟件安裝工具主要用于軟件的安裝升級;安裝格式: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)絡(luò)管理命令

….第四節(jié)系統(tǒng)的啟動(dòng)與關(guān)閉UNIX系統(tǒng)的啟動(dòng)什么是引導(dǎo)?打開計(jì)算機(jī),導(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)核在后臺啟動(dòng)init程序內(nèi)核自解壓內(nèi)核檢測硬件(顯卡、硬盤、軟盤、網(wǎng)絡(luò)適配器等等),配置相應(yīng)的設(shè)備驅(qū)動(dòng)程序;輸出檢測信息init切換到多用戶模式,啟動(dòng)

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

系統(tǒng)啟動(dòng)流程用戶登錄、退出循環(huán)過程通過終端登錄通過網(wǎng)絡(luò)登錄inetd進(jìn)程:處理所有網(wǎng)絡(luò)登錄的進(jìn)程。daemon UNIX中的一種程序,用于打開特定端口,并等待進(jìn)入的連接。如果有連接接入,它就會創(chuàng)建一個(gè)用于接受該連接的子進(jìn)程,父進(jìn)程則繼續(xù)監(jiān)聽別的連接請求。開始init:fork+exec(“/sbin/getty”)getty:等待用戶getty:讀用戶名exec(“/bin/login”)login:讀密碼是否匹配login:exec(“/bin/sh”)sh:讀命令并執(zhí)行退出login:退出否是登錄的意義對用戶進(jìn)行身份驗(yàn)證;為用戶設(shè)置初始化環(huán)境;輸出用戶上次登錄的信息,檢查用戶的電子郵件;在系統(tǒng)日志文件中記錄用戶的登錄情況(失敗嘗試和成功登錄)utmp文件:記錄當(dāng)前已經(jīng)登錄的用戶,系統(tǒng)啟動(dòng)時(shí)會被清除,使用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)掉電源可能會導(dǎo)致緩存沒有回寫,磁盤上的文件系統(tǒng)不完整;在UNIX的多任務(wù)系統(tǒng)中,可能有許多程序正置于后臺運(yùn)行,只有通過正確的關(guān)機(jī)順序,才可以保證所有的后臺進(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)程號為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ìn)程執(zhí)行的命令名、命令執(zhí)行的方法等。4.initinit的運(yùn)行級別0主要實(shí)施關(guān)閉系統(tǒng)1單用戶模式(系統(tǒng)管理模式)2多用戶模式3擴(kuò)展的多用戶模式,所有網(wǎng)絡(luò)服務(wù)程序一起運(yùn)行4用戶自定義的,不常用5halt系統(tǒng)6重新啟動(dòng)系統(tǒng)到運(yùn)行級別3init的工作系統(tǒng)啟動(dòng)時(shí)的工作:檢查文件系統(tǒng);清除/tmp;分析inittab并根據(jù)需要或缺省的運(yùn)行級別來運(yùn)行/etc/rc.d目錄中的腳本,而每個(gè)腳本又運(yùn)行不同的服務(wù)程序。系統(tǒng)關(guān)閉時(shí)的工作:殺死所有用戶進(jìn)程;關(guān)閉所有后臺進(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帳號并設(shè)置密碼啟動(dòng)samba服務(wù)

第五節(jié)Linux的安裝及其相關(guān)知識硬件是否兼容?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ù)杰洷P上。使用軟盤啟動(dòng),通過ftp網(wǎng)絡(luò)安裝在局域網(wǎng)內(nèi)有一個(gè)放有RedHatLinux安裝樹的ftp服務(wù)器制作啟動(dòng)軟盤一張格式化過的3吋空白軟盤在MS-DOS環(huán)境下使用dosutils目錄中的rawrite命令將images目錄中的bootnet.img引導(dǎo)映像文件傳輸?shù)杰洷P上。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內(nèi)存大?。喝纾?4M光驅(qū):接口類型,如:IDE(ATAPI)、SCSI網(wǎng)卡:制造商及型號,如:3COM鼠標(biāo):類型、協(xié)議及鍵數(shù),如:3鍵PS/2鼠標(biāo)顯示器:制造商、型號及廠商規(guī)格視頻卡:商標(biāo)、型號及VRAM的大小聲卡:商標(biāo)、芯片集和型號IP、DHCP和BOOTP的地址子網(wǎng)掩碼網(wǎng)關(guān)IP地址一個(gè)或多個(gè)DNS服務(wù)器地址域名主機(jī)名系統(tǒng)信息鼠標(biāo)類型串口鼠標(biāo):PS/2鼠標(biāo):USB鼠標(biāo):AT鼠標(biāo):安裝系統(tǒng)后的配置修改命令/usr/sbin/kbdconfig命令/usr/sbin/mouseconfig/usr/sbin/setup命令磁盤分區(qū)硬盤的基本概念未格式化過的新盤格式化后的磁盤格式化:制作一個(gè)文件系統(tǒng)Block管理費(fèi)用:驅(qū)動(dòng)器上被用來存儲與文件系統(tǒng)有關(guān)的數(shù)據(jù)的空間1-14個(gè)文件存儲在硬盤上

碎段:已用的塊和未用的塊交錯(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)(目錄)的存儲區(qū)能夠被直接使用。Linux中應(yīng)有多少分區(qū)?自動(dòng)分區(qū)workstation:swap 1-2倍于內(nèi)存大小

/boot 50M

/

取決于可用的磁盤空間大小server:swap 1-2倍于內(nèi)存大小

/ 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)中通用匹配模式采用正則表達(dá)式運(yùn)行速度快,占用空間小2.使用ed的基本常識ed中包含的所有命令用字符表示,且命令前可輸入行號編輯時(shí)在文件副本上工作3.示例4.ed中的命令ed中命令由字符組成,命令前面可以冠以零個(gè)、一個(gè)或兩個(gè)行號,命令格式為:

[addr1[,addr2]]command[parameter]

常用命令:a :增加文本,直到一個(gè)包含.的行為止 c :改變行中內(nèi)容,新文本的結(jié)束方式同a d :刪除行 行號可以是指定行或范圍(教材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替換所有行二.全屏幕編輯工具vivi(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)插入方式與命令方式的切換查對當(dāng)前方式,可用[Esc]2)文檔編輯時(shí),屏幕產(chǎn)生混亂屏幕刷新有誤,用ctrl-l/ctrl-r重新刷新3)對屏幕中顯示信息進(jìn)行操作時(shí)沒反應(yīng)可能屏幕輸出進(jìn)程被掛起,用ctrl-q解脫4)編輯完成后不能正確退出vi

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

vi-rfile-to-be-edit三.編輯器中的元字符和正則表達(dá)式元字符出現(xiàn)在搜索模式或“s”命令左邊的具有特殊意義的字符。常用元字符(教材P42表3-1)正則表達(dá)式(refularexpessions)使用元字符的模式,表示字符串查找的語法。常用正則表達(dá)式模式(教材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í)際對象

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)槭裁葱枰囟ㄏ蜉斎?輸出?輸入重定向的格式

命令<

文件例:%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四.命令中其他常用特殊字符&放在命令行的尾部,表示命令后臺執(zhí)行||放在兩個(gè)命令之間,表示左邊的命令輸出為假時(shí),執(zhí)行右邊的命令&&放在兩個(gè)命令之間,表示左邊的命令輸出為真時(shí),執(zhí)行右邊的命令()生成一子進(jìn)程完成括號內(nèi)的命令!放在命令行首,取歷史記錄中的命令$shell變量的取值與訪問

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

變量名=值變量設(shè)置后的作用期和作用域:在本Shell環(huán)境中有效。四.如何長久修改自己的環(huán)境變量?修改自己主目錄下的環(huán)境變量配置文件ksh、bsh中環(huán)境變量配置文件.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)境變量which命令vt100開關(guān)選項(xiàng)變量ksh中與.profile執(zhí)行有密切關(guān)系的另外兩文件:.kshrc文件:存放其它環(huán)境變量,由.profile提交執(zhí)行;.logout文件:存放退出shell時(shí)應(yīng)執(zhí)行的操作變量,也由.profile提交執(zhí)行。csh中的環(huán)境變量配置文件.cshrc文件:用戶注冊后,每用csh創(chuàng)建一個(gè)進(jìn)程時(shí),系統(tǒng)執(zhí)行一次此文件;.login文件:用戶注冊時(shí)執(zhí)行一次,通常存放固定環(huán)境變量。.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è)置和賦值放在.cshrc中,將環(huán)境變量及終端特性放在

.login中;2)有些變量可在命令行中直接輸入,修改原有設(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變量Shell變量以字母開頭,由字母、數(shù)字及下劃線組成Shell變量的賦值變量名=值或cshell賦值:set變量名=值注:?

如果值中含有空格或制表符,需要將值用引號括起;

?

等號右邊也可以是其它Shell變量的引用;

?

bsh中不允許等號兩邊有空格(csh中無此限制)。Shell程序中變量值外三種引號的作用:單引號‘:其中內(nèi)容是字符串,沒有shell的特殊含義;雙引號“:其中特殊字符作shell含義解釋,其它作字符;反引號`:其中的命令可作為執(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變量的引用在變量名前加“$”;在某些情況下,為明確表示Shell變量的引用可以用大括號將變量引起來。例:%echo${UNIX}tm

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

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

($0)$1$2$3預(yù)定義的特殊變量Bshell變量作用$#位置參數(shù)的個(gè)數(shù)$?前命令返回的狀態(tài),0表示無錯(cuò)$$當(dāng)前進(jìn)程的pid$!最近訪問的后臺進(jìn)程pid$*顯示所有參數(shù)的值,但是加引號使用時(shí),將作為一個(gè)字符串變量,示例$@與$*相同,但是加引號使用時(shí),其值依然為一系列獨(dú)立的變量,示例$-顯示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對未賦值變量的替換輸出方法:${var:-word}:若var有值且非空,取該值;否則取word,var不變。${var:=word}:若var有值且非空,取該值;否則取word,同時(shí)將word值賦給var。${var:+word}:若var有值且非空,取word,否則var仍為空。例:echo“TheCDPATHis${CDPATH:-Undefined}”測試命令test命令分支語句if語句case語句循環(huán)語句for語句while語句until語句3.編程結(jié)構(gòu)(1)test命令格式:testexpression

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

判文件存在且為普通文件

-rfile判文件存在且為可讀文件

-wfile判文件存在且為可寫文件

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

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

-sfile判文件存在且長度為非零

-Lfile判文件存在且為符號連接例:test-d/home/usera

&&echo“目錄usera

存在”

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

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

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

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

空串。-n

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

$echo$?

0對整數(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”]注:使用邏輯操作符只能使用一對中括號,否則,將返回錯(cuò)誤信息“toomanyarguments”。(2)if語句if條件1 then命令1

elif

條件2 then命令2 else命令3fi注意:使用if語句時(shí),必須將then部分放在新的一行,否則會產(chǎn)生錯(cuò)誤。如果要不分行,必須使用命令分隔符。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傳遞到命令的變量表中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循環(huán)變量

in列表

do

命令1

命令2

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

do

命令1

命令2

……done也可是文件名的正則表達(dá)式或命令的結(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循環(huán)使用輸入重定向從文件中讀取數(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)輸入中讀入一行,依次賦給變量nameexpr

argumentoperatorargument對shell變量進(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)可對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è)備是如何對應(yīng)的?可以用哪些方法將輸出重定向?比較下面兩組命令并加以討論:(1)echo‘Typea$*,please’echo‘Typea\$*,please’(2)echo“Typea$*,please”echo“Typea\$*,please”普通文件目錄文件特殊文件UNIX文件的許可機(jī)制文件管理命令第一節(jié)UNIX系統(tǒng)中的文件字節(jié)為單位的數(shù)據(jù)信息流數(shù)據(jù)空間,包括:文本文件、源代碼文件、數(shù)據(jù)文件、可執(zhí)行文件等。文件的屬性:

文件存取權(quán)限、屬主名、屬組名、文件索引號、字節(jié)數(shù)、

溫馨提示

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

評論

0/150

提交評論