版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PAGE2PAGE課程單元設計課程名稱:Linux操作系統(tǒng)應用適用專業(yè):所屬院系:編制人:制定時間:二○二年至二○二年第學期
一、教案頭本單元標題:RPM軟件包管理+YUM軟件管理授課班級:課時:2教學目標能力目標知識目標1.學會使用rpm工具進行RPM軟件包管理2.學會使用yum工具在線安裝軟件1.rpm指令的常用參數(shù)2.yum指令的常用參數(shù)能力訓練任務及案例一、能力訓練任務二、案例參考資料PackagingsoftwarewithRPMPart1:/developerworks/library/l-rpm1/Part2:/developerworks/library/l-rpm2/Part3:/developerworks/library/l-rpm3/HowtocreateanRPMpackage(/wiki/How_to_create_an_RPM_package)RPMGuide(/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/RPMBuildEnvironmentandtrackingsystem/wiki/Projects/Mock/wiki/Projects/Koji二、(單元)教學設計教學環(huán)節(jié)教學內容教學方法及手段學生活動教學資源及工具時間分配1、引入RHEL/CentOS中是如何進行軟件包管理的?課件演示、板書演示、模擬演練討論、發(fā)言、點評課件、相關軟件2、操練(掌握初步或基本能力)1、RPM概述RPM最早是由RedHat公司提出的軟件包管理標準,最初的全稱是RedHatPackageManager。后來隨著版本的升級又融入了許多其他的優(yōu)秀特性,成為了Linux中公認的軟件包管理標準。被許多Linux發(fā)行使用,如:RHEL/CentOS/Fedora,SLES/openSUSE等。如今RPM是RPMPackageManager的縮寫,由RPM社區(qū)(/)負責維護。2、RPM的優(yōu)缺點易于安裝、升級便利豐富的軟件包查詢功能軟件包內容校驗功能支持多種硬件平臺3、YUMyum是YellowdogUpdater,Modified的簡稱,用python寫成。yum的宗旨是自動化地升級,安裝/移除rpm包,收集rpm包的相關信息,檢查依賴性并自動提示用戶解決。yum是rpm的前端程序,RHEL的up2date的替代工具。yum的關鍵之處是要有可靠的repository(軟件倉庫)可以是http或ftp站點,也可以是本地軟件池包含rpm包的各種信息(包括描述,功能,提供的文件,依賴性等)yum正是由于對收集的這些header并加以分析,才能自動化地完成安裝/更新/刪除等任務4、YUM的特點便于管理大量系統(tǒng)的更新問題自動解決包的倚賴性問題能更方便的添加/刪除/更新RPM包可以同時配置多個資源庫(Repository)可以在多個庫之間定位軟件包簡潔的配置文件/etc/yum.conf和/etc/yum.repos.d/*.repo保持與RPM數(shù)據(jù)庫的一致性有一個比較詳細的log,可以查看何時升級安裝了什么軟件包等5、YUM組件與各類插件YUM命令通過yum命令使用YUM提供的眾多功能。由名為“yum”軟件包提供(默認已安裝)。YUM軟件的主頁為/yum/。YUM插件由官方或第三方開發(fā)的YUM插件用于擴展YUM的功能。通常由以名為“yum-<pluginname>”的軟件包提供。YUM倉庫YUM緩存yum-priorities:設置多個倉庫的使用優(yōu)先級別yum-versionlock:用于鎖定某軟件的版本,以免更新yum-changelog:查看包更新前后的改變yum-aliases:為yum命令使用別名yum-security:為YUM提供安全過濾器課件演示、板書演示、模擬演練集體參與課件、相關軟件3、深化(加深對基本能力的體會)1、RPM的主要功能安裝——將軟件從包中解出來,并安裝到硬盤。卸載——將軟件從硬盤清除。升級——替換軟件的舊版本。查詢——查詢軟件包的信息。驗證——檢驗系統(tǒng)中的軟件與包中軟件的區(qū)別。2、RPM的組件本地數(shù)據(jù)庫rpm及其相關的可執(zhí)行文件RPM前端工具,如yum軟件包文件3、RPM軟件包的名稱格式4、如何獲取RPM包從發(fā)行套件的CD中查找從軟件的主站點查找下載從查找下載從/查找下載從/查找下載4、安裝、升級和刪除軟件5、查詢查詢已安裝的所有軟件包rpm-qa查詢軟件包是否安裝并查看軟件包的版本rpm-q<package_name>查詢軟件包信息rpm-qi<package_name>rpm-qip<package_file_path_name>查詢軟件包中所有文件的名稱rpm-ql<package_name>rpm-qlp<package_file_path_name>查詢磁盤上的文件是從何軟件包安裝的rpm-qf<path_name>查詢依賴于一個已安裝軟件包的所有RPM包rpm-q--whatrequires<package-name>查詢一個已安裝軟件包的依賴要求rpm-q--requires<package-name>查詢一個已安裝軟件包的安裝、刪除腳本rpm-q--scripts<package-name>查詢與一個已安裝軟件包相沖突的RPM包rpm-q--conflicts<package-name>查詢一個已安裝軟件包的變更日志rpm-q--changelog<package-name>6、校驗校驗有已安裝的所有軟件包rpm-Va校驗指定的軟件包rpm-V<package_name>校驗指定的RPM包文件rpm-Vp<package_file_path_name>驗證包含指定文件的軟件包rpm-Vf<path_name>7、導入公鑰和簽名導入RPM包的公鑰格式:rpm--import<公鑰文件名>例如#rpm--import/etc/pki/rpm-gpg/RPM-GPG-*#rpm--importhttp://apt.sw.be/RPM-GPG-KEY.dag.txt檢查指定RPM包的數(shù)字簽名rpm-K<rpmfile>8、使用YUM命令(1)語法yum是YUM系統(tǒng)的字符界面管理工具yum[全局參數(shù)]命令[命令參數(shù)]常用的全局參數(shù)-y:對yum命令的提問回答“是(yes)”-C:只利用本地緩存,不從遠程倉庫下載文件--enablerepo=REPO:臨時啟用指定的名為REPO的倉庫--disablerepo=REPO:臨時禁用指定的名為REPO的倉庫--installlroot=PATH:指定安裝軟件時的根目錄,主要用于為chroot環(huán)境安裝軟件(2)安裝、更新、刪除操作yuminstall<package>…yumlocalinstall<rpmfile>…yumgroupinstall<packagegroup>…yumupdate[package…]yumlocalupdate<rpmfile>…yumgroupupdate<packagegroup>…yumremove<package>…yumgroupremove<packagegroup>…(3)查詢yumsearch<search-term>yumlist[all][glob_exp][recent]yumlist<available|extras|installed|updates>[glob_exp]yuminfo<package>yumgrouplist<group-wildcard>yumgroupinfo<packagegroup>(4)其他用法檢查可更新的所有軟件包yumcheck-update清除緩存中的rpm頭文件和包文件yumcleanall顯示軟件包的依賴信息yumdeplist<packages>搜索文件yumwhatprovides<filename>9、YUM倉庫管理工具軟件包createrepo提供了createrepo命令用于生成YUM倉庫軟件包yum-utils主要提供了如下常用工具yumdownloader:從YUM倉庫(包括SRPMs)下載RPM文件。reposync:使用YUM配置檢索YUM遠程倉庫并同步到本地目錄。verifytree:校驗本地YUM倉庫的一致性。yum-complete-transaction:查找并處理YUM完整性。10、本地倉庫創(chuàng)建過程創(chuàng)建存放RPM包的目錄在RPM包的目錄中準備RPM包文件:1)從安裝光盤獲得2)通過wget、lftp等工具從遠程下載3)通過yumdownloader工具從遠程下載yumdownloader--resolve#可以同時下載被依賴的RPM包yumdownloader--source#可以下載SRPM的RPM包4)可以使用rpmbuild命令本地編譯使用createrepo命令生成本地倉庫11、createrepo命令的用法命令格式createrepo[選項]包目錄常用選項-g,--groupfile<filename>:指定YUM組操作所需的XML文件-d,--database:生成sqlite數(shù)據(jù)庫文件--update:更新倉庫的元數(shù)據(jù)文件-q,--quiet:不顯示操作過程-v,--verbose:顯示完整的操作過程-h,--help:顯示幫助信息課件演示、板書演示、模擬演練集體參與課件、相關軟件4、歸納(知識和能力)1、YUM倉庫YUM倉庫(repository)亦稱“更新源”。一個YUM軟件倉庫就是一個包含了倉庫數(shù)據(jù)的存放眾多RPM文件的目錄。YUM倉庫數(shù)據(jù)通常存放在名為“repodata”的子目錄中。YUM客戶通過訪問YUM倉庫數(shù)據(jù)進行分析并完成查詢、安裝、更新等操作。YUM客戶可以使用http://、ftp://或file://(本地文件)協(xié)議訪問YUM倉庫。YUM客戶可以使用官方和第三方提供的眾多YUM倉庫更新系統(tǒng)。createrepo、yum-utils等軟件包(默認未安裝)中提供了YUM倉庫管理工具。2、CentOS的鏡像站點CentOS的YUM倉庫位于CentOS的鏡像站點。用yum命令可以通過FTP或HTTP訪問遠程YUM倉庫。鏡像站點的第一級目錄是發(fā)行版本號,如3、4、5等。CentOS鏡像站點的版本號為5的YUM倉庫。addons/:本目錄包含CentOS的addons倉庫centosplus/:本目錄包含CentOS的centosplus倉庫extras/:本目錄包含CentOS的extras倉庫fasttrack/:本目錄包含CentOS的fasttrack倉庫isos/:本目錄包含發(fā)行版的CD/DVDisos下載文件os/:本目錄包含發(fā)行版(distributions)的倉庫updates/:本目錄包含CentOS的updates倉庫3、CentOS倉庫的目錄結構4、YUM的主要配置文件5、YUM的倉庫配置語法提供倉庫”release”RPM包的非官方倉庫下載非官方倉庫的“release”RPM包導入倉庫的RPM公鑰文件并驗證“release”RPM包使用rpm命令安裝非官方倉庫的“release”RPM包未提供倉庫”release”RPM包的非官方倉庫進入/etc/yum.repos.d目錄下載或直接編輯“.repo”文件導入倉庫的RPM公鑰課件演示、板書演示、模擬演練集體參與課件、相關軟件5、鞏固與拓展軟件包管理與系統(tǒng)更新使用軟件更新系統(tǒng)的目的為了要解決安裝RPM時的依賴性問題常見的基于RPM的更新系統(tǒng)RedHatNetwork——RedHat的企業(yè)級更新系統(tǒng)yum——Fedora,CentOSzypp——openSUSEurpmi——MandrivaAPT-RPM——PCLinuxOS,ALTLinuxapt——Debian,Ubuntuslackpkg——Slackwareemerge——Gentoopacman——Archconary——rPath,Foresight2、使用非官方軟件倉庫官方倉庫是指RedHat/CentOS提供的倉庫非官方倉庫是指官方倉庫之外的由其他社區(qū)或某軟件制作者提供的倉庫。使用非官方倉庫的目的安裝官方倉庫中不提供的軟件包安裝比官方倉庫中版本更新的軟件包應該選擇使用何種非官方倉庫知名的非官方倉庫具有GPG簽名的非官方倉庫課件演示、板書演示、模擬演練集體參與課件、相關軟件6、總結1、RPM指令的用法2、YUM指令的用法課件演示、板書演示、模擬演練討論、發(fā)言、點評課件、相關軟件7、作業(yè)布置1、構建本地軟件倉庫課件演示、板書演示、模擬演練集體參與課件、相關軟件學習成果教學后記
一、教案頭本單元標題:進程管理授課班級:課時:1教學目標能力目標知識目標1.學會進程管理指令的用法1.理解進程相關概念2.掌握如何運行后臺進程及注銷后繼續(xù)執(zhí)行3.掌握進程管理命令的使用能力訓練任務及案例一、能力訓練任務終止進程二、案例參考資料二、(單元)教學設計教學環(huán)節(jié)教學內容教學方法及手段學生活動教學資源及工具時間分配1、引入Linux中是如何控制進程的?課件演示、板書演示、模擬演練討論、發(fā)言、點評課件、相關軟件5分鐘2、操練(掌握初步或基本能力)1、程序、進程和作業(yè)程序(program)程序是機器指令的集合,文件形式存儲進程(process)進程是一個程序在其自身的虛擬地址空間中的一次執(zhí)行活動作業(yè)/任務(job/task)用戶通過操作系統(tǒng)用戶接口(Shell或X環(huán)境)提交給計算機進行加工處理的程序。如用戶發(fā)出一個打印命令,就產生一個打印作業(yè)/任務。課件演示、板書演示、模擬演練集體參與課件、相關軟件5分鐘3、深化(加深對基本能力的體會)1、進程與程序的區(qū)別程序只是一個靜態(tài)的指令集合;而進程是一個程序的動態(tài)執(zhí)行過程,它具有生命期,是動態(tài)的產生和消亡的。進程是資源申請、調度和獨立運行的單位,因此,它使用系統(tǒng)中的運行資源;而程序不能申請系統(tǒng)資源、不能被系統(tǒng)調度、也不能作為獨立運行的單位,因此,它不占用系統(tǒng)的運行資源。程序和進程無一一對應的關系。一方面一個程序可以由多個進程所共用,即一個程序在運行過程中可以產生多個進程;另一方面,一個進程在生命期內可以順序的執(zhí)行若干個程序。2、多用戶多任務當多個用戶同時在一個系統(tǒng)上工作時,Linux要能夠同時滿足用戶們的要求,而且還要使用戶感覺不到系統(tǒng)在同時為多個用戶服務,就好像每一個用戶都單獨擁有整個系統(tǒng)一樣。每個用戶均可同時運行多個程序。為了區(qū)分每一個運行的程序,Linux給每個進程都做了標識,稱為進程號(processID),每個進程的進程號是唯一的。Linux給每個進程都打上了運行者的標志,用戶可以控制自己的進程:給自己的進程分配不同的優(yōu)先級,也可以隨時終止自己的進程。進程從執(zhí)行它的用戶處繼承UID、GID,從而決定對文件系統(tǒng)的存取和訪問。Linux不可能在一個CPU上同時處理多個任務(作業(yè))請求,而是采用“分時”技術來處理這些任務請求。分時技術所有的任務請求被排除一個隊列,系統(tǒng)按順序每次從這個隊列中抽取一個任務來執(zhí)行,這個任務執(zhí)行很短的時間(幾毫秒)后,系統(tǒng)就將它排到任務隊列的末尾,然后讀入隊列中的下一個任務,以同樣的方式執(zhí)行。這樣經過一段時間后,任務隊列中的所有任務都被執(zhí)行一次,然后又開始下一輪循環(huán)。3、查看系統(tǒng)中的進程使用ps命令查看進程狀態(tài)信息顯示哪些進程正在執(zhí)行和執(zhí)行的狀態(tài)進程是否結束、進程有沒有僵死哪些進程占用了過多的系統(tǒng)資源等ps(ProcessStatus)命令格式ps[選項]不帶任何選項的ps命令顯示當前用戶所在終端中的所有進程輸出項包括:識別號(PID)、終端(TTY)、運行時間(TIME)、產生該進程所運行的命令(CMD)4、ps命令的常用選項5、ps常見的輸出標記6、ps命令的進程狀態(tài)列7、命令舉例指定輸出列$psouser,pid,ppid,pcpu,pmem,nice,cmd$ps-eopid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm$psaxostat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm$ps-eo“%p%y%x%n%c“——AIX風格對指定列排序$ps-ef--sortuser,-time$psaux--sort-pcpu$psaux--sort-pmem$psouser,pid,ppid,pcpu,pmem,nice,cmd--sortnice8、注銷后繼續(xù)運行進程9、進程調度的優(yōu)先級進程的優(yōu)先權決定對CPU的使用進程在運行時可以享有不同等的優(yōu)先權進程的優(yōu)先權受進程的nice值的影響這個值的范圍是-20到19,默認是0值越小說明對CPU的使用越優(yōu)先查看進程優(yōu)先級(看NI列的值)ps-lps-ocomm,nice10、進程信號進程信號是在軟件層次上對中斷機制的一種模擬,在原理上,一個進程收到一個信號與處理器收到一個中斷請求可以說是一樣的。進程信號是最基本的進程間通訊方式可以在進程之間直接發(fā)送,而不需要用戶界面可以在Shell中通過kill命令發(fā)送給進程Linux對每種進程信號都規(guī)定了默認關聯(lián)動作。查看可用的進程信號$kill-l$man7signal常見的進程信號SIGTERM|TERM(15)——正常終止(默認)SIGKILL|KILL(9)——立即終止SIGHUP|HUP(1)——重讀配置文件給進程發(fā)送信號按PID:kill[信號]PID…按名稱:killall[信號]COMM…按模式:pkill[-信號]模式發(fā)送信號可以使用名稱或數(shù)字號碼11、終止/殺死進程為什么要殺死進程該進程占用了過多的CPU時間該進程鎖住了一個終端,使其他前臺進程無法運行運行時間過長,但沒有預期效果或無法正常退出產生了過多到屏幕或磁盤文件的輸出kill/killall命令舉例$kill1234OR$kill-91234$killallmyprogOR$killall-9myprog注:(1)使用kill前需要先用ps查看需要終止的進程的pid;(2)kill–9很霸道,它在殺死一個進程的同時,將殺死其所有子進程,使用時要謹慎。如錯殺login進程或shell進程等。課件演示、板書演示、模擬演練集體參與課件、相關軟件10分鐘4、歸納(知識和能力)1、進程進程是一個動態(tài)實體。進程是處理器通過操作系統(tǒng)調度的基本單位。每個進程的執(zhí)行都獨立于系統(tǒng)中的其它進程。進程之間可以通過稱為進程間通信(IPC)的機制進行交互。當進程之間共享數(shù)據(jù)時,操作系統(tǒng)使用了同步技術來保證共享的合法性。2、Linux中的進程識別使用PID區(qū)分不同的進程系統(tǒng)啟動后的第一個進程是init,它的PID是1。init是唯一一個由系統(tǒng)內核直接運行的進程。除了init之外,每個進程都有父進程(PPID標識)每個進程還有四個與用戶和組相關的識別號實際用戶識別號 (realuserID,RUID)實際組識別號 (realgroupID,RGID)有效用戶識別號 (effectuserID,EUID)有效組識別號 (effectgroupID,EGID)3、用戶、進程與權限RUID和RGID的作用識別正在運行此進程的用戶和組。一個進程的RUID和RGID就是運行此進程的UID和GID。EUID和EGID的作用確定一個進程對其訪問的文件的權限。除了產生進程的程序被設置SUID和SGID權限位之外,一般EUID、EGID和RUID、RGID相同。若程序被設置了SUID或SGID權限位,則此進程相應的EUID和EGID,將和運行此進程的文件的所屬用戶的UID或所屬組的GID相同。4、進程的類型交互進程由一個Shell啟動的進程。交互進程既可以在前臺運行,也可以在后臺運行。批處理進程不與特定的終端相關聯(lián),提交到等待隊列種順序執(zhí)行的進程。守護進程(Daemon)在Linux在啟動時初始化,需要時運行于后臺的進程。5、前臺與后臺前臺進程指一個程序控制著標準輸入/輸出,在程序運行時,shell被暫時掛起,直到該程序運行結束后,才退回到shell。在這個過程中,用戶不能再執(zhí)行其它程序。后臺進程用戶不必等待程序運行結束就可以執(zhí)行其它程序。運行后臺進程的方法是在命令行最后加上“&”例如:$sleep10000&在一個終端里只能同時存在一個前臺任務,但可以有多個后臺任務。課件演示、板書演示、模擬演練集體參與課件、相關軟件50分鐘5、鞏固與拓展INIT與Shell命令執(zhí)行過程課件演示、板書演示、模擬演練集體參與課件、相關軟件10分鐘6、總結1、進程的特點2、進程與線程的區(qū)別課件演示、板書演示、模擬演練討論、發(fā)言、點評課件、相關軟件4分鐘7、作業(yè)布置1、終止firefox進程課件演示、板書演示、模擬演練集體參與課件、相關軟件1分鐘學習成果教學后記
一、教案頭本單元標題:簡單shell編程授課班級:課時:2教學目標能力目標知識目標1.學會編寫簡單的shell程序(循環(huán)、分支)1.熟悉Shell腳本的編碼規(guī)范,掌握執(zhí)行和調試方法2.掌握對變量進行整數(shù)運算和間接引用的方法3.理解位置參數(shù)變量和特殊參數(shù)變量的用途4.掌握條件測試的使用[]、[[]]、(())5.掌握各種流程控制語句的使用if、casefor、while、until、select、break、continue能力訓練任務及案例一、能力訓練任務1、批量添加用戶二、案例參考資料二、(單元)教學設計教學環(huán)節(jié)教學內容教學方法及手段學生活動教學資源及工具時間分配1、引入1、常見的腳本語言有哪些?2、shell有什么特點?課件演示、板書演示、模擬演練討論、發(fā)言、點評課件、相關軟件10分鐘2、操練(掌握初步或基本能力)1、shell腳本與shell編程當命令不在命令行中執(zhí)行,而是從一個文件中執(zhí)行時,該文件就稱為Shell腳本。Shell腳本是純文本文件。Shell腳本通常以.sh作為后綴名,但不是必須。Shell腳本是以行為單位的,在執(zhí)行腳本的時候會分解成一行一行依次執(zhí)行。Shell是一種功能強大的解釋型編程語言通常用于完成特定的、較復雜的系統(tǒng)管理任務Shell腳本語言非常擅長處理文本類型的數(shù)據(jù)2、Shell腳本的成分程序元素保留字、運算符、表達式變量、數(shù)組、輸入輸出控制結構(順序、分支、循環(huán)、子程序調用)Shell功能【參見第2、3章內容】執(zhí)行命令(內置命令、外部命令、自編程序)重定向、管道、命令替換、命令聚合通配符、注釋符、……Shell環(huán)境3、shell腳本的建立與執(zhí)行4、Shell腳本的編碼規(guī)范以#!開頭:通知系統(tǒng)用何解釋器執(zhí)行此腳本#!/bin/bash#!/bin/ksh以注釋形式說明如下的內容:#腳本名稱#腳本功能#作者及聯(lián)系方式#版本更新記錄#版權聲明#對算法做簡要說明(如果是復雜腳本)5、SHELL腳本調試5、shell腳本的類型非交互式腳本不需要讀取用戶的輸入,也不用向用戶反饋某些信息每次執(zhí)行都是可預見的,因為它不讀取用戶輸入,參數(shù)是固定的可以在后臺執(zhí)行交互式腳本腳本可以讀取用戶的輸入,實時向用戶反饋信息(輸出某些信息)這樣的腳本更靈活,每次執(zhí)行時的參數(shù)可由用戶動態(tài)設定用戶界面更友好,但不適用于自動化任務(如cron任務)課件演示、板書演示、模擬演練集體參與課件、相關軟件30分鐘3、深化(加深對基本能力的體會)1、shell的便利用戶自定義變量由用戶自己定義、修改和使用Shell環(huán)境變量由系統(tǒng)維護,用于設置用戶的Shell工作環(huán)境只有少數(shù)的變量用戶可以修改其值位置參數(shù)變量(PositionalParameters)通過命令行給程序傳遞執(zhí)行參數(shù)可用shift命令實現(xiàn)位置參數(shù)的遷移專用參數(shù)變量(SpecialParameters)Bash預定義的特殊變量用戶不能修改其值2、位置參數(shù)變量是一組特殊的內置變量跟在腳本名后面的用空格隔開的每個字符串$1表示第1個參數(shù)值,……,$9表示第9個參數(shù)值${10}表示第10個參數(shù)值,${11}表示第11個參數(shù)值,……位置參數(shù)的用途從shell命令/腳本的命令行接受參數(shù)在調用shell函數(shù)時為其傳遞參數(shù)3、專用參數(shù)變量命令行參數(shù)相關$*將所有位置參量看成一個字符串(以空格間隔)。$@將每個位置參量看成單獨的字符串(以空格間隔)?!?*”將所有位置參量看成一個字符串(以$IFS間隔)。“$@”將每個位置參量看成單獨的字符串(以空格間隔)。$0命令行上輸入的Shell程序名。$#表示命令行上參數(shù)的個數(shù)。進程狀態(tài)相關$?表示上一條命令執(zhí)行后的返回值$$當前進程的進程號$!顯示運行在后臺的最后一個作業(yè)的PID$_在此之前執(zhí)行的命令或腳本的最后一個參數(shù)4、返回狀態(tài)碼5、read從鍵盤輸入內容為變量賦值read[-p"信息"][var1var2...]若省略變量名,則將輸入的內容存入REPLY變量結合不同的引號為變量賦值雙引號””:允許通過$符號引用其他變量值單引號’’:禁止引用其他變量值,$視為普通字符反撇號``:將命令執(zhí)行的結果輸出給變量更多read的用法參見/guide/Getting_User_Input_Via_Keyboard6、整數(shù)運算Bash變量沒有嚴格的類型定義本質上Bash變量都是字符串若一個字面常量或變量的值是純數(shù)字的,不包含字母或其他字符,Bash可以將其視為長整型值,并可做算數(shù)運算和比較運算。Bash也允許顯式地聲明整型變量declare-i變量名7、算術運算擴展8、內置命令-let9、expr10、浮點運算11、printf命令12、declare命令12、條件測試條件測試可以判斷某個特定條件是否滿足測試之后通常會根據(jù)不同的測試值選擇執(zhí)行不同任務條件測試的種類命令成功或失敗表達式為真或假條件測試的值Bash中沒有布爾類型變量退出狀態(tài)為0表示命令成功或表達式為真非0則表示命令失敗或表達式為假狀態(tài)變量$?中保存了退出狀態(tài)的值語句格式1:test<測試表達式>格式2:[<測試表達式>]格式3:[[<測試表達式>]](bash2.x版本以上)說明格式1和格式2是等價的,格式3是擴展的test命令在[[]]中可以使用通配符進行模式匹配&&,||,<,和>能夠正常存在于[[]]中,但不能在[]中出現(xiàn)[和[[之后的字符必須為空格,]和]]之前的字符必須為空格要對整數(shù)進行關系運算也可以使用(())進行測試條件測試表達式中可用的操作符文件測試操作符字符串測試操作符整數(shù)二元比較操作符使用邏輯運算符13、文件測試14、字符串測試15、整數(shù)測試注意:操作符兩邊必須留空格!16、條件測試舉例17、邏輯測試18、流程控制(1)if語句(2)case語句(3)for循環(huán)(foreach)(4)for循環(huán)(C語言型)(5)while循環(huán)(5)until語句課件演示、板書演示、模擬演練集體參與課件、相關軟件40分鐘4、歸納(知識和能力)1、變量及相關命令課件演示、板書演示、模擬演練集體參與課件、相關軟件10分鐘5、鞏固與拓展用戶自定義變量由用戶自己定義、修改和使用Shell環(huán)境變量由系統(tǒng)維護,用于設置用戶的Shell工作環(huán)境只有少數(shù)的變量用戶可以修改其值位置參數(shù)變量(PositionalParameters)通過命令行給程序傳遞執(zhí)行參數(shù)可用shift命令實現(xiàn)位置參數(shù)的遷移專用參數(shù)變量(SpecialParameters)Bash預定義的特殊變量用戶不能修改其值課件演示、板書演示、模擬演練集體參與課件、相關軟件20分鐘6、總結1、shell腳本與shell編程當命令不在命令行中執(zhí)行,而是從一個文件中執(zhí)行時,該文件就稱為Shell腳本。Shell腳本是純文本文件。Shell腳本通常以.sh作為后綴名,但不是必須。Shell腳本是以行為單位的,在執(zhí)行腳本的時候會分解成一行一行依次執(zhí)行。Shell是一種功能強大的解釋型編程語言通常用于完成特定的、較復雜的系統(tǒng)管理任務Shell腳本語言非常擅長處理文本類型的數(shù)據(jù)2、Shell腳本的成分程序元素保留字、運算符、表達式變量、數(shù)組、輸入輸出控制結構(順序、分支、循環(huán)、子程序調用)Shell功能【參見第2、3章內容】執(zhí)行命令(內置命令、外部命令、自編程序)重定向、管道、命令替換、命令聚合通配符、注釋符、……Shell環(huán)境課件演示、板書演示、模擬演練討論、發(fā)言、點評課件、相關軟件8分鐘7、作業(yè)布置1、批量添加用戶2、批量設置用戶密碼課件演示、板書演示、模
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 年度光伏組件背板產業(yè)分析報告
- 二零二五版共享辦公空間租賃管理合同2篇
- 2024-2025學年新教材高中歷史第八單元中華民族的抗日戰(zhàn)爭和人民解放戰(zhàn)爭第23課從局部抗戰(zhàn)到全面抗戰(zhàn)學案新人教版必修中外歷史綱要上
- 2024-2025學年高中政治專題三信守合同與違約2訂立合同有學問訓練含解析新人教版選修5
- 2024-2025學年新教材高中英語UNIT1TEENAGELIFESectionⅡDiscoveringUsefulStructures課時作業(yè)含解析新人教版必修第一冊
- 2025年度臨時勞動合同范本(區(qū)塊鏈技術應用)4篇
- 2025年度城市綠化工程合同及后期養(yǎng)護服務3篇
- 2024租賃合同(辦公設備)
- 2025年度智慧城市建設戰(zhàn)略合作合同范本3篇
- 2025年度監(jiān)獄門衛(wèi)安全責任書3篇
- 巖土工程勘察課件0巖土工程勘察
- 《腎上腺腫瘤》課件
- 2024-2030年中國典當行業(yè)發(fā)展前景預測及融資策略分析報告
- 《乘用車越野性能主觀評價方法》
- 幼師個人成長發(fā)展規(guī)劃
- 2024-2025學年北師大版高二上學期期末英語試題及解答參考
- 動物醫(yī)學類專業(yè)生涯發(fā)展展示
- 批發(fā)面包采購合同范本
- 乘風化麟 蛇我其誰 2025XX集團年終總結暨頒獎盛典
- 2024年大數(shù)據(jù)分析公司與中國政府合作協(xié)議
- 一年級數(shù)學(上)計算題專項練習匯編
評論
0/150
提交評論