日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

【CyberSecurityLearning 34】Linux脚本编写(Shell脚本)

發布時間:2025/3/15 linux 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【CyberSecurityLearning 34】Linux脚本编写(Shell脚本) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

腳本

?一個簡單的腳本

實現流程:

變量賦值

IF判斷語句

if單分支結構

if 雙分支結構

if 多分支結構

實用案例:檢測內網主機存活狀態

Shell循環語句(for、while)

for循環

while循環

檢測內網主機存活裝態(優化版)

case語句

case案例

case格式

函數

分析apache自啟動腳本

apache的啟動函數

apache的關閉函數

Nginx自啟動腳本


腳本

什么是腳本?作用?
Linux中的腳本其實就類似我們在windows系統中編寫的批處理,那么我們如何去學習他呢?
從上往下一次執行,有錯不會執行,跳到下一條命令

我們這里主要通過應對各種場景的要求,編寫相應的腳本去實現的過程中,我們去一步步的認識腳本編寫的各種語法。這些語法的含義其實在我們以前學過的編程語言中,已經了解了。這里,我們主要是了解和學習其語法結構即可,你會發現,學起來非常輕松,也很有意思......

?
一個簡單的腳本

場景設定如下:

上午9點 要求設定eth0網卡 ip

IP:192.168.1.100/24

網關:192.168.1.254

下午2點要求設定eth0網卡 ip

IP:172.16.1.100/24

網關:172.16.1.254

實現流程:

笨辦法:

①先把ifcfg-eth0文件清空:echo "" > /etc/sysconfig/network-scripts/ifcfg-eth0
②echo "DEVICE=eth0" >> /etc/sysconfig/network-scripts/ifcfg-eth0
?? echo "TYPE=Ethernet" >> /etc/sysconfig/network-scripts/ifcfg-eth0
?? echo "ONBOOT=yes" >> /etc/sysconfig/network-scripts/ifcfg-eth0
?? echo "BOOYPROTO=static" >> /etc/sysconfig/network-scripts/ifcfg-eth0
?? echo "IPADDR=192.168.1.100" >> /etc/sysconfig/network-scripts/ifcfg-eth0
?? echo "NETMASK=255.255.255.0" >> /etc/sysconfig/network-scripts/ifcfg-eth0
?? echo "GATEWAY=192.168.1.254" >> /etc/sysconfig/network-scripts/ifcfg-eth0
③先關了:ifdown? eth0,再開啟:ifup eth0

下午還要再輸一遍,改為172

用腳本:

①先建立一個文件 vim fixip.sh(因為要實現修改ip功能,見名知義,后綴為sh,因為是shell腳本編寫)
②在腳本的第一行是聲明這個腳本是用什么命令解釋器來運行的,比如是sh命令解釋器,就要寫sh命令解釋器的位置(/bin/sh),如果是bash就是寫(/bin/bash),井號開頭
?? 第二行第三行也是井號開頭,分別寫上這個腳本的作用以及創建時間,聯系方式(不寫也行)

③怎么運行?首先給它一個執行權限

變綠就說明有執行的權限
運行腳本的方法:如果在同一目錄就用./去運行——》./fixup.sh

公司會隨機指定不同的ip進行修改

優化腳本為交互式腳本,就引出了我們下面要講的變量賦值
100.1.1.100/24
10.1.1.254
請輸入ip地址:
請輸入子網掩碼:
請輸入網關:

變量賦值


A 顧名思義就是我們定義的變量了,我們給其賦值,再通過$A調出它所表示的值(字符串)

[root@Waffle Desktop]# read -p "please input ipaddr:" IP (大寫IP說明這個東西是變量,please input ipaddr是顯示內容,顯示的內容輸入完后就存在變量里面了) please input ipaddr:10.1.1.1 [root@Waffle Desktop]# echo $IP 10.1.1.1

優化腳本:
在剛剛編寫的腳本第二行寫上read -p "please input ipaddr:" IP

IF判斷語句

if單分支結構

if 條件
then 成立 子語句
fi(結尾要寫fi)

案例:判斷3是否小于5

注意 [ 后面要寫空格,否則錯誤

if 雙分支結構

if 條件

then 成立子語句

else 不成立子語句

fi

案例:判斷6是不是小于5

linux中對縮進沒有要求

if 多分支結構

if 條件

then 成立子語句

elif 條件

then 成立子語句

else 不成立子語句

fi

案例:判斷鍵盤輸入的數字和10的關系


注意:[ 前后一定要有空格

Linux中? 大于 -gt 小于 -lt 等于 -eq

實用案例:檢測內網主機存活狀態

我們平時的ping操作,我們可以對其進行修飾,改變其特定的輸出顯示:

-c 指定其發送幾個包

-i 發間隔時間(s)

-W 等待響應時間(s)

[root@Waffle Desktop]# ping -c2 -i0.2 -W2 12.34.56.79(要黏在一起寫,發兩個包,間隔時間0.2s,等待時間2s)

[root@Waffle Desktop]# ping -c2 -i0.2 -W2 12.34.56.79 &> /dev/null意思是把不管是正確還是錯誤的輸出全部導出到/dev/null,這個文件相當于是一個空洞

前后加兩個點(在數字鍵盤1的左邊,不同于單引號)

優化:

如果想測試一個網段的主機存活,就不太好用了

Shell循環語句(for、while)

for根據取值列表循環
while根據條件進行循環

for循環

格式:
for? 變量? in? 取值列表
do
???? 子語句
done

案例:屏幕上輸出1~10,如何拿for循環實現?

while循環

while? 條件
do
????? 子語句
done

案例:屏幕上輸出1~3

?

?

檢測內網主機存活裝態(優化版)

繼續我們回到前面的探測主機存活,這一次我們要實現在真實的環境中,探測局域網的主機存活狀態

將我們的網絡屬性配置到橋接模式

1、將centos6-1的eth0網卡設置為橋接模式

2、修改網卡配置

[root@Waffle Desktop]# vim /etc/sysconfig/network-scripts/ifcfg-eth0


3、編寫腳本

#!/bin/bash
NET=10.0.110.
for i in {1..254}
do
??? if `ping -c2 -i0.2 -w2 $NET$IP &> /dev/null`
??? then echo -e "$NET$IP is \033[31mup\033[0m"????? 就是把UP變紅色? DOWN變綠色
??? else echo -e "$NET$IP is \033[32mdown\033[0m"
??? fi
done

?

換while循環看看

#!/bin/bash
NET=10.1.1.
IP=200
while [ $IP -lt 254 ]

do
??? let IP=IP+1
??? if `ping -c2 -i0.2 -w2 $NET$IP &> /dev/null`
??? then echo -e "$NET$IP is \033[31mup\033[0m"
??? else echo -e "$NET$IP is \033[32mdown\033[0m"
??? fi
done

case語句

case案例

案例

./case.sh? centos
redhat

./case.sh redhat
centos

./cash.sh xxx
usage case.sh {redhat|centos}

#!/bin/bash
case $1 in
redhat)
?? echo "centos"
?? ;;
centos)
?? echo "redhat"
?? ;;
*)--》*表示所有
?? echo "useage $0 {redhat|centos}"
esac

