云计算第二阶段shell脚本
pstree ? ? ? ? ? ? ? #查看進程樹
cat /etc/shells ? ? ? #查看系統安裝的所有shell解釋器
yum -y install ksh ? ? ? ? ? ? ? ? ? ? #安裝新的解釋器
?
一、shell腳本的結構
1、聲明解釋器 ? ? ? ? ? ? ? ? #!/bin/bash
2、注釋腳本的功能,變量含義,每個步驟亞解決的問題。
3、代碼內容,命令行
二、腳本執行方式
1、賦予腳本文件執行權限,然后用絕對路徑或者相對路徑運行該文件 ? ? ? ?#chmod a+x 腳本文件
2、使用解釋器直接執行腳本文件。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?# bash ? 腳本文件絕對路徑
3、使用source命令執行腳本。 #source 腳本文件絕對路徑 ? ? ? source可以用“.”替代。
三、一鍵創建yum倉庫
?
?
四、一鍵搭建vsftpd腳本
?
?
五、變量類型
1、自定義變量,變量名稱可以使用字母、數字、下劃線,不能以數字開頭,不能使用特殊字符。
2、環境變量
echo $USER ? ? ?查看當前用戶
echo $UID ? ? ? 查看當前用戶的uid
echo $HOME ? ? ?查看當前用戶的家目錄
echo $PATH ? ? ?命令程序的存放路徑
3、位置變量
$1 $2 $3 $4 $5
4、預定義變量
?
1 #!/bin/bash2 echo $1 #位置變量1,執行腳本時,后面跟的第1個參數3 echo $2 #位置變量1,執行腳本時,后面跟的第1個參數 4 echo $3 #位置變量1,執行腳本時,后面跟的第1個參數5 echo $$ #當前腳本的進程號6 echo $# #位置變量的個數7 echo $* #所有的位置變量8 echo $? #上一條指令的結果,0是正常,非0是異常9 echo $0 #執行腳本的名字 10 echo $! #最后一條放入后臺的程序的進程號?
env:查看所有的環境變量
?
set:查看所有的變量
六、引號的用法
雙引號:界定范圍
單引號:界定范圍,屏蔽特殊符號
反引號:將命令結果賦值給變量,也就是獲取指令的結果,$()也有相同的效果
七、終端回顯
1、read命令,讀取用戶輸入的內容
命令:read -p ? "提示文字" ?變量名 ? ? ? ? ? ? ? ? ?# read -p "請輸入用戶名" num ? ? ? ? ? ? ?# -p添加文字提示符 ? ? ? num是變量
2、stty命令,關閉和打開回顯
stty -echo ? ?關閉屏幕回顯
stty echo ? ? 打開屏幕回顯
3、export ? ? 發布全局變量
a=10 ? ? ? ? ?#自定義變量,局部變量
export a ? ? ?#將自定義變量發布為全局變量
export -n a ? #撤銷全局變量,恢復為局部變量
八、shell中數值運算
1、expr # expr 1 + 1 ? ? ? ? ? ?注意添加空格
2、echo $[運算內容] # echo $[1+1]
3、let ?可以改變變量本身的值,不顯示結果。
a=4
let a-- ? ? ? # a--相當于a = a - 1,a++相當于a=a+1
$a ? ? ? ? ? ? ? ? ? ? 輸出結果為3
4、bc ? 支持小數計算
echo "10/3" |bc # 把要計算的公式傳遞給bc進行計算
echo "scale=3;10/3" |bc ? ? ? ? ? ? #定義小數點后面的長度是3位?
?
sed
流式編輯器,可以非交互式修改文件,逐行操作
使用方法:
一、前置命令|sed 選項 ?(定址符)指令
二、sed 選項 (定址符)指令 文本
?
選項:
-n 屏蔽默認輸出
-r 支持擴展正則
-i 寫入文件
指令:
p 輸出指定內容
?
?
?
?
df -h |sed -n 'p' ? ? ? ? ? ? ? ? ? #將df-h的內容交給sed輸出到屏幕。-n 屏蔽默認輸出,p輸出指定的內容。
sed -n 'p' test.txt ? ? ? ? ? ? ? ? #將文件test.txt的內容輸出
sed -n '1p' test.txt ? ? ? ? ? ? ? ? #將文件test.txt的第一行內容輸出
sed -n '1,2p' test.txt ? ? ? ? ? ? ? ? #將文件test.txt的第一行和第二行內容輸出
sed -n '4,+7p' test.txt ? #將文件test.txt從第4行開始再輸出7行。
sed -n '4;7p' test.txt ? ? #將文件test.txt輸出第4行,第7行。
sed -n '1~2p' test.txt #將文件test.txt從第一行開始每隔2行輸出一次(也就是顯示奇數行)
sed -n '/正則表達式/p' test.txt? #支持正則表達式 ? 用//匹配正則表達式
sed -n '$=' test.txt #顯示文本最后一行的行號
sed -n '=' ?test.txt? #顯示文本的所有的行號
sed ?'1d' test.txt ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #刪除文本test.txt的第一行
sed -r '/bash|nologin/d' test.txt #刪除文本中包函bash和nologin的行,-r ? 表示支持正則表達式
?替換
sed 's/old/new/' test.txt # 把文本中每一行的第一個old字符串替換成new字符串
sed 's/old/new/g' test.txt             #把文本中的old字符替換成new字符
sed '3s/old/new/2' test.txt #把文本中第3行的第2個old字符替換成new字符。
sed 's#old#new#' test.txt ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#當正則表達式中含有/,替換符沖突可以用其他的特殊字符來代替/。/是替換符
sed -r 's/^(a)(.*)(.)$/\1\2\3/' ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #位置調換?
?
?
轉載于:https://www.cnblogs.com/mython/p/11365517.html
總結
以上是生活随笔為你收集整理的云计算第二阶段shell脚本的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 后端技术:消息队列MQ/JMS/Kafk
 - 下一篇: 【钉钉机器人 + 爬虫 + celery