Linux+Shell編程基礎(chǔ)-課件_第1頁(yè)
Linux+Shell編程基礎(chǔ)-課件_第2頁(yè)
Linux+Shell編程基礎(chǔ)-課件_第3頁(yè)
Linux+Shell編程基礎(chǔ)-課件_第4頁(yè)
Linux+Shell編程基礎(chǔ)-課件_第5頁(yè)
已閱讀5頁(yè),還剩107頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Linuxshell編程基礎(chǔ)Linuxshell編程基礎(chǔ)1AdvancedBash-ScriptingGuide

<<高級(jí)Bash腳本編程指南>>

LINUX與UNIXSHELL編程指南

--CUAdvancedBash-ScriptingGuide

2內(nèi)容Linux基本命令Shell的語(yǔ)法結(jié)構(gòu)Linuxshell基本介紹內(nèi)容Linux基本命令Shell的語(yǔ)法結(jié)構(gòu)Linuxshe3內(nèi)容Linux基本命令Shell的語(yǔ)法結(jié)構(gòu)Linuxshell基本介紹內(nèi)容Linux基本命令Shell的語(yǔ)法結(jié)構(gòu)Linuxshe4Shell的位置linux系統(tǒng)組成硬件系統(tǒng)linux內(nèi)核kernelshell程序應(yīng)用程序Shell的位置linux系統(tǒng)組成硬件系統(tǒng)linux內(nèi)核ke5Shell的類(lèi)別Shell類(lèi)型主要特點(diǎn)簡(jiǎn)稱(chēng)命令提示符BourneShell最老、使用最廣泛,每個(gè)UNIX都提供,是三種Shell程序的基礎(chǔ)。BShellsh$KornShell是對(duì)BShell的擴(kuò)充,兼容BShell。KShellksh$C-Shell更接近于C語(yǔ)言,提供比BShell更強(qiáng)大的功能,是三種Shell程序中功能最強(qiáng)大的。CShellcsh%Bash:Bourne-AgainShell

6Shell的發(fā)展與分類(lèi)BshKshBashCshBsh在20世紀(jì)70年代中期誕生于新澤西的AT&T貝爾實(shí)驗(yàn)室,具有較強(qiáng)的腳本編程功能Csh在20世紀(jì)80年代早期誕生于加利福尼亞大學(xué),使用C語(yǔ)言的語(yǔ)法,用戶(hù)命令交互更加方便Ksh結(jié)合了Bsh和Csh兩者的功能優(yōu)勢(shì),兼有Bsh的語(yǔ)法和Csh的交互特性Bash是Bsh的升級(jí)替代品,吸收了Ksh中的諸多優(yōu)秀特性,Bash是開(kāi)源軟件Shell的發(fā)展與分類(lèi)BshKshBashCshBsh在27內(nèi)容Linux基本命令Shell的語(yǔ)法結(jié)構(gòu)Linuxshell基本介紹內(nèi)容Linux基本命令Shell的語(yǔ)法結(jié)構(gòu)Linuxshe8

shell基本命令$clear清除屏幕命令shell基本命令$clear清除屏幕命令9shell基本命令$man<command>系統(tǒng)幫助shell基本命令$man<command>系統(tǒng)幫10shell基本命令echo:回顯格式:echo[OPTION]...[STRING]...

echo命令[oracle@src~]$echohelloworld!helloworld![oracle@src~]$a="mynameisleeecho"[oracle@src~]$echo$amynameisleeecho[oracle@src~]$echo$ORACLE_SIDDBTESTshell基本命令echo:回顯echo命令[orac11shell基本命令pwd:顯示當(dāng)前目錄格式:pwd[OPTION]pwd命令[oracle@srcftp]$pwd/home/oracle/ftp[oracle@srcftp]$cd/etc[oracle@srcetc]$pwd/etc[oracle@srcetc]$

shell基本命令pwd:顯示當(dāng)前目錄pwd命令[or12shell基本命令cd:改變目錄格式:cd[directoryname]...

cd命令[oracle@src~]$pwd/home/oracle[oracle@src~]$cd..[oracle@srchome]$pwd/home[oracle@srchome]$cd/[oracle@src/]$pwd/shell基本命令cd:改變目錄cd命令[oracle13shell基本命令ls:列表目錄內(nèi)容格式:ls[OPTION]...[FILE]...OPTION:-l:顯示文件所有屬性-a:顯示所有文件含隱含文件ls命令shell基本命令ls:列表目錄內(nèi)容ls命令14shell基本命令cat:連接文件并顯示文件內(nèi)容格式:cat[OPTION][FILE]...cat命令[oracle@src~]$catmytest.txtthisistest!shell基本命令cat:連接文件并顯示文件內(nèi)容cat15shell基本命令wc:打印一個(gè)文件的字節(jié)數(shù),字?jǐn)?shù)和行數(shù)格式:wc[OPTION]...[FILE]...OPTION:-l:文件包含的行數(shù)-w:文件包含的單詞數(shù)-c:文件包含的字符數(shù)wc命令shell基本命令wc:打印一個(gè)文件的字節(jié)數(shù),字?jǐn)?shù)和行數(shù)16shell基本命令head:顯示文件開(kāi)始的部分格式:head[OPTION]...[FILE]...OPTION:-n:顯示的行數(shù)head命令