賦權后執行

case格式

case 變量 in
模式1)
?? 子語句
?? ;;
*)
?? 子語句
?? ;;
esac

?

函數

將一部分代碼存儲到一個變量中
再調用的時候就會執行這個功能

案例:設計一個函數名字為A,運行A時屏幕輸出OK

可以通過 echo $?? 得到函數的返回值(return)

??? redhat(){
??????? echo cetos
??????? return 0
??? }
??? centos(){
??????? echo redhat
??????? return 0
??? }
??? case $1 in
??? redhat)
??????? redhat(就相當于調用上面的函數)
??????? ;;
??? centos)
??????? centos
??????? ;;
??? *)
??????? echo "Usage $0 {redhat|centos}"
??? esac

?

?

分析apache自啟動腳本

apache的啟動函數

apache的關閉函數

這些是不是看起來很熟悉,都是我們前面學的編寫的

接下來我們就來編寫nginx的自啟動腳本

?

Nginx自啟動腳本

首先我們要在/etc/init.d/目錄下編寫我們Nginx的啟動腳本nginxd

?

?

?

?

總結

以上是生活随笔為你收集整理的【CyberSecurityLearning 34】Linux脚本编写(Shell脚本)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产伦精品一区二区三区在线 | 69影院少妇在线观看 | 乖女从小调教h尿便器小说 欧美韩一区二区 | 国产精品色哟哟 | 日本女人黄色 | 中国美女一级看片 | 男人视频网 | 色戒未删节版 | 久久久综合色 | 日韩在线精品视频一区二区涩爱 | 亚洲黄v | 免费毛片a | 亚洲综合在线播放 | 亚洲字幕av一区二区三区四区 | 色悠久久综合 | 日日爽爽 | 成人av电影免费观看 | 欧美成人高清 | 日韩欧美在线第一页 | 人人澡人人澡 | 国产性猛交xx乱 | 老熟妇仑乱一区二区av | 欧美性大战xxxxx久久久 | 毛片基地站 | 国产不卡二区 | 中文字幕在线国产 | 亚洲 小说区 图片区 都市 | 国产激情成人 | 亚洲人人爽 | 欧美在线激情 | 成人日皮视频 | 韩国美女一区二区 | 欧美人一级淫片a免费播放 西方av在线 | 国产福利小视频在线观看 | 潘金莲性xxxxhd | 色先锋在线 | 久久99久久99精品免观看粉嫩 | 欧美高清视频一区二区 | 好看的中文字幕电影 | 中文字幕一区二区三区不卡 | 超碰在线人 | 日韩视频一区二区三区在线播放免费观看 | 精品亚洲永久免费 | 在线观看污网站 | 一级片免费观看视频 | 精品免费一区二区三区 | 国产一区二区三区四 | 一区二区少妇 | 国产怡红院 | 日韩精品一区在线观看 | 四虎成人精品在永久免费 | 天天操网| 麻豆网站在线 | 成人一级大片 | 久久久精品久久久 | 日韩bbw| 国内自拍99| 欧美男优| 波多野结衣免费在线视频 | 天天看片天天操 | 夜夜爽妓女8888视频免费观看 | 69视频国产 | 亚洲精品推荐 | 摸大乳喷奶水www视频 | www.毛片.com | 日韩高清一级 | 大地资源在线观看免费高清版粤语 | 天天干一干 | 日本亚洲色大成网站www久久 | 国产在线欧美在线 | 在线国产播放 | 免费一级片视频 | 日韩一区二区在线免费观看 | 国产免费不卡视频 | 欧美日韩一区二区三区在线电影 | 乱子伦视频在线看 | 国产成人无码一二三区视频 | 快色网站| 日本高清www免费视频 | 公肉吊粗大爽色翁浪妇视频 | 亚洲国产99 | 波多野结衣高清电影 | 精品人妻少妇嫩草av无码专区 | 成人拍拍视频 | 日韩欧美爱爱 | 国产精品成久久久久三级 | 男人的天堂2019 | 国产视频首页 | a天堂视频在线观看 | 欧美激情成人 | 久久久www免费人成人片 | 精品人妻一区二区三区久久 | 污污视频网站在线免费观看 | 香蕉久操 | 天天干狠狠操 | 91成人精品国产刺激国语对白 | 天天干天天操天天 | 麻豆三级 | 日本啊啊视频 |