亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

34個(gè)Linux Shell腳本,一定能幫到你!

(1)用戶(hù)猜數(shù)字

#!/bin/bash

#?腳本生成一個(gè)?100?以?xún)?nèi)的隨機(jī)數(shù),提示用戶(hù)猜數(shù)字,根據(jù)用戶(hù)的輸入,提示用戶(hù)猜對(duì)了,
#?猜小了或猜大了,直至用戶(hù)猜對(duì)腳本結(jié)束。

#?RANDOM?為系統(tǒng)自帶的系統(tǒng)變量,值為?0‐32767的隨機(jī)數(shù)
#?使用取余算法將隨機(jī)數(shù)變?yōu)?1‐100?的隨機(jī)數(shù)
num=$[RANDOM%100+1]
echo?"$num"

#?使用?read?提示用戶(hù)猜數(shù)字
#?使用?if?判斷用戶(hù)猜數(shù)字的大小關(guān)系:‐eq(等于),‐ne(不等于),‐gt(大于),‐ge(大于等于),
#?‐lt(小于),‐le(小于等于)
while?:
do?
?read?-p?"計(jì)算機(jī)生成了一個(gè)?1‐100?的隨機(jī)數(shù),你猜:?"?cai??
????if?[?$cai?-eq?$num?]???
????then?????
????????echo?"恭喜,猜對(duì)了"?????
????????exit??
?????elif?[?$cai?-gt?$num?]??
?????then???????
????????????echo?"Oops,猜大了"????
???????else??????
????????????echo?"Oops,猜小了"?
??fi
done

(2)查看有多少遠(yuǎn)程的 IP 在連接本機(jī)

#!/bin/bash

#!/bin/bash
#?查看有多少遠(yuǎn)程的?IP?在連接本機(jī)(不管是通過(guò)?ssh?還是?web?還是?ftp?都統(tǒng)計(jì))?

#?使用?netstat?‐atn?可以查看本機(jī)所有連接的狀態(tài),‐a?查看所有,
#?-t僅顯示?tcp?連接的信息,‐n?數(shù)字格式顯示
#?Local?Address(第四列是本機(jī)的?IP?和端口信息)
#?Foreign?Address(第五列是遠(yuǎn)程主機(jī)的?IP?和端口信息)
#?使用?awk?命令僅顯示第?5?列數(shù)據(jù),再顯示第?1?列?IP?地址的信息
#?sort?可以按數(shù)字大小排序,最后使用?uniq?將多余重復(fù)的刪除,并統(tǒng)計(jì)重復(fù)的次數(shù)
netstat?-atn??|??awk??'{print?$5}'??|?awk??'{print?$1}'?|?sort?-nr??|??uniq?-c

(3)helloworld

#!/bin/bash

function?example?{
echo?"Hello?world!"
}
example

(4)打印 tomcat 的 pid

#!/bin/sh`

v1="Hello"
v2="world"
v3=${v1}${v2}
echo?$v3

pidlist=`ps?-ef|grep?apache-tomcat-7.0.75|grep?-v?"grep"|awk?'{print?$2}'`
echo?$pidlist
echo?"tomcat?Id?list?:$pidlist"??//顯示pid

(5)腳本編寫(xiě) 剪刀 、 石頭、布游戲

#!/bin/bash

game=(石頭?剪刀?布)
num=$[RANDOM%3]
computer=${game[$sum]}

echo?"請(qǐng)根據(jù)下列提示選擇您的出拳手勢(shì)"
echo?"?1.?石頭"
echo?"?2.?剪刀"
echo?"?3.?布?"

read?-p?"請(qǐng)選擇 1-3 :"?person
case?$person?in
1)
??if?[?$num?-eq?0?]
??then?
????echo?"平局"
????elif?[?$num?-eq?1?]
????then
??????echo?"你贏"
????else?
??????echo?"計(jì)算機(jī)贏"
fi;;
2)
?if?[?$num?-eq?0?]
?then
????echo?"計(jì)算機(jī)贏"
????elif?[?$num?-eq?1?]?
????then
?????echo?"平局"
????else?
??????echo?"你贏"
fi;;
3)
?if?[?$num?-eq?0?]
?then??
???echo?"你贏"
???elif?[?$num?-eq?1?]
???then?
?????echo?"計(jì)算機(jī)贏"
???else?
??????echo?"平局"
fi;;
*)
??echo?"必須輸入1-3?的數(shù)字"
esac

