網(wǎng)站開發(fā)教程Shell編程一_第1頁
網(wǎng)站開發(fā)教程Shell編程一_第2頁
網(wǎng)站開發(fā)教程Shell編程一_第3頁
網(wǎng)站開發(fā)教程Shell編程一_第4頁
網(wǎng)站開發(fā)教程Shell編程一_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

SHELL編程-1單元目標(biāo)1.shell的作用和歷史2.shell的常用功能3.shell變量種類3.shell腳本的運行4.編寫簡單的shell腳本Shell的作用及常見種類Shell計算機用戶應(yīng)用程序Linux內(nèi)核輸入輸入控制控制系統(tǒng)硬件輸出輸出Shell的作用--命令解釋器,“翻譯官”Bash的常用功能Tab鍵自動補齊命令歷史命令別名標(biāo)準(zhǔn)輸入輸出重定向操作管道操作Bash的命令歷史命令歷史保存用戶曾經(jīng)執(zhí)行過的命令操作存放位置:~/.bash_history文件查看歷史命令使用↑、↓按鍵逐條翻看,允許編輯并重復(fù)執(zhí)行執(zhí)行:history清除歷史命令執(zhí)行:history-c[root@localhostroot]#history……556useraddjerry557passwdjerry558crontab-e-ujerry559crontab-l-ujerryBash的命令歷史調(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=200Bash的命令別名命令別名為使用頻率較高的復(fù)雜命令行設(shè)置簡短的調(diào)用名稱存放位置:~/.bashrc查看命令別名格式:alias[別名]設(shè)置命令別名執(zhí)行:alias別名='實際執(zhí)行的命令'取消已設(shè)置的命令別名

格式:unalias

