㈠ Bash 腳本進階,經典用法及其案例
前言:在linux中,Bash腳本是很基礎的知識,大家可能一聽腳本感覺很高大上,像我當初剛開始學一樣,感覺會寫腳本的都是大神。雖然復雜的腳本是很燒腦,但是,當我們熟練的掌握了其中的用法與技巧,再多加練習,總有一天也會成為得心應手的腳本大神。腳本在生產中的作用,想必我我不說,大家也都知道,腳本寫的6,可以省下很多復雜的操作,減輕自己的工作壓力。好了,廢話不多說,接下來,就是Bash腳本的用法展示。
(1)用法格式
if 判斷條件 1 ; then
條件為真的分支代碼
elif 判斷條件 2 ; then
條件為真的分支代碼
elif 判斷條件 3 ; then
條件為真的分支代碼
else
以上條件都為假的分支代碼
fi
逐條件進行判斷,第一次遇為「真」條件時,執行其分支,而後結束整個if。
(2)經典案例:
① 判斷年紀
分析:請輸入年紀,先判斷輸入的是否含有除數字以外的字元,有,就報錯;沒有,繼續判斷是否小於150,是否大於18。
② 判斷分數
分析:請輸入成績,先判斷輸入的是否含有除數字以外的字元,有,就報錯;沒有,繼續判斷是否大於100,是否大於85,是否大於60。
(1)用法格式
case $name in;
PART1)
cmd
;;
PART2)
cmd
;;
*)
cmd
;;
esac
注意:case 支持glob 風格的通配符:
*: 任意長度任意字元
?: 任意單個字元
[] :指定范圍內的任意單個字元
a|b: a 或b
(2)案例:
判斷yes or no
分析:請輸入yes or no,回答Y/y、yes各種大小寫組合為yes;回答N/n、No各種大小寫組合為no。
(1)用法格式
① for name in 列表 ;do
循環體
done
② for (( exp1; exp2; exp3 )) ;do
cmd
done
exp1隻執行一次,相當於在for里嵌了while
③ 執行機制:依次將列表中的元素賦值給「變數名」; 每次賦值後即執行一次循環體; 直到列表中的元素耗盡,循環結束
列表的表示方法,可以glob 通配符,如{1..10} 、*.sh ;也可以變數引用,如: `seq 1 $name`
(2)案例
① 求出(1+2+...+n)的總和
分析:sum初始值為0,請輸入一個數,先判斷輸入的是否含有除數字以外的字元,有,就報錯;沒有判斷是否為0,不為0進入for循環,i的范圍為1~輸入的數,每次的循環為sum=sum+i,循環結束,最後輸出sum的值。
② 求出(1+2+...+100)的總和
分析:i=1,num=0;當i<=100,進入循環,若i 2取余=1,則sum=sum+i,i=i+1。
(1)用法格式
while 循環控制條件 ;do
循環
done
循環控制條件;進入循環之前,先做一次判斷;每一次循環之後會再次做判斷;條件為「true」 ,則執行一次循環;直到條件測試狀態為「false」 終止循環
(2)特殊用法(遍歷文件的每一行):while read line; do控制變數初始化循環體done < /PATH/FROM/SOMEFILE或 cat /PATH/FROM/SOMEFILE | while read line; do循環體done依次讀取/PATH/FROM/SOMEFILE文件中的每一行,且將行賦值給變數line
(3)案例:
① 100以內所有正奇數之和
分析:sum初始值為0,i的初始值為1;請輸入一個數,先判斷輸入的是否含有除數字以外的字元,有,就報錯;沒有當i<100時,進入循環,判斷 i 2取余 是否不為0,不為0時為奇數,sum=sum+i,i+1,為0,i+1;循環結束,最後輸出sum的值。
(1)用法
unitl 循環條件 ;do
循環
done
進入條件:循環條件為true ;退出條件:循環條件為false;剛好 和while相反 ,所以不常用,用while就行。
(2)案例
監控xiaoming用戶,登錄就殺死
分析:每隔0.5秒掃描,直到發現xiaoming用戶登錄,殺死這個進程,退出腳本,用於監控用戶登錄。
(1)用法
select variable in list
do
循環體命令
done
① select 循環主要用於創建菜單,按數字順序排列的示菜單項將顯示在標准錯誤上,並顯示PS3 提示符,等待用戶輸入
② 用戶輸入菜單列表中的某個數字,執行相應的命令
③ 用戶輸入被保存在內置變數 REPLY 中
④ select 是個無限循環,因此要記住用 break 命令退出循環,或用 exit 按 命令終止腳本。也可以按 ctrl+c退出循環
⑤ select 和 經常和 case 聯合使用
⑥ 與for循環類似,可以省略 in list, 此時使用位置參量
(2)案例:
生成菜單,並顯示選中的價錢
分析:PS3是select的提示符,自動生成菜單,選擇5break退出循環。
(1)語法
continue [N]:提前結束 第N層的本輪 循環,而直接進入下一輪判斷;最內層為第1層
break [N]:提前結束 第N層 循環,最內側為第1層
例:while CONDTITON1; doCMD1if CONDITION2; thencontinue / breakfiCMD2done (2)案例:
① 求(1+3+...+49+53+...+100)的和
分析:做1+2+...+100的循環,當i=51時,跳過這次循環,但是繼續整個循環,結果為:sum=2449
② 求(1+3+...+49)的和
分析:做1+2+...+100的循環,當i=51時,跳出整個循環,結果為:sum=625
(1)作用
用於將參數列表list左移指定次數,最左端的那個參數就從列表中刪除,其後邊的參數繼續進入循環
(2)案例:
① 創建指定的多個用戶
分析:如果沒有輸入參數(參數的總數為0),提示錯誤並退出;反之,進入循環;若第一個參數不為空字元,則創建以第一個參數為名的用戶,並移除第一個參數,將緊跟的參數左移作為第一個參數,直到沒有第一個參數,退出。
② 列印直角三角形的字元
true 永遠返回成功結果
: null command ,什麼也不幹,返回成功結果
false 永遠返回錯誤結果
創建無限循環
while true ;do
循環體
done
(1)用法
for name in 列表 ;do
{
循環體
}&
done
wait
(2)實例:
搜尋自己指定ip(子網掩碼為24的)的網段中,UP的ip地址
分析:請輸入一個IP地址例192.168.37.234,如果格式不是0.0.0.0 則報錯退出;正確則進入循環,IP變數的值為192.168.37. i的范圍為1-254,並行ping 192.168.37.1-154,ping通就輸出此IP為UP。直到循環結束。
trap ' 觸發指令' 信號,自定義進程收到系統發出的指定信號後,將執行觸發指令,而不會執行原操作
trap '' 信號,忽略信號的操作
trap '-' 信號,恢復原信號的操作
trap -p ,列出自定義信號操作
信號可以3種表達方法:信號的數字2、全名SIGINT、縮寫INT
1) SIGHUP: 無須關閉進程而讓其重讀配置文件
2) SIGINT: 中止正在運行的進程;相當於Ctrl+c
3) SIGQUIT: 相當於ctrl+
9) SIGKILL: 強制殺死正在運行的進程
15) SIGTERM :終止正在運行的進程(默認為15)
18) SIGCONT :繼續運行
19) SIGSTOP :後台休眠
9 信號,強制殺死,捕獲不住
① 列印0-9,ctrl+c不能終止
分析:i=0,當i<10,每休眠1秒,i+1,捕獲2信號,並執行echo press ctrl+c
② 列印0-3,ctrl+c不能終止,3之後恢復,能終止
分析:i=0,當i3時,解除捕獲2信號。
1、生成隨機字元 cat /dev/urandom
生成8個隨機大小寫字母或數字 cat /dev/urandom |tr -dc [:alnum:] |head -c 8
2、生成隨機數 echo $RANDOM
確定范圍 echo $[RANDOM%7] 隨機7個數(0-6)
echo $[$[RANDOM%7]+31] 隨機7個數(31-37)
3、echo列印顏色字
echo -e "33[31malong33[0m" 顯示紅色along
echo -e "33[1;31malong33[0m" 高亮顯示紅色along
echo -e "33[41malong33[0m" 顯示背景色為紅色的along
echo -e "33[31;5malong33[0m" 顯示閃爍的紅色along
color=$[$[RANDOM%7]+31]
echo -ne "33[1;${color};5m*33[0m" 顯示閃爍的隨機色along
㈡ Linux中使用shell腳本訪問sftp伺服器,密鑰不會用
密鑰用於建立SSH互信環境,本地公鑰需要分發到遠端伺服器目錄,可實現本地主機到遠端SFTP伺服器的無訪問.
1. 生成密鑰對,取得本地公鑰,如:id_dsa.pub
2. 登錄到遠端SFTP伺服器用戶HOME目錄的.ssh文件夾
3. 將id_dsa.pub的內容追加到遠端伺服器.ssh/autorized_keys文件尾部並保存
4. 嘗試與本地主機用戶SFTP到遠程伺服器: sftp user@server_addr
㈢ 關於Linux Shell腳本的問題、
你非得把密鑰生成到默認文件裡面,而且用默認自動生成的密碼嗎?
如果是這樣的話,以下代碼就行,兩個test之間的回車是必須的,而且記得換成linux格式的,
或者你用vi編輯,不要再windows上編寫。
#!/bin/bash
ssh-keygen -t rsa << test
test
ps:
不過我感覺這樣寫很惡心,如果不是非要默認生成:
ssh-keygen -t rsa -f /home/test -N test001
-f 指定密鑰文件名,生成密鑰到哪個文件里
-N 密碼
㈣ linux 郵件怎麼取消默認密鑰環
Linux取消默認密鑰環方法如下,以Ubuntu解除"輸入密碼以解鎖密鑰環」為例:
1.打開終端,輸入:sudo apt-get install libpam-keyring
2.新建一個 Bash 腳本,內容如下:
#!/bin/sh
exec echo -n "MyKeyringPassword" | /usr/lib/libpam-keyring/pam-keyring-tool -u -s
#其中 MyKeyringPassword 是密鑰環解鎖的密碼,默認是系統登錄密碼。
3.給剛才的 Bash 腳本文件加上可執行許可權。
4.打開系統->首選項->啟動應用程序,添加剛才的腳本為開機自啟動。
㈤ Linux裡面求互相免密鑰腳本
生成密鑰 ssh-keygen -t rsa (一直回車就行)2:將公鑰復制進入一個名字為"authorized_keys"中。 這個名字是默認的,不能改變,因為系統就是根據這個文件來判斷.
㈥ linux下怎麼運行bash腳本
linux下運行bash腳本的方法如下:
首先在桌面右鍵點擊,選擇在終端中打開,打開命令行;
在命令行中輸入 cd 腳本路徑,進入腳本所在目錄;
使用chmod +x 腳本名命令給文件添加可執行許可權;
使用sh 腳本名或者 ./腳本名的方法來運行bash腳本。
㈦ shell腳本中解決SCP命令需要輸入密碼的問題
答案:使用密鑰文件。
這里假設主機A(192.168.1.3)用來獲到主機B(192.168.1.4)的文件。
在主機A上執行如下命令來生成配對密鑰:
ssh-keygen -t rsa
遇到提示回車默認即可,公鑰被存到用戶目錄下.ssh目錄,比如root存放在:
/root/.ssh/id_rsa.pub
將 .ssh 目錄中的 id_rsa.pub 文件復制到 主機B 的 ~/.ssh/ 目錄中,並改名為 authorized_keys,
到主機A中執行命令和主機B建立信任,
例(假設主機B的IP為:192.168.100.4):scp ~/.ssh/id_rsa.pub 192.168.100.4:/root/.ssh/authorized_keys
下面就可以用scp、ssh命令不需要密碼來獲取主機B的文件了
ssh 192.168.100.4 回車就不需要密碼了。
註:其實id_rsa.pub內容添加到對方機器的authorized_keys中就行了
拷貝其他伺服器附件歸集到主伺服器bash shell
[ [email protected] ~]$ cat .bash
scp -r [email protected] :/home/test1/tomcat/webapps/app01/WEB-INF/attachment/* /home/test/tomcat/webapps/app01/WEB-INF/attachment/
echo "done! app02. finish"
scp -r [email protected] :/home/test2/tomcat/webapps/app01/WEB-INF/attachment/* /home/test/tomcat/webapps/app01/WEB-INF/attachment/
echo "done! app03. finish"
增加定時任務
crontab -e
類似編輯vi 在裡面粘貼
---shift+zz保存,重啟crond服務
root]# service crond restart
引用自 https://www.cnblogs.com/java2sap/p/11424587.html
㈧ shell腳本上
| 對於初學者而言,因為沒有實戰經驗,寫不出來 Shell 腳本 很正常,如果工作了幾年的運維老年還是寫不出來,那就是沒主動找需求,缺乏練習,缺乏經驗。針對以上問題,總結了30個生產環境中經典的 Shell 腳本 ,通過這些需求案例,希望能幫助大家提升Shell編寫思路,掌握編寫技巧。 |
先了解下編寫Shell過程中注意事項:
<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">開頭加解釋器:#!/bin/bash
語法縮進,使用四個空格;多加註釋說明。
命名建議規則:變數名大寫、局部變數小寫,函數名小寫,名字體現出實際作用。
默認變數是全局的,在函數中變數local指定為局部變數,避免污染其他作用域。
有兩個 命令 能幫助我調試腳本:set -e 遇到執行非0時退出腳本,set-x 列印執行過程。
寫腳本一定先測試再到生產上。
</pre>
1、獲取隨機字元串或數字
<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">獲取隨機8位字元串:
方法1:
471b94f2
方法2:
vg3BEg==
方法3:
ed9e032c
獲取隨機8位數字:
方法1:
23648321
方法2:
38571131
方法3:
69024815
cksum:列印CRC效驗和統計位元組
</pre>
2、定義一個顏色輸出字元串函數
<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">方法1:
function echo_color() {
if [ 2 33[0m"
elif [ 2 33[0m"
fi
}
方法2:
function echo_color() {
case 2[0m"
;;
red)
echo -e "[31;40m$2[0m"
;;
*)
echo "Example: echo_color red string"
esac
}
使用方法:echo_color green "test"
function關鍵字定義一個函數,可加或不加。
</pre>
3、批量創建用戶
<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">#!/bin/bash
DATE= 1 == "green" ]; then
echo -e "[32;40m 1 == "red" ]; then
echo -e "[31;40m$2[0m"
fi
}
if [ -s USER_FILE {DATE}.bak
echo_color green " {USER_FILE}- USER_FILE
echo "----------------" >> USER &>/dev/null; then
PASS= RANDOM |md5sum |cut -c 1-8)
useradd PASS |passwd --stdin USER USER_FILE
echo " USER User already exists!"
fi
done
</pre>
4、檢查軟體包是否安裝
<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">#!/bin/bash
if rpm -q sysstat &>/dev/null; then
echo "sysstat is already installed."
else
echo "sysstat is not installed!"
fi
</pre>
5、檢查服務狀態
<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">#!/bin/bash
PORT_C= (ps -ef |grep ntpd |grep -vc grep)
if [ PS_C -eq 0 ]; then
echo "內容" | mail -s "主題" [email protected]
fi
</pre>
6、檢查主機存活狀態
<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">方法1:將錯誤IP放到數組裡面判斷是否ping失敗三次
IP_LIST="192.168.18.1 192.168.1.1 192.168.18.2"
for IP in NUM -le 3 ]; do
if ping -c 1 IP Ping is successful."
break
else
# echo " NUM"
FAIL_COUNT[ IP
let NUM++
fi
done
if [ {FAIL_COUNT[1]} Ping is failure!"
unset FAIL_COUNT[*]
fi
done
方法2:將錯誤次數放到FAIL_COUNT變數裡面判斷是否ping失敗三次
IP_LIST="192.168.18.1 192.168.1.1 192.168.18.2"
for IP in IP >/dev/null; then
echo " IP Ping is failure FAIL_COUNT -eq 3 ]; then
echo "$IP Ping is failure!"
fi
done
方法3:利用for循環將ping通就跳出循環繼續,如果不跳出就會走到列印ping失敗
ping_success_status() {
if ping -c 1 IP Ping is successful."
continue
fi
}
IP_LIST="192.168.18.1 192.168.1.1 192.168.18.2"
for IP in IP Ping is failure!"
done
</pre>
7、監控CPU、內存和硬碟利用率
<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">1)CPU
藉助vmstat工具來分析CPU統計信息。
DATE= (ifconfig eth0 |awk -F [ :]+ /inet addr/{print (vmstat |awk NR==3{print (vmstat |awk NR==3{print (vmstat |awk NR==3{print (vmstat |awk NR==3{print (( SY))
if [ DATE
Host: USE
" | mail -s "CPU Monitor" $MAIL
fi
2)內存
DATE= (ifconfig eth0 |awk -F [ :]+ /inet addr/{print (free -m |awk /Mem/{print (free -m |awk /Mem/{print 6- (( USE))
if [ DATE
Host: TOTAL,Use= FREE
" | mail -s "Memory Monitor" $MAIL
fi
3)硬碟
DATE= (ifconfig eth0 |awk -F [ :]+ /inet addr/{print (fdisk -l |awk -F [: ]+ BEGIN{OFS="="}/^Disk /dev/{printf "%s=%sG,", 3} )
PART_USE= 1,int( 6} )
for i in (echo (echo (echo USE -gt 80 ]; then
echo "
Date: IP
Total: PART= MOUNT)
" | mail -s "Disk Monitor" $MAIL
fi
done
</pre>
8、批量主機磁碟利用率監控
<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">前提監控端和被監控端SSH免交互登錄或者密鑰登錄。
寫一個配置文件保存被監控主機SSH連接信息,文件內容格式:IP User Port
HOST_INFO=host.info
for IP in 1} (awk -v ip= 1{print HOST_INFO)
PORT= IP ip== 3} PORT IP df -h > (awk BEGIN{OFS="="}/^/dev/{print 5)} USE_RATE_LIST; do
PART_NAME= {USE_RATE#*=}
if [ PART_NAME Partition usage $USE_RATE%!"
fi
done
done
</pre>
9、檢查網站可用性
<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">1)檢查URL可用性
方法1:
check_url() {
HTTP_CODE= 1)
if [ 1 Access failure!"
fi
}
方法2:
check_url() {
if ! wget -T 10 --tries=1 --spider $1 >/dev/null 2>&1; then
}
使用方法:check_url www..com
2)判斷三次URL可用性
思路與上面檢查主機存活狀態一樣。
方法1:利用循環技巧,如果成功就跳出當前循環,否則執行到最後一行
check_url() {
HTTP_CODE= 1)
if [ URL_LIST; do
check_url URL
check_url URL Access failure!"
done
方法2:錯誤次數保存到變數
URL_LIST=" www..com www.agasgf.com "
for URL in (curl -o /dev/null --connect-timeout 3 -s -w "%{http_code}" HTTP_CODE -ne 200 ]; then
let FAIL_COUNT++
else
break
fi
done
if [ URL Access failure!"
fi
done
方法3:錯誤次數保存到數組
URL_LIST=" www..com www.agasgf.com "
for URL in NUM -le 3 ]; do
HTTP_CODE= URL)
if [ NUM]= NUM下標, {#FAIL_COUNT[ ]} -eq 3 ]; then
echo "Warning: $URL Access failure!"
unset FAIL_COUNT[ ] #清空數組
fi
done
</pre>
10、檢查Mysql主從同步狀態
<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">#!/bin/bash
USER=bak
PASSWD=123456
IO_SQL_STATUS= USER -p 0} ) #gsub去除冒號後面的空格
for i in {i%:*}
THREAD_STATUS= THREAD_STATUS" != "Yes" ]; then
echo "Error: MySQL Master-Slave THREAD_STATUS!"
fi
done
</pre>
動手練一練,讓你的Shell功底上升一個段位!
㈨ windows怎麼提取bash腳本
熱門頻道
首頁
博客
研修院
VIP
APP
問答
下載
社區
推薦頻道
活動
招聘
專題
打開CSDN APP
Copyright © 1999-2020, CSDN.NET, All Rights Reserved
打開APP
windows執行bash腳本 原創
2022-03-22 19:11:19
代碼小軒
碼齡5年
關注
Windows執行shell腳本
1、 安裝Git
在這里插入圖片描述
2、 查看Git環境變數
右擊電腦-屬性-高級-高級系統設置
在這里插入圖片描述
已設置環境變數
在這里插入圖片描述
在這里插入圖片描述
3、 打開Git bash
定位到sh文件所在目錄,直接使用bash 或sh 來執行bash shell腳本:
在這里插入圖片描述
打開CSDN APP,看更多技術內容
如何在Windows中運行bash_看,月亮在跳舞的博客
為了運行bash,首先要進行幾步操作。首先,需要獲得Windows10的build 14316。 安裝內測版本之後,用戶需要切換到開發者模式,從設置>更新(Settings > Updates),安全>開發者(Security > For Developers)打開新的設置頁面,選擇「Windows Subsystem...
繼續訪問
windows 使用bash_Neil_001的博客_windowns bash
Windows執行shell腳本 1、 安裝Git 2、 查看Git環境變數 右擊電腦-屬性-高級-高級系統設置 已設置環境變數 3、 打開Gitbash定位到sh文件所在目錄,直接使用bash或sh 來執行bashshell腳本: windowns server 2012 部署mysql5.7,並修改初始密...
繼續訪問
最新發布 在Linux中執行shell(bash)腳本的方法 2208筆記
用source命令執行腳本文件時,是在當前Shell進程中執行,而不是像./與sh方式一樣在新的Shell進程中執行,因此早先設置的變數在腳本里是可以讀取到的。source是Shell(准確地說是Bash)的內置命令,在Bourne Shell中的等價命令是一個點.,即點命令。後, 就能在任意文件夾, 像執行命令一樣, 直接輸入腳本名就能執行 , 會在子Shell中執行。按路徑直接執行,需要腳本文件有可執行許可權, 一般自己創建的文件有讀寫許可權,但沒有可執行許可權。命令直接在當前shell執行腳本。
繼續訪問
CmdBash:CMDBASH命令行工具
CmdBash CMD/BASH命令行工具 作者 zlb 運行環境 適用於jdk1.8
如何在Windows中運行bash
當微軟宣布,將在Windows10上面支持bash時,所有的Unix命令行用戶都為之雀躍了。上周三,微軟發布了一個測試版本,開始支持了這項功能。為了運行bash,首先要進行幾步操作。首先,需要獲得Windows10的build 14316。安裝內測版本之後,用戶需要切換到開發者模式,從設置>更新(Settings > Updates),安全>開發者(Security > F...
繼續訪問
在windows中利用gitbash並行執行命令
rush並行sh語句
繼續訪問
windows10bash_Windows 10上的Bash
windows10bash 因為我使用基於Linux和Windows的計算機進行開發,所以我經常希望自己在Windows環境中可以使用一些方便的命令行Linux工具。 Cygwin , PowerShell和用於模擬Linux工具的 自定義Groovy腳本起到了幫助作用,但是最近得知Windows 10上的Ubuntu上的Bash可用我感到非常驚訝。 在本文中,我簡要總結了使bash在Wind...
繼續訪問
VsCode | 在 Windows 上調試Bash腳本
如何使用VsCode調試Bash腳本
繼續訪問
熱門推薦 windows使用bash指令
方法只適用於64位版本的Windows 10 1. 打開設置應用程序和頭部更新和安全>對於開發。在這里啟動「開發者模式」開關,使開發者模式 2. 接下來,打開控制面板,單擊「程序」,然後單擊「打開Windows功能打開或關閉」在程序和功能。在這里啟用「Windows子系統為Linux(測試版)」列表中的選項,並單擊「確定」。 執行此操作後,系統會提示您重新啟動計算機。點擊「立即...
繼續訪問
Windows 10上的Bash
因為我使用基於Linux和Windows的機器進行開發,所以我經常希望自己在Windows環境中擁有一些方便的命令行Linux工具。 Cygwin , PowerShell和編寫用於模擬Linux工具的 自定義Groovy腳本起到了幫助作用,但是最近得知Windows 10上的Ubuntu上的Bash可用,令我感到驚喜。 在本文中,我簡要總結了使bash在Windows上可用的一些步驟。 在...
繼續訪問
Windows環境運行shell腳本
Windows環境運行shell腳本
繼續訪問
解決方案:Win10如何使用bash批處理命令
問題描述:無法將「bash」項識別為 cmdlet、函數、腳本文件或可運行程序的名稱。請檢查名稱的拼寫,如果包括路徑,請確保路徑正確,然後再試一次。 'bash' 不是內部或外部命令,也不是可運行的程序或批處理文件。......
繼續訪問
windows python執行bash命令
windows的cmd命令是很難用的,比如想通過管道來對輸出作下切割,就比較繁瑣;然而在bash shell里,cut命令就能輕松搞定,但在windows下,如何執行bash命令呢?首先要安裝bash,不過,作為開發者,一般都會安裝git,它自帶了bash命令。............
繼續訪問
win python 運行bash腳本_在window中模擬執行linux 腳本
現在後端環境常常是linux系統,但很多情況下,我們的開發環境是Window系統,為了能在window下模擬linux的腳本,而且也能夠ssh到linux server,我們可以在window系統中安裝這樣一個模擬環境 cmder,以下舉例說明如何使用cmder腳本bash 腳本:test.sh#!/bin/bash./test.py -s http://localhost:8008/foo -i...
繼續訪問
windows bash
1 echo 和 @ 回顯命令 @ #關閉單行回顯 echo off #從下一行開始關閉回顯 @echo off #從本行開始關閉回顯。一般批處理第一行都是這個 echo on #從下一行開始打開回顯 echo #顯示當前是 echo ...
繼續訪問
win python 運行bash腳本_在Windows上從Python執行bash腳本
我正在嘗試編寫一個python腳本,它將在我的Windows機器上執行bash腳本。到目前為止,我一直在使用Cygwin終端,因此執行bash腳本RunModels.scr就像./RunModels.scr一樣簡單。現在我希望能夠利用Python的subprocess,但是由於Windows沒有處理bash的內置功能,我不知道該怎麼做。我試圖模擬./RunModels.scr < valid...
繼續訪問
不用安裝虛擬機,直接在Windows上面運行Linux Bash Shell,嗯!真香!!!
每次安裝虛擬機,打開虛擬機,一頓繁瑣的界面操作,等待時長,讓我很煩躁,對於熟悉開發工程師,在Linux上面敲擊感和運行等等都要比Windows上面好很多倍,那麼怎麼在Windows上面直接運行Bash shell呢?下面對詳細過程盡心了描述,請耐心觀看。 1. 首先打開我們的開發者模式 1.1 直接在搜索框輸入開發者,然後Enter就可以直接進入啦 1.2 或者按住win(鍵盤Ctrl和Alt中間哪個Windows圖標)+x,然後選擇「設置」,然後選擇「更新和安全」,選擇開發者選項就行啦 1.3 打開
繼續訪問
windows下如何運行shell腳本
windows下如何執行shell腳本
繼續訪問
Win10系統開啟Linux Bash命令行
微軟在推送的Win10一周年更新預覽版14316中,該版本中包含了大部分已宣布內容,其中包括了一項重要的原生支持Linux Bash命令行支持。2、搜索「程序和功能」,選擇「開啟或關閉Windows功能」,開啟Windows Subsystem for Linux (Beta),並重啟系統。或Mac電腦就可以在Win10上使用Bash,那麼如何在Win10系統上開啟Linux Bash命令行呢?大家可以嘗試下面的方法來解決這個問題。3、安裝Bash,需要開啟命令行模式,然後輸入「bash」,即可使用。...
繼續訪問
怎樣在window下運行linux bash shell腳本
怎樣在window下運行linux bash shell
繼續訪問
windows下安裝bash bash的目錄位置
windows下安裝bash bash的目錄位置 C:\Users\張政\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs
繼續訪問
WINDOWS命令和批處理
轉自:http://proclsj999.javaeye.com/blog/206853 另外查看WIndows和Linux的所有命令:http://www.ss64.com/nt/。 該教程一共分為4大部分,第一部分是批處理的專用命令,第二部分是特殊的符號與批處理,第三部分是批處理與變數,第四部分是完整案例。 %~dp0 表示當前bat所在的目錄。第一部分:批處理的專用命令 批處理文...
繼續訪問
windows bash
bash
寫評論
評論
6
點贊
踩
分享
㈩ 如何用bash腳本實現批量修改密碼復雜度
sed -i 's/\(password requisite pam_cracklib.so\).*/\1 try_first_pass retry=1 minlen=8 dcredit=-1 ocredit=-1 lcredit=-1/' /etc/pam.d/system-auth
sed -i 's/\(password sufficient pam_unix.so\).*/\1 md5 shadow nullok try_first_pass use_authtok remember=5/' /etc/pam.d/system-auth