默認(rèn)顯示前10行shell基本命令head:顯示文件開(kāi)始的部分head17shell基本命令tail:顯示文件后面的部分格式:tail[OPTION]...[FILE]...OPTION:-n:顯示的行數(shù)tail命令

默認(rèn)顯示后10行shell基本命令tail:顯示文件后面的部分tail命18shell基本命令mkdir:創(chuàng)建文件目錄格式:mkdir[OPTION]DIRECTORY...mkdir命令[oracle@srcleeecho]$pwd/home/oracle/leeecho[oracle@srcleeecho]$mkdirtest[oracle@srcleeecho]$lstestshell基本命令mkdir:創(chuàng)建文件目錄mkdir命令19shell基本命令rmdir:刪除文件目錄格式:rmdir[OPTION]DIRECTORY...rmdir命令

文件夾必須為空才可以使用rmdir刪除shell基本命令rmdir:刪除文件目錄rmdir命令20shell基本命令rm:刪除文件格式:rmdir[OPTION]DIRECTORY...OPTION:-r:刪除文件夾以及所包含的文件rm命令

rm是危險(xiǎn)的,謹(jǐn)慎使用!shell基本命令rm:刪除文件rm命令rm是危險(xiǎn)的,21shell基本命令date:顯示或設(shè)置日期格式:date[OPTION]...[+FORMAT]date命令

取昨天的時(shí)間echo`date+%Y%m%d-d'yesterday'`取三天前的時(shí)間echo`date+%Y%m%d-d‘3daysago'`echo`date+%Y%m%d-d‘-3days'`取明天的時(shí)間echo`date+%Y%m%d-d'tomorrow'`echo`date+%Y%m%d-d‘+1days'`shell基本命令date:顯示或設(shè)置日期date命令22shell基本命令find:查找文件格式:find[path...][expression]find命令find/home/oracle/-name"*.txt"-print

shell基本命令find:查找文件find命令fin23shell基本命令xargs:執(zhí)行命令格式:xargs[expression]xargs命令find/home/oracle/-name"*.txt"-print

|xargscat解決命令參數(shù)過(guò)多的問(wèn)題shell基本命令xargs:執(zhí)行命令xargs命令f24shell基本命令grep:搜索符合要求的內(nèi)容格式:grep[options]PATTERN[FILE...]OPTION:-v:找出不匹配的行-c:統(tǒng)計(jì)匹配行數(shù)-n:顯示匹配行及其行號(hào)grep命令shell基本命令grep:搜索符合要求的內(nèi)容grep25命令顯示grep‘[A-Z]’listlist中包含一個(gè)大寫(xiě)字母的行g(shù)rep‘[0-9]’datadata中包含數(shù)據(jù)的行g(shù)rep‘[A-Z]…[0-9]’listlist中包含大寫(xiě)字母開(kāi)始,數(shù)據(jù)結(jié)尾的5個(gè)字符組合的行g(shù)rep‘\.pic$’listlist中以.pic結(jié)尾的行命令顯示grep‘[A-Z]’listlist中包含26shell基本命令crontab:執(zhí)行作業(yè)格式:crontab[-uuser][-l|-r|-e]OPTION:-l:顯示cron文件-e:創(chuàng)建、編輯cron文件-r:刪除cron文件crontab命令Crontab文件格式:min hour date monthdaycommand0-59 0-23 1-31 1-120-6shell基本命令crontab:執(zhí)行作業(yè)cronta27shell基本命令把兩個(gè)命令連接起來(lái),使前面命令的輸出是后面一個(gè)命令的輸入,這就是管道。

管道(|)顯示oracle的后臺(tái)進(jìn)程

ps-ef|grep$ORACLE_SID實(shí)際例gunzip-cE:\20060621\20060621\*.gz|grep-i^[J]...[SMS]>E:\20060621\test7.txtgunzip-cE:\20060621\20060621\*.gz|grep-iJ...SMS*>E:\20060621\test7.txt子shell基本命令把兩個(gè)命令連接起來(lái),使前面命令的輸出是28shell基本命令

輸入輸出重定向echothisistest1>>/home/oracle/leeecho/text1.txtechothisistest3>/home/oracle/leeecho/text1.txtgrep[A-C]<符號(hào)重定向功能>輸出重定向>>追加輸出|管道操作<輸入重定向shell基本命令輸入輸出重定向echothis29shell基本命令

