版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
BENET3.0第二學期課程第七章編寫Shell管理腳本(一)——理論部分課程回顧如何使系統(tǒng)開機后默認進入字符模式?如何禁止bluetooth等服務開機后自動運行?如何查看、終止系統(tǒng)中的進程?使用at、crontab計劃任務的區(qū)別是什么?crontab的配置記錄由哪幾部分組成?2技能展示理解Shell的作用及分類掌握Bash的常用功能會設置和使用Shell變量會編寫簡單的Shell腳本3本章結構Shell環(huán)境概述Shell的作用及常見種類Shell環(huán)境的切換
Bash的常用功能編寫Shell管理腳本(一)Shell變量應用編寫并執(zhí)行Shell腳本用戶自定義變量環(huán)境變量位置變量、預定義變量Shell腳本的概念編寫Shell腳本執(zhí)行Shell腳本Shell腳本應用實例4Shell的作用及常見種類Shell的作用——命令解釋器,“翻譯官”介于操作系統(tǒng)內核與用戶之間,負責解釋命令行Shell計算機用戶應用程序輸入輸入控制控制Linux內核系統(tǒng)硬件輸出輸出5Shell的作用及常見種類KshBshCshBash兼具Bsh的語法和Csh的交互特性70年代中期誕生于貝爾實驗室,有較強的腳本編程功能80年代早期誕生于加利福尼亞大學,使用C語言風格,命令交互方便Bsh的升級版,Linux系統(tǒng)中的默認Shell6Zsh兼具各種Shell程序優(yōu)點,交互式操作效率更高[/bin//sbin/nologins臨h
時切換:直接執(zhí)行其他Shell程序,例如ksh、zsh等/bin/b更ash改用戶登錄Shell:需修改/etc/passwd
文件中用戶記錄的最后一個字段Shell環(huán)境的切換登錄Shell指用戶每次登錄系統(tǒng)后自動加載的Shell程序,大多數(shù)Linux系統(tǒng)采用/bin/bash
作為默認登錄Shell/etc/shells
文件記錄了系統(tǒng)支持的有效登錄Shellro如ot@何lo切cal換hosSt
~h]#eclal環(huán)t
/et境c/shells/bin/tcs
h
或執(zhí)行:usermod
-s
Shell程序路徑
用戶名/bin/csh/bin/ksh教員演示操作過程7Bash的常用功能Tab鍵自動補齊命令編輯快捷鍵命令歷史命令別名標準輸入輸出重定向操作
管道操作8Bash的命令歷史命令歷史保存用戶曾經執(zhí)行過的命令操作存放位置:~/.bash_history
文件查看歷史命令[root@使lo用ca↑lh、os↓t
按roo鍵t]#逐hi條sto翻ry
看,允許編輯并重復執(zhí)行……
執(zhí)行:history55清6
u除se歷rad史d je命rry令557
p執(zhí)as行sw:d
jherirsytory
-c558
crontab -e -u
jerry559
crontab -l -u
jerry9Bash的命令歷史調用歷史命令!n:執(zhí)行歷史記錄中的第n條命令!str:執(zhí)行歷史記錄中以“str”開頭的命令設置記錄歷史命令的條數(shù)修改HISTSIZE
參數(shù)(默認為1000條)[root@localhost
root]#
!562crontab
-l
-u
jerryno
crontab
for
jerry[root@localhost
~]#
vi
/etc/profileHISTSIZE=20010Bash的命令別名命令別名為使用頻率較高的復雜命令行設置簡短的調用名稱存放位置:~/.bashrc查看命令別名[root@格lo式ca:lhoaslti~a]s#a[[li別as
名]al設ias
置cp=命'cp令-i'
別名alias
執(zhí)l.='行l(wèi)s
-:d
.*a-l-icaoslor別別=tty名'
='實際執(zhí)行的命令'al取ias
消ll='已ls
-l設--c置olo的r=tt命y'
令別名alias
ls='ls
--color=tty'alias
m格v式='m:v
-ui'nalias
別名alias
rm='rm
-i'unalias
-a……11Bash的標準輸入輸出交互式硬件設備標準輸入:從該設備接收用戶輸入的數(shù)據標準輸出:通過該設備向用戶輸出數(shù)據
標準錯誤:通過該設備報告執(zhí)行出錯信息12類型設備文件文件描述編號默認設備標準輸入/dev/stdin0鍵盤標準輸出/dev/stdout1顯示器標準錯誤輸出/dev/stderr2顯示器Bash的重定向操作改變標準輸入、標準輸出、標準錯誤的方向類型操作符用途重定向標準輸入<將命令中接收輸入的途徑由默認的鍵盤更改為指定的文件重定向標準輸出>將命令的執(zhí)行結果輸出到指定的文件中,而不是直接顯示在屏幕上>>將命令執(zhí)行的結果追加輸出到指定文件重定向標準錯誤2>清空指定文件的內容,并將標準錯誤信息保存到該文件中2>>將標準錯誤信息追加輸出到指定的文件中重定向標準輸出和標準錯誤&>將標準輸出、標準錯誤的內容全部保存到指定的文件中,而不是直接顯示在屏幕上教員演示操作過程13Bash的管道操作管道操作符號“|”連接左右兩個命令,將左側的命令輸出的結果,作為右側命令的輸入(處理對象)格式:cmd1
|
cmd2 [...
|
cmdn][root@localhost
~]#
free
-m
|
head
-2totalMem:used
free
shared503
339
163buffers0cached87
199[root@localhost
~]#
free
-m
|
grep
"Mem"
|
awk
$2,$4}'503
163awk,以空格或制表位為分隔,輸出指定第n列數(shù)據14Shell變量的應用Shell變量為靈活管理Linux系統(tǒng)提供特定參數(shù),有兩層意思:變量名:使用固定的名稱,由系統(tǒng)預設或用戶定義變量值:能夠根據用戶設置、系統(tǒng)環(huán)境變化而變化Shell變量的種類用戶自定義變量:由用戶自己定義、修改和使用環(huán)境變量:由系統(tǒng)維護,用于設置用戶的Shell工作環(huán)境,只有極少數(shù)的變量用戶可以修改預定義變量:Bash預定義的特殊變量,不能直接修改位置變量:通過命令行給程序傳遞執(zhí)行參數(shù)15變量的賦值與引用定義新的變量變量名要以英文字母或下劃線開頭,區(qū)分大小寫格式:變量名=變量值查看變量的值格式:echo
$變量名[root@localhost
~]#
DAY=Sunday[root@localhost
~]#
echo
$DAYSunday通過$符號引用指定名稱的變量值16變量的賦值與引用從鍵盤輸入內容為變量賦值格式:
read
[-p
"信息"]
變量名結合不同的引號為變量賦值雙引號“”:允許通過$符號引用其他變量值單引號‘’:禁止引用其他變量值,$視為普通字符反撇號`
`
:將命令執(zhí)行的結果輸出給變量教員演示操作過程17變量的賦值與引用設置變量的作用范圍格式:export
變量名...[root@localhoesxt
p~]o#retch變o
$量FIL名ES=V變R
量值[...變量名n=變量值n]清除用戶定義的變量[root@格lo式ca:lhoustn~s]#etexp變ort量FI名LESVR[root@localhost
~]#
zsh[root@localhost]~#
echo
$FILESVR[root@localhost]~#
exit[root@localhost
root]#
unset
FILESVR[root@localhost
root]#
echo
$_abc[root@localhost
root]#輸出為全局變量清除該變量內容18數(shù)值變量的運算計算整數(shù)表達式的運算結果運算符
變量2
...[運算符
變量n]格式:expr
變量1expr的常用運算符加法運算:+減法運算:-乘法運算:\*除法運算:/求模(取余)運算:%教員演示操作過程19環(huán)境變量環(huán)境變量配置文件全局配置文件:/etc/profile用戶配置文件:~/.bash_profile查看環(huán)境變量set命令可以查看所有的Shell變量,其中包括環(huán)境變量[root@localhost
root]#
set……SHELL=/bin/bashTERM=xtermUID=0USER=rootconsoletype=pty20環(huán)境變量常見的環(huán)境變量:$USER
、$LOGNAME$UID
、$SHELL
、$HOME$PWD、$PATH$PS1、$PS2[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/bin21位置變量表示為$n,n為1~9之間的數(shù)字[root@localhost
~]#
./exam01
one$1,第1個位置參數(shù)$6,第6個位置參數(shù)two
three
four
five
six$2,第2個位置參數(shù)22預定義變量表示形式如下127[root@localhost
~]#
echo
$?0查看當前所執(zhí)行進程[root@$##lo:cal命ho令st
~行]#中ba位sh置參數(shù)的個的數(shù)名稱、PID號[root@$**lo:ca所lho有st
位~]#置ec參ho數(shù)$0的$內$
容bash
$58?8:7
上一條命令執(zhí)行后返執(zhí)回行的一條狀錯態(tài)誤,命令當返回狀態(tài)值為0[root@時lo表ca示lho執(zhí)st
行~]#正ex常xit,非0值表示執(zhí)行異?;虺鲥e
bash:$e$x:xit:當co前mm所a在nd
進no程t
fo的un進d
程號[root@$!!lo:ca后lho臺st運~]#行ec的ho最$?后一個進程號$0:當前執(zhí)行的進程/程返序回名非0值,表示上[root@localhost
~]#exit
一條命令異常exit返回0值,表示上一條命令正常23小結請思考:RHEL5系統(tǒng)中默認使用哪種Shell?如何更改用戶的登錄Shell?在Shell的變量應用中,三種引號的作用有何區(qū)別?環(huán)境變量PWD的作用是什么,如何查看該變量的值?變量A的值為13,B的值為17,如何計算其乘積?位置變量$1~$9的作用是什么?24Shell腳本的概念Shell腳本用途:完成特定的、較復雜的系統(tǒng)管理任務格式:集中保存多條Linux命令,普通文本文件執(zhí)行方式:按照預設的順序依次解釋執(zhí)行25編寫可執(zhí)行的Shell腳本注釋信息:以#開始的說明性文字可執(zhí)行的Linux命令行建立包含執(zhí)行語句的腳本文件[root@腳lo本ca文lho件st
中~]#包vi括rep的bo內ot.容sh#!/bin/b
as運h
行環(huán)境設置:#!/bin/bash#
To
show
usage
of
/boot
directory
and
mode
of
kernel
file.echo
"Useage
of
/boot:
"du為-s腳h/b本oot文件添加可執(zhí)行權限
echo
"The
mode
of
kernel
file:"ls
-lh
/boot/vmlinuz-*[root@localhost
~]#
chmod
a+x
repboot.sh教員演示操作過程26運行Shell腳本程序直接執(zhí)行具有“x”權限的腳本文件例如:./repboot.sh使用指定的解釋器程序執(zhí)行腳本內容例如:bash
repboot.sh、sh
repboot.sh通過source命令(或.)讀取腳本內容執(zhí)行例如:souce
repboot.sh
或
.
hello.sh教員演示操作過程27Shell腳本應用示例示例1:每周五17:30清理FTP服務器的公共共享目錄
檢查/var/ftp/pub/目錄,將其中所有子目錄及文件的詳細列表、當時的時間信息追加保存到/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
-e30
17
*
*
5
/opt/ftpclean.sh教員演示操作過程28Shell腳本應用示例次完整備份并記錄到臨時文件/tmp/dbinfo.txt
中將/tmp/dbinfo.txt
文件、/var/lib/mysql
目錄進行壓縮歸檔,示例2:[root@每lo隔ca3lh天os對t
~]數(shù)#v據i/o庫pt目目/db錄ba做做k.s一h#!/bin/b
as統(tǒng)h
計/var/lib/mysql
目錄占用的空間大小、查看當前的日期,DAY=`date
+%Y%m%d`SIZE=`du備-s份h/到va/ro/lpibt//dmbybsaqkl/`目錄中bbak.secho"D
at備e:份$D后AY的"包>>文/t件mp名/d中bin要fo包.tx含t
當天的日期信息echo"D
at最a
S后iz刪e:除$S臨iz時e"文>>件/t/mtmppp/d/bdibninnfofoo.t..xttxt
cd
/opt/dbbaktar
zcvf
mysqlbak-${DAY}.tar.gz
/var/lib/mysql
/tmp/dbinfo.txtrm
-f
/tmp/dbinfo.txt[root@localhost
~]#
crontab
-e55
23
*/3
*
*
/opt/d
h教員演示操作過程29本章總結Shell環(huán)境概述Shell的作用及常見種類Shell環(huán)境的切換
Bash的常用功能編寫Shell管理腳本(一)Shell變量應用編寫并執(zhí)行Shell腳本用戶自定義變量環(huán)境變量位置變量、預定義變量Shell腳本的概念編寫Shell腳本執(zhí)行Shell腳本Shell腳本應用實例30BENET3.0第二學期課程第七章編寫Shell管理腳本(一)——上機部分實驗案例1:定制root用戶的Shell環(huán)境需求描述使root用戶能通過“crondstart”形式控制相應系統(tǒng)服務的狀態(tài),而無需使用service命令或絕對路徑將root用戶的命令歷史記錄限制為50條添加一個命令別名lh,用于以長格式并使用K、M等容量單位顯示目錄及文件列表信息每次root用戶登陸到時,自動報告當前登錄的用戶數(shù)、打開的進程數(shù)、剩余可用內存、剩余交換空間練習重定向、變量操作、腳本應用等相關知識32實驗案例1:定制root用戶的Shell環(huán)境實現(xiàn)思路修改“/root/.bash_profile”文件在環(huán)境變量PATH中添加“/etc/rc.d/init.d”目錄的內容設置HISTSIZE變量的值為50將PATH、HISTSIZE變量輸出
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026中鐵西北科學研究院有限公司工程管理招聘評估助理監(jiān)督工程師備考考試試題及答案解析
- 2026年上半年黑龍江事業(yè)單位聯(lián)考省地震局招聘2人考試參考試題及答案解析
- 城市生活垃圾分類收集設施采購及安裝方案投標文件(技術方案)
- 獎品投票活動策劃方案(3篇)
- 城管執(zhí)法車輛管理制度天津(3篇)
- 2026年上海市嘉定區(qū)嘉一實驗高級中學春季教師招聘筆試備考試題及答案解析
- 2026年度青島市李滄區(qū)所屬事業(yè)單位公開招聘工作人員(32名)參考考試題庫及答案解析
- 2025年合肥大學引進海內外高層次人才參考考試題庫及答案解析
- 2026福建福州市城市排水有限公司項目經理招聘3人參考考試題庫及答案解析
- 單位團日活動策劃方案(3篇)
- 【地理】期末重點復習課件-2025-2026學年八年級地理上學期(人教版2024)
- 2026年鄉(xiāng)村治理體系現(xiàn)代化試題含答案
- 通風設備采購與安裝合同范本
- 化工設備清洗安全課件
- 2026元旦主題班會:馬年猜猜樂新春祝福版 教學課件
- T∕ZZB 1815-2020 塑料 汽車配件用再生聚碳酸酯(PC)專用料
- 2025~2026學年吉林省吉林市一中高一10月月考語文試卷
- 天津市南開中學2025-2026學年高一上數(shù)學期末調研模擬試題含解析
- 麻辣燙創(chuàng)業(yè)商業(yè)計劃書范文
- 東呈集團內部控制中存在的問題及對策研究
- 高科技產業(yè)園區(qū)運營管理手冊
評論
0/150
提交評論