




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、 Linux試驗報告姓 名黃芳愷班 級軟件工程114學 號119074258指導老師 阮越 名目試驗一 Linux基本命令的使用 試驗二 簡潔Shell程序設計 試驗三 Linux下簡潔C程序設計與文件操作 試驗四 Linux下進程操作與進程間通信 試驗五 Linux線程的使用 試驗六 Linux進程間的IPC 試驗七 Linux下訪問Mysql數(shù)據(jù)庫 試驗八 Linux下網(wǎng)絡編程 練習題:grep、bash、生產(chǎn)者消費者試驗一 Linux基本命令的使用1、試驗目的 學習和把握Linux的基本命令。2、試驗內(nèi)容和步驟步驟1:以user_login用戶身份并使用telnet登錄Linu
2、x服務器,依據(jù)提示創(chuàng)建自己的賬戶和口令。步驟 2:使用新創(chuàng)建的用戶賬戶和口令登錄Linux系統(tǒng),察看登錄后的界面。步驟3:使用pwd命令察看當前的工作名目,然后用ls命令查看當前名目下的內(nèi)容,嘗試使用-a,-l,-F,-A,-lF等不同選項并比較不同之處。 -a do not ignore entries starting with -I, -ignore=PATTERN do not list implied entries matching shell PATTERN-l use a long listing format-F, -classify append indicato
3、r (one of */=>|) to entries -A, -almost-all do not list implied . and . -lF ignore file 步驟4:在當前名目下建立一個名為test的新名目,然后將工作名目切換到test下,嘗試將/etc名目下的文件passwd拷貝到該名目下(cp 源文件 目的名目)。察看當前名目下的passwd文件的屬主和文件權限。步驟5:嘗試向當前名目下的passwd文件和/etc/passwd文件分別寫入一些新內(nèi)容(可使用echo “字符串” >>文件的命令),看看操作能否成功,假如不能成功,請說明緣由。用cat命令掃
4、瞄文件password的內(nèi)容,用more命令進行掃瞄翻頁操作,再用less命令掃瞄文件的內(nèi)容。比較這幾個命令的不同之處對當前名目中成功,由于該名目下的passwd文件對當前用戶具有寫的權限。對/etc/passwd文件的操作被拒絕由于對當前用戶不具有寫的權限cat命令將文件的內(nèi)容全部顯示,more命令將文件內(nèi)容分屏顯示,less命令進行刷新的全部顯示步驟6:用ls命令查看test下文件的權限,用mv命令更改文件password的文件名為test.txt,嘗試用chown和chgrp更改文件的屬主為root、組為root,看看能否成功,不成功,請說明緣由。嘗試用chomd將文件權限為“-rw-”
5、??纯茨芊癯晒?,不成功,請說明緣由。用chown和chgrp更改文件的屬主為root、組為root,不成功。由于chown和chgrp一般是root的權限步驟7:用rm命令刪除test名目下的全部文件,再用rmdir命令刪除test名目。 (想一想有沒有一條命令將名目及名目下的全部文件刪除,寫出這條命令)rm -rf test步驟8:使用ps命令查看當前系統(tǒng)內(nèi)的進程,并利用man命令獵取ps命令的參數(shù),寫出獵取當前終端進程執(zhí)行狀況的ps命令。步驟9:使用df命令查看當前系統(tǒng)已安裝的文件系統(tǒng)的空間使用狀況,記錄結(jié)果。步驟10:使用du命令查看用戶的工作名目占用了多少空間,記錄結(jié)果。步驟
6、11:使用free命令查看內(nèi)存資源的使用狀況,記錄結(jié)果。步驟12:使用man獵取tar和gzip的掛念信息,嘗試將test名目下的文件打包并壓縮,然后到另外一名目tmp下解包,寫出這幾條命令。步驟13:嘗試執(zhí)行“l(fā)s l > tmp”,看看這條命令的執(zhí)行會消滅什么結(jié)果,解釋一下這條命令。創(chuàng)建一個名為tmp的文件并將ls -l輸出的內(nèi)容寫入tmp中步驟14:嘗試執(zhí)行find /usr/src -name *.c -print | xargs grep “#include”,看看這條命令的執(zhí)行會消滅什么結(jié)果,解釋一下這條命令。匹配查找列表輸出/usr/src下以.c結(jié)尾的文件中含有“#inc
7、lude”的內(nèi)容步驟15:執(zhí)行cal和date命令,說說這兩條指令的用途。步驟16:執(zhí)行命令clear和logout,退出系統(tǒng)。(想一想有沒有其他的方法,寫出這種方法)Exit步驟17:執(zhí)行命令shutdown,關閉系統(tǒng)。(想一想有沒有更簡潔的命令,寫出這條命令)Init 03、試驗結(jié)論通過對linux 的常用命令的學習,讓我對linux的系統(tǒng)有了初步的生疏-這是一個完全基于命令操作的操作系統(tǒng),這些命令組成了強大的命令系統(tǒng),供應了完善的功能。這些命令操作將為我以后的linux學習打下良好的基礎。試驗二 簡潔Shell程序設計 1、試驗目的 (1) 學習和把握vi編輯器的基本
8、使用方法。(2) 學習和把握編寫簡潔的shell程序。2、試驗內(nèi)容和步驟2.1 vi的使用步驟1:以root用戶身份登錄進入Linux 系統(tǒng)。步驟 2:啟動Vi,切換到輸入模式,輸入一段英文:This ia an exercise!We use Vi to edit it. Left,down,up,right 步驟3:嘗試匹配其中的一串字符,寫出這命令及執(zhí)行結(jié)果。:/Left步驟4:嘗試替換其中的一串字符,寫出這命令及執(zhí)行結(jié)果。:3s/Left/123/g步驟5:嘗試復制/刪除其中的
9、一行或幾行文本,寫出命令及執(zhí)行結(jié)果。命令模式下,光標移動到那一行按”nyy”(n為要復制的行數(shù))再按p粘貼。命令模式下,光標移動到那一行按”ndd”(n為要刪除的行數(shù))刪除一行或幾行。步驟6:嘗試復制/刪除其中的一個單詞或幾個字符,寫出命令及執(zhí)行結(jié)果。命令模式下,光標移動到那一行按”nyw”(n為要復制的單詞數(shù))再按p粘貼。命令模式下,光標移動到那一行按”ndw”(n為要刪除的單詞數(shù))刪除一個或幾個字符。步驟7:嘗試使用鼠標復制文本,寫出命令及執(zhí)行結(jié)果。直接使用鼠標選中復制,將光標移動到要粘貼的地方用鼠標粘貼即可完成復制文本。步驟8:嘗試存盤退出操作,寫出命令。:wq2.2 簡潔的shell程
10、序步驟1:使用Vi將程序清單2-1的程序輸入。步驟 2:嘗試運行該程序,假如不能運行,緣由是什么,怎樣修改。沒有執(zhí)行權限chmod +x test步驟3:執(zhí)行程序,寫出程序的執(zhí)行結(jié)果。步驟4:閱讀程序,把握shell函數(shù)的編寫方法,補全函數(shù)file_run。file_run()ls -l | awk '/-(.x)+/ print $9'步驟5:修改程序中的函數(shù)uers(),使得顯示在線用戶時不分行。(提示:可以使用循環(huán),對每個在線用戶分別處理。)uers()echo "there are who|wc -l users online"echo "
11、who are"for i in $(who | awk 'print $1');doprintf "%s " $idoneecho3、試驗結(jié)論Linux系統(tǒng)shell編程其本質(zhì)就是linux命令的組合,通過很多簡潔命令的組合可以完成很多功能,可以開發(fā)一些小型程序。試驗三 Linux下簡潔C程序設計與文件操作1、試驗目的 (3) 學習和把握gcc等Linux的開發(fā)調(diào)試環(huán)境。(4) 學習并把握Linux的文件操作。(5) 編寫并實現(xiàn)試驗步驟6要求的程序。2、試驗內(nèi)容和步驟步驟1:使用Vi將程序清單3-1和3-2的程序輸入,并在當前名目下創(chuàng)建
12、文件“file.in”和文件“file.out”,盡可能的使文件“file.in”大一些。步驟 2:利用gcc分別編譯這兩個程序,寫出編譯命令和執(zhí)行結(jié)果,假如不成功,嘗試利用gdb調(diào)試。gcc o list3_1 list3_1.cgcc o list3_2 list3_2.c步驟3:認真觀看這兩個程序,比較標準C的文件操作和Linux的系統(tǒng)調(diào)用open、read、write等的使用區(qū)分。答:標準c的文件操作一個是庫函數(shù)的調(diào)用,linux中系統(tǒng)調(diào)用文件操是底層的文件調(diào)用,其運行效率略有差距,同時參數(shù)也不同,返回的數(shù)據(jù)類型也不同。步驟4:依據(jù)說明重新修改程序3-2,并使用time命令察看程序執(zhí)行
13、的時間效率上有何區(qū)分。 步驟5:輸入、編譯并運行程序3-3和3-4,寫出執(zhí)行結(jié)果,并比較他們fseek和lseek在使用方法上的異同兩者都是對文件的讀寫指針進行設置但兩者的返回類型不同,fseek返回的是int型lseek返回的是off_t型 步驟6:學習并分別使用標準C的文件操作函數(shù)和Linux的系統(tǒng)調(diào)用創(chuàng)建一個對同學基本信息進行操作(插入、修改和刪除)的C程序,同學基本信息以結(jié)構(gòu)體的形式存儲在文件中,struct stu_info的定義如下:struct stu_info char stu_num12;char name10;short int sex;/*0為女生,1為男
14、生*/char mobile_phone12;3、試驗結(jié)論通過對文件操作的編程,讓我把握了文件的創(chuàng)建,打開,讀寫,以及特定位置的讀寫關閉等操作。并且從系統(tǒng)底層調(diào)用和標準c函數(shù)庫兩個角度對文件的操作比較中,生疏到兩者的異同。試驗四 Linux下進程操作與進程間通信1、試驗目的 (1) 學習和把握fork等系統(tǒng)調(diào)用的基本使用方法。(2) 利用Linux中的管道實現(xiàn)父子進程間的同步。2、試驗內(nèi)容與步驟步驟1:使用Vi將程序清單4-1的程序輸入、編譯并運行,學習和把握fork的基本調(diào)用方法。步驟 2:使用Vi將程序清單4-2、4-3和4-4的程序輸入、利用gcc分別編譯這三個程序,寫出編譯命
15、令和編譯結(jié)果,假如不成功,嘗試利用gdb調(diào)試。gcc -o list4_2 list4_2.cgcc -o father father.cgcc -o child child.c步驟3:寫出編譯這三個程序的makefile,然后利用make進行編譯,談談這么做的好處??梢怨?jié)省勞動時間,讓三個程序同時編譯,簡化了操作。步驟4:運行這三個程序,寫出運行結(jié)果。 步驟5:屏幕上顯示出的執(zhí)行結(jié)果是哪一個進程執(zhí)行的結(jié)果?father和child步驟6:父進程中的printf有向屏幕輸出嗎?為什么?沒有,由于父進程的標準輸出已經(jīng)被重定向。步驟7:利用父子進程間的管道通信方式,改寫試驗3步驟6要求的程序。3、
16、試驗結(jié)論通過該節(jié)試驗,我更進一步理解了fock函數(shù)dup函數(shù)exercl函數(shù)的工作原理,讓我了解到了進程并發(fā)的概念。學習了如何創(chuàng)建子進程,進程映象替換,以及通過無名管道實現(xiàn)父子進程中的輸入輸出重定向試驗五 Linux線程的使用1、試驗目的 學習和把握Linux線程的創(chuàng)建以及同步方法。2、試驗內(nèi)容和步驟步驟1:輸入程序5-1,編譯并運行寫出執(zhí)行結(jié)果。thread_function is running.Argument was 10Waiting for thread to finish.Thread joined,it returned Thank you for the CPU t
17、imeshare_int is now -10步驟 2:認真研讀代碼,描述pthread_create函數(shù)中各個參數(shù)的意義,并給出線程的入口函數(shù)的調(diào)用方法,描述兩線程間參數(shù)傳遞的方式。該函數(shù)有四個參數(shù),第一個參數(shù)為一個指向pthread_t類型數(shù)據(jù)的指針,其次個參數(shù)為創(chuàng)建線程的屬性,一般用NULL表示用默認屬性,第三個參數(shù)為指向要調(diào)用函數(shù)的函數(shù)指針,第四個參數(shù)是傳給該函數(shù)的參數(shù)。參數(shù)傳遞方式:首先線程的函數(shù)要定義成void *(*start_routine)(void*)的形式,主線程創(chuàng)建子線程時可將要傳給子線程的信息放在pthead_create函數(shù)的第四個參數(shù)上,子線程創(chuàng)建后就可以通過函數(shù)
18、的參數(shù)直接獲得(為一個void類型的指針)。步驟3:打開注釋掉的全局變量aa及操作aa的相關代碼,回答這跟進程有什么不同。由于線程是共享進程內(nèi)資源的,所以子線程假如轉(zhuǎn)變了aa的值,主線程內(nèi)aa的值也會發(fā)生轉(zhuǎn)變,而假如是創(chuàng)建了一個子進程,若子進程轉(zhuǎn)變了aa的值,主進程內(nèi)aa的值是沒有發(fā)生轉(zhuǎn)變的。步驟4:輸入程序5-2,編譯并運行,寫出運行結(jié)果。Input some text,Enter 'end' to finishbasjkYou input 5 charactersendWaiting for thread to finish.Thread joined步驟5:認真研讀代碼,
19、描述利用信號量實現(xiàn)線程間同步調(diào)用方法。定義一個全局的sem_t類型的變量,通過函數(shù)sem_init(&bin_sem,0,0)初始化信號量,sem_wait函數(shù)相當于P操作,sem_post函數(shù)相當于V操作,改程序的實質(zhì)其實是一個生產(chǎn)者消費者問題。注:int sem_init(sem_t *sem, int pshared, unsigned int value);The value argument specifies the initial value for the semaphore.If pshared has the value 0, then the semaphore
20、is shared between the threads of a process.If pshared is nonzero, then the semaphore is shared between processes.步驟6:學習并使用線程間的同步方法,重新改寫試驗3步驟6要求的程序。要求啟用兩個線程,其中主線程接受用戶對文件的操作命令然后發(fā)給子線程,子線程完成對文件的實際操作(留意線程間的同步)。3、試驗結(jié)論通過本節(jié)試驗學習了如何創(chuàng)建線程,如何在線程之間傳遞參數(shù)已經(jīng)共享數(shù)據(jù),以及如何利用信號量同步線程。如何在線程之間傳遞參數(shù)已經(jīng)共享數(shù)據(jù),以及如何利用信號量同步線程。試
21、驗六 Linux進程間的IPC1、試驗目的 學習和把握Linux進程間的IPC及同步方法。2、試驗內(nèi)容和步驟步驟1:輸入程序6-1,6-2編譯并運行寫出執(zhí)行結(jié)果。步驟 2:認真研讀代碼,寫出程序中實現(xiàn)P、V操作的相關函數(shù)和代碼,描述程序的同步工作過程。上述代碼實現(xiàn)多個進程讀寫臨界區(qū)時,使用信號量進行同步的例子,讀臨界區(qū)時先P操作,出臨界后V操作,上面結(jié)果中O與X的消滅都是成隊的。步驟3:輸入程序6-3和6-4,編譯執(zhí)行并寫出結(jié)果。步驟4:程序6-3和6-4中哪段代碼實現(xiàn)了共享,描述實現(xiàn)內(nèi)存共享的主要函數(shù)的參數(shù)意義和這些函數(shù)的使用方法。int shmget(key_t key, siz
22、e_t size, int shmflg);/向系統(tǒng)申請一塊共享內(nèi)存void *shmat(int shmid, const void *shmaddr, int shmflg); /將共享內(nèi)存掛載到shmaddr指針上int shmdt(const void *shmaddr);/卸載共享內(nèi)存int shmctl(int shmid, int cmd, struct shmid_ds *buf);/刪除共享內(nèi)存以及其他把握shmctl(shmid, IPC_RMID, 0);步驟5:學習并使用IPC中信號量和共享內(nèi)存的使用方法,重新改寫試驗3步驟6要求的程序。要求啟動多個進程,每一個進程都可
23、以單獨對文件進行操作,進程間通過信號量進行同步,對文件的操作映射到共享內(nèi)存中。3、 試驗結(jié)論通過對改節(jié)試驗,讓我了解了進程IPC信號量訪問臨界區(qū),以及進程之間訪問共享內(nèi)存的實現(xiàn)方法和同步機制,把握了上述一系列函數(shù)的使用方法。IPC用于完成進程間通信,包括信號量,共享內(nèi)存已及消息隊列,在編寫linux程序時非有用試驗七 Linux下訪問Mysql數(shù)據(jù)庫1、試驗目的 學習和把握Mysql數(shù)據(jù)庫及編程訪問方法。2、試驗內(nèi)容和步驟步驟1:在Mysql中使用sql命令create database foo命令創(chuàng)建數(shù)據(jù)庫foo。步驟 2:在數(shù)據(jù)庫foo中創(chuàng)建表children。create ta
24、ble children (childno int(11) not null auto_increment,fname varchar(30),age int(11),primary key (childno);步驟3:向表children中插入若干記錄。insert into children values (1,Jenny,17);Insert into children values (2,Andrew,13);Insert into children values (3,Alex,12);Insert into children values (4,Tom,11);Insert int
25、o children values (5,Jack,7);Insert into children values (6,Ella,14);步驟4:輸入、編譯并運行程序7-1、7-2和7-3,寫出運行結(jié)果。步驟5:學習并使用C語言訪問Mysql的基本方法,重新改寫試驗3步驟6要求的程序。要求使用數(shù)據(jù)庫保存結(jié)構(gòu)。3、試驗結(jié)論通過mysql.h C語言可以使用數(shù)據(jù)庫。通過該節(jié)試驗我把握了linux下怎么用c語言進行簡潔的數(shù)據(jù)庫方面的編程。試驗八 Linux下網(wǎng)絡編程1、試驗目的 學習和把握socket函數(shù)的基本使用方法。2、試驗內(nèi)容和步驟步驟1:輸入、編譯并運行程序8-1和
26、8-2,寫出程序的執(zhí)行結(jié)果。步驟 2:學習并使用socket函數(shù)的基本使用方法,完善并重新改寫前幾個試驗實現(xiàn)的程序。要求用戶在客戶端實現(xiàn)數(shù)據(jù)操作懇求的輸入,然后上傳到服務器端完成對數(shù)據(jù)庫的實際操作。同學在實現(xiàn)時應盡可能的使用前幾個試驗的成果,即應當包括多線程或多進程、數(shù)據(jù)庫以及socket等。3、試驗結(jié)論通過改節(jié)試驗我把握了linux下用c語言進行網(wǎng)絡編程。socket可以實現(xiàn)不同主機間進程的通信,可以編寫出網(wǎng)絡應用程序課堂練習:1. grep:#include <stdio.h>#include <string.h>int main(int argc,char* ar
27、gv)FILE *fp;char tmp100,c;char* tmp1;int l = 0,line = 1;if(argc<3)printf("input wrong!n");return 0;if(!(fp=fopen(argv2,"r")printf("can't open file!n");return 0;fscanf(fp,"%c",&c);NEW_LINE:while(c!='n'&&!feof(fp)tmpl=c;l+;fscanf(fp,&q
28、uot;%c",&c);tmpl=0;tmp1 = tmp;while(l!=0)if(!strncmp(argv1,tmp1,sizeof(argv1)printf("line %d: %sn",line,tmp);l-;tmp1+=sizeof(char);fscanf(fp,"%c",&c);line+;if(!feof(fp)goto NEW_LINE;return 1;運行結(jié)果:2. bash:#include <unistd.h>#include <stdio.h>#include <s
29、tring.h>#include <stdlib.h>#include <sys/types.h>void main()pid_t pid;char arg100;char *parg,*p;int lenth,i,j;printf("mysh#");while(1)j=0;fgets(arg,sizeof(arg),stdin);/fgets比gets多接收一個LF(換行)即n/gets(arg);if(!strcmp(arg,"exitn")return;pid = fork();if(pid=0)lenth=strle
30、n(arg);lenth-;arglenth=0;/printf("%sn",arg);/printf("%dn",arg2);/printf("%dn",lenth);if(lenth=0)return;parg=(char*)malloc(sizeof(char*); *(parg+j)=arg;j+;for(i=0;i<lenth-1;i+)if(argi=' ')argi=0;p=parg+j;p=(char*)malloc(sizeof(char*); *(parg+j)=(arg+i+1);j+;/p
31、rintf("%s %s %s",parg0,parg1,parg2);execvp(*parg,parg);elsewait(0);printf("mysh#");運行結(jié)果:3.生產(chǎn)者消費者:/semaphore&sharememory.c#include <unistd.h>#include <stdlib.h>#include <stdio.h>#include <string.h>#include <sys/shm.h>#include <unistd.h>#incl
32、ude <sys/sem.h>#define TEXT_SZ 2048struct shared_use_st char some_textTEXT_SZ;union semun int val; struct semid_ds *buf; unsigned short int *array; struct seminfo *_buf; ;static int set_semvalue(int val,int th);static void del_semvalue(int th);static int semaphore_p(int th);static int semaphor
33、e_v(int th);static int sem_id;int main() int running = 1; void *shared_memory = (void *)0; struct shared_use_st *shared_stuff; int shmid;sem_id = semget(key_t)1234, 2, 0666 | IPC_CREAT);set_semvalue(1,0);set_semvalue(0,1); srand(unsigned int)getpid(); shmid = shmget(key_t)1234, sizeof(struct shared_
34、use_st), 0666 | IPC_CREAT); if (shmid = -1) fprintf(stderr, "shmget failedn"); exit(EXIT_FAILURE); shared_memory = shmat(shmid, (void *)0, 0); if (shared_memory = (void *)-1) fprintf(stderr, "shmat failedn"); exit(EXIT_FAILURE); printf("Memory attached at %Xn", (int)sha
35、red_memory); shared_stuff = (struct shared_use_st *)shared_memory; while(running) semaphore_p(1); printf("You wrote: %s", shared_stuff->some_text); sleep( rand() % 4 ); if (strncmp(shared_stuff->some_text, "end", 3) = 0) running = 0; semaphore_v(0); if (shmdt(shared_memory)
36、 = -1) fprintf(stderr, "shmdt failedn"); exit(EXIT_FAILURE); if (shmctl(shmid, IPC_RMID, 0) = -1) fprintf(stderr, "shmctl(IPC_RMID) failedn"); exit(EXIT_FAILURE); exit(EXIT_SUCCESS);static int set_semvalue(int val,int th) union semun sem_union; sem_union.val = val; if (semctl(sem
37、_id, th, SETVAL, sem_union) = -1) return(0); return(1);static void del_semvalue(int th) union semun sem_union; if (semctl(sem_id, th, IPC_RMID, sem_union) = -1) fprintf(stderr, "Failed to delete semaphoren");static int semaphore_p(int th) struct sembuf sem_b; sem_b.sem_num = th; sem_b.sem_
38、op = -1; sem_b.sem_flg = SEM_UNDO; if (semop(sem_id, &sem_b, 1) = -1) fprintf(stderr, "semaphore_p failedn"); return(0); return(1);static int semaphore_v(int th) struct sembuf sem_b; sem_b.sem_num = th; sem_b.sem_op = 1; sem_b.sem_flg = SEM_UNDO; if (semop(sem_id, &sem_b, 1) = -1)
39、fprintf(stderr, "semaphore_v failedn"); return(0); return(1);/semaphore&sharememory1.c#include <unistd.h>#include <stdlib.h>#include <stdio.h>#include <string.h>#include <sys/shm.h>#include <unistd.h>#include <sys/sem.h>#define TEXT_SZ 2048stru
40、ct shared_use_st char some_textTEXT_SZ;union semun int val; struct semid_ds *buf; unsigned short int *array; struct seminfo *_buf; ;static int set_semvalue(int val,int th);static void del_semvalue(int th);static int semaphore_p(int th);static int semaphore_v(int th);static int sem_id;int main() int
41、running = 1; void *shared_memory = (void *)0; struct shared_use_st *shared_stuff; char bufferBUFSIZ; int shmid;sem_id = semget(key_t)1234, 2, 0666 | IPC_CREAT); shmid = shmget(key_t)1234, sizeof(struct shared_use_st), 0666 | IPC_CREAT); if (shmid = -1) fprintf(stderr, "shmget failedn"); exit(EXIT_FAILURE); shared_mem
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 種子行業(yè)競爭格局與戰(zhàn)略選擇考核試卷
- 藤制品市場營銷渠道建設考核試卷
- 生物技術在食品安全生物技術檢測中的應用考核試卷
- 豆類種植的農(nóng)業(yè)科技創(chuàng)新能力提升考核試卷
- 竹筍采集技術及其保鮮處理考核試卷
- 稻谷加工產(chǎn)品市場分析與預測考核試卷
- 呼吸窘迫護理
- 環(huán)保設備研發(fā)、生產(chǎn)、銷售、運營與市場調(diào)研合同
- 培訓活動簡報
- 節(jié)能減排技術標準共同制定與推廣合同
- 中國書法家協(xié)會會員入會申請表(2013狗狗制)
- 施工鋼結(jié)構(gòu)制作安裝環(huán)境因素識別表
- 施工總承包管理方案與措施
- 桿塔組立的全過程
- 急診??谱o士進修總結(jié)培訓課件
- 綠色上網(wǎng)文明上網(wǎng)課件
- 交通事故行政復議申請書范本
- 礦井防爆門(防爆井蓋)安全檢測技術規(guī)范
- 山水田園詩鑒賞公開課一等獎市賽課一等獎課件
- 酒店管理會所希爾頓酒店設計標準第節(jié)電梯電扶梯
- 器質(zhì)性精神障礙患者的護理
評論
0/150
提交評論