




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第七章編寫Shell管理腳本(一)1課程回顧如何使系統(tǒng)開機(jī)后默認(rèn)進(jìn)入字符模式?如何禁止bluetooth等服務(wù)開機(jī)后自動(dòng)運(yùn)行?如何查看、終止系統(tǒng)中的進(jìn)程?使用at、crontab計(jì)劃任務(wù)的區(qū)別是什么?crontab的配置記錄由哪幾部分組成?2技能展示理解Shell的作用及分類掌握Bash的常用功能會(huì)設(shè)置和使用Shell變量會(huì)編寫簡(jiǎn)單的Shell腳本3本章結(jié)構(gòu)Shell環(huán)境概述Shell的作用及常見種類Shell腳本的概念Shell環(huán)境的切換編寫Shell腳本Bash的常用功能編寫Shell管理腳本(一)Shell變量應(yīng)用編寫并執(zhí)行Shell腳本用戶自定義變量環(huán)境變量位置變量、預(yù)定義變量Shell腳本應(yīng)用實(shí)例執(zhí)行Shell腳本4Shell的作用及常見種類Shell的作用——命令解釋器,“翻譯官”介于操作系統(tǒng)內(nèi)核與用戶之間,負(fù)責(zé)解釋命令行Shell計(jì)算機(jī)用戶應(yīng)用程序Linux內(nèi)核輸入輸入控制控制系統(tǒng)硬件輸出輸出5Shell的作用及常見種類KshBshCshBashZsh兼具Bsh的語(yǔ)法和Csh的交互特性70年代中期誕生于貝爾實(shí)驗(yàn)室,有較強(qiáng)的腳本編程功能80年代早期誕生于加利福尼亞大學(xué),使用C語(yǔ)言風(fēng)格,命令交互方便Bsh的升級(jí)版,Linux系統(tǒng)中的默認(rèn)Shell兼具各種Shell程序優(yōu)點(diǎn),交互式操作效率更高6[root@localhost~]#cat/etc/shells/bin/sh/bin/bash/sbin/nologin/bin/tcsh/bin/csh/bin/ksh如何切換Shell環(huán)境臨時(shí)切換:直接執(zhí)行其他Shell程序,例如ksh、zsh等更改用戶登錄Shell:需修改/etc/passwd文件中用戶記錄的最后一個(gè)字段或執(zhí)行:usermod-sShell程序路徑用戶名Shell環(huán)境的切換登錄Shell指用戶每次登錄系統(tǒng)后自動(dòng)加載的Shell程序,大多數(shù)Linux系統(tǒng)采用/bin/bash作為默認(rèn)登錄Shell/etc/shells文件記錄了系統(tǒng)支持的有效登錄Shell7Bash的常用功能Tab鍵自動(dòng)補(bǔ)齊命令編輯快捷鍵命令歷史命令別名標(biāo)準(zhǔn)輸入輸出重定向操作管道操作8Bash的命令歷史命令歷史保存用戶曾經(jīng)執(zhí)行過(guò)的命令操作存放位置:~/.bash_history
文件查看歷史命令使用↑、↓按鍵逐條翻看,允許編輯并重復(fù)執(zhí)行執(zhí)行:history清除歷史命令執(zhí)行:history-c[root@localhostroot]#history……556useraddjerry557passwdjerry558crontab-e-ujerry559crontab-l-ujerry9Bash的命令歷史調(diào)用歷史命令!n:執(zhí)行歷史記錄中的第n條命令!str:執(zhí)行歷史記錄中以“str”開頭的命令設(shè)置記錄歷史命令的條數(shù)修改HISTSIZE參數(shù)(默認(rèn)為1000條)[root@localhostroot]#!562crontab-l-ujerrynocrontabforjerry[root@localhost~]#vi/etc/profileHISTSIZE=20010Bash的命令別名命令別名為使用頻率較高的復(fù)雜命令行設(shè)置簡(jiǎn)短的調(diào)用名稱存放位置:~/.bashrc查看命令別名格式:alias[別名]設(shè)置命令別名執(zhí)行:alias別名='實(shí)際執(zhí)行的命令'取消已設(shè)置的命令別名格式:unalias別名unalias-a[root@localhost~]#aliasaliascp='cp-i'aliasl.='ls-d.*--color=tty'aliasll='ls-l--color=tty'aliasls='ls--color=tty'aliasmv='mv-i'aliasrm='rm-i'……11Bash的標(biāo)準(zhǔn)輸入輸出交互式硬件設(shè)備標(biāo)準(zhǔn)輸入:從該設(shè)備接收用戶輸入的數(shù)據(jù)標(biāo)準(zhǔn)輸出:通過(guò)該設(shè)備向用戶輸出數(shù)據(jù)標(biāo)準(zhǔn)錯(cuò)誤:通過(guò)該設(shè)備報(bào)告執(zhí)行出錯(cuò)信息類型設(shè)備文件文件描述編號(hào)默認(rèn)設(shè)備標(biāo)準(zhǔn)輸入/dev/stdin0鍵盤標(biāo)準(zhǔn)輸出/dev/stdout1顯示器標(biāo)準(zhǔn)錯(cuò)誤輸出/dev/stderr2顯示器12Bash的重定向操作改變標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)錯(cuò)誤的方向類型操作符用途重定向標(biāo)準(zhǔn)輸入<將命令中接收輸入的途徑由默認(rèn)的鍵盤更改為指定的文件重定向標(biāo)準(zhǔn)輸出>將命令的執(zhí)行結(jié)果輸出到指定的文件中,而不是直接顯示在屏幕上>>將命令執(zhí)行的結(jié)果追加輸出到指定文件重定向標(biāo)準(zhǔn)錯(cuò)誤2>清空指定文件的內(nèi)容,并將標(biāo)準(zhǔn)錯(cuò)誤信息保存到該文件中2>>將標(biāo)準(zhǔn)錯(cuò)誤信息追加輸出到指定的文件中重定向標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤&>將標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)錯(cuò)誤的內(nèi)容全部保存到指定的文件中,而不是直接顯示在屏幕上13Bash的管道操作管道操作符號(hào)“|”連接左右兩個(gè)命令,將左側(cè)的命令輸出的結(jié)果,作為右側(cè)命令的輸入(處理對(duì)象)格式:cmd1|cmd2[...|cmdn][root@localhost~]#free-m|head-2totalusedfreesharedbufferscachedMem:503339163087199[root@localhost~]#free-m|grep"Mem"|awk'{print$2,$4}'503163awk,以空格或制表位為分隔,輸出指定第n列數(shù)據(jù)14Shell變量的應(yīng)用Shell變量為靈活管理Linux系統(tǒng)提供特定參數(shù),有兩層意思:變量名:使用固定的名稱,由系統(tǒng)預(yù)設(shè)或用戶定義變量值:能夠根據(jù)用戶設(shè)置、系統(tǒng)環(huán)境變化而變化Shell變量的種類用戶自定義變量:由用戶自己定義、修改和使用環(huán)境變量:由系統(tǒng)維護(hù),用于設(shè)置用戶的Shell工作環(huán)境,只有極少數(shù)的變量用戶可以修改預(yù)定義變量:Bash預(yù)定義的特殊變量,不能直接修改位置變量:通過(guò)命令行給程序傳遞執(zhí)行參數(shù)15變量的賦值與引用定義新的變量變量名要以英文字母或下劃線開頭,區(qū)分大小寫格式:變量名=變量值查看變量的值格式:echo$變量名[root@localhost~]#DAY=Sunday[root@localhost~]#echo$DAYSunday通過(guò)$符號(hào)引用指定名稱的變量值16變量的賦值與引用從鍵盤輸入內(nèi)容為變量賦值格式:read[-p"信息"]變量名結(jié)合不同的引號(hào)為變量賦值雙引號(hào)“”:允許通過(guò)$符號(hào)引用其他變量值單引號(hào)‘’:禁止引用其他變量值,$視為普通字符反撇號(hào)``:將命令執(zhí)行的結(jié)果輸出給變量17變量的賦值與引用設(shè)置變量的作用范圍格式:export變量名...export變量名=變量值[...變量名n=變量值n]清除用戶定義的變量格式:unset變量名[root@localhost~]#echo$FILESVR[root@localhost~]#exportFILESVR[root@localhost~]#zsh[root@localhost]~#echo$FILESVR[root@localhost]~#exit[root@localhostroot]#unsetFILESVR[root@localhostroot]#echo$_abc[root@localhostroot]#輸出為全局變量清除該變量?jī)?nèi)容18數(shù)值變量的運(yùn)算計(jì)算整數(shù)表達(dá)式的運(yùn)算結(jié)果格式:expr變量1運(yùn)算符變量2...[運(yùn)算符變量n]expr的常用運(yùn)算符加法運(yùn)算:+減法運(yùn)算:-乘法運(yùn)算:\*除法運(yùn)算:/求模(取余)運(yùn)算:%19環(huán)境變量環(huán)境變量配置文件全局配置文件:/etc/profile
用戶配置文件:~/.bash_profile查看環(huán)境變量set命令可以查看所有的Shell變量,其中包括環(huán)境變量[root@localhostroot]#set……SHELL=/bin/bashTERM=xtermUID=0USER=rootconsoletype=pty20[root@localhost~]#echo$PATH/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin[root@localhost~]#PATH="/opt/bin:$PATH"[root@localhost~]#echo$PATH/opt/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin環(huán)境變量常見的環(huán)境變量:$USER、$LOGNAME$UID、$SHELL、$HOME$PWD、$PATH
$PS1、$PS221[root@localhost~]#./exam01onetwothreefourfivesix位置變量表示為$n,n為1~9之間的數(shù)字$1,第1個(gè)位置參數(shù)$2,第2個(gè)位置參數(shù)$6,第6個(gè)位置參數(shù)22預(yù)定義變量表示形式如下$#:命令行中位置參數(shù)的個(gè)數(shù)$*:所有位置參數(shù)的內(nèi)容$?:上一條命令執(zhí)行后返回的狀態(tài),當(dāng)返回狀態(tài)值為0時(shí)表示執(zhí)行正常,非0值表示執(zhí)行異?;虺鲥e(cuò)$$:當(dāng)前所在進(jìn)程的進(jìn)程號(hào)$!:后臺(tái)運(yùn)行的最后一個(gè)進(jìn)程號(hào)$0:當(dāng)前執(zhí)行的進(jìn)程/程序名[root@localhost~]#bash[root@localhost~]#echo$0$$bash5887[root@localhost~]#exxitbash:exxit:commandnotfound[root@localhost~]#echo$?127[root@localhost~]#exitexit[root@localhost~]#echo$?
0查看當(dāng)前所執(zhí)行進(jìn)程的名稱、PID號(hào)執(zhí)行一條錯(cuò)誤命令返回非0值,表示上一條命令異常返回0值,表示上一條命令正常23小結(jié)請(qǐng)思考:RHEL5系統(tǒng)中默認(rèn)使用哪種Shell?如何更改用戶的登錄Shell?在Shell的變量應(yīng)用中,三種引號(hào)的作用有何區(qū)別?環(huán)境變量PWD的作用是什么,如何查看該變量的值?變量A的值為13,B的值為17,如何計(jì)算其乘積?位置變量$1~$9的作用是什么?24Shell腳本的概念Shell腳本用途:完成特定的、較復(fù)雜的系統(tǒng)管理任務(wù)格式:集中保存多條Linux命令,普通文本文件執(zhí)行方式:按照預(yù)設(shè)的順序依次解釋執(zhí)行25編寫可執(zhí)行的Shell腳本建立包含執(zhí)行語(yǔ)句的腳本文件腳本文件中包括的內(nèi)容運(yùn)行環(huán)境設(shè)置:#!/bin/bash
注釋信息:以#開始的說(shuō)明性文字可執(zhí)行的Linux命令行為腳本文件添加可執(zhí)行權(quán)限[root@localhost~]#virepboot.sh#!/bin/bash#Toshowusageof/bootdirectoryandmodeofkernelfile.echo"Useageof/boot:"du-sh/bootecho"Themodeofkernelfile:"ls-lh/boot/vmlinuz-*[root@localhost~]#chmoda+xrepboot.sh26運(yùn)行Shell腳本程序直接執(zhí)行具有“x”權(quán)限的腳本文件例如:./repboot.sh
使用指定的解釋器程序執(zhí)行腳本內(nèi)容例如:bashrepboot.sh、shrepboot.sh通過(guò)source命令(或.)讀取腳本內(nèi)容執(zhí)行例如:soucerepboot.sh或.hello.sh
27Shell腳本應(yīng)用示例示例1:每周五17:30清理FTP服務(wù)器的公共共享目錄檢查/var/ftp/pub/目錄,將其中所有子目錄及文件的詳細(xì)列表、當(dāng)時(shí)的時(shí)間信息追加保存到/var/log/pubdir.log日志文件中,然后清空該目錄[root@localhost~]#vi/opt/ftpclean.sh#!/bin/bashdate>>/var/log/pubdir.logls-lhR/var/ftp/pub>>/var/log/pubdir.logrm-rf/var/ftp/pub/*[root@localhost~]#crontab-e3017**5/opt/ftpclean.sh28Shell腳本應(yīng)用示例示例2:每隔3天對(duì)數(shù)據(jù)庫(kù)目錄做一次完整備份統(tǒng)計(jì)/var/lib/mysql目錄占用的空間大小、查看當(dāng)前的日期,并記錄到臨時(shí)文件/tmp/dbinfo.txt中將/tmp/dbinfo.txt文件、/var/lib/mysql目錄進(jìn)行壓縮歸檔,備份到/opt/dbbak/目錄中備份后的包文件名中要包含當(dāng)天的日期信息最后刪除臨時(shí)文件/tmp/dbinfo.txt[root@localhost~]#vi/opt/dbbak.sh#!/bin/bashDAY=`date+%Y%m%d`SIZE=`du-sh/var/lib/mysql`echo"Date:$DAY">>/tmp/dbinfo.txtecho"DataSize:$Size">>/tmp/dbinfo.txtcd/opt/dbbaktarzcvfmysqlbak-${DAY}.tar.gz/var/lib/mysql/tmp/dbinfo.txtrm-f/tmp/dbinfo.txt[root@localhost~]#crontab-e5523*/3**/opt/dbbak.sh29本章總結(jié)Shell環(huán)境概述Shell的作用及常見種類Shell腳本的概念Shell環(huán)境的切換編寫Shell腳本Bash的常用功能編寫Shell管理腳本(一)Shell變量應(yīng)用編寫并執(zhí)行Shell腳本用戶自定義變量環(huán)境變量位置變量、預(yù)定義變量Shell腳本應(yīng)用實(shí)例執(zhí)行Shell腳本30實(shí)驗(yàn)案例1:定制root用戶的Shell環(huán)境需求描述使root用戶能通過(guò)“crondstart”形式控制相應(yīng)系統(tǒng)服務(wù)的狀態(tài),而無(wú)需使用service命令或絕對(duì)路徑將root用戶的命令歷史記錄限制為
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 代理手機(jī)合同范本
- 醫(yī)療設(shè)備續(xù)保合同范本
- 云倉(cāng)倉(cāng)儲(chǔ)合同范本
- 住房助貸合同范例
- 癌癥-《中醫(yī)內(nèi)科學(xué)》教案
- 苗木供銷合同范本
- 2024年秋新北師大版七年級(jí)上冊(cè)生物課件 第5章 綠色植物的生活史 第3節(jié) 生殖器官的生長(zhǎng) 第3節(jié) 生殖器官的生長(zhǎng)
- 涂裝反修合同范本
- 2025年人工智能訓(xùn)練師(中級(jí))職業(yè)技能鑒定參考指導(dǎo)題庫(kù)(含答案)
- 頸椎和胸椎護(hù)理
- 四年級(jí)科學(xué)下冊(cè)課件 第四課 河流和湖泊 冀人版 25張
- 綠色簡(jiǎn)約墻體商務(wù)風(fēng)PPT模板
- GB/T 462-2003紙和紙板水分的測(cè)定
- QC演示:提高檢查井周邊密實(shí)度
- 年度應(yīng)急演練計(jì)劃表
- 英語(yǔ)板書設(shè)計(jì)(課件)
- 三年級(jí)勞動(dòng)課1ppt
- 智能中臺(tái)數(shù)據(jù)底座解決方案
- 《財(cái)政與金融》課程教學(xué)大綱
- 《國(guó)際稅收》教案
- 傳統(tǒng)體育養(yǎng)生概論
評(píng)論
0/150
提交評(píng)論