下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、04.s h ell的功能、 特點(diǎn)及的啟動課程名稱unix 系統(tǒng)與軟件開發(fā)環(huán)境教學(xué)章節(jié)§3 . 1s hel l的功能及特點(diǎn), §3 . 2s h el l的啟動教學(xué)目的掌握 shell的功能及特點(diǎn),掌握shell的啟動過程及相關(guān)文件教學(xué)重點(diǎn)sh el l的功能及特點(diǎn), s he l l的啟動及相關(guān)文件教學(xué)難點(diǎn)shell的啟動及相關(guān)文件知識點(diǎn)sh el l的功能及特點(diǎn), s he l l的啟動及相關(guān)文件教學(xué)時(shí)間班級0613031/2/3/4;f061011教學(xué)器具課件;多媒體播放系統(tǒng)shell是 unix 系統(tǒng)的命令解釋程序,提供內(nèi)核與用戶的交互方法操作。教學(xué)過程shell
2、是標(biāo)準(zhǔn)的命令編程語言,它能執(zhí)行從終端或文件中輸入的命令,并解釋和執(zhí)行它們。在 unix 系統(tǒng)中,由于發(fā)展的歷史原因和為了滿足不同應(yīng)用的需要,每個(gè)版本都提供有多種shell,如:bsh-bourne shell, bash-boune again shell csh-(c shell)ksh-(korn shell)我們只討論bshell,它是一般unix 系統(tǒng)的默認(rèn)shell,簡記作, sh 或 bsh或 bash 。§ 3.1 shell的基本功能不同的shell各有所長,雖然它們具有不同變量表示方法和不同的側(cè)重點(diǎn), 但它們所要完成的工作是基本相同的。§3.1.1 uni
3、x系統(tǒng)的標(biāo)準(zhǔn)信息流unix系統(tǒng)使用的是無格式字符流文件。文件信息與設(shè)備之間的信息傳遞有通過字節(jié)流進(jìn)行的。在 shell命令執(zhí)行可理解為是對輸入信息的處理。而命令對信息的加工后輸出和處理過程中出現(xiàn)錯(cuò)誤提示也是以字符流的形式給出的。在 unix 系統(tǒng)中使用三種標(biāo)準(zhǔn)的流。三種流在shell的控制下可以被改向( 后述 ) 。文件描述標(biāo)準(zhǔn)定義默認(rèn)使用設(shè)備stdin0標(biāo)準(zhǔn)輸入鍵盤stdout1標(biāo)準(zhǔn)輸出顯示器stdout2標(biāo)準(zhǔn)錯(cuò)誤顯示器§3.1.2子程序shell在系統(tǒng)的執(zhí)行過程中是以進(jìn)程的形式存在的。兩種可執(zhí)行程序:可執(zhí)行的二進(jìn)制代碼;shell批處理程序。在 unix系統(tǒng)中每個(gè)可執(zhí)行二進(jìn)制程序
4、的執(zhí)行過程是shell程序調(diào)用系統(tǒng)調(diào)用 fork()系統(tǒng)調(diào)用, 復(fù)制自身, 產(chǎn)生子進(jìn)程并通過該子進(jìn)程執(zhí)行二進(jìn)制程序。正在執(zhí)行的進(jìn)程是shell的子進(jìn)程。對于 shell批處理程序的執(zhí)行,shell是通過解釋的辦法來執(zhí)行shell批處理文件中的相關(guān)命令。§3.1.3環(huán)境變量shell的執(zhí)行將檢查一些環(huán)境變量,這些環(huán)境變量將影響shell的執(zhí)行行為。環(huán)境變量在用戶登錄時(shí)自動設(shè)置,也可以手式設(shè)置。環(huán)境變量可用命令env來查詢。常用的環(huán)境變量有:hmoe/根目錄logname/登錄用戶名path/命令搜索路徑shell/使用的 shellterm/使用的終端類型tz/時(shí)區(qū)設(shè)置ifs/命令行內(nèi)
5、部域分割符: 空格, tab ,回車ps1/第一命令提示符:“ #”或“ %” ps2/輔助命令提示符:>§3.1.4命令及命令行參數(shù)命令可以理解為用戶提交給系統(tǒng)的一個(gè)任務(wù)或一項(xiàng)工作。直觀或形式上講,命令是用戶通過鍵盤鍵入的字符串,這個(gè)字符串是由空白字符分開的字,其中第一個(gè)字就是命令,而后面的各字則是該命令的參數(shù),或叫命令行參數(shù)。格式為:cmd_name arg1 arg2argn這里的空白字符是space或 tab鍵。unix / linux系統(tǒng)是大小寫敏感的,大小寫要區(qū)別對待。例:lsl /usr/ ls為命令, -l和/usr為參數(shù)cal 8 2005/ cal為命令,
6、8 和 2005為參數(shù)echo “ we are studying unix os now!”shell命令的查找將按環(huán)境path 指定路徑進(jìn)行查找。§3.1.5特殊字符unix 系統(tǒng)除了統(tǒng)配符、三對括號(), , 和三對引號 “ ”, , 外,還有一些特殊字符:b退格鍵,0x08 ,ctrl_hc繼續(xù)行,打印完一行后不換行f換頁:0x0c , ctrl_ln換行:0x0ar回車:0x0d , ctrl_mttab:0x09v垂直制表符:0x0b ,ctrl_k 0?8 進(jìn)制表示其中 叫轉(zhuǎn)義字符。§3.1.6統(tǒng)配符unix 系統(tǒng) shell統(tǒng)配符有:* -匹配任何字符;?
7、匹配單個(gè)字符; 匹配內(nèi)部范圍的字符。例:lsl /usr/bin/a* /dev/hd*lsf ?.dat /dev/hd? /lib/a-c* /lib/unv*.o§3.1.7 shell命令的返回值每個(gè) shell命令正常執(zhí)行完畢后,都有一個(gè)返回值,或者說shell命令正常執(zhí)行退出后都要返回一個(gè)執(zhí)行狀態(tài)。如果命令在執(zhí)行過程非正常退出,它的返回值為signal_no+sigflg. signal_no為引起程序退出的信號;sigflg=0200(八進(jìn)制200 ) 。命令的返回值用$? 表示,因此可用: echo $?來查詢。§3.1.8保留字任何編程語言或系統(tǒng)都有一定數(shù)
8、量的保留字。shell的保留字有:break,continue,cd,echo,eval,exec,exit,export,getopts,hash,pwd,read,readonly,return,set,shift,test,times, trap, type, ulimit, unset, umask, waitfor dodone;caseinesac;if else elif if;whiledodone; untiledodone;§3.1.9輸入輸出的重定向unix 系統(tǒng)的標(biāo)準(zhǔn)i/o有 3類,它們是:0 - stdin/標(biāo)準(zhǔn)輸入1 - stdout/標(biāo)準(zhǔn)輸出2 - st
9、derr/標(biāo)準(zhǔn)錯(cuò)誤三種 i/o均可重定向:< - 用于輸入的重定向;> - 用于輸出重定向。若改道的文件不存在則創(chuàng)建之,若存在則將其沖空后,把標(biāo)準(zhǔn)輸出的內(nèi)容寫指定文件。>> - 用于輸出重定向。若改道的文件不存在則創(chuàng)建之,若存在則將文件指針指向該文件的尾部后,把標(biāo)準(zhǔn)輸出的內(nèi)容寫指定文件,也就是追加致已存在文件的尾部。輸入輸出的重定向的例子:sort < xxx > yyy/將xxx的內(nèi)容排序處理后存入yyylsl /bin/acd* > xx/以長格式列 /bin目錄內(nèi)以 a 或c或 d 開頭的文件并將輸出改道到當(dāng)前目錄的文件 xx 內(nèi)cat/etc/
10、xinstall >> xx/將文件 /etc/xinstall內(nèi)容追加到文件xxcc mypro.c 2> mypro.err/將源文件mypro.c的編譯錯(cuò)誤改道到文件mypro.errgcc myc.c 2>> mypro.err/將源文件myc.c的編譯錯(cuò)誤改道追加到文件mypro.err§3.1.10管道i/o重定向也可通過管道的方法進(jìn)行。利用管道的重定向不是將i/o的內(nèi)容存入某個(gè)文件,而把一個(gè)命令的輸出通過管道變?yōu)榱硪怀绦虻妮斎?。管道線是一系列用管道符號“| ”分割的命令。在管道線上的前一個(gè)命令的標(biāo)準(zhǔn)輸出和后一個(gè)命令的標(biāo)準(zhǔn)輸入通過管道連接起來
11、。管道線上的每個(gè)命令作為單 獨(dú)的命令依次運(yùn)行,shell等待最后一個(gè)命令的結(jié)束。例:ls -b /usr/bin | wc/以簡格式列目錄的內(nèi)容并將輸出內(nèi)容通過管道輸出傳送給wc ,并作為wc 輸入進(jìn)行統(tǒng)計(jì)cat xx | sort | lp/將 xx 的內(nèi)容通過管道傳送到sort排序后送打印程序lp打印§3.1.11命令的后臺執(zhí)行在 unix 系統(tǒng)中,命令的執(zhí)行可以在前臺聯(lián)機(jī)的執(zhí)行,在這種情況下用戶從鍵盤輸入命令并回車后,系統(tǒng)執(zhí)行該命令,并等待命令執(zhí)行的結(jié)束。用戶可以看到命令執(zhí)行的全程。命令運(yùn)行結(jié)束后系統(tǒng)將出現(xiàn)系統(tǒng)提示符。命令也可在后臺執(zhí)行,尤其執(zhí)行時(shí)間長且執(zhí)行過程中不需人工干預(yù)的
12、程序,比如服務(wù)器程序等可以放在后臺執(zhí)行。程序后臺執(zhí)行的啟動方法是:prog_name arguments &為了避免臺程序的執(zhí)行過程對屏幕的干擾,后臺程序的啟動可用i/o重定向的方式啟動。例如:prog_name arguments 1>/tmp/prog.out 2>/tmp/prog.err&§3.1.12變量、變量引用和參數(shù)替換在 unix的 shell程序中可以隨時(shí)、方便的定義和使用變量。變量的定義與使用不能與shell的保留字相矛盾。定義變量的方法是:var_name=value_of_var_name例:my_var=linux my_os=“
13、 unix or linux”變量的引用方法是在變量名的前面加上一個(gè)“$”,用于表示變量的值。當(dāng)變量名多于一個(gè)字符或與后面的內(nèi)容相連時(shí),變量名要用括起來。例:my_os=“ $my_var and $my_os”echo “ $my_os”變量引用在函數(shù)或shell程序里面也叫參數(shù)替換。§3.1.13命令替換在反單引號 內(nèi)的內(nèi)容將以命令的形式被執(zhí)行,執(zhí)行的輸出結(jié)果將替原來位置的內(nèi)容。如果欲保持 及其所括內(nèi)容的原義,則需要在每個(gè) 前加上轉(zhuǎn)義字符,變?yōu)?。例:echo who am iecho “ ”to day=date | awkusers=who | wc print $1, $2,
14、 $3lecho “ today is $today, there $users users in system”echo “ i am who am i,and who are you?”§3.1.14引號機(jī)制為了避免引用特殊字符造成的混亂或當(dāng)作其它字符用,需要使用引號機(jī)制來控制它們:“ ”內(nèi) 有些字符,如$, , ”,仍然保持著它們的特殊意義,而其它字符則失去了特殊性。在“”不僅變量被擴(kuò)展,而且也存在著命令替換。若在 “ ”內(nèi)讓這些特殊字符表示它們本身的意義則需要在前面加一個(gè)字符。這叫字符轉(zhuǎn)義。 內(nèi)字的所有字符將保持其本身的意義,不進(jìn)行字符轉(zhuǎn)義,也不進(jìn)行變量擴(kuò)展與替換。 命令替換
15、。參見§ 3.1.13命令替換§ 3.2 shell的啟動過程3.2.1 shell的啟動流和工作過程當(dāng)用戶登錄時(shí),系統(tǒng)要檢查如下文件:passwd用戶信息文件shadow用戶信息影子文件,密碼信息等group系統(tǒng)組文件之 后 系 統(tǒng) 將 為 用 戶 分 配 資 源 , 并 依 次 讀 入 系 統(tǒng)profile文 件(/etc/profile)和用戶profile文件 ($home/.profile)內(nèi)容并執(zhí)行之,為用戶作登錄準(zhǔn)備,設(shè)置環(huán)境變量,啟動shell。$home/.profile文件的內(nèi)容在用戶登錄將被自動執(zhí)行,因此一些需要自動執(zhí)行的命令可以放在該文件內(nèi)。根據(jù)用戶類型顯示用戶提示符。3.2.2 修改 profile文件根據(jù)用戶登錄和shell的啟動過程可以看出,用戶可在shell的啟動過程加
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度二零二五MCN機(jī)構(gòu)藝人線上線下活動獨(dú)家代理服務(wù)協(xié)議范本3篇
- 2025年度熟料貿(mào)易合同范本(2025版)2篇
- 2025年魯科五四新版五年級語文下冊階段測試試卷含答案
- 二零二五年度環(huán)保型建筑砂漿采購合同模板3篇
- 2025年粵人版一年級數(shù)學(xué)上冊階段測試試卷含答案
- 2025年冀教版七年級數(shù)學(xué)下冊月考試卷
- 二零二五年度老舊小區(qū)改造安置房買賣合同3篇
- 2025年度貨車司機(jī)貨物運(yùn)輸及車輛年審協(xié)議書3篇
- 2025年新科版五年級英語上冊階段測試試卷
- 詳細(xì)2024年度版權(quán)轉(zhuǎn)讓合同的轉(zhuǎn)讓程序和條件
- 擦黑板(教案)勞動二年級上冊
- 2024年安徽省高中語文學(xué)業(yè)水平合格考模擬試卷試題(含答案詳解)
- 2024年湖北三江航天江河化工科技限公司招聘(高頻重點(diǎn)提升專題訓(xùn)練)共500題附帶答案詳解
- 10日益重要的國際組織第三課時(shí)中國與國際組織(教學(xué)設(shè)計(jì))2023-2024學(xué)年統(tǒng)編版道德與法治六年級下冊
- 空調(diào)水管道安裝施工方案
- 家族族譜資料收集表
- 2024年1月自考18960禮儀學(xué)試題及答案含解析
- Vue.js前端開發(fā)實(shí)戰(zhàn)(第2版)-教學(xué)課件 第1章 初識Vue
- 事業(yè)單位年度考核實(shí)施方案
- 2024-2029年中國中藥煎藥機(jī)行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展研究報(bào)告
- 腰椎間盤突出疑難病例討論
評論
0/150
提交評論