引用單引號(hào)忽略所有的特殊字符,單引號(hào)自己除外,變量不解釋

echo'<>|;()[]{}>>\\"`"$ORACLE_SID"‘雙引號(hào)

echo"<>|;()[]{}>>\\"$ORACLE_SID""

單引號(hào)(‘)忽略所有除自己之外的特殊字符雙引號(hào)(“)不忽略一下三種特殊字符美元符號(hào)$

反引號(hào)`

反斜杠\反斜杠(\)忽略后面跟著的一個(gè)特殊字符shell基本命令引用單引號(hào)忽略所有的特殊字符,單引號(hào)30shell基本命令有趣的例子:[oracle@srcleeecho]$x=*[oracle@srcleeecho]$echo$xtest1.txttest2.txt[oracle@srcleeecho]$echo"$x"*[oracle@srcleeecho]$echo'$x'$x[oracle@srcleeecho]$echo"\$x"$xshell基本命令有趣的例子:31shell基本命令

命令替換echoYesterdayis`date+%Y%m%d-d'yesterday'`!echoYesterdayis$(date+%Y%m%d-d'yesterday')!

反引號(hào)(`)$(…)結(jié)構(gòu)shell基本命令命令替換echoYesterday32Bash的命令行編輯功能操作鍵功能左右方向鍵使用左右方向鍵可以使光標(biāo)在當(dāng)前命令行中的已有字符間進(jìn)行任意的移動(dòng)退格鍵刪除命令行中光標(biāo)左邊的字符Del刪除當(dāng)前光標(biāo)處的字符Home將光標(biāo)快速移動(dòng)到命令行的行首End將光標(biāo)快速移動(dòng)到命令行的行尾Ctrl+u刪除當(dāng)前光標(biāo)到行首的內(nèi)容Ctrl+k刪除當(dāng)前光標(biāo)到行尾的內(nèi)容Bash的命令行編輯功能操作鍵功能左右方向鍵使用左右方向鍵33Bash的命令行補(bǔ)全功能命令補(bǔ)全功能使用Tab鍵可在命令查找路徑中查找匹配的命令,并進(jìn)行命令拼寫(xiě)的補(bǔ)全文件補(bǔ)全功能使用Tab鍵可對(duì)文件和目錄名進(jìn)行補(bǔ)全Bash的命令行補(bǔ)全功能命令補(bǔ)全功能34Bash的命令歷史與命令重復(fù)命令歷史功能的使用使用上下方向鍵瀏覽已輸入命令(歷史命令)歷史命令的查看$history用戶(hù)命令歷史保存文件~/.bash_history命令歷史的清除$history-c

Bash的命令歷史與命令重復(fù)命令歷史功能的使用35Bash的命令別名功能命令別名的顯示$alias命令別名的定義$aliasgrep='grep-i'命令別名的取消$aliasgrep$unalias-a系統(tǒng)別名定義文件RHEL4系統(tǒng)中為用戶(hù)預(yù)定義的命令別名保存在“/etc/pro”目錄的配置文件中Bash的命令別名功能命令別名的顯示36管道與重定向標(biāo)準(zhǔn)輸入輸出重定向操作管道操作管道與重定向標(biāo)準(zhǔn)輸入輸出37標(biāo)準(zhǔn)輸入輸出輸入輸出文件文件編號(hào)默認(rèn)設(shè)備標(biāo)準(zhǔn)輸入0鍵盤(pán)標(biāo)準(zhǔn)輸出1顯示器標(biāo)準(zhǔn)錯(cuò)誤輸出2顯示器標(biāo)準(zhǔn)輸入輸出輸入輸出文件文件編號(hào)默認(rèn)設(shè)備標(biāo)準(zhǔn)輸入0鍵盤(pán)標(biāo)準(zhǔn)38重定向操作類(lèi)別操作符說(shuō)明輸入重定向<輸入重定向是將命令中接收輸入的途徑由默認(rèn)的鍵盤(pán)更改(重定向)為指定的文件輸出重定向>將命令的執(zhí)行結(jié)果重定向輸出到指定的文件中,命令進(jìn)行輸出重定向后執(zhí)行結(jié)果將不顯示在屏幕上>>將命令執(zhí)行的結(jié)果重定向并追加到指定文件的末尾保存錯(cuò)誤重定向2>清空指定文件的內(nèi)容,并保存標(biāo)準(zhǔn)錯(cuò)誤輸出的內(nèi)容到指定文件中2>>向指定文件中追加命令的錯(cuò)誤輸出,而不覆蓋文件中的原有內(nèi)容輸出與錯(cuò)誤組合重定向&>將標(biāo)準(zhǔn)輸出與錯(cuò)誤輸出的內(nèi)容全部重定向到指定文件重定向操作類(lèi)別操作符說(shuō)明輸入重定向<輸入重定向是將命令中接收39內(nèi)容Linux基本命令Shell的語(yǔ)法結(jié)構(gòu)Linuxshell基本介紹內(nèi)容Linux基本命令Shell的語(yǔ)法結(jié)構(gòu)Linuxshe40知識(shí)準(zhǔn)備命令行編輯功能命令和文件名補(bǔ)全功能命令歷史功能命令別名功能提供作業(yè)控制功能具有將命令序列定義為功能鍵的功能靈活的Shell腳本編程知識(shí)準(zhǔn)備命令行編輯功能41Shell變量的分類(lèi)環(huán)境變量預(yù)定義變量位置變量用戶(hù)自定義變量(本地變量)Shell變量的分類(lèi)環(huán)境變量42環(huán)境變量使用set命令查看環(huán)境變量set常用環(huán)境變量USERUIDSHELLHOMEPWDPATHPS1PS2環(huán)境變量配置文件/etc/bashrc/etc/profile