別名[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'Bash的標(biāo)準(zhǔn)輸入輸出交互式硬件設(shè)備標(biāo)準(zhǔn)輸入:從該設(shè)備接收用戶輸入的數(shù)據(jù)標(biāo)準(zhǔn)輸出:通過該設(shè)備向用戶輸出數(shù)據(jù)標(biāo)準(zhǔn)錯誤:通過該設(shè)備報告執(zhí)行出錯信息類型設(shè)備文件文件描述編號默認(rèn)設(shè)備標(biāo)準(zhǔn)輸入/dev/stdin0鍵盤標(biāo)準(zhǔn)輸出/dev/stdout1顯示器標(biāo)準(zhǔn)錯誤輸出/dev/stderr2顯示器Bash的重定向操作改變標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)錯誤的方向類型操作符用途重定向標(biāo)準(zhǔn)輸入<將命令中接收輸入的途徑由默認(rèn)的鍵盤更改為指定的文件重定向標(biāo)準(zhǔn)輸出>將命令的執(zhí)行結(jié)果輸出到指定的文件中,而不是直接顯示在屏幕上>>將命令執(zhí)行的結(jié)果追加輸出到指定文件重定向標(biāo)準(zhǔn)錯誤2>清空指定文件的內(nèi)容,并將標(biāo)準(zhǔn)錯誤信息保存到該文件中2>>將標(biāo)準(zhǔn)錯誤信息追加輸出到指定的文件中重定向標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤&>將標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)錯誤的內(nèi)容全部保存到指定的文件中,而不是直接顯示在屏幕上Bash的管道操作管道操作符號“|”連接左右兩個命令,將左側(cè)的命令輸出的結(jié)果,作為右側(cè)命令的輸入(處理對象)格式:cmd1|cmd2[...|cmdn][root@localhost~]#free-m|head-2totalusedfreesharedbufferscachedMem:503339163087199[root@localhost~]#free-m|grep"Mem"|awk'{print$2,$4}'503163awk,以空格或制表位為分隔,輸出指定第n列數(shù)據(jù)Shell變量的應(yīng)用Shell變量為靈活管理Linux系統(tǒng)提供特定參數(shù),有兩層意思:1.變量名:使用固定的名稱,由系統(tǒng)預(yù)設(shè)或用戶定義2.變量值:能夠根據(jù)用戶設(shè)置、系統(tǒng)環(huán)境變化而變化Shell變量的種類用戶自定義變量:由用戶自己定義、修改和使用環(huán)境變量:由系統(tǒng)維護(hù),用于設(shè)置用戶的Shell工作環(huán)境,只有極少數(shù)的變量用戶可以修改預(yù)定義變量:Bash預(yù)定義的特殊變量,不能直接修改位置變量:通過命令行給程序傳遞執(zhí)行參數(shù)變量的賦值與引用定義新的變量變量名要以英文字母或下劃線開頭,區(qū)分大小寫格式:變量名=變量值查看變量的值格式:echo$變量名[root@localhost~]#DAY=Sunday[root@localhost~]#echo$DAYSunday通過$符號引用指定名稱的變量值變量的賦值與引用從鍵盤輸入內(nèi)容為變量賦值格式:read[-p"信息"]變量名結(jié)合不同的引號為變量賦值雙引號“”:允許通過$符號引用其他變量值單引號‘’

:禁止引用其他變量值,$視為普通字符反撇號``:將命令執(zhí)行的結(jié)果輸出給變量變量的賦值與引用設(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$FILESVR數(shù)值變量的運算計算整數(shù)表達(dá)式的運算結(jié)果格式:expr變量1運算符變量2...[運算符變量n]expr的常用運算符加法運算:+減法運算:-乘法運算:\*除法運算:/求模(取余)運算:%環(huán)境變量1.環(huán)境變量配置文件全局配置文件:/etc/profile用戶配置文件:~/.bash_profile2.查看環(huán)境變量set命令可以查看所有的Shell變量,其中包括環(huán)境變量用set查看環(huán)境變量[root@localhostroot]#setSHELL=/bin/bashTERM=xtermUID=0USER=rootconsoletype=pty環(huán)境變量常見的環(huán)境變量:$USER、$LOGNAME$UID、$SHELL、$HOME$PWD、$PATH$PS1、$PS2查看環(huán)境變量[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[root@localhost~]#./exam01onetwothreefourfivesix位置變量表示為$n,n為1~9之間的數(shù)字$1,第1個位置參數(shù)$2,第2個位置參數(shù)$6,第6個位置參數(shù)預(yù)定義變量表示形式如下$#:命令行中位置參數(shù)的個數(shù)$*:所有位置參數(shù)的內(nèi)容$?:上一條命令執(zhí)行后返回的狀態(tài),當(dāng)返回狀態(tài)值為0時表示執(zhí)行正常,非0值表示執(zhí)行異?;虺鲥e$$:當(dāng)前所在進(jìn)程的進(jìn)程號$!:后臺運行的最后一個進(jìn)程號$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號執(zhí)行一條錯誤命令返回非0值,表示上一條命令異常返回0值,表示上一條命令正常Shell腳本的概念Shell腳本1.用途:完成特定的、較復(fù)雜的系統(tǒng)管理任務(wù)2.格式:集中保存多條Linux命令,普通文本文件3.執(zhí)行方式:按照預(yù)設(shè)的順序依次解釋執(zhí)行編寫可執(zhí)行的Shell腳本建立包含執(zhí)行語句的腳本文件#腳本文件中包括的內(nèi)容運行環(huán)境設(shè)置:#!/bin/bash注釋信息:以#開始的說明性文字可執(zhí)行的Linux命令行為腳本文件添加可執(zhí)行權(quán)限給shell腳本增加執(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.sh

運行Shell腳本程序1.直接執(zhí)行具有“x”權(quán)限的腳本文件例如:./repboot.sh2.使用指定的解釋器程序執(zhí)行腳本內(nèi)容例如:bashrepboot.sh、shrepboot.sh3.通過source命令(或.)讀取腳本內(nèi)容執(zhí)行

例如:souce

repboot.sh

或.hello.sh

Shell腳本應(yīng)用示例示例1:每周五17:30清理FTP服務(wù)器的公共共享目錄檢查/var/ftp/pub/目錄,將其中所有子目錄及文件的詳細(xì)列表、當(dāng)時的時間信息追加保存到/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.shShell腳本應(yīng)用示例示例2:每隔3天對數(shù)據(jù)庫目錄做一次完整備份統(tǒng)計/var/lib/mysql目錄占用的空間大小、查看當(dāng)前的日期,并記錄到臨時文件/tmp/dbinfo.txt中將/tmp/dbinfo.txt文件、/var/lib/mysql目錄進(jìn)行壓縮歸檔,備份到/opt/dbbak/目錄中備份后的包文件名中要包含當(dāng)天的日期信息最后刪除臨時文件/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

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論