Shell編程執行個體

來源:互聯網
上載者:User

標籤:

一、簡介

從程式員的角度來看, Shell本身是一種用C語言編寫的程式,從使用者的角度來看,Shell是使用者與Linux作業系統溝通的橋樑。使用者既可以輸入命令執行,又可以利用 Shell指令碼編程,完成更加複雜的操作。在Linux GUI日益完善的今天,在系統管理等領域,Shell編程仍然起著不可忽視的作用。深入地瞭解和熟練地掌握Shell編程,是每一個Linux使用者的必修課之一。

Linux的Shell種類眾多,常見的有:Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shell(/usr/bin/ksh)、Shell for Root(/sbin/sh),等等。不同的Shell語言的文法有所不同,所以不能交換使用。每種Shell都有其特色之處,基本上,掌握其中任何一種就足夠了。在本文中,我們關注的重點是Bash,也就是Bourne Again Shell,由於易用和免費,Bash在日常工作中被廣泛使用;同時,Bash也是大多數Linux系統預設的Shell。

 

二、編程執行個體

 

程式1:批量並行telnet

在網路測試過程中,我們需要從某台伺服器telnet其他很多伺服器的某個連接埠,如22連接埠,如果能夠批量並行的執行telnet對端連接埠,將大大提高測試效率,利用Shell編程可實現這一功能。 #檔案結構

test10-was%tree.|-- ip.list                #測試ip列表|-- telnet_port.sh         #測試Shell指令碼|-- telnetAlive.txt        #連通結果集        |-- telnetNotAlive.txt     #未連通結果集`-- telnetResult.txt       #日誌
#檔案名稱:ip.list
#功能:儲存待測試ip列表
#格式如下
 
10.87.30.1010.87.30.1110.87.30.1210.87.30.1310.87.30.14     #此處需下空一行,並再次書寫最終ip10.87.30.14
#檔案名稱:telnet_port.sh
#功能:網路測試
#!/bin/bashrm telnetResult.txt >/dev/null 2>&1rm telnetAlive.txt >/dev/null 2>&1rm telnetNotAlive.txt >/dev/null 2>&1TestPort=30000    #要測試的連接埠號碼for i in $(cat ip.list)do (telnet $i $TestPort<<EOF>>telnetResult.txt &)>>telnetResult.txt 2>&1sleep 1quitEOFdone
cat telnetResult.txt | grep -B 1 \] | grep [1-9] | awk ‘{print $3}‘ | cut -d ‘.‘ -f 1,2,3,4 > telnetAlive.txtcat ip.list telnetAlive.txt | sort | uniq -u > telnetNotAlive.txt

運行:

Shell編程執行個體

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.