~/.bash_profile~/.bashrc

環(huán)境變量使用set命令查看環(huán)境變量43位置變量$./exam01onetwotreefourfivesix$0表示命令名稱(chēng)$0屬于預(yù)定義變量$0不屬于位置變量$1表示第1個(gè)命令參數(shù)$2表示第2個(gè)命令參數(shù)$3表示第3個(gè)命令參數(shù)$n表示第n個(gè)命令參數(shù)位置變量$./exam0144預(yù)定義變量變量名含義$#表示位置參數(shù)的數(shù)量$*表示所有位置參數(shù)的內(nèi)容$?表示命令執(zhí)行后返回的狀態(tài),用于檢查上一個(gè)命令的執(zhí)行是否正確;在Linux中,命令退出狀態(tài)為0表示命令正確執(zhí)行,任何非0值表示命令執(zhí)行錯(cuò)誤$$表示當(dāng)前進(jìn)程的進(jìn)程號(hào)$!表示后臺(tái)運(yùn)行的最后一個(gè)進(jìn)程號(hào)$0表示當(dāng)前執(zhí)行的進(jìn)程名預(yù)定義變量變量名含義$#表示位置參數(shù)的數(shù)量$*表示所有45用戶(hù)自定義變量自定義變量的設(shè)置$DAY=sunday自定義變量的查看與引用$echo$DAY

自定義變量的輸出$exportDAY自定義變量的清除$unsetDAY

用戶(hù)自定義變量自定義變量的設(shè)置46shell語(yǔ)法結(jié)構(gòu)

變量Shell的變量沒(méi)有類(lèi)型之說(shuō),只有在比較的時(shí)候有字符串和整數(shù)之說(shuō)。

變量賦值

a=123b=jklc=$(ls)使用變量

echo$aleta=a+789(linux做運(yùn)算的方法)

shell語(yǔ)法結(jié)構(gòu)變量Shell的變量沒(méi)有類(lèi)型之說(shuō),只47shell語(yǔ)法結(jié)構(gòu)

比較整數(shù)的比較

-eq:等于

-ne:不等于

-gt:大于

-ge:大于等于

-lt:小于

-le:小于等于字符串比較

=等于則為真

!=不相等則為真

-z空串

