版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 第第10章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 10.1 UNIX Shell 10.2 Shell程序設(shè)計程序設(shè)計 10.3 UNIX實用程序?qū)嵱贸绦?10.4 UNIX程序設(shè)計程序設(shè)計 10.5 Windows應(yīng)用程序設(shè)計應(yīng)用程序設(shè)計 習題習題 第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 10.1 UNIX Shell 10.1.1 Shell基礎(chǔ) 1. Shell的歷史 Shell是UNIX操作系統(tǒng)的外殼,是一個功能強大的命令處理器,它是用戶與操作系統(tǒng)交互的界面。它接受用戶輸入的命令,分析、解釋和執(zhí)行該命令,并將結(jié)果顯示出來。 第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)
2、篇 由于Shell發(fā)展的歷史問題,有兩種主流的UNIX操作系統(tǒng),分別是Berkeley UNIX和System V UNIX,因此在UNIX系統(tǒng)中也有多種風格的Shell程序存在,最常見的有以下三種。 (1) Bourne Shell(B Shell):是現(xiàn)代UNIX系統(tǒng)中的標準Shell,通常會把它設(shè)置成系統(tǒng)默認的命令解釋程序,它的命令提示符是“$”。B Shell是由AT&T貝爾實驗室的S.R.Bourne 于1975年開發(fā)的,它的程序名為sh。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (2) C Shell:是由加州伯克利分校的學生Bill Joy開發(fā)的,其程序名為csh(由于它的編程類似
3、于C語言形式而得名),它的提示符是“%”。 (3) Korn Shell(K Shell):是B Shell的一個擴展集,在B Shell中編寫的腳本程序無需修改即可在K Shell中運行,它的提示符是“$”。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 2Shell的基本功能 Shell的功能如圖10.1所示,主要包括: (1) 命令的解釋執(zhí)行:接受用戶的命令輸入,解釋分析命令含義,執(zhí)行用戶命令。 (2) 環(huán)境變量的設(shè)置:對用戶工作環(huán)境進行修改和設(shè)定,根據(jù)規(guī)則選擇相關(guān)的環(huán)境變量。 (3) 輸入/輸出的重定向:完成對系統(tǒng)標準流的修改。 (4) Shell程序語言的設(shè)計:使用Shell的腳本語言完成較
4、為復(fù)雜的命令執(zhí)行過程或用戶環(huán)境設(shè)置過程。 第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 命令解釋執(zhí)行Shell連通管道建立程序語言設(shè)計系統(tǒng)環(huán)境設(shè)置文件名取代輸入/輸出定向圖10.1 Shell的基本功能第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 10.1.2 正文全屏編輯程序vi 在UNIX系統(tǒng)中可以支持多種編輯工具,其中有些編輯器的功能簡單、界面簡陋,而有些功能強大、界面友好。常見的編輯器有: (1) ed:是早期UNIX系統(tǒng)中的行編輯器。 (2) ex:是ed的替代產(chǎn)品,也是一個行編輯器。 (3) edit:是ex的簡化版本。 (4) vi:是全屏幕編輯器,是在ex上發(fā)展改進而來的編輯工具。第第10
5、10章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (5) emacs:是可視化的文本編輯工具,是現(xiàn)代UNIX系統(tǒng)中配置的功能強大的編輯工具。 (6) xemacs:是可視化的編輯工具,又有圖形用戶界面,與emacs編輯工具功能相似,也是現(xiàn)代UNIX系統(tǒng)中配置的編輯工具。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 1. vi的工作方式 vi(visual interpreter)為使用者提供了一個全屏幕的窗口編輯平臺,窗口中一次可以顯示一屏的編輯內(nèi)容,并可進行上下屏的滾動。vi是全屏幕編輯程序,比ed編輯器更友好,更實用。使用vi編輯文件有大小限制,這個限制隨UNIX版本不同而不同。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開
6、發(fā)篇 2命令行方式中的常用命令 在vi環(huán)境中,用戶可以在三種方式下工作。這三種方式可以幫助用戶完成文本輸入、文本保存和文本修改等工作。這三種工作方式如下: (1) 命令行方式。它是用戶進入vi后的初始狀態(tài)。 (2) 插入編輯方式。在插入編輯方式下,可以在編寫的文件中添加或者輸入文本及程序代碼。 第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (3) 末行命令方式。在vi的末行命令方式下,有許多操作功能類似于命令行方式,只是它的命令輸入出現(xiàn)在屏幕的最底部。 圖10.2所示為vi中多種工作方式的轉(zhuǎn)換關(guān)系。 第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 用“ :”、“/”、“ ?”命令用“vi filename”
7、命令自動返回用“i”、“a”命令Wqq!UNIX Shellvi的命令行方式用“ZZ”命令vi的末行命令方式用Esc鍵vi的插入編輯方式圖10.2 vi中多種工作方式的轉(zhuǎn)換關(guān)系第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 3命令行方式的常用命令 在vi的命令行工作方式下,可以輸入相關(guān)的操作命令完成對文本的編輯、調(diào)整。vi中可以使用的命令列表如下。 (1) 以字符為單位移動(包括垂直方向)光標:操 作 符操 作 結(jié) 果h()光標左移一個字符i()光標右移一個字符k()光標上移一行j()光標下移一行第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (2) 以行為單位移動光標:操 作 符操 作 結(jié) 果-光標移至上一
8、行的行首+或者RETURN光標移至下一行的行首G光標移至文件最后一行nG光標移至文件第n行行首第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (3) 行首尾移動光標: 操 作 符操 作 結(jié) 果0光標移至當前行行首光標移至當前行中第一個非空白字符處$光標移至當前行行尾第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (4) 以屏幕為單位移動光標:操 作 符操 作 結(jié) 果H(Hight)光標移至屏幕的最上行(頂部)M(Middle)光標移至屏幕的中部L(Low)光標移至屏幕的底部Z將當前行置于屏幕的頂部F下移一屏B上移一屏D下移半屏U上移半屏d,f屏幕向下(向前)滾動u,b屏幕向上(向后)滾動第第1010章章 應(yīng)用
9、開發(fā)篇應(yīng)用開發(fā)篇 (5) 以單詞、句子和段落為單位移動光標:操 作 符操 作 結(jié) 果w光標右移一個單詞nw光標右移n個單詞e光標移至下一個單詞的尾字符處b光標左移一個字符nb光標左移n個字符)光標移至下一個句子的開始處(光標移至前一個句子的開始處光標移至下一段落的開始處光標移至前一段落的開始處第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (6) 刪除命令: 操 作 符操 作 結(jié) 果x刪除光標所在位置的字符dw刪除光標所在位置的單詞db刪除光標位置前的一個單詞dd刪除光標所在的行D(d$)刪除至行尾部d0刪除至行首部dG刪除至文件尾部4dd從光標所在的行開始刪除4行內(nèi)容d1G從當前行一直刪除到第一行第
10、第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (7) 緩沖區(qū)操作: 操 作 符操 作 結(jié) 果Y將當前行拷貝至編輯緩沖區(qū)5Y將從當前行開始的5行內(nèi)容拷貝至編輯緩沖區(qū)p將編輯緩沖區(qū)內(nèi)容拷貝至光標后一行P將編輯緩沖區(qū)內(nèi)容拷貝至光標前一行第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (8) 輸入方式: 操 作 符操 作 結(jié) 果i(或a)在光標之前(或之后)插入I(或A)在當前行首(或行尾)插入o(或O)在當前行下(或行上)面插入第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (9) 修改命令: 操 作 符操 作 結(jié) 果r 字符替換光標所在的字符,如ra的功能是用字符a替換光標所在的字符,3rabc的功能是用abc 3個字符
11、替換自光標起的3個字符R 輸入串用輸入串一對一地替換自光標位置起的任意多個字符,直至按Esc鍵退出替換命令s替換指定數(shù)目的字符,如3sxyz的功能是用xyz替換自光標起的3個字符,按Esc鍵退出替換命令,但輸入部分可以多于3個字符,也可以少于3個字符S替換指定數(shù)目的行,如3S的功能是刪除自當前行開始的3行,并用輸入的若干正文行替換這些行,按Esc鍵退出替換命令cw用輸入串替換光標處的1個單詞c3w用輸入串替換光標處的3個單詞cc用輸入行替換當前行3cc用輸入行替換自當前行開始的3個行C用輸入串替換自光標起至行尾的所有字符將光標處的字母由小寫改成大寫,或者由大寫改成小寫第第1010章章 應(yīng)用開發(fā)
12、篇應(yīng)用開發(fā)篇 (10) 其他操作: 操 作 符操 作 結(jié) 果u取消上一次操作命令重復(fù)上一次操作G顯示當前編輯文件的相關(guān)信息ZZ寫盤并退出編輯J下一行拼接在當前行之后第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 4末行命令方式下的常用操作命令 在vi的末行命令方式下也可以使用一些操作命令,完成對編輯文本的控制和管理。末行方式下的命令與vi的命令行方式下的命令形成互補。命令行方式的命令更多的是對編輯文本在屏幕上的現(xiàn)實格式和位置的修改與調(diào)整,而末行命令方式的命令則更多的是對文本全文或者文件本身的操作。末行命令方式下的操作命令列表如下。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (1) 搜索命令:操 作 符操
13、作 結(jié) 果/exp從光標處向前尋找字符串exp?exp從光標處向后尋找字符串expn原方向重復(fù)前一搜索命令N反方向重復(fù)前一搜索命令第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (2) 字符串替換: 操 作 符操 作 結(jié) 果:s/old/new將當前行中碰到的第一個字符串old改為字符串new:s/old/new/g將當前行中碰到的所有字符串old改為字符串new:3,9s/old/new對第39行的內(nèi)容完成“:s/old/new”的操作:%s/old/new對所有行的內(nèi)容完成“:s/old/new”的操作:%s/old/new/g對所有行的內(nèi)容完成“:s/old/new/g”的操作第第1010章章
14、應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (3) 行編輯命令:操 作 符操 作 結(jié) 果:地址d刪除地址部分指定的文件行,地址的定義如下所述例如::,-10 d的功能是刪除當前行至當前行上面10行(供11行):地址m單地址將地址部分指定的文件行移到起始位置為單地址的地方例如::10,20的功能是將第10行移到第20行之下第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (4) 讀寫文件: 操 作 符操 作 結(jié) 果:w將當前正在編輯的文件存盤:w file將當前正在編輯的文件寫到文件file中:w file將當前正在編輯的文件內(nèi)容寫到文件file原有內(nèi)容之后:w! file強行進行寫盤文件file的動作:r file將文件fi
15、le讀入編輯緩沖區(qū)第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (5) 定義縮寫方式: 操 作 符操 作 結(jié) 果:ab 縮寫字符串 長字符串例如::ab pq priority queue的功能是將串pq定義為串priority queue的縮寫:ab顯示所有的縮寫式的命令:una 取消一個縮寫例如::una pq的功能是取消pq的縮寫第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (6) 設(shè)置參數(shù)命令: 操 作 符操 作 結(jié) 果:set nu設(shè)置編輯時在每一行前面顯示行號:set nonu設(shè)置編輯時在每一行前面不顯示行號:set all顯示全部的環(huán)境參數(shù)設(shè)置:set list顯示不可見字符:set sho
16、wmode在輸入方式下時,vi在屏幕右下方提示INPUT MODE:set autoindent設(shè)置自動縮進格式:set ignorecase設(shè)置字符串搜索時不區(qū)分大小寫:set sm(showmatch)設(shè)置顯示匹配:set nu設(shè)置編輯時在每一行前面顯示行號第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 5進入插入編輯方式的常用操作命令 在vi中可以有多種方式從命令行方式或末行命令方式進入到插入編輯方式中,常用的命令有: a 將命令行添加到光標之后 A 將文本添加到行尾 cw 修改一個單詞 c3w 修改三個單詞 i 將文本插入在光標之前第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 I 將文本插入行首o
17、在光標所在行下面插入新行O 在光標所在行上面插入新行r 在光標所在位置替換一個字符R 替換若干字符第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 6在vi程序中執(zhí)行Shell命令 如果用戶在vi程序中想執(zhí)行一條Shell命令,可輸入命令:!Shell;在Shell命令執(zhí)行完成之后,按回車鍵返回vi。如果要執(zhí)行多個Shell命令,可以在vi內(nèi)再次啟動Shell,輸入:sh 或者:!sh。特別有意思的是,可以將vi的命令和執(zhí)行Shell命令結(jié)合起來使用,如:$r !date。也可以通過在vi中執(zhí)行Shell命令對編輯緩沖區(qū)中的數(shù)據(jù)進行處理,如n!sort。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 10.2
18、Shell程序設(shè)計程序設(shè)計 10.2.1 Shell變量及其賦值 1用戶定義變量 用戶定義變量必須以字母或下劃線開始,可以包括字母、下劃線和數(shù)字的字符序列。用戶定義的Shell變量能用賦值語句置初值或者重置值。例如UNIX、ux_1、a123等都是合法的Shell變量。變量賦值和申明可以同時進行。 第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 2系統(tǒng)定義變量 在用戶登錄時,Shell對一些變量進行說明和初始化,這些變量在整個用戶工作環(huán)境中都起作用,因此也叫做環(huán)境變量。 下面先來看一個K Shell環(huán)境變量設(shè)置的.profile文件: PATH=/usr/bin:/etc:/usr/sbin:/usr
19、/lib:$HOME/bin:/sbin:/bin MAILCHECK=1 MAILPATH=/usr/spool/mail/user/第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 MAIL=/usr/spool/mail/user/MAILMSG=you have new mail/aexport PATH MAIL MAILCHECK MAILPATH MAILMSGexport PS1= $pwdexport TMOUT=200export EDITOR=/usr/bin/viif test s $MAILthen echo $MAILMSG第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 fiset
20、-o ignoreeofset -o noclobberset -o vialias dir= ls-lalias cls= clear第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 常用的系統(tǒng)定義變量有: (1) HOME存放用戶的主工作目錄。 (2) PATH命令查詢程序的查詢路徑名。 (3) PS1Shell的主提示符。 (4) PS2Shell的輔助提示符。 (5) MAIL規(guī)定mail程序用來存儲用戶郵件的文件名,通常這個文件是/usr/mail/user,其中user是用戶注冊名。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (6) MAILPATH用戶的電子郵箱路徑。 (7) MAILCHEC
21、K檢查新郵件的時間間隔,其缺省值為600 s。 (8) TERM存放終端的型號。 (9) CDPATHcd命令要查找的目錄表。 (10) LD_LIBRARY_PATH連接動態(tài)庫時的搜索路徑。 (11) LOGNAME用戶的注冊名。 (12) SHELLShell程序的路徑名。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (13) TZ時區(qū)信息。 (14) IFS內(nèi)部字段分隔符,通常是空格、制表符和換行符。 (15) PWD當前工作目錄變量。 (16) TMOUT無命令輸入時,Shell退出等待的時間(以秒計)。 (17) EDITOR系統(tǒng)默認的編輯器定義。 (18) HISFILE記錄歷史命令的文
22、件名。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 3Shell定義的變量 Shell定義的變量分為參數(shù)變量和狀態(tài)變量兩類,這類變量中的大部分只能被用戶讀取,而不能用普通方式對它們進行重置,因此也叫做只讀Shell變量。 第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (1) Shell參數(shù)變量如下: $0 命令名,在Shell程序內(nèi)可以用$0獲得調(diào)用該程序的名字 $1,$2 Shell程序的位置參數(shù)(C Shell除了這種形式外,還可以使用$argvn表示。) $#位置參量的個數(shù),不包含命令 $*所有位置參量,即相當于$1,$2,$3, $與$*基本相同,但當用雙引號轉(zhuǎn)義時,“$”還可以分解成多個參數(shù) 第
23、第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (2) Shell狀態(tài)變量如下: $? 上一個命令的返回代碼,如果命令執(zhí)行成功則返回真值,否則返回假值。 $ 當前命令的進程標識數(shù) $! Shell執(zhí)行的最近后臺進程標識數(shù) $- Shell標志位組成的字符串,可以由Shell傳遞而來,或由set命令設(shè)置第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 4引號機制 1) 單引號 單引號中任何字符(單引號本身除外)就是這個字符本身。 2) 雙引號 雙引號的作用與單引號相似,但是有幾個字符還存在特殊的含義,它們是$、單引號、雙引號和用于命令替換的反撇號。 3) 反撇號(重音符號或者反單引號) 任何一個命令行都可以放在反撇
24、號里。 第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 10.2.2 命令表與命令行 在Shell程序中,命令用符號“;”分隔,或者用花括號或圓括號括起來,形成順次執(zhí)行的命令序列叫做命令表。命令表可以用花括號括起來,構(gòu)成復(fù)合命令,復(fù)合命令在結(jié)構(gòu)上可以看成一個簡單命令。 第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 在Shell的提示符下輸入一個命令和參數(shù)并按下回車鍵后,Shell將該命令整行讀入,然后將其拆分為命令名和參數(shù)。若輸入中包含了命令的完整路徑,則試圖運行該命令,否則要先尋找是否有Shell函數(shù)對應(yīng)此命令,然后再在Shell內(nèi)部命令中尋找,若都沒有找到,則再使用$PATH中的路徑名去尋找命令對應(yīng)的可
25、執(zhí)行代碼。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 命令行的基本格式是: Command arguments 其中,command是一個UNIX命令、程序、工具或者Shell腳本;arguments(參數(shù))將送給可執(zhí)行的代碼。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 10.2.3 流程控制命令 1if 語句 雖然在Shell編程中可以使用一些特殊的命令分隔符實現(xiàn)簡單的條件控制命令(例如&和|等),但是在實際應(yīng)用中,由于它們過于簡單,因此不太適合復(fù)雜分支結(jié)構(gòu)的構(gòu)成。 第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 1) 無分支條件語句:if-then結(jié)構(gòu)if condition then commands
26、last-commandfi第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 2) 二分支條件語句:if-then-else結(jié)構(gòu) if condition then true-command last-true-command else false-command last-false-command fi第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 這種結(jié)構(gòu)程序在執(zhí)行時,會出現(xiàn)兩個分支選擇條件。當if condition中的條件滿足時,執(zhí)行then下面的命令語句,執(zhí)行完退出此條件語句;當條件不滿足時,執(zhí)行else下的命令語句,執(zhí)行完退出此條件語句。例如:第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 if s# =
27、 1 then cp $1 $HOME/user1 vi $1 else echo you must specify a filenameTry again fi exit 0第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 3) 三分支條件語句:if-then-elif結(jié)構(gòu) if condition_1 then command_1 elif condition_2 then command_2 elif condition_3 第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 then command_3 else command_n fi第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 2case 語句(case-i
28、n結(jié)構(gòu)) 使用case 語句可以實現(xiàn)編程中多選一的控制結(jié)構(gòu)。case語句的語法為: case word in pattern-1) pat1-list1; pattern-2) pat2-list2; *) default-list ; esac第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (3) 在Shell的條件控制語句中可以使用各種匹配符進行語句描述,遵循的原則與正則表達式中的通配符原則相同,如“*”可以匹配任何多個字符的字符串,“?”可以匹配任意單一字符,等等。 例如: case $# in 1) cat $1 ; 2) cat $2 $1; *) echo default esac第第10
29、10章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 3循環(huán)語句 循環(huán)語句在高級語言中的作用是對某一段程序內(nèi)容進行參變量修改的重復(fù)執(zhí)行。在Shell中也有類似的作用,循環(huán)語句可以完成對某些命令的重復(fù)執(zhí)行。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 1) for循環(huán):for-in-done 結(jié)構(gòu)for循環(huán)的語法格式為: for variable in list-of-values do commands last-command done第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 2) while循環(huán):while-do-done 結(jié)構(gòu) 前面介紹的for循環(huán)的循環(huán)次數(shù)是由list-of-values值的個數(shù)所決定的,而whil
30、e循環(huán)與for循環(huán)不同的是只要循環(huán)條件為真就繼續(xù)循環(huán)下去。 第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 while循環(huán)的語法結(jié)構(gòu)為: while condition do commands last command done第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 3) until循環(huán):until-do-done 結(jié)構(gòu) until循環(huán)與while循環(huán)類似,所不同的是until循環(huán)只要循環(huán)條件為假(非0值),就執(zhí)行循環(huán)體,其語句格式如下:第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 until condition do commands last-command done第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)
31、篇 4break、continue、exit和return語句 breakn 從for或者while循環(huán)中退出,n參數(shù)說明要退出n層循環(huán)。 continue 重新跳轉(zhuǎn)到循環(huán)的開始,進行for或者while循環(huán)體的下一次迭代。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 exitn 以狀態(tài)值n退出Shell,如果缺省,最后一條命令執(zhí)行的狀態(tài)就是退出狀態(tài)值。 returnn 以返回值n退出一個函數(shù),如果n缺省,則返回值是最后一條命令執(zhí)行的狀態(tài)值。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 10.2.4 命令替換與參數(shù)替換 1命令替換 命令替換與輸入/輸出重定向有點相似,但是命令替換是用一條命令的輸出作為另一
32、條命令的參數(shù)。例如命令: $ grep wc-l myfiles * 該命令首先計算文件myfiles的行數(shù)并將其作為grep命令的一個參數(shù),然后grep命令尋找當前目錄中所有包含該數(shù)字的文件。在Korn Shell中除了支持Bourne Shell的標準形式外,還支持下列形式: $ (command-list )第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 2參數(shù)替換 參數(shù)替換時Shell變量的值取決于另一個Shell變量的值,有以下幾種參數(shù)替換的方法: $parameter-word 如果變量parameter已經(jīng)置值,則取該值,否則取值為word。參數(shù)parameter可以是用戶定義變量、系統(tǒng)
33、定義變量、位置參數(shù)或狀態(tài)變量。例如: DIR=$1-$HOME 當存在位置參數(shù)時,變量DIR取值為$1,否則DIR取值為用戶的主目錄。 第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 $var = word 如果變量var沒有置值,則var置為word,最終的替換值也為word,如var已經(jīng)置值,var的值就作為替換的值。例如: cd $temp = /tmp rm r * 即使變量temp沒有置值,將只刪除/tmp中屬于自己用戶的那些文件。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 $parameter ? message 如果變量parameter已經(jīng)置值,則取該值,否則在標準錯誤輸出中打印出信息me
34、ssage,返回FALSE代碼。如果message缺省,則打印出標準信息。 $parameter + word 如果變量parameter已經(jīng)置值,則置換值取word,否則置換值為空。兩種情況都不影響原來parameter的值。例如: V=$flag + value 第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 10.2.5 Shell過程的運行 運行Shell程序的方法有以下三種: (1) sh uc:即在當前Shell下再運行一個子Shell程序,該sh程序不是從標準輸入讀入的命令串,而是用輸入轉(zhuǎn)向從文件uc中讀入命令串,并解釋執(zhí)行who|wc-l命令。 (2) sh uc:與大多數(shù)UNIX命令
35、(如cat)一樣,sh程序也可以從參數(shù)中接受文件名uc,并從這個文件中讀取命令串。 使用以上兩種形式執(zhí)行Shell程序時還可以帶有調(diào)試參數(shù)。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (3) 如果對經(jīng)常要執(zhí)行的命令文件,用上述兩個方法執(zhí)行還不方便的話,可以采用如下的步驟: 為命令文件建立執(zhí)行許可:chmod a+x uc。 在要執(zhí)行該命令文件時,直接輸入uc即可。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 10.3 UNIX實用程序?qū)嵱贸绦?10.3.1 目錄操作與文件操作命令 1pwd(print working directory)顯示當前工作目錄的路徑名 pwd命令用于顯示用戶當前所處的工作目錄
36、,工作目錄又稱為當前目錄。該命令顯示從根目錄到當前所處目錄的完整路徑名。這是一個常用的不帶參數(shù)的最簡單的命令。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 2ls (list)列出目錄內(nèi)容格式:ls -RadLCxmlnogrtucpFbqisf names3cp(copy)拷貝文件格式: cp -i-p-r file1 file2. target4cat(concatenate)串接并顯示文件格式:cat -u-s-v-t-e file.5cd(change directore)改變當前工作目錄格式:cd directory 第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 6rm,rmdir(remove
37、)刪除文件或目錄格式:rm -f -i file. rm -r-f -i dirname.file. rmdir -p-s dirname.7mv(move)移動文件格式:mv -f-i file1 file2. target 第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 8mkdir(make directory)建立新目錄格式:mkdir -m mode -p dirname.9chmod(change mode)改變文件(和目錄)的權(quán)限格式:chmod -R mode file.chmod ugoa +|-|= rwxlstugo file.第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 10lp在行
38、式打印機上打印指定文件的內(nèi)容,給出文件的紙面拷貝舉例:lp filename 打印文件filename。 11banner在標準輸出上以大號字母顯示消息(詞長可達10個字符)舉例:banner student 顯示大號字母student。 第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 12at,batch在以后某個時刻執(zhí)行命令格式:at -f script -m time date +increment at -l job. at -r job. batch 第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 13cut剪下文件每一行中所選中的字數(shù) 說明:可用grep對文件進行水平方向的“裁剪”,或用paste
39、對文件進行以欄為單位的合并(即按水平方向);若要對表中的欄重新排序,可用cut和paste。 格式: cut -clist file. cut -flist -d chat -s file. 第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 14diff不同文件的比較程序格式:diff -bitw -c|-e|-f|-h|-n file1 file2 diff -bitw -c number file1 file2 diff -bitw -D string file1 file2 diff -bitw -c|-e|-f|-h|-n -l -r -s -s name dir1 dir2 第第1010章章
40、應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 15echo回應(yīng)實參格式:echo arg echo -n arg 16kill按默認情況終止一個進程格式:kill -signal pid kill -signal -pid kill -l 第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 17lex生成簡單詞法分析任務(wù)的程序格式:lex -ctvn -v -Qy|n file 18lpstat顯示有關(guān)lp打印服務(wù)狀態(tài)的信息格式:lpstat options 第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 19mail,rmail讀郵件或給用戶發(fā)郵件格式:發(fā)送郵件: mail -tw -m message-type recipient.
41、 rmail -tw -m message-type recipient.讀郵件: mail -ehpPqr -f file 轉(zhuǎn)發(fā)郵件: mail -f recipient.調(diào)試: mail -x debyg-level other-mail-options recipient.第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 20mailx交互式消息處理系統(tǒng)格式:mailx options name. 21make維護、更新和重新生成程序組格式:make -f makefile -eiknpqrst names 22nohup運行命令不受掛起和退出的影響格式:nohup command argumen
42、ts 23pr顯示文件 24ps報告進程狀態(tài)格式:ps option 第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 25spell查找拼寫錯誤格式:spell -v -b -x -l +local-file files 26stty設(shè)置終端任選項格式:stty -a -g options 27uname顯示當前UNIX系統(tǒng)的名字格式:uname -amnprsv 28wc詞計數(shù)格式:wc -lwc filename 第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 29who誰在系統(tǒng)中格式:who -uTlHqpdbrtas file who -qn xfile who am i who am I 30yac
43、c另一個編譯程序的編譯程序第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 10.3.2 過濾器 1正則表達式 正則表達式(Regular Expression)這個術(shù)語來自于計算機科學,它是用于確定字符串模式的一個規(guī)則集。正則表達式中能使用很多的特殊符號,還有一些與字符串匹配時有關(guān)的規(guī)則。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 1) 正則表達式中的特殊符號 在正則表達式內(nèi)某些符號是特殊符號,這些符號及意義如下: .能與除換行符之外的行內(nèi)任何字符相匹配。 * 匹配前一字符的零次或多次出現(xiàn)。*如果緊跟在字符類后,則和該字符類中任何字符組成的串相匹配。 用于改變特殊符號的含義,也可以后跟一個字符的八進制表示
44、。 定義字符類,匹配方括號內(nèi)的任何一個字符。 第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 如出現(xiàn)在正則表達式首,則表示行首的下一個字符串應(yīng)當是行首的頭一個字符串。如begin,表示begin僅出現(xiàn)在行首才匹配。 $ 如果出現(xiàn)在正則表達式末尾,則表示行尾$前面的正則表達式所匹配的字符串僅出現(xiàn)在行尾才匹配。 雙引號內(nèi)的字符在匹配時忽略其特殊含義。 字尾匹配。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 2) 正則表達式的匹配規(guī)則 正則表達式在匹配字符串時總是遵循以下的原則: (1) 正則表達式總是盡可能與最長的字符串相匹配。 舉例:Th .*is與This is a genesis匹配,(.*)與(This
45、) and (That)匹配,而()*)與(out(in)side)中(in)匹配。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (2) 一個正則表達式不排斥另外一個正則表達式。如果一組正則表達式由兩個正則表達式組成,那么第一個表達式與盡可能長的字符串相匹配后,并不排除第二個表達式與第一個表達式已匹配部分的串相匹配。 舉例:s.*gs 與singing songs匹配,s.*ing與singing匹配。 (3) 正則表達式總是代表最后那次使用的正則表達式。 (4) 在替換字符串中(用于vi等程序),符號“&”取正則表達式所匹配的搜索字符串的值。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 3) 加標記的括
46、號和加標記的數(shù)字 可以用加標記的括號將正則表達式括起來,正則表達式的匹配規(guī)則并不是只與加標記的括號相匹配,所以加括號和不加括號的正則表達式所匹配的內(nèi)容是相同的。如正則表達式a(b*)c和ab*c匹配的內(nèi)容相同。 加標記的括號可以嵌套,如:(a-zA-Z*(0-9*)。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 2兩個使用正則表達式的Shell命令 1) sort用于排序和合并文件 格式:sort -fdnbri +位置-位置 -o 輸出文件 輸入文件 2) grep在文件中查找指定模式的行 格式:grep options limited regular expression file. 第第101
47、0章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 10.4 UNIX程序設(shè)計程序設(shè)計 10.4.1 文件系統(tǒng)程序設(shè)計 1獲取文件的狀態(tài) 在程序設(shè)計中,有的時候需要獲得有關(guān)文件的類型、大小、文件主和時間信息,這可以通過系統(tǒng)調(diào)用stat和fstat來獲取。這兩種系統(tǒng)調(diào)用所設(shè)計的頭文件和調(diào)用格式為:第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 #include #include int stat( pathname,sbuf)char *pathname;struct stat *sbuf; int fstat(fd,sbuf)int fd;struct stat *sbuf;第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 stat
48、和fstat都是從一個文件的i節(jié)點獲得有關(guān)狀態(tài)信息的。stat是根據(jù)參數(shù)pathname給出的文件路徑名,通過搜索目錄項來獲取文件的外存i節(jié)點;fstat是根據(jù)參數(shù)fd給出的打開文件的描述符,通過打開文件結(jié)構(gòu)來獲取內(nèi)存i節(jié)點,進而獲得外存i節(jié)點信息(內(nèi)存i節(jié)點不存放有關(guān)的時間信息)。然后stat和fstat將獲得的i節(jié)點信息重新安排后放入sbuf指向的stat結(jié)構(gòu)中。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 stat結(jié)構(gòu)的定義如下:strct statdev_t st_dev; /i節(jié)點所在的設(shè)備號(short)ino_t st_ino; /i節(jié)點號(ushort)ushort st_mode;
49、 /文件模式stort st_nlink; /文件鏈接數(shù)ushort st_uid; /文件主用戶標識符ushort st_gid; /文件用戶組標識符第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 dev_t st_rdev; /針對設(shè)備特別文件的設(shè)備號(short)off_t st_size; /文件的當前大小,特別文件為0(long)time_t st_atime; /文件的存取時間(long)time_t st_mtime; /文件的修改時間(long)time_t st_ctime; /文件的狀態(tài)(如文件模式、用戶標識符、鏈接數(shù)、時間等),改變時間(long);第第1010章章 應(yīng)用開發(fā)篇應(yīng)
50、用開發(fā)篇 2搜索目錄樹 有時用戶需要在一個目錄樹的范圍內(nèi)對文件和目錄執(zhí)行某些操作。對此,UNIX提供了例行程序ftw,它能從指定的目錄開始掃描目錄樹,并對找到的每一個目錄項調(diào)用用戶定義的函數(shù)。ftw函數(shù)的格式如下:第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 #include int ftw(path, func,depth)char *path; /指向目錄路徑名int func(); /用戶定義的處理函數(shù)int depth; /可以同時使用的文件描述符個數(shù),即可以同時打開的文件個數(shù)第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 用戶定義的函數(shù)要符合下面給出的格式:int func( name, stat
51、ptr, type )char *name; /存放ftw找到的目標名 start stat *statptr; /指向stat結(jié)構(gòu)指針,ftw在該結(jié)構(gòu)中存放目標的狀態(tài)信息int type; /ftw指示目標的類型 /bodyu of function ;第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 參數(shù)type的目標類型在ftw.h中定義,類型取值為:FTW_F 目標是文件FTW_D 目標是目錄FTW_DNR 目標是不能讀的目錄FTW_NS 目標不能被stat成功地執(zhí)行第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 10.4.2 高級進程間的通信 1消息通信 利用消息通信,進程可以將具有一定格式的消息發(fā)送
52、給任意進程。UNIX系統(tǒng)V為消息通信提供了四個系統(tǒng)調(diào)用,還要涉及以下幾個頭文件。 #include #include #include 第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (1) 生成一個消息隊列。其格式如下:int msgget(key,flags) /獲取消息隊列標識數(shù)key_t key; /消息隊列關(guān)鍵字,長整型int flags; /操作標志(2) 向消息隊列發(fā)送一個消息。其格式如下:int msgsnd(qid,buf,nbytes,flags)int qid,nbytes,flags;struct msgbug *buf;第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (3) 從消息隊
53、列中接收一個消息。其格式如下:int msgrcv(qid,buf,nbytes,mtype,flags)int qid,nbytes,flags;long nbytes;struct msgbuf *buf;(4) 消息隊列的控制。其格式如下:int msgctl(qid,cmd,sbuf)int qid,cmd;struct msqid_ds *sbuf;第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 2共享內(nèi)存 在UNIX中,進程間傳遞數(shù)據(jù)的最快方法是讓一些相關(guān)進程直接共享某些內(nèi)存區(qū)域,而系統(tǒng)V支持任意數(shù)據(jù)進程對內(nèi)存的共享。每一個共享內(nèi)存區(qū)域稱為共享段,一個進程可以訪問多個共享段。共享內(nèi)存設(shè)計的
54、頭文件和系統(tǒng)調(diào)用如下: #include #include #include 第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (1) 創(chuàng)建一個共享內(nèi)存段。其格式如下: int shmget(key,nbytes,flags) key_t keys; /共享內(nèi)存段關(guān)鍵字 int nbytes,flags; /長度、標志 (2) 將共享內(nèi)存段映射到進程的虛擬地址空間。其格式如下: char *shmat(segid,addr,flags) int segid,flags; char *addr;第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (3) 解除共享內(nèi)存段的映射。其格式如下:int shmdt(addr)
55、char *addr; /共享內(nèi)存段虛擬地址(4) 共享內(nèi)存段控制。其格式如下:int shmct(segid,cmd,sbuf)int segid,cmd; /標識符,控制字struct shmid_ds * sbuf; /指向共享內(nèi)存段控制結(jié)構(gòu)指針 第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 3信號燈 進程間的互斥和同步可以利用P、V操作實現(xiàn),但是UNIX系統(tǒng)并沒有直接向用戶提供這兩個操作,而是提供了一組有關(guān)信號燈的系統(tǒng)調(diào)用。在系統(tǒng)V中的信號燈機制的功能比一般信號燈要強,管理和使用也比較復(fù)雜。用戶可以一次對一組信號燈進行相同或者不同的操作。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 系統(tǒng)V中有關(guān)信
56、號燈的頭文件和系統(tǒng)調(diào)用如下:#include #include #include (1) 創(chuàng)建一個信號燈組。其格式如下:int semget(key,nsems,flags)key_t key; /信號燈組關(guān)鍵字int nsems,flags; /信號燈個數(shù),操作標志第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (2) 對信號燈組的控制。其格式如下:int semop(sid,ops,nops)int sid; /信號燈組標識符struct sembuf *ops; /對信號燈組進行操作的數(shù)據(jù)結(jié)構(gòu)unsigned nops; /操作個數(shù)第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 semop根據(jù)sembu
57、f型的結(jié)構(gòu)數(shù)組對標識數(shù)為sid的信號燈組中的信號燈進行塊操作。在sembuf結(jié)構(gòu)中定義了對編號為sem_num的信號燈要進行的操作。 struct sembuf short sem_num; /信號燈編號,從0開始 short sem_op; /信號燈操作數(shù) short sem_flg; /操作標志 ;第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 (3) 信號燈控制。其格式如下:int semctl(sid,snum,cmd,arg);int sid,snum,cmd; /信號燈組ID,信號燈編號,控制信令union semun arg;聯(lián)合semun的格式為:union semun int val
58、; struct semid_ds *buf; /指針信號燈集控制塊的指針 ushort *array;第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 在semctl調(diào)用中,系統(tǒng)根據(jù)cmd的主要取值及相關(guān)的arg含義為: GETVAL:將信號燈(sid,snum)的值存入arg.val。 SETVAL:將信號燈(sid,snum)的值置為arg.val,用于對信號燈初始化。 GETALL:將信號燈組(sid)中所有信號燈的值取到arg.array中。 SETALL:將信號燈組(sid)中所有信號燈的值設(shè)置為arg.array中的值。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 IPC_STAT:將信號燈組(
59、sid)的狀態(tài)信息取到buf結(jié)構(gòu)中。 IPC_SET:將信號燈組(sid)的狀態(tài)信息設(shè)置為buf結(jié)構(gòu)中的信息。 IPC_RMID:刪除信號燈組的標識數(shù)。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 10.5 Windows應(yīng)用程序設(shè)計應(yīng)用程序設(shè)計 10.5.1 WIN32 API WIN32 API即為Microsoft 32位平臺的應(yīng)用程序編程接口(Application Programming Interface)。所有在WIN32平臺上運行的應(yīng)用程序都可以調(diào)用這些函數(shù)。標準WIN32 API函數(shù)可以分為七類:窗口管理函數(shù)、窗口通用控制函數(shù)、Shell特性函數(shù)、圖形設(shè)備接口函數(shù)、系統(tǒng)服務(wù)函數(shù)、國
60、際特性函數(shù)和網(wǎng)絡(luò)服務(wù)函數(shù)。下面僅對其中的四類函數(shù)予以介紹。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 1窗口管理(Window Management)函數(shù) 窗口管理函數(shù)向應(yīng)用程序提供了一些創(chuàng)建和管理用戶界面的方法。可以使用窗口管理函數(shù)創(chuàng)建和使用窗口來顯示輸出、提示用戶進行輸入以及完成其他一些與用戶進行交互所需的工作。大多數(shù)應(yīng)用程序都至少要創(chuàng)建一個窗口。第第1010章章 應(yīng)用開發(fā)篇應(yīng)用開發(fā)篇 應(yīng)用程序通過創(chuàng)建窗口類及相應(yīng)的窗口過程來定義它們所用窗口的外觀和行為。窗口類可標識窗口的缺省屬性,比如窗口是否接受雙擊鼠標按鈕的操作,是否帶有菜單等。窗口過程中包含的代碼用于定義窗口的行為,完成所需的任務(wù),以及
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安徽省淮南市潘集區(qū)2024-2025學年八年級上學期期中考試英語試題(含答案無聽力原文及音頻)
- 機動三輪車相關(guān)行業(yè)投資規(guī)劃報告范本
- 化妝品原料相關(guān)行業(yè)投資方案范本
- 電池材料用化學品行業(yè)相關(guān)投資計劃提議
- 離合器分離軸承行業(yè)相關(guān)投資計劃提議
- 腦梗塞的抗凝治療指南
- 【初中地理】氣溫和降水(第2課時)課件-2024-2025學年湘教版地理七年級上冊
- 重癥護理小組年終總結(jié)
- 在XXXX年黨建引領(lǐng)企業(yè)高質(zhì)量發(fā)展創(chuàng)新實踐推進會上的講話范文
- 物聯(lián)網(wǎng)與公安工作
- 河南省2023-2024-學年度高一年級學業(yè)質(zhì)量監(jiān)測考試語文試題(含答案)
- 憲法是根本法教學設(shè)計
- 高中語文選擇性必修中冊《第一單元 單元研習任務(wù)》課件
- 系統(tǒng)性紅斑狼瘡(SLE)護理查房
- 呼吸內(nèi)科慢性阻塞性肺病管理PDCA循環(huán)案例
- 醫(yī)保法律法規(guī)培訓課件
- 三門峽水利工程案例分析工程倫理
- 玉米深加工簡介演示
- 吊車參數(shù)表完整版本
- 《小學高年級數(shù)學閱讀能力的培養(yǎng)與研究》開題報告
- 睡眠障礙的藥物治療和非藥物干預(yù)
評論
0/150
提交評論