(6)九九乘法表

#!/bin/bash

for?i?in?`seq?9`
do?
?for?j?in?`seq?$i`
?do?
?echo?-n?"$j*$i=$[i*j]?"
?done
????echo
done

(7)腳本用源碼來(lái)安裝 memcached 服務(wù)器

#!/bin/bash
#?一鍵部署?memcached?

#?腳本用源碼來(lái)安裝?memcached?服務(wù)器
#?注意:如果軟件的下載鏈接過(guò)期了,請(qǐng)更新?memcached?的下載鏈接
wget?http://www.memcached.org/files/memcached-1.5.1.tar.gz
yum?-y?install?gcc
tar?-xf??memcached‐1.5.1.tar.gz
cd?memcached‐1.5.1
./configure
make
make?install

(8)檢測(cè)本機(jī)當(dāng)前用戶(hù)是否為超級(jí)管理員

#!/bin/bash

#?檢測(cè)本機(jī)當(dāng)前用戶(hù)是否為超級(jí)管理員,如果是管理員,則使用?yum?安裝?vsftpd,如果不
#?是,則提示您非管理員(使用字串對(duì)比版本)?
if?[?$USER?==?"root"?]?
then?
?yum?-y?install?vsftpd
else?
?echo?"您不是管理員,沒(méi)有權(quán)限安裝軟件"
fi

(9)if 運(yùn)算表達(dá)式

#!/bin/bash?-xv

if?[?$1?-eq?2?]?;then
?echo?"wo?ai?wenmin"
elif?[?$1?-eq?3?]?;then?
?echo?"wo?ai?wenxing?"
elif?[?$1?-eq?4?]?;then?
?echo?"wo?de?xin?"
elif?[?$1?-eq?5?]?;then
?echo?"wo?de?ai?"
fi

(10)腳本 殺掉 tomcat 進(jìn)程并重新啟動(dòng)

#!/bin/bash

#kill?tomcat?pid

pidlist=`ps?-ef|grep?apache-tomcat-7.0.75|grep?-v?"grep"|awk?'{print?$2}'`??#找到tomcat的PID號(hào)

echo?"tomcat?Id?list?:$pidlist"??//顯示pid

kill?-9?$pidlist??#殺掉改進(jìn)程

echo?"KILL?$pidlist:"?//提示進(jìn)程以及被殺掉

echo?"service?stop?success"

echo?"start?tomcat"

cd?/opt/apache-tomcat-7.0.75

pwd?