-n非空串0為真,1為假shell語(yǔ)法結(jié)構(gòu)比較整數(shù)的比較字符串比較0為真,148shell語(yǔ)法結(jié)構(gòu)[oracle@src~]$["23"-lt"89"][oracle@src~]$echo$?0[oracle@src~]$["jkljl"="jklljl"][oracle@src~]$echo$?1[oracle@src~]$[-z"jkl"][oracle@src~]$echo$?1[oracle@src~]$[-z""][oracle@src~]$echo$?0[oracle@src~]$shell語(yǔ)法結(jié)構(gòu)[oracle@src~]$["249shell語(yǔ)法結(jié)構(gòu)||和&&expr1||expr2expr1為假執(zhí)行expr2expr1&&expr2expr1為真執(zhí)行expr2

[oracle@src~]$str=cuit[oracle@src~]$[-n"$str"]&&echo"Thestringisnull"Thestringisnull[oracle@src~]$[-n"$str"]&&echo"Thestringisnotnull"Thestringisnotnull[oracle@src~]$str=""[oracle@src~]$[-z"$str"]||echo"Thestringisnull"[[oracle@src~]$[-n"$str"]||echo"Thestringisnull"Thestringisnullshell語(yǔ)法結(jié)構(gòu)||和&&expr1||ex50shell語(yǔ)法結(jié)構(gòu)if語(yǔ)句#!/bin/sh#thisisiftest!a=5b=7if["$a"-lt"$b"]thenecho"$a"\<"$b"elseecho"$a"\>"$b"fiif[…]then….else….fishell語(yǔ)法結(jié)構(gòu)if語(yǔ)句#!/bin/shif[51shell語(yǔ)法結(jié)構(gòu)while語(yǔ)句#/bin/sha=0while["$a"-lt"10"]doecho"$a"leta=$a+1donewhile[…]do….….doneshell語(yǔ)法結(jié)構(gòu)while語(yǔ)句#/bin/shwhi52shell語(yǔ)法結(jié)構(gòu)for語(yǔ)句#/bin/shforiin12345678910doecho-n"$i"doneforiin`seq10`doecho-n"$i"donefor

[…]do….….doneshell語(yǔ)法結(jié)構(gòu)for語(yǔ)句#/bin/shfor[53shell語(yǔ)法結(jié)構(gòu)ftp命令ftp命令解釋?zhuān)炕騢elp[command]命令幫助binary設(shè)定以二進(jìn)制方式傳送文件ascii設(shè)定以ASCII方式傳送文件(缺省值)cd[directory]改變遠(yuǎn)程目錄lcd[directory]改變本地目錄putfile1[file2]將本地file1文件拷貝到遠(yuǎn)程file2shell語(yǔ)法結(jié)構(gòu)ftp命令ftp命令解釋?zhuān)炕騢elp54shell語(yǔ)法結(jié)構(gòu)ftp命令ftp命令解釋getfile1[fine2]將遠(yuǎn)程file1文件拷貝到本地file2mputfiles將本地多個(gè)文件files拷貝到遠(yuǎn)程mgetfiles將遠(yuǎn)程多個(gè)文件files拷貝到本地close關(guān)閉遠(yuǎn)程連接quit或bye退出ftpshell語(yǔ)法結(jié)構(gòu)ftp命令ftp命令解釋getfil55shell語(yǔ)法結(jié)構(gòu)

調(diào)用sql語(yǔ)句sqlplus-ssrc/src@dbtest<<!….….….!shell語(yǔ)法結(jié)構(gòu)調(diào)用sql語(yǔ)句sqlplus-ss56Linuxshell編程基礎(chǔ)Linuxshell編程基礎(chǔ)57AdvancedBash-ScriptingGuide

<<高級(jí)Bash腳本編程指南>>

LINUX與UNIXSHELL編程指南

--CUAdvancedBash-ScriptingGuide

58內(nèi)容Linux基本命令Shell的語(yǔ)法結(jié)構(gòu)Linuxshell基本介紹內(nèi)容Linux基本命令Shell的語(yǔ)法結(jié)構(gòu)Linuxshe59內(nèi)容Linux基本命令Shell的語(yǔ)法結(jié)構(gòu)Linuxshell基本介紹內(nèi)容Linux基本命令Shell的語(yǔ)法結(jié)構(gòu)Linuxshe60Shell的位置linux系統(tǒng)組成硬件系統(tǒng)linux內(nèi)核kernelshell程序應(yīng)用程序Shell的位置linux系統(tǒng)組成硬件系統(tǒng)linux內(nèi)核ke61Shell的類(lèi)別Shell類(lèi)型主要特點(diǎn)簡(jiǎn)稱(chēng)命令提示符BourneShell最老、使用最廣泛,每個(gè)UNIX都提供,是三種Shell程序的基礎(chǔ)。BShellsh$KornShell是對(duì)BShell的擴(kuò)充,兼容BShell。KShellksh$C-Shell更接近于C語(yǔ)言,提供比BShell更強(qiáng)大的功能,是三種Shell程序中功能最強(qiáng)大的。CShellcsh%Bash:Bourne-AgainShell

62Shell的發(fā)展與分類(lèi)BshKshBashCshBsh在20世紀(jì)70年代中期誕生于新澤西的AT&T貝爾實(shí)驗(yàn)室,具有較強(qiáng)的腳本編程功能Csh在20世紀(jì)80年代早期誕生于加利福尼亞大學(xué),使用C語(yǔ)言的語(yǔ)法,用戶(hù)命令交互更加方便Ksh結(jié)合了Bsh和Csh兩者的功能優(yōu)勢(shì),兼有Bsh的語(yǔ)法和Csh的交互特性Bash是Bsh的升級(jí)替代品,吸收了Ksh中的諸多優(yōu)秀特性,Bash是開(kāi)源軟件Shell的發(fā)展與分類(lèi)BshKshBashCshBsh在263內(nèi)容Linux基本命令Shell的語(yǔ)法結(jié)構(gòu)Linuxshell基本介紹內(nèi)容Linux基本命令Shell的語(yǔ)法結(jié)構(gòu)Linuxshe64

shell基本命令$clear清除屏幕命令shell基本命令$clear清除屏幕命令65shell基本命令$man<command>系統(tǒng)幫助shell基本命令$man<command>系統(tǒng)幫66shell基本命令echo:回顯格式:echo[OPTION]...[STRING]...

echo命令[oracle@src~]$echohelloworld!helloworld![oracle@src~]$a="mynameisleeecho"[oracle@src~]$echo$amynameisleeecho[oracle@src~]$echo$ORACLE_SIDDBTESTshell基本命令echo:回顯echo命令[orac67shell基本命令pwd:顯示當(dāng)前目錄格式:pwd[OPTION]pwd命令[oracle@srcftp]$pwd/home/oracle/ftp[oracle@srcftp]$cd/etc[oracle@srcetc]$pwd/etc[oracle@srcetc]$

shell基本命令pwd:顯示當(dāng)前目錄pwd命令[or68shell基本命令cd:改變目錄格式:cd[directoryname]...

cd命令[oracle@src~]$pwd/home/oracle[oracle@src~]$cd..[oracle@srchome]$pwd/home[oracle@srchome]$cd/[oracle@src/]$pwd/shell基本命令cd:改變目錄cd命令[oracle69shell基本命令ls:列表目錄內(nèi)容格式:ls[OPTION]...[FILE]...OPTION:-l:顯示文件所有屬性-a:顯示所有文件含隱含文件ls命令shell基本命令ls:列表目錄內(nèi)容ls命令70shell基本命令cat:連接文件并顯示文件內(nèi)容格式:cat[OPTION][FILE]...cat命令[oracle@src~]$catmytest.txtthisistest!shell基本命令cat:連接文件并顯示文件內(nèi)容cat71shell基本命令wc:打印一個(gè)文件的字節(jié)數(shù),字?jǐn)?shù)和行數(shù)格式:wc[OPTION]...[FILE]...OPTION:-l:文件包含的行數(shù)-w:文件包含的單詞數(shù)-c:文件包含的字符數(shù)wc命令shell基本命令wc:打印一個(gè)文件的字節(jié)數(shù),字?jǐn)?shù)和行數(shù)72shell基本命令head:顯示文件開(kāi)始的部分格式:head[OPTION]...[FILE]...OPTION:-n:顯示的行數(shù)head命令

默認(rèn)顯示前10行shell基本命令head:顯示文件開(kāi)始的部分head73shell基本命令tail:顯示文件后面的部分格式:tail[OPTION]...[FILE]...OPTION:-n:顯示的行數(shù)tail命令

默認(rèn)顯示后10行shell基本命令tail:顯示文件后面的部分tail命74shell基本命令mkdir:創(chuàng)建文件目錄格式:mkdir[OPTION]DIRECTORY...mkdir命令[oracle@srcleeecho]$pwd/home/oracle/leeecho[oracle@srcleeecho]$mkdirtest[oracle@srcleeecho]$lstestshell基本命令mkdir:創(chuàng)建文件目錄mkdir命令75shell基本命令rmdir:刪除文件目錄格式:rmdir[OPTION]DIRECTORY...rmdir命令

文件夾必須為空才可以使用rmdir刪除shell基本命令rmdir:刪除文件目錄rmdir命令76shell基本命令rm:刪除文件格式:rmdir[OPTION]DIRECTORY...OPTION:-r:刪除文件夾以及所包含的文件rm命令

rm是危險(xiǎn)的,謹(jǐn)慎使用!shell基本命令rm:刪除文件rm命令rm是危險(xiǎn)的,77shell基本命令date:顯示或設(shè)置日期格式:date[OPTION]...[+FORMAT]date命令

取昨天的時(shí)間echo`date+%Y%m%d-d'yesterday'`取三天前的時(shí)間echo`date+%Y%m%d-d‘3daysago'`echo`date+%Y%m%d-d‘-3days'`取明天的時(shí)間echo`date+%Y%m%d-d'tomorrow'`echo`date+%Y%m%d-d‘+1days'`shell基本命令date:顯示或設(shè)置日期date命令78shell基本命令find:查找文件格式:find[path...][expression]find命令find/home/oracle/-name"*.txt"-print

shell基本命令find:查找文件find命令fin79shell基本命令xargs:執(zhí)行命令格式:xargs[expression]xargs命令find/home/oracle/-name"*.txt"-print

|xargscat解決命令參數(shù)過(guò)多的問(wèn)題shell基本命令xargs:執(zhí)行命令xargs命令f80shell基本命令grep:搜索符合要求的內(nèi)容格式:grep[options]PATTERN[FILE...]OPTION:-v:找出不匹配的行-c:統(tǒng)計(jì)匹配行數(shù)-n:顯示匹配行及其行號(hào)grep命令shell基本命令grep:搜索符合要求的內(nèi)容grep81命令顯示grep‘[A-Z]’listlist中包含一個(gè)大寫(xiě)字母的行g(shù)rep‘[0-9]’datadata中包含數(shù)據(jù)的行g(shù)rep‘[A-Z]…[0-9]’listlist中包含大寫(xiě)字母開(kāi)始,數(shù)據(jù)結(jié)尾的5個(gè)字符組合的行g(shù)rep‘\.pic$’listlist中以.pic結(jié)尾的行命令顯示grep‘[A-Z]’listlist中包含82shell基本命令crontab:執(zhí)行作業(yè)格式:crontab[-uuser][-l|-r|-e]OPTION:-l:顯示cron文件-e:創(chuàng)建、編輯cron文件-r:刪除cron文件crontab命令Crontab文件格式:min hour date monthdaycommand0-59 0-23 1-31 1-120-6shell基本命令crontab:執(zhí)行作業(yè)cronta83shell基本命令把兩個(gè)命令連接起來(lái),使前面命令的輸出是后面一個(gè)命令的輸入,這就是管道。

管道(|)顯示oracle的后臺(tái)進(jìn)程

ps-ef|grep$ORACLE_SID實(shí)際例gunzip-cE:\20060621\20060621\*.gz|grep-i^[J]...[SMS]>E:\20060621\test7.txtgunzip-cE:\20060621\20060621\*.gz|grep-iJ...SMS*>E:\20060621\test7.txt子shell基本命令把兩個(gè)命令連接起來(lái),使前面命令的輸出是84shell基本命令

輸入輸出重定向echothisistest1>>/home/oracle/leeecho/text1.txtechothisistest3>/home/oracle/leeecho/text1.txtgrep[A-C]<符號(hào)重定向功能>輸出重定向>>追加輸出|管道操作<輸入重定向shell基本命令輸入輸出重定向echothis85shell基本命令

引用單引號(hào)忽略所有的特殊字符,單引號(hào)自己除外,變量不解釋

echo'<>|;()[]{}>>\\"`"$ORACLE_SID"‘雙引號(hào)

echo"<>|;()[]{}>>\\"$ORACLE_SID""

單引號(hào)(‘)忽略所有除自己之外的特殊字符雙引號(hào)(“)不忽略一下三種特殊字符美元符號(hào)$

反引號(hào)`

反斜杠\反斜杠(\)忽略后面跟著的一個(gè)特殊字符shell基本命令引用單引號(hào)忽略所有的特殊字符,單引號(hào)86shell基本命令有趣的例子:[oracle@srcleeecho]$x=*[oracle@srcleeecho]$echo$xtest1.txttest2.txt[oracle@srcleeecho]$echo"$x"*[oracle@srcleeecho]$echo'$x'$x[oracle@srcleeecho]$echo"\$x"$xshell基本命令有趣的例子:87shell基本命令

命令替換echoYesterdayis`date+%Y%m%d-d'yesterday'`!echoYesterdayis$(date+%Y%m%d-d'yesterday')!

反引號(hào)(`)$(…)結(jié)構(gòu)shell基本命令命令替換echoYesterday88Bash的命令行編輯功能操作鍵功能左右方向鍵使用左右方向鍵可以使光標(biāo)在當(dāng)前命令行中的已有字符間進(jìn)行任意的移動(dòng)退格鍵刪除命令行中光標(biāo)左邊的字符Del刪除當(dāng)前光標(biāo)處的字符Home將光標(biāo)快速移動(dòng)到命令行的行首End將光標(biāo)快速移動(dòng)到命令行的行尾Ctrl+u刪除當(dāng)前光標(biāo)到行首的內(nèi)容Ctrl+k刪除當(dāng)前光標(biāo)到行尾的內(nèi)容Bash的命令行編輯功能操作鍵功能左右方向鍵使用左右方向鍵89Bash的命令行補(bǔ)全功能命令補(bǔ)全功能使用Tab鍵可在命令查找路徑中查找匹配的命令,并進(jìn)行命令拼寫(xiě)的補(bǔ)全文件補(bǔ)全功能使用Tab鍵可對(duì)文件和目錄名進(jìn)行補(bǔ)全Bash的命令行補(bǔ)全功能命令補(bǔ)全功能90Bash的命令歷史與命令重復(fù)命令歷史功能的使用使用上下方向鍵瀏覽已輸入命令(歷史命令)歷史命令的查看$history用戶(hù)命令歷史保存文件~/.bash_history命令歷史的清除$history-c

