




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
運維技術分享之shell篇2016/08/12運維技術分享之shell篇2016/08/121Shell種類
(1)/bin/sh--B-shell
由R.Bourne在Bell實驗室開發(fā),Unix的標準Shell
(2)/bin/csh--C-shell
由BillJoy在加州大學開發(fā),提供歷史機制和別名替換 (3)/bin/bash--BourneAgainShell Linux標準Shell,其兼容B-Shell。Shell的選擇:
Shell一般由管理員在創(chuàng)建用戶時,為用戶指定;其保存在/etc/passwd文件中;或通過usermod命令進行更改。也可在登錄后執(zhí)行相應的命令切換Shell。Shell種類(1)/bin/sh--B-shell2Bash的啟動與終止啟動:Bash啟動時,先運行/etc/profile、/etc/bashrc,再自動運行用戶主目錄下的.bash_profile和.bashrc文件。終止:當用戶執(zhí)行exit、logout或按下ctrl+d時,Bash將運行用戶主目錄下的.bash_logout文件中的命令。Bash的啟動與終止啟動:Bash啟動時,先運行/etc/p3輸入/輸出命令echo--顯示命令echo[option][string]
將string的內(nèi)容按照option指定的方法送到屏幕上進行顯示
-n 輸出后不換行
-e 對字符串中的特殊字符進行翻譯 特殊字符
\a 響鈴
\n 換行
\t 跳格輸入/輸出命令echo--顯示命令4位置參數(shù)位置參數(shù)及引用位置參數(shù)也稱為命令行參數(shù),即:組成命令行的所有元素。在Shell腳本中通過$0、$1...進行引用位置參數(shù)。為位置參數(shù)賦值set參數(shù)值列表位置參數(shù)移動shift[n]將位置參數(shù)(除$0)右移n個位置,默認為1。位置參數(shù)位置參數(shù)及引用5Shell預定義特殊變量變量名含義$?最后一次執(zhí)行命令的返回碼$$當前腳本自己的PID$!腳本進程最近啟動的后臺進程的PID$#命令行參數(shù)的個數(shù)$0腳本文件本身的名字$1,$2…第一、第二個命令行參數(shù)“$*”將所有命令行參數(shù)作為一個整體單詞看待“$@”將命令行參數(shù)作為多個單詞看待Shell預定義特殊變量變量名含義$?最后一次執(zhí)行命令的返回6if結構if 條件/命令
then commandlist [elif條件/命令
then commandlist] else commandlist fi#!/bin/bashecho-nenterfilename:readfnameechoenterwords:readwordsecho$words2>/dev/null>$fnameif[$?–eq0]then echoWritesuccessfullyelse echowriteerrorfiif結構if 條件/命令#!/bin/bash7case結構 casewordin pattern1) command_list;; pattern2) command_list;;
[*) command_list;;] esac
其中:pattern可以用豎線分隔多個模式,模式使用shell的文件名匹配規(guī)則。case結構 casewordin8while循環(huán)
whilecondition do command_list done#!/bin/shcount=3while[$count-gt0]doecho-en"Loginname:" readlogname echo-en"Password:" readpwd[$logname="root"-a$pwd="12345"]&&{ echo"WelcomeHere!!!" count=0 } letcount=count-1sleep5donewhile循環(huán)#!/bin/sh9Until循環(huán)untilcondition
do
CommandList
doneUntil循環(huán)untilcondition
do
Co10for循環(huán)格式1:
forvarinword_list do command_list done
forvar[in$1$2…] do command_list done
從shell的位置變量中取值例#!/bin/bashecho-e"pleaseentervarslike'var1var2...'\n"echoTheyare:readvarforiin$vardoecho"$i"donefor循環(huán)格式1:例11for循環(huán)格式2:
forvarinPath/* do commandList done
遍歷Path目錄中的所有文件及文件夾for循環(huán)格式2:12for循環(huán)格式3:
for((e1;e2;e3))
do
命令列表
done語法同C中的Forfor循環(huán)格式3:
for((e1;e2;e3))
do
13Break、Continue、ExitBreak[n]退出n層循環(huán)continue[n]跳到第n層循環(huán)繼續(xù)exit[n]退出腳本,并設置退出碼Break、Continue、Exit14selectselect一般用于設計菜單。select顯示一組菜單項、顯示一個輸入提示并讀入用戶輸入的菜單編號。selectvarinwordsdo 語句doneselect的提示符由“PS3”決定。select一般和case配合使用selectselect一般用于設計菜單。select顯示一15函數(shù)格式:function_name(){
command_list [returnn]
} 其中return用于帶回函數(shù)的返回碼(0~255)
注意:函數(shù)必須先定義后使用
函數(shù)在當前環(huán)境下運行,和調(diào)用它的腳本共享變量;而且可以通過把變量作為定位參數(shù)來賦值的方式傳遞變量。函數(shù)格式:function_name(){16shell內(nèi)置命令eval—命令分析eval命令字符串功能:首先對“命令字符串”進行shell替換,然后執(zhí)行該命令。例:for((i=1;i<=$#;i++)) do evalecho$i.\$$i doneshell內(nèi)置命令eval—命令分析17內(nèi)置命令declare內(nèi)置命令declare可用來創(chuàng)建變量。declare[選項]
variable=value內(nèi)置命令declare內(nèi)置命令declare可用來創(chuàng)建18shift命令一般用于函數(shù)或者腳本程序參數(shù)處理,特別是參數(shù)多于10以上的時候?qū)⑺袇?shù)變量向下移動一個位置,$2變成$1,$3變成$2,依次遞進,但$0保持不變例如:while[“$1!=‘’”];doecho$1shiftdoneshift命令一般用于函數(shù)或者腳本程序參數(shù)處理,特別是參數(shù)多19trap命令command一般情況下是Linux命令’’表示發(fā)生陷阱時為空指令,不做任何動作‘-’表示發(fā)生陷阱時采用缺省指令trap命令command20常見信號常見信號21Shell內(nèi)置命令總結內(nèi)置命令命令說明echo輸出一行文本到標準輸出設備read從標準輸入設備讀入數(shù)據(jù)printf格式化輸出declare定義或創(chuàng)建變量或數(shù)組let讓未定義的變量參與算術運算expr執(zhí)行表達式shift把所有參數(shù)變量向下移動一個位置eval執(zhí)行命令trap用來定義接收OS信號后而采取的動作exit退出SHELL程序sleep休眠test條件測試Shell內(nèi)置命令總結內(nèi)置命令命令說明echo輸出一行文本到22網(wǎng)絡編程/dev/tcp&/dev/udp:這兩個神奇的目錄為bash編程提供了一種可以進行網(wǎng)絡編程的功能。在bash程序中使用/dev/tcp/ip/port的方式就可以創(chuàng)建一個scoket作為客戶端去連接服務端的ip:port。我們用一個檢查http協(xié)議的80端口是否打開的例子來說明它的使用curl和wget命令#!/bin/bashipaddr=port=80if!exec5<>/dev/tcp/$ipaddr/$portthenexit1fiecho-e"GET/HTTP/1.0\n">&5cat<&5網(wǎng)絡編程/dev/tcp&/dev/udp:這兩個神奇的23腳本調(diào)試sh
–x
腳本名該選項可以使用戶跟蹤腳本的執(zhí)行,此時shell
對腳本中每條命令的處理過程為:先執(zhí)行替換,然后顯示,再執(zhí)行它。shell
顯示腳本中的行時,會在行首添加一個加號“+”。sh–v
腳本名在執(zhí)行腳本之前,按輸入的原樣打印腳本中的各行。sh–n
腳本名對腳本進行語法檢查,但不執(zhí)行腳本。如果存在語法錯誤,shell
會報錯,如果沒有錯誤,則不顯示任何內(nèi)容。腳本調(diào)試sh–x腳本名24
謝謝觀賞謝謝觀賞25運維技術分享之shell篇2016/08/12運維技術分享之shell篇2016/08/1226Shell種類
(1)/bin/sh--B-shell
由R.Bourne在Bell實驗室開發(fā),Unix的標準Shell
(2)/bin/csh--C-shell
由BillJoy在加州大學開發(fā),提供歷史機制和別名替換 (3)/bin/bash--BourneAgainShell Linux標準Shell,其兼容B-Shell。Shell的選擇:
Shell一般由管理員在創(chuàng)建用戶時,為用戶指定;其保存在/etc/passwd文件中;或通過usermod命令進行更改。也可在登錄后執(zhí)行相應的命令切換Shell。Shell種類(1)/bin/sh--B-shell27Bash的啟動與終止啟動:Bash啟動時,先運行/etc/profile、/etc/bashrc,再自動運行用戶主目錄下的.bash_profile和.bashrc文件。終止:當用戶執(zhí)行exit、logout或按下ctrl+d時,Bash將運行用戶主目錄下的.bash_logout文件中的命令。Bash的啟動與終止啟動:Bash啟動時,先運行/etc/p28輸入/輸出命令echo--顯示命令echo[option][string]
將string的內(nèi)容按照option指定的方法送到屏幕上進行顯示
-n 輸出后不換行
-e 對字符串中的特殊字符進行翻譯 特殊字符
\a 響鈴
\n 換行
\t 跳格輸入/輸出命令echo--顯示命令29位置參數(shù)位置參數(shù)及引用位置參數(shù)也稱為命令行參數(shù),即:組成命令行的所有元素。在Shell腳本中通過$0、$1...進行引用位置參數(shù)。為位置參數(shù)賦值set參數(shù)值列表位置參數(shù)移動shift[n]將位置參數(shù)(除$0)右移n個位置,默認為1。位置參數(shù)位置參數(shù)及引用30Shell預定義特殊變量變量名含義$?最后一次執(zhí)行命令的返回碼$$當前腳本自己的PID$!腳本進程最近啟動的后臺進程的PID$#命令行參數(shù)的個數(shù)$0腳本文件本身的名字$1,$2…第一、第二個命令行參數(shù)“$*”將所有命令行參數(shù)作為一個整體單詞看待“$@”將命令行參數(shù)作為多個單詞看待Shell預定義特殊變量變量名含義$?最后一次執(zhí)行命令的返回31if結構if 條件/命令
then commandlist [elif條件/命令
then commandlist] else commandlist fi#!/bin/bashecho-nenterfilename:readfnameechoenterwords:readwordsecho$words2>/dev/null>$fnameif[$?–eq0]then echoWritesuccessfullyelse echowriteerrorfiif結構if 條件/命令#!/bin/bash32case結構 casewordin pattern1) command_list;; pattern2) command_list;;
[*) command_list;;] esac
其中:pattern可以用豎線分隔多個模式,模式使用shell的文件名匹配規(guī)則。case結構 casewordin33while循環(huán)
whilecondition do command_list done#!/bin/shcount=3while[$count-gt0]doecho-en"Loginname:" readlogname echo-en"Password:" readpwd[$logname="root"-a$pwd="12345"]&&{ echo"WelcomeHere!!!" count=0 } letcount=count-1sleep5donewhile循環(huán)#!/bin/sh34Until循環(huán)untilcondition
do
CommandList
doneUntil循環(huán)untilcondition
do
Co35for循環(huán)格式1:
forvarinword_list do command_list done
forvar[in$1$2…] do command_list done
從shell的位置變量中取值例#!/bin/bashecho-e"pleaseentervarslike'var1var2...'\n"echoTheyare:readvarforiin$vardoecho"$i"donefor循環(huán)格式1:例36for循環(huán)格式2:
forvarinPath/* do commandList done
遍歷Path目錄中的所有文件及文件夾for循環(huán)格式2:37for循環(huán)格式3:
for((e1;e2;e3))
do
命令列表
done語法同C中的Forfor循環(huán)格式3:
for((e1;e2;e3))
do
38Break、Continue、ExitBreak[n]退出n層循環(huán)continue[n]跳到第n層循環(huán)繼續(xù)exit[n]退出腳本,并設置退出碼Break、Continue、Exit39selectselect一般用于設計菜單。select顯示一組菜單項、顯示一個輸入提示并讀入用戶輸入的菜單編號。selectvarinwordsdo 語句doneselect的提示符由“PS3”決定。select一般和case配合使用selectselect一般用于設計菜單。select顯示一40函數(shù)格式:function_name(){
command_list [returnn]
} 其中return用于帶回函數(shù)的返回碼(0~255)
注意:函數(shù)必須先定義后使用
函數(shù)在當前環(huán)境下運行,和調(diào)用它的腳本共享變量;而且可以通過把變量作為定位參數(shù)來賦值的方式傳遞變量。函數(shù)格式:function_name(){41shell內(nèi)置命令eval—命令分析eval命令字符串功能:首先對“命令字符串”進行shell替換,然后執(zhí)行該命令。例:for((i=1;i<=$#;i++)) do evalecho$i.\$$i doneshell內(nèi)置命令eval—命令分析42內(nèi)置命令declare內(nèi)置命令declare可用來創(chuàng)建變量。declare[選項]
variable=value內(nèi)置命令declare內(nèi)置命令declare可用來創(chuàng)建43shift命令一般用于函數(shù)或者腳本程序參數(shù)處理,特別是參數(shù)多于10以上的時候?qū)⑺袇?shù)變量向下移動一個位置,$2變成$1,$3變成$2,依次遞進,但$0保持不變例如:while[“$1!=‘’”];doecho$1shiftdoneshift命令一般用于函數(shù)或者腳本程序參數(shù)處理,特別是參數(shù)多44trap命令command一般情況下是Linux命令’’表示發(fā)生陷阱時為空指令,不做任何動作‘-’表示發(fā)生陷
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度航空航天用高溫合金委托生產(chǎn)協(xié)議
- 二零二五年度智能共享單車無償使用合同范本
- 2025年度門診部護士長聘任與管理服務合同
- 職業(yè)插畫師插畫設計服務合同
- 房地產(chǎn)經(jīng)紀人獨家代理合同書
- 產(chǎn)品創(chuàng)意與策劃流程手冊
- 歷史文物保護與遺址發(fā)掘試題及答案
- 人工智能輔助的智能環(huán)境保護監(jiān)測系統(tǒng)開發(fā)協(xié)議
- 大健康產(chǎn)業(yè)數(shù)字化健康服務平臺建設
- 關于辦公室搬遷的往來文書通知函
- 個人應聘簡歷電工
- 2025年上半年河南省高校畢業(yè)生“三支一扶”招募1100人易考易錯模擬試題(共500題)試卷后附參考答案
- 高血壓的用藥指導任務三高血壓的藥物治療講解
- 云南省大理白族自治州2024-2025學年八年級上學期1月期末考試英語試卷(無答案)
- 無人機行業(yè)市場分析指南
- 第16課數(shù)據(jù)管理與編碼(教案)四年級全一冊信息技術人教版
- 《節(jié)水評價技術導則》
- 課件:《中華民族共同體概論》第一講 中華民族共同體基礎理論
- 2024年貴州省貴陽市中考生物試題(含答案逐題解析)
- 全國書法作品展投稿登記表
- 中醫(yī)師承跟師筆記60篇(共1頁)
評論
0/150
提交評論