版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Shell腳本入門,什么是shell?,命令解釋器俗稱外殼程序 用戶通過shell向kernel發(fā)送指令,kernel再向硬件發(fā)送指令 Shell版本眾多,例如常聽到的 Bourne Shell (sh) 、在Sun中默認(rèn)的C Shell、 商業(yè)上常用的K SHell以及TCSH 等,每一種Shell都各有其特點(diǎn)。 Linux 使用的是Bourne Again Shell(簡稱 bash),這個(gè) Shell是Bourne Shell的增強(qiáng)版本,是基于GNU的架構(gòu)下發(fā)展出來的。,Bash shell特點(diǎn),命令補(bǔ)全補(bǔ)全功能 如果在執(zhí)行命令的時(shí)候不想按下太多的按鍵(例如命令pcprofiledump
2、),在輸入了 pcprofile 之后,再按下 Tab 鍵的話,那么 bash 馬上會自動的將后面的dump接上來。 如果有重復(fù)的命令,那么按下兩次 Tab 將會把所有重復(fù)的命令列出來。 直接在提示字符后面連按兩次 鍵,則系統(tǒng)會將所有可以使用的命令都列出來。 例如,如果想要知道目前系統(tǒng)里面,所有以b開頭的命令呢?就是按下 b 之后,連按兩次就ok。,Bash shell特點(diǎn),文件名稱補(bǔ)全功能 如果用 vim 來讀取某個(gè)文件,例如 /etc/man.config 這個(gè)文件,那么可以輸入 vim /etc/man之后,直接按下 鍵,該文件名稱就會被自動的補(bǔ)上。 同樣,出現(xiàn)文件多個(gè)匹配項(xiàng)時(shí),可以按下
3、兩個(gè)TAB鍵來顯示所有匹配項(xiàng)。 這樣大大增加了指令輸入的正確率。,Bash shell特點(diǎn),命令記憶能力 Linux可以記憶以前輸入過的命令,只要使用上下鍵就可以找到以前執(zhí)行的指令來執(zhí)行。 這些命令按照先后順序記錄在用戶Home目錄下的隱藏文件.bash_history中 .bash_history里面記錄了這一次登錄以前執(zhí)行過的命令,本次登錄執(zhí)行的命令都保存在內(nèi)存中,只有成功注銷之后,內(nèi)存數(shù)據(jù)才會刷新到.bash_history文件中 有時(shí)候.bash_history文件中記錄了你包含在指令中的密碼,可能引起安全問題,所以最好還是設(shè)置命令的記錄數(shù)量不要太大。,Bash shell特點(diǎn),命令名
4、稱: history 用法:history number 顯示最近 number個(gè)命令,不指定number則選擇全部。 執(zhí)行歷史命令: 方法1:!number 執(zhí)行歷史命令中編號為number的那個(gè)命令 方法2:!command 執(zhí)行歷史命令中最近一次以command開頭的命令,命令無須打全,只要匹配前面幾個(gè)字符即可。 方法3:! 執(zhí)行上一條命令,Bash shell特點(diǎn),命令別名設(shè)置功能 假如我需要知道某個(gè)目錄底下的所有文件信息(包含隱藏文件)及所有的文件屬性,那么我就必須要輸入ls -al 這樣的指令。 每次都輸入多麻煩! 可以通過為自己經(jīng)常使用的命令(包括參數(shù))定義別名來避免過多輸入。
5、例如:alias lm=ls -al (注意=兩邊不要有空格) 那么以后lm就等于執(zhí)行l(wèi)s -al 直接輸入alias,可以顯示目前以及定義好的所有別名,編譯型語言和腳本編程語言,許多大中型程序是用編譯型語言寫的,例如:C/C+/java。這類程序只要從源代碼轉(zhuǎn)換成目標(biāo)代碼,就能直接在計(jì)算機(jī)上執(zhí)行。(java類似。它是轉(zhuǎn)換成字節(jié)碼,在java虛擬機(jī)上執(zhí)行) 編譯型語言的好處是效率高,它的二進(jìn)制代碼可直接被cpu執(zhí)行。缺點(diǎn)是它們直接處理的是字節(jié)、整數(shù)、浮點(diǎn)數(shù)等機(jī)器層的對象。例如,C+很難進(jìn)行“將一個(gè)目錄內(nèi)的所有文件復(fù)制到另一個(gè)目錄”這樣簡單的操作。 腳本編程語言通常是解釋型的語言,這類程序的執(zhí)行
6、是由解釋器讀入程序代碼,并將其轉(zhuǎn)換成內(nèi)部的形式,再執(zhí)行。這類語言有awk、perl、python、javascript、Ruby和shell。用腳本編程語言寫的程序代碼,稱為腳本程序。 腳本編程語言的好處是,它多半運(yùn)行在比編譯器還高的層級,能輕易處理文件和目錄之類的對象。缺點(diǎn)是:它的效率通常不如編譯型語言高。它們并不能直接被cpu執(zhí)行,執(zhí)行時(shí)還需要進(jìn)行轉(zhuǎn)換。,SHELL腳本的優(yōu)點(diǎn),shell腳本常用于系統(tǒng)管理工作,或是結(jié)合現(xiàn)有的程序以完成小型的、特定的工作。通過把工作用到的命令串起來,放進(jìn)一個(gè)獨(dú)立的腳本中,以后只要執(zhí)行該程序就能完成工作了。 shell是各類unix版本的通用功能,且經(jīng)過了PO
7、SIX的標(biāo)準(zhǔn)化。一個(gè)編寫良好的shell腳本,可以應(yīng)用到多個(gè)系統(tǒng)上。因此之所以使用shell腳本是基于: 簡單性:shell是一個(gè)高級語言;通過它可以簡潔地表達(dá)復(fù)雜的操作。 可移植性:使用POSIX所定義的功能,可以做到腳本無需修改就可在不同的類unix系統(tǒng)上運(yùn)行。 開發(fā)容易:可以在較短時(shí)間內(nèi)完成一個(gè)功能強(qiáng)大又好用的腳本。,SHELL腳本的格式,命令從上向下,從左向右 地分析和執(zhí)行,如果讀到一個(gè) 回車鍵,就嘗試開始執(zhí)行該行。 右圖是一個(gè)shell腳本 第一行#!/bin/bash指明這個(gè) 腳本使用的解釋器是bash,腳本 的語法是用bash的語法。例如perl腳本的第一行是#!/usr/bin
8、/perl shell腳本用#號作為一行注釋開始。#到行尾之間的內(nèi)容被視為注釋 接下來就是程序部分 告知執(zhí)行的成功與否可以用命令exit 來結(jié)束腳本的執(zhí)行,并且傳回一個(gè)數(shù)值給系統(tǒng)。將來可以用$?來獲取它傳回的值。 大家猜一下返回值的范圍是多少 ,怎么驗(yàn)證?,rootlocalhost # cat helloworld.sh #!/bin/bash #my first shell script #history: 2012.01.01 echo “hello world” exit 0,Shell腳本執(zhí)行方式一,父進(jìn)程創(chuàng)建一個(gè)子進(jìn)程,在子進(jìn)程里運(yùn)行命令解釋器,由解釋器讀取腳本并執(zhí)行相應(yīng)的功能。
9、假設(shè)寫完一個(gè)腳本文件/home/jim/123.sh后,該如何執(zhí)行呢? 有以下幾種方式: 以bash進(jìn)程來執(zhí)行:通過“bash 123.sh” 來執(zhí)行。 直接命令執(zhí)行:123.sh文件必須要具備可讀與可執(zhí)行權(quán)限: 絕對路徑:使用/home/jim/123.sh來執(zhí)行命令; 相對路徑:假設(shè)工作目錄在/home/jim/,這可以使用./123.sh來執(zhí)行; 變量“PATH”功能:將123.sh放在PATH指定的目錄下,例如:放在/bin/里,則可直接通過文件名123.sh來執(zhí)行。,Shell環(huán)境變量,環(huán)境變量的形式通常如:name=value Linux內(nèi)核并不查看這些字符串,他們的解釋完全依賴于
10、各個(gè)應(yīng)用程序。例如,shell就使用了大量的環(huán)境變量,其中一些在登錄時(shí)自動設(shè)置,如HOME和USER等,有些則由用戶設(shè)置。 功能:我們在shell中設(shè)置環(huán)境變量以控制shell的動作。例如設(shè)置了MAIL就告訴shell應(yīng)該到哪里去取郵件。 顯示變量值的命令:echo 用法:echo $variable 例如:在環(huán)境變量前加上$就代表使用該變量的值 echo $PATH echo $HOME 查看當(dāng)前所有Linux環(huán)境變量的命令:env,Shell配置文件,shell在啟動時(shí)會讀取一些配置文件。下面是bash的配置文件,實(shí)際上他們也是shell腳本。/etc目錄下的是系統(tǒng)級的配置文件,用戶家目錄
11、下的兩個(gè)配置文件是用戶的個(gè)性化。 /etc/profile 設(shè)置系統(tǒng)級的環(huán)境變量 PATH、HOME、HISTSIZE等。第一次登錄時(shí)運(yùn)行該腳本。 /.bash_profile 用戶可在這里設(shè)置環(huán)境變量或啟動程序。當(dāng)用戶登錄時(shí),該文件僅僅執(zhí)行一次 。 /.bashrc 用戶可在這里設(shè)定別名和函數(shù)。啟動shell時(shí)都會執(zhí)行該配置文件。 /etc/bashrc 啟動shell時(shí)運(yùn)行該腳本。 /.bash_logout 退出shell時(shí)執(zhí)行。,根據(jù)啟動shell的方式不同,配置好腳本的執(zhí)行也有不同: 對于login shell:即通過輸入用戶名和密碼登陸或用su - 獲得的shell。在shell啟
12、動時(shí)會按14的順序依次執(zhí)行這四個(gè)配置腳本。這時(shí)獲得的是一個(gè)完全和用戶名相符的shell環(huán)境。對于non-login shell:不需登錄流程或以su的方式切換用戶獲得的shell。這種情況下,啟動shell時(shí)只執(zhí)行和兩個(gè)配置腳本。例如,圖形界面下啟動一個(gè)終端,或者在原來的bash環(huán)境下再輸入bash,都不需要用戶名和密碼;這兩次獲得的shell就稱為non-login shell。這時(shí)許多環(huán)境還未改變。比如PATH,因?yàn)樗窃诤椭性O(shè)置的。,變量類型,變量是用一固定的字符串或符號來表示一個(gè)可變的值。和C語言中相似。有以下幾種變量: 用戶自定義變量 位置變量 預(yù)定義的特殊變量 環(huán)境變量(expor
13、t),用戶自定義變量,變量無須事先聲明 變量的可以用字符(a-z A-z)數(shù)字和下劃線組成,但必須以字符開頭。 變量與變量內(nèi)容(值)用等號連接,等號左右不能有空格,對變量賦值 #a=“hello shell” 打印變量 #echo $a,變量引用,$加變量名即可引用該變量的值。例如:$var 使用 可以使變量名和后續(xù)字母分開。例如: var=de $varabc的值為deabc $varabc是取變量varabc的值,若之前沒有創(chuàng)建過varabc那么它的值為空 未定義的變量值為空,Shell變量賦值,雙引號內(nèi)的字符如 $ ” 等以特殊字符解讀。 單引號內(nèi)的特殊字符全部當(dāng)做普通字符處理。,a=“
14、aa” b=“$a bb” c=$a cc echo $a echo $b echo $c,Shell變量賦值,把命令的執(zhí)行結(jié)果賦值給變量(例如ls),用command,或$(command) 注意:是反引號(backquote), 不是單引號(quote),將ls的輸出結(jié)果作為變量a的值 #a=ls 等價(jià)于 a=$(ls) 打印變量 #echo $a,環(huán)境變量,環(huán)境變量是指能被子進(jìn)程所繼承的變量。子進(jìn)程只會繼承父進(jìn)程的環(huán)境變量 (1)HOME:用戶主目錄的全路徑名。如/home/myname (2)LOGNAME:即用戶注冊名 (3)PWD:當(dāng)前工作目錄的路徑。 (4)PATH:shell查
15、找命令的路徑(目錄)列表,各個(gè)目錄用冒號( : )隔開。 (5)PS1:shell的主提示符。 $ PS1=$LOGNAME (6)SHELL:當(dāng)前使用的shell。通常,它的值是/bin/bash。 (7)TERM:終端類型。 可以用env命令列出當(dāng)前環(huán)境下的所有環(huán)境變量及其值,也可用echo命令察看任何一個(gè)環(huán)境變量的值。 當(dāng)更改了環(huán)境變量的值以后,往往利用export命令將這些變量輸出,使它們成為公用量。例如: $ export HOME PATH PS1 用戶自定義變量可以通過export命令,變成環(huán)境變量。例如: # asdf=1234 執(zhí)行env,查看是否有變量asdf # expo
16、rt asdf 執(zhí)行env ,查看是否有變量asdf,這一次asdf變成環(huán)境變量,shell腳本的執(zhí)行方式二,bash進(jìn)程本身就是個(gè)shell腳本解釋器,直接由該進(jìn)程讀取shell腳本并執(zhí)行。好處是:它的執(zhí)行效果會在當(dāng)前shell中生效。該方法是通過內(nèi)置命令source或 . 實(shí)現(xiàn)的。 經(jīng)常用在修改了的bash的配置文件在當(dāng)前環(huán)境下生效,可以使用命令source 或“.”后接配置文件來執(zhí)行配置腳本。 范例:在/.bashrc里設(shè)置了alias別名,想在當(dāng)前環(huán)境立即可用 # vim /.bashrc 打開文件,在該文件寫入下面一行,保存并退出 alias hello=echo “welcome
17、today is $(date +%Y:%m:%d)” # source /.bashrc 或者 . /.bashrc 接下來就可以使用該別名了 在/.bash_profile里將當(dāng)前用戶的家目錄加到PATH路徑中 # vim /.bash_profile 打開文件,寫入下面兩行,保存并退出 PATH=$PATH:$HOME export PATH #source /.bash_profile 或者 . /.bash_profile 接下來,直接輸入家目錄下的可執(zhí)行程序的文件名就可以執(zhí)行了。,預(yù)先定義的特殊變量,$當(dāng)前進(jìn)程的進(jìn)程號。 $!上一個(gè)后臺命令對應(yīng)的進(jìn)程號。 $?上一條命令執(zhí)行后的返回
18、碼,也稱退出碼。每條命令都有返回碼,0代表執(zhí)行成功,當(dāng)用于判斷式時(shí),表達(dá)式為真,非零代表執(zhí)行失敗,用于判斷式時(shí),表達(dá)式為假。 $#除腳本名外,命令行上參數(shù)的個(gè)數(shù)。 $*表示在命令行上實(shí)際給出的所有實(shí)參。如輸入下面的命令行: exam3 A B C D E F G H I J K 則$* 是:A B C D E F G H I J K 而”$*”等價(jià)于: “$1 $2 $3”,即:”A B C D E F G H I J K” $它與$*基本功能相同。區(qū)別在于當(dāng)用引號時(shí) ”$”與”$*”不同,”$”參數(shù)是彼此分離的。 ”$”就等價(jià)于: $1 $2 在上面情況下, “$” 就是“A” “B” “C
19、”“K”,預(yù)先定義的特殊變量,變量名為0的值代表正在執(zhí)行的腳本名稱 變量名為1到99的值代表命令行傳入的參數(shù)。 變量名大于10時(shí),必須用括起來,例如取第十個(gè)參數(shù)用$10 輸入下面的命令行: # exam3 A B C D E F 那么 $0的值為exam3 $1到$6的值分別對應(yīng)A到F 內(nèi)置命令shift功能:造成參數(shù)變量號碼偏移 用法:shift n 例如:上面的輸入,執(zhí)行命令 shift 3 之后,這些參數(shù)變量從第四個(gè)開始對應(yīng)。 $1的值為D $2為E $3為F $4、$5、$6的值為空 直接shift等價(jià)于 shift 1,Shell算術(shù)運(yùn)算,+ - * / % 分別對應(yīng)加、減、乘、除、
20、取余 只需將特定的算術(shù)表達(dá)式用 “$(” 和 “)” 括起來。a=$(4-2) a的值為2,a=10 b=2 echo $($a+$b) echo $($a-$b) echo $($a*$b) echo $($a/$b) echo $($a%$b),跟用戶交互,用bash內(nèi)嵌的read命令 功能:讀取來自鍵盤的輸入,并傳給變量 用法:read 選項(xiàng) 變量名 選項(xiàng): -p 字符串 后面接字符串給出提示 -t 時(shí)間 后接等待的秒數(shù),即不會一直等待用戶輸入,#echo “input your name” #read name 上面兩行可以用下面一行代替 #read -p “input your na
21、me” name #echo “my name is $name”,Shell邏輯判斷, then echo usage: command filename exit 1; fi if test -f $1; then echo file $1 exists! fi,#!/bin/bash $# != 1 then 動作 elif 表達(dá)式; then 動作 elif 表達(dá)式; then 動作 else 動作 fi,#!/bin/bash if $# != 1 ; then echo usage: command number exit 1; fi if $1 -lt 0 ; then echo
22、 $1 is less than 0 elif $1 -lt 10 ;then echo $1 is betwen 0 and 9 elif $1 -lt 100 ; then echo $1 is between 10 and 99 else echo $1 is great equal than 100 fi,這個(gè)程序用來展示測試語句應(yīng)用,$ cat exam10 echo -n key in a number (1-10 ) : #提示輸入1-10之間的一個(gè)數(shù)字,光標(biāo)不換行 read a #讀取輸入的數(shù)字 if $a -lt 1 -o $a -gt 10 #如果該數(shù)小于1或者大于10 t
23、hen echo Error Number . #顯示輸入數(shù)字有錯(cuò) exit 2 #退出,返回碼為2 elif ! $a -lt 5 #否則,若該數(shù)不小于5 then echo Its not less 5. #顯示不小于5 的信息 else echo Its less 5. #否則,顯示該數(shù)小于5 fi #結(jié)束if語句 echo accept key in value. #顯示接受了鍵入的值,動手小練習(xí),提示用戶輸入一個(gè)數(shù),判斷這個(gè)數(shù)是否是你想要的。想要的就打出 yes,否則就是no。 提示用戶輸入一個(gè)文件/目錄,判斷這個(gè)文件具有哪些屬性? 寫一個(gè)輸入新的文件名,就自動創(chuàng)建C源文件的腳本程序
24、,Shell分支判斷:case,分支判斷 用*代表所有其他值 case $變量名稱 in “第一個(gè)變量的內(nèi)容”) 動作1 ; “第二個(gè)變量內(nèi)容”) 動作2 ; *) 動作3 ; esac,#!/bin/bash if $# != 1 ; then echo usage: command number exit 1; fi case $1 in 2) echo you input number 2 ; 4) echo you input number 4 ; 6) echo you input number 6 ; *) echo invalid input esac,動手練習(xí),提示用戶輸入一字
25、符串,字符串必須為 “case”或者”esac” ,并打印出來。如果輸入的是其他字符串打印出錯(cuò)消息。,Shell循環(huán):for,For循環(huán)三種方式: 1、像C語言一樣使用,適合數(shù)值運(yùn)算 for(語句;條件;語句) do 動作 done 2、for 變量名 in 變量值1 變量值2 do 動作 done 3、for 變量名 in $var do 動作 done,#!/bin/bash if $# != 1 ;then echo usage: $0 loop_number exit 1 fi sum=0 for(i=0;i$1;i+) do sum=$($sum+$i) done echo “sum
26、 is $sum”,sum=0 for i in abc def mnq do echo $i done,For循環(huán)小練習(xí),系統(tǒng)上面的各種賬號都是寫在/etc/passwd 內(nèi)的第一個(gè)字段,你能不能通過命令cut找出每個(gè)賬號的名稱,用命令id、finger 輸出他們的相關(guān)信息呢? 請寫一個(gè)程序?qū)?etc/passwd 的賬號取出,而且每一個(gè)賬號都以一行字符串The 1 account is “root” 來顯示,那個(gè) 1 表示行數(shù),雙引號里是賬號名。 若想讓用戶輸入一個(gè)目錄名, 然后我找出該目錄內(nèi)的每個(gè)文件的讀寫執(zhí)行權(quán)限,該如何做? 讓用戶輸入一個(gè)大于0的數(shù)字,程序可以由 1+2+3. 一直累
27、加到用戶輸入的數(shù)字為止,輸出結(jié)果。 輸出命令行參數(shù),每行列出一個(gè)參數(shù)。演示$*和$的區(qū)別,Shell循環(huán):while,一、 while 表達(dá)式 do 動作 done 二、 until 表達(dá)式 do 動作 done,下面是計(jì)算1到loop的和 #!/bin/bash if $# != 1 ;then echo input number exit 1 fi sum=0; loop=$1 while $loop -gt 0 do sum=$($sum+$loop) loop=$($loop-1) done echo sum is $sum,until $a = 0 do echo $a; a=$($
28、a-1); done,break/continue,Break n 跳出最近的n重循環(huán),默認(rèn)跳出最近的一重循環(huán) continue 繼續(xù)循環(huán) 練習(xí): 寫一個(gè)腳本,輸出所有的命令行參數(shù)。要求:每行輸出一個(gè)參數(shù),分別用for和while實(shí)現(xiàn)。 幫用戶找到/usr/目錄下文件名以.d為后綴的文件,并將這些文件都拷貝到目標(biāo)目錄下。若找到的文件本身為目錄,則不拷貝。,腳本調(diào)試,bash -nvx script 參數(shù)說明 -n 不執(zhí)行腳本,只檢查腳本的語法,若沒有語法錯(cuò)誤,則不會顯示任何信息 -v 執(zhí)行腳本前,把每行腳本都輸入到屏幕 -x 執(zhí)行腳本,顯示腳本每一行腳本的執(zhí)行情況。這是非常有用的參數(shù)。,She
29、ll函數(shù),shell腳本可以定義函數(shù),將一些命令放在一個(gè)函數(shù)內(nèi),調(diào) 用函數(shù)名即可執(zhí)行函數(shù)內(nèi)的語句了。類似于C語言函數(shù)。 函數(shù)若沒有被調(diào)用,則不會執(zhí)行 函數(shù)也有內(nèi)置變量。在函數(shù)內(nèi)部,$1,$2.和$ $#對應(yīng)函數(shù)傳入的形參??梢栽诤瘮?shù)內(nèi)用return表明函數(shù)的執(zhí)行結(jié)束。 語法 函數(shù)名() . return 數(shù)字 return的返回碼也可以通過echo $?獲得。 函數(shù)定義好以后,就可以在腳本需要的地方像命令一樣使用: 函數(shù)名 參數(shù) .,#!/bin/bash function_one() echo function one is called function_two() echo function two is called if $1 -eq 1 ;then function_one elif $1 -eq 2 ;then function_two else echo function doesnt exist! fi,shell函數(shù)范例,寫一個(gè)腳本ar.sh,跟據(jù)用戶的要求,求兩個(gè)數(shù)的算術(shù)運(yùn)算。 下面是這個(gè)腳本的開頭,請寫完這個(gè)腳本。,#!/bin/b
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 防治職業(yè)病試題及答案
- 高考總復(fù)習(xí)優(yōu)化設(shè)計(jì)二輪用書物理浙江專版 第1講 物體的平衡
- 辦公樓出租委托合同協(xié)議2025年規(guī)范版
- 墨脫縣氣候條件
- 2025年全國小學(xué)生禁毒知識競賽練習(xí)題庫及答案(共60題)
- 初中歷史填空題真題及答案
- 2025年貴陽科學(xué)素養(yǎng)試卷及答案
- 《兒童抗生素相關(guān)性腹瀉診斷、治療和預(yù)防專家共識》的詳細(xì)解讀2026
- 2025年地球概論期末試卷及答案
- 軟水器合同范本
- 骨干教師績效考核制度實(shí)施細(xì)則
- 2025年低空經(jīng)濟(jì)「無人機(jī)農(nóng)業(yè)」應(yīng)用場景與解決方案報(bào)告
- 球團(tuán)化驗(yàn)知識培訓(xùn)課件
- 施工項(xiàng)目質(zhì)量管理提升方案
- 養(yǎng)殖蛋雞的技術(shù)知識培訓(xùn)課件
- 校車駕駛員考試題及答案
- GB/T 4995-2025平托盤性能要求和試驗(yàn)選擇
- 2025年國家開放大學(xué)行管??啤侗O(jiān)督學(xué)》期末考試試題及答案
- 現(xiàn)場管理提升PP丅培訓(xùn)課件
- 口腔科手衛(wèi)生PDCA改進(jìn)案例
- 后組顱神經(jīng)損傷的護(hù)理措施
評論
0/150
提交評論