Bash的命令歷史與命令重復(fù)命令歷史功能的使用91Bash的命令別名功能命令別名的顯示$alias命令別名的定義$aliasgrep='grep-i'命令別名的取消$aliasgrep$unalias-a系統(tǒng)別名定義文件RHEL4系統(tǒng)中為用戶(hù)預(yù)定義的命令別名保存在“/etc/pro”目錄的配置文件中Bash的命令別名功能命令別名的顯示92管道與重定向標(biāo)準(zhǔn)輸入輸出重定向操作管道操作管道與重定向標(biāo)準(zhǔn)輸入輸出93標(biāo)準(zhǔn)輸入輸出輸入輸出文件文件編號(hào)默認(rèn)設(shè)備標(biāo)準(zhǔn)輸入0鍵盤(pán)標(biāo)準(zhǔn)輸出1顯示器標(biāo)準(zhǔn)錯(cuò)誤輸出2顯示器標(biāo)準(zhǔn)輸入輸出輸入輸出文件文件編號(hào)默認(rèn)設(shè)備標(biāo)準(zhǔn)輸入0鍵盤(pán)標(biāo)準(zhǔn)94重定向操作類(lèi)別操作符說(shuō)明輸入重定向<輸入重定向是將命令中接收輸入的途徑由默認(rèn)的鍵盤(pán)更改(重定向)為指定的文件輸出重定向>將命令的執(zhí)行結(jié)果重定向輸出到指定的文件中,命令進(jìn)行輸出重定向后執(zhí)行結(jié)果將不顯示在屏幕上>>將命令執(zhí)行的結(jié)果重定向并追加到指定文件的末尾保存錯(cuò)誤重定向2>清空指定文件的內(nèi)容,并保存標(biāo)準(zhǔn)錯(cuò)誤輸出的內(nèi)容到指定文件中2>>向指定文件中追加命令的錯(cuò)誤輸出,而不覆蓋文件中的原有內(nèi)容輸出與錯(cuò)誤組合重定向&>將標(biāo)準(zhǔn)輸出與錯(cuò)誤輸出的內(nèi)容全部重定向到指定文件重定向操作類(lèi)別操作符說(shuō)明輸入重定向<輸入重定向是將命令中接收95內(nèi)容Linux基本命令Shell的語(yǔ)法結(jié)構(gòu)Linuxshell基本介紹內(nèi)容Linux基本命令Shell的語(yǔ)法結(jié)構(gòu)Linuxshe96知識(shí)準(zhǔn)備命令行編輯功能命令和文件名補(bǔ)全功能命令歷史功能命令別名功能提供作業(yè)控制功能具有將命令序列定義為功能鍵的功能靈活的Shell腳本編程知識(shí)準(zhǔn)備命令行編輯功能97Shell變量的分類(lèi)環(huán)境變量預(yù)定義變量位置變量用戶(hù)自定義變量(本地變量)Shell變量的分類(lèi)環(huán)境變量98環(huán)境變量使用set命令查看環(huán)境變量set常用環(huán)境變量USERUIDSHELLHOMEPWDPATHPS1PS2環(huán)境變量配置文件/etc/bashrc/etc/profile

