版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 未來五年彈力計(jì)行業(yè)跨境出海戰(zhàn)略分析研究報(bào)告
- 未來五年專業(yè)技術(shù)服務(wù)企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略分析研究報(bào)告
- 未來五年珠粒大麥行業(yè)直播電商戰(zhàn)略分析研究報(bào)告
- 拜倫的課件教學(xué)課件
- 企業(yè)公益協(xié)議書
- 價(jià)格調(diào)節(jié)協(xié)議書
- 代工質(zhì)量協(xié)議書
- 中小企業(yè)融資渠道及風(fēng)險(xiǎn)管理方案
- 中英文解協(xié)議書
- 休假協(xié)議書范本
- 高層建筑幕墻維護(hù)方案
- 現(xiàn)代精細(xì)化工生產(chǎn)技術(shù) 課件 模塊1-4 表面活性劑 -涂料
- 合伙開母嬰店協(xié)議合同
- 2025年事業(yè)單位招聘考試綜合類專業(yè)能力測試試卷(新聞?lì)悾┬旅襟w運(yùn)營與管理實(shí)戰(zhàn)
- GB/T 23436-2025汽車風(fēng)窗玻璃清洗液
- 冷庫安全培訓(xùn)演練課件
- 2025年高考物理山東卷試卷評(píng)析及備考策略(課件)
- 農(nóng)業(yè)產(chǎn)業(yè)新質(zhì)生產(chǎn)力
- 五金廠生產(chǎn)部工時(shí)統(tǒng)計(jì)制度
- 研磨鉆石的專業(yè)知識(shí)培訓(xùn)課件
- 以青春之名赴時(shí)代之約-高中愛國主題班會(huì)-2025-2026高中主題班會(huì)
評(píng)論
0/150
提交評(píng)論