rm?-rf?work/*

cd?bin

./startup.sh?#;tail?-f?../logs/catalina.out

(11)打印國(guó)際象棋棋盤(pán)

#!/bin/bash
#?打印國(guó)際象棋棋盤(pán)
#?設(shè)置兩個(gè)變量,i?和?j,一個(gè)代表行,一個(gè)代表列,國(guó)際象棋為?8*8?棋盤(pán)
#?i=1?是代表準(zhǔn)備打印第一行棋盤(pán),第?1?行棋盤(pán)有灰色和藍(lán)色間隔輸出,總共為?8?列
#?i=1,j=1?代表第?1?行的第?1?列;i=2,j=3?代表第?2?行的第?3?列
#?棋盤(pán)的規(guī)律是?i+j?如果是偶數(shù),就打印藍(lán)色色塊,如果是奇數(shù)就打印灰色色塊
#?使用?echo?‐ne?打印色塊,并且打印完成色塊后不自動(dòng)換行,在同一行繼續(xù)輸出其他色塊
for?i?in?{1..8}
do
???for?j?in?{1..8}
???do
????sum=$[i+j]
??if?[??$[sum%2]?-eq?0?];then
????echo?-ne?"\033[46m??\033[0m"
??else
???echo?-ne?"\033[47m??\033[0m"
??fi
???done
???echo
done

(12)統(tǒng)計(jì)當(dāng)前 Linux 系統(tǒng)中可以登錄計(jì)算機(jī)的賬戶(hù)有多少個(gè)

#!/bin/bash

#?統(tǒng)計(jì)當(dāng)前?Linux?系統(tǒng)中可以登錄計(jì)算機(jī)的賬戶(hù)有多少個(gè)
#方法?1:
grep?"bash$"?/etc/passwd?|?wc?-l
#方法 2:
awk?-f?:?'/bash$/{x++}end{print?x}'?/etc/passwd

(13)備份 MySQL 表數(shù)據(jù)

#!/bin/sh

source?/etc/profile
dbName=mysql
tableName=db
echo?[`date?+'%Y-%m-%d?%H:%M:%S'`]'?start?loading?data...'
mysql?-uroot?-proot?-P3306?${dbName}?-e?"LOAD?DATA?LOCAL?INFILE?'#?/home/wenmin/wenxing.txt'?INTO?TABLE?${tableName}?FIELDS?TERMINATED?BY?';'"
echo?[`date?+'%Y-%m-%d?%H:%M:%S'`]'?end?loading?data...'
exit
EOF

(14)使用死循環(huán)實(shí)時(shí)顯示 eth0 網(wǎng)卡發(fā)送的數(shù)據(jù)包流量

#!/bin/bash

#?使用死循環(huán)實(shí)時(shí)顯示?eth0?網(wǎng)卡發(fā)送的數(shù)據(jù)包流量?

while?:
do?
?echo?'本地網(wǎng)卡 ens33 流量信息如下:'
?ifconfig?ens33?|?grep?"RX?pack"?|?awk?'{print?$5}'
?????ifconfig?ens33?|?grep?"TX?pack"?|?awk?'{print?$5}'
?sleep?1
done

(15)編寫(xiě)腳本測(cè)試 192.168.4.0/24 整個(gè)網(wǎng)段中哪些主機(jī)處于開(kāi)機(jī)狀態(tài),哪些主機(jī)處于關(guān)機(jī)

#!/bin/bash

#?編寫(xiě)腳本測(cè)試?192.168.4.0/24?整個(gè)網(wǎng)段中哪些主機(jī)處于開(kāi)機(jī)狀態(tài),哪些主機(jī)處于關(guān)機(jī)
#?狀態(tài)(for?版本)
for?i?in?{1..254}
do?
?#?每隔0.3秒ping一次,一共ping2次,并以1毫秒為單位設(shè)置ping的超時(shí)時(shí)間
?ping?-c?2?-i?0.3?-W?1?192.168.1.$i?&>/dev/null
?????if?[?$??-eq?0?];then
?echo?"192.168.1.$i?is?up"
?else?
?echo?"192.168.1.$i?is?down"
?fi
done

(16)編寫(xiě)腳本:提示用戶(hù)輸入用戶(hù)名和密碼, 腳本自動(dòng)創(chuàng)建相應(yīng)的賬戶(hù)及配置密碼。如果用戶(hù)

#!/bin/bash
#?編寫(xiě)腳本:提示用戶(hù)輸入用戶(hù)名和密碼,腳本自動(dòng)創(chuàng)建相應(yīng)的賬戶(hù)及配置密碼。如果用戶(hù)
#?不輸入賬戶(hù)名,則提示必須輸入賬戶(hù)名并退出腳本;如果用戶(hù)不輸入密碼,則統(tǒng)一使用默
#?認(rèn)的 123456 作為默認(rèn)密碼。

read?-p?"請(qǐng)輸入用戶(hù)名:"?user
#使用‐z?可以判斷一個(gè)變量是否為空,如果為空,提示用戶(hù)必須輸入賬戶(hù)名,并退出腳本,退出碼為?2
#沒(méi)有輸入用戶(hù)名腳本退出后,使用$?查看的返回碼為?2
if?[?-z?$user?];?then
?echo?"?您不需要輸入賬戶(hù)名"?
?exit?2
fi?
#使用?stty?‐echo?關(guān)閉?shell?的回顯功能
#使用?stty??echo?打開(kāi)?shell?的回顯功能
stty?-echo?
read?-p?"請(qǐng)輸入密碼:"?pass
stty?echo?
pass=${pass:-123456}
useradd?"$user"
echo?"$pass"?|?passwd?--stdin?"$user"

(17)使用腳本對(duì)輸入的三個(gè)整數(shù)進(jìn)行排序

#!/bin/bash

#?依次提示用戶(hù)輸入?3?個(gè)整數(shù),腳本根據(jù)數(shù)字大小依次排序輸出?3?個(gè)數(shù)字
read?-p?"?請(qǐng)輸入一個(gè)整數(shù):"?num1
read?-p?"?請(qǐng)輸入一個(gè)整數(shù):"?num2
read?-p?"?請(qǐng)輸入一個(gè)整數(shù):??"?num3

#?不管誰(shuí)大誰(shuí)小,最后都打印?echo?"$num1,$num2,$num3"
#?num1?中永遠(yuǎn)存最小的值,num2?中永遠(yuǎn)存中間值,num3?永遠(yuǎn)存最大值
#?如果輸入的不是這樣的順序,則改變數(shù)的存儲(chǔ)順序,如:可以將?num1?和?num2?的值對(duì)調(diào)
tmp=0
#?如果?num1?大于?num2,就把?num1?和和?num2?的值對(duì)調(diào),確保?num1?變量中存的是最小值
if?[?$num1?-gt?$num2?];then
?tmp=$num1
?num1=$num2
?num2=tmp
fi
#?如果?num1?大于?num3,就把?num1?和?num3?對(duì)調(diào),確保?num1?變量中存的是最小值
if?[?$num1?-gt?$num3?];then
?tmp=$num1
?num1=$num3
?num3=$tmp
fi
#?如果?num2?大于?num3,就把?num2?和?num3?對(duì)調(diào),確保?num2?變量中存的是最小值
if?[?$num2?-gt?$num3?];then
?tmp=$num2
?num2=$num3
?num3=$tmp
fi
echo?"排序后數(shù)據(jù)(從小到大)為:$num1,$num2,$num3"

(18)根據(jù)計(jì)算機(jī)當(dāng)前時(shí)間,返回問(wèn)候語(yǔ),可以將該腳本設(shè)置為開(kāi)機(jī)啟動(dòng)

#!/bin/bash
#?根據(jù)計(jì)算機(jī)當(dāng)前時(shí)間,返回問(wèn)候語(yǔ),可以將該腳本設(shè)置為開(kāi)機(jī)啟動(dòng)?

#?00‐12?點(diǎn)為早晨,12‐18?點(diǎn)為下午,18‐24?點(diǎn)為晚上
#?使用?date?命令獲取時(shí)間后,if?判斷時(shí)間的區(qū)間,確定問(wèn)候語(yǔ)內(nèi)容
tm=$(date?+%H)
if?[?$tm?-le?12?];then
?msg="Good?Morning?$USER"
elif?[?$tm?-gt?12?-a?$tm?-le?18?];then
???msg="Good?Afternoon?$USER"
else
???msg="Good?Night?$USER"
fi
echo?"當(dāng)前時(shí)間是:$(date?+"%Y‐%m‐%d?%H:%M:%S")"
echo?-e?"\033[34m$msg\033[0m"

(19)將 I lov cls 寫(xiě)入到 txt 文件中

#!/bin/bash

cd?/home/wenmin/
touch?wenxing.txt
echo?"I?lov?cls"?>>wenxing.txt

(20)腳本編寫(xiě) for 循環(huán)判斷

#!/bin/bash

s=0;
for((i=1;i<100;i++))
do?
?s=$[$s+$i]
done?

echo?$s

r=0;
a=0;
b=0;
for((x=1;x<9;x++))
do?
?a=$[$a+$x]?
echo?$x
done
for((y=1;y<9;y++))
do?
?b=$[$b+$y]
echo?$y

done

echo?$r=$[$a+$b]

(21)腳本編寫(xiě) for 循環(huán)判斷

#!/bin/bash

for?i?in?"$*"
do?
?echo?"wenmin?xihuan?$i"
done

for?j?in?"$@"
do?
?echo?"wenmin?xihuan?$j"
done

(22)腳本 每周 5 使用 tar 命令備份 / var/log 下的所有日志文件

#!/bin/bash
#?每周?5?使用?tar?命令備份/var/log?下的所有日志文件
#?vim??/root/logbak.sh
#?編寫(xiě)備份腳本,備份后的文件名包含日期標(biāo)簽,防止后面的備份將前面的備份數(shù)據(jù)覆蓋
#?注意?date?命令需要使用反引號(hào)括起來(lái),反引號(hào)在鍵盤(pán)<tab>鍵上面

tar?-czf?log-`date?+%Y%m%d`.tar.gz?/var/log?

#?crontab?-e?#編寫(xiě)計(jì)劃任務(wù),執(zhí)行備份腳本
00?03?*?*?5?/home/wenmin/datas/logbak.sh

(23)腳本編寫(xiě) 求和 函數(shù)運(yùn)算 function xx()

#!/bin/bash

function?sum()
{
?s=0;
?s=$[$1+$2]
?echo?$s
}
read?-p?"input?your?parameter?"?p1
read?-p?"input?your?parameter?"?p2

sum?$p1?$p2

function?multi()
{
?r=0;
?r=$[$1/$2]
?echo?$r
}
read?-p?"input?your?parameter?"?x1
read?-p?"input?your?parameter?"?x2

multi?$x1?$x2

v1=1
v2=2
let?v3=$v1+$v2
echo?$v3

(24)腳本編寫(xiě) case — esac 分支結(jié)構(gòu)表達(dá)式

#!/bin/bash?

case?$1?in?
1)?
?echo?"wenmin?"
;;
2)
?echo?"wenxing?"
;;?
3)??
?echo?"wemchang?"
;;
4)?
?echo?"yijun"
;;
5)
?echo?"sinian"
;;
6)??
?echo?"sikeng"
;;
7)?
?echo?"yanna"
;;
*)
?echo?"danlian"
;;?
esac

(25)# 定義要監(jiān)控的頁(yè)面地址,對(duì) tomcat 狀態(tài)進(jìn)行重啟或維護(hù)

#!/bin/sh??
#?function:自動(dòng)監(jiān)控tomcat進(jìn)程,掛了就執(zhí)行重啟操作??
#?author:huanghong??
#?DEFINE??

#?獲取tomcat?PPID??
TomcatID=$(ps?-ef?|grep?tomcat?|grep?-w?'apache-tomcat-7.0.75'|grep?-v?'grep'|awk?'{print?$2}')??

#?tomcat_startup??
StartTomcat=/opt/apache-tomcat-7.0.75/bin/startup.sh??


#TomcatCache=/usr/apache-tomcat-5.5.23/work??

#?定義要監(jiān)控的頁(yè)面地址??
WebUrl=http://192.168.254.118:8080/

#?日志輸出??
GetPageInfo=/dev/null??
TomcatMonitorLog=/tmp/TomcatMonitor.log??

Monitor()??
??{??
???echo?"[info]開(kāi)始監(jiān)控tomcat...[$(date?+'%F?%H:%M:%S')]"??
???if?[?$TomcatID?]
?then??
??????echo?"[info]tomcat進(jìn)程ID為:$TomcatID."??
??????#?獲取返回狀態(tài)碼??
??????TomcatServiceCode=$(curl?-s?-o?$GetPageInfo?-m?10?--connect-timeout?10?$WebUrl?-w?%{http_code})??
??????if?[?$TomcatServiceCode?-eq?200?];then??
??????????echo?"[info]返回碼為$TomcatServiceCode,tomcat啟動(dòng)成功,頁(yè)面正常."??
??????else??
??????????echo?"[error]訪問(wèn)出錯(cuò),狀態(tài)碼為$TomcatServiceCode,錯(cuò)誤日志已輸出到$GetPageInfo"??
??????????echo?"[error]開(kāi)始重啟tomcat"??
??????????kill?-9?$TomcatID??#?殺掉原tomcat進(jìn)程??
??????????sleep?3??
??????????#rm?-rf?$TomcatCache?#?清理tomcat緩存??
??????????$StartTomcat??
??????fi??
??????else??
??????echo?"[error]進(jìn)程不存在!tomcat自動(dòng)重啟..."??
??????echo?"[info]$StartTomcat,請(qǐng)稍候......"??
??????#rm?-rf?$TomcatCache??
??????$StartTomcat??
????fi??
????echo?"------------------------------"??
???}??
???Monitor>>$TomcatMonitorLog

(26)通過(guò)位置變量創(chuàng)建 Linux 系統(tǒng)賬戶(hù)及密碼

#!/bin/bash

#?通過(guò)位置變量創(chuàng)建Linux?系統(tǒng)賬戶(hù)及密碼

#?$1?是執(zhí)行腳本的第一個(gè)參數(shù),$2??是執(zhí)行腳本的第二個(gè)參數(shù)

useradd?"$1"
echo?"$2"?|?passwd?--stdin?"$1"

(27)對(duì)變量的傳入與獲取個(gè)數(shù)及打印

#!/bin/bash
echo?"$0?$1?$2?$3"??//?傳入三個(gè)參數(shù)
echo?$#????//獲取傳入?yún)?shù)的數(shù)量
echo?$@????//打印獲取傳入?yún)?shù)
echo?$*????//打印獲取傳入?yún)?shù)

(28)實(shí)時(shí)監(jiān)控本機(jī)內(nèi)存和硬盤(pán)剩余空間,剩余內(nèi)存小于 500M、根分區(qū)剩余空間小于 1000M 時(shí),發(fā)送報(bào)警郵件給 root 管理員

#!/bin/bash

#?實(shí)時(shí)監(jiān)控本機(jī)內(nèi)存和硬盤(pán)剩余空間,剩余內(nèi)存小于500M、根分區(qū)剩余空間小于1000M時(shí),發(fā)送報(bào)警郵件給root管理員

#?提取根分區(qū)剩余空間
disk_size=$(df?/?|?awk?'/\//{print?$4}')

#?提取內(nèi)存剩余空空間
mem_size=$(free?|?awk?'/Mem/{print?$4}')
while?:
do?
#?注意內(nèi)存和磁盤(pán)提取的空間大小都是以?Kb?為單位
if??[??$disk_size?-le?512000?-a?$mem_size?-le?1024000??]
then
????mail??‐s??"Warning"??root??<<EOF
?Insufficient?resources,資源不足
EOF
fi
done

(29)檢查指定目錄下是否存在 對(duì)應(yīng) 文件

#!/bin/bash

if?[?-f?/home/wenmin/datas?]
then?
echo?"File?exists"
fi

(30)腳本定義 while 循環(huán)語(yǔ)句

#!/bin/bash

if?[?-f?/home/wenmin/datas?]
then?
echo?"File?exists"
fi

[root@rich?datas]#?cat?while.sh?
#!/bin/bash

s=0
i=1
while?[?$i?-le?100?]
do
????????s=$[$s?+?$i]
????????i=$[$i?+?1]
done

echo?$s
echo?$i

(31)一鍵部署 LNMP(RPM 包版本)

#!/bin/bash?

#?一鍵部署?LNMP(RPM?包版本)
#?使用?yum?安裝部署?LNMP,需要提前配置好?yum?源,否則該腳本會(huì)失敗
#?本腳本使用于?centos7.2?或?RHEL7.2
yum?-y?install?httpd
yum?-y?install?mariadb?mariadb-devel?mariadb-server
yum?-y?install?php?php-mysql

systemctl?start?httpd?mariadb
systemctl?enable?httpd?mariadb

(32)讀取控制臺(tái)傳入?yún)?shù)

#!/bin/bash
read?-t?7?-p?"input?your?name?"?NAME
echo?$NAME

read?-t?11?-p?"input?you?age?"?AGE
echo?$AGE

read?-t?15?-p?"input?your?friend?"?FRIEND
echo?$FRIEND

read?-t?16?-p?"input?your?love?"?LOVE
echo?$LOVE

(33)腳本實(shí)現(xiàn) 復(fù)制

#!/bin/bash

cp?$1?$2

(34)腳本實(shí)現(xiàn)文件存在與否的判斷

#!/bin/bash

if?[?-f?file.txt?];then
?echo?"文件存在"
else?
?echo?"文件不存在"
fi

轉(zhuǎn)自:入門(mén)小站

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國(guó)內(nèi)好評(píng)如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開(kāi)發(fā)專(zhuān)業(yè)人才培訓(xùn)機(jī)構(gòu)!