~/.bash_profile~/.bashrc

環(huán)境變量使用set命令查看環(huán)境變量99位置變量$./exam01onetwotreefourfivesix$0表示命令名稱(chēng)$0屬于預(yù)定義變量$0不屬于位置變量$1表示第1個(gè)命令參數(shù)$2表示第2個(gè)命令參數(shù)$3表示第3個(gè)命令參數(shù)$n表示第n個(gè)命令參數(shù)位置變量$./exam01100預(yù)定義變量變量名含義$#表示位置參數(shù)的數(shù)量$*表示所有位置參數(shù)的內(nèi)容$?表示命令執(zhí)行后返回的狀態(tài),用于檢查上一個(gè)命令的執(zhí)行是否正確;在Linux中,命令退出狀態(tài)為0表示命令正確執(zhí)行,任何非0值表示命令執(zhí)行錯(cuò)誤$$表示當(dāng)前進(jìn)程的進(jìn)程號(hào)$!表示后臺(tái)運(yùn)行的最后一個(gè)進(jìn)程號(hào)$0表示當(dāng)前執(zhí)行的進(jìn)程名預(yù)定義變量變量名含義$#表示位置參數(shù)的數(shù)量$*表示所有101用戶(hù)自定義變量自定義變量的設(shè)置$DAY=sunday自定義變量的查看與引用$echo$DAY

自定義變量的輸出$exportDAY自定義變量的清除$unsetDAY

用戶(hù)自定義變量自定義變量的設(shè)置102shell語(yǔ)法結(jié)構(gòu)

變量Shell的變量沒(méi)有類(lèi)型之說(shuō),只有在比較的時(shí)候有字符串和整數(shù)之說(shuō)。

變量賦值

a=123b=jklc=$(ls)使用變量

echo$aleta=a+789(linux做運(yùn)算的方法)

shell語(yǔ)法結(jié)構(gòu)變量Shell的變量沒(méi)有類(lèi)型之說(shuō),只103shell語(yǔ)法結(jié)構(gòu)

比較整數(shù)的比較

-eq:等于

-ne:不等于

-gt:大于

-ge:大于等于

-lt:小于

-le:小于等于字符串比較

=等于則

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論