Linux系統(tǒng)chap07 v1benet3 0第二學期課程_第1頁
Linux系統(tǒng)chap07 v1benet3 0第二學期課程_第2頁
Linux系統(tǒng)chap07 v1benet3 0第二學期課程_第3頁
Linux系統(tǒng)chap07 v1benet3 0第二學期課程_第4頁
Linux系統(tǒng)chap07 v1benet3 0第二學期課程_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

'{print

$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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論