SHELL自動化運維day1

一、註釋

單行註釋:#

多行註釋:  :<<! ....!

#!/bin/bash
#單行註釋
echo '下一行是多行註釋'
:<<!
echo '1'
!
echo '4'
echo "我的腳本名稱是:file.sh"
echo "我的腳本名稱是:$0"

二、執行腳本

1、執行方式

1.1、bash /path/to /script-name  或 /bin/bash/path/to/script-name(強烈推薦使用)

1.2、/path/to/script-name  或  ./script-name  (當前路徑下執行腳本)

1.3、source script-name  或 . script-name(注意‘.’點號),主要用於環境變量一致

2、變量

變量分爲本地變量、全局變量、shell內置變量

2.1、本地變量:當前系統的某個環境下才能生效的變量,作用域小

         本地變量分爲:普通變量和命令變量。

普通變量:

方式一:變量名=變量值,變量必須是一個整體,中間沒有特殊字符

方式二:變量名='變量名',看到什麼就輸出什麼

方式三:變量名="變量值",可以解析變量
命令變量:

方式一:變量名='命令'

方式二:變量名=$(命令)

執行流程:

1、執行‘或者$()範圍內的命令

2、將命令執行的結果,賦值給新的變量名

2.2、全局變量

全局變量就是當前系統的所有環境下都能生效的變量

env查看全局變量

定義全局變量的方式:

方式一:變量=值   export 變量

方式二:export 變量=值

2.3、變量查看和取消

查看變量:

方式一:$變量名

方式二:"$變量名"

方式三:${變量名}  使用頻率高

方式四:"${變量名}"  標準使用方式

取消變量:unset 變量名

2.4、shell內置變量

$0 :獲取當前shell腳本的文件名,也包括腳本路徑

$n :獲取當前執行shell腳本的第n個參數值,  當n大於10爲${10}

#!/bin/bash
# $n 獲取第n個位置參數
echo "當前文件名爲:$0"
echo "第一個位置參數是:$1"

 

三、shell進階

可以通過$?判斷是否執行成果,0成功,非0失敗

A:test條件表達式

B:[ 條件表達式 ]

3.1、條件表達式

&&:命令1 && 命令2。命令1成立,命令2纔會執行

[ 1 == 1 ] && echo "hello"

||:命令1 || 命令2。命令1成功,命令2不執行,命令1失敗,命令2執行

[ 1 == 2 ] || echo "hello"

 

-f :判斷輸入內容是否是一個文件

[ -f zhushi.sh ] && echo "是一個文件"

-d:判斷文件是否爲目錄

[ -d aa ] && echo "是一個目錄"

-x :判斷輸入文件是否可執行

[ -x zhushi.sh ] || echo "沒有可執行權限"

數值操作符:

字符串比較:

str1 == str2   字符串一直

str1 != str2 不一致

3.2、計算表達式

方式一:$(())

方式二:let 計算表達式:

echo $((100/4))

let i=100/4
echo $i

3.3、linux常見符號

3.3.1、重定向

常見重定向符號>和>>

>符號:將符號左側的內容,以覆蓋的方式輸入到右側文件

echo "nihao" >a.txt

>>符號:追加

echo "nihao" >>a.txt

3.3.2、管道符|

命令1|命令2:管道符左側命令執行後的結果,傳遞給右側命令2使用

env | grep SHELL

3.3.3、後臺展示符號 &

&就是將一個命令從前臺轉到後臺執行

sleep 2 &

全部信息符號 :2>&1

1:表示正確輸出的信息

2:表示錯誤的輸出信息

/bin/bash ceshi.sh 1>log.txt 2>errorlog.txt
/bin/bash ceshi.sh > log.txt 2>&1

3.3、linux系統垃圾桶

/dev/null 是linux下的一個設備文件

這個文件夾類似於一個垃圾桶,特點是容量無限大

四、常見命令詳解

grep、sed、awk、find

4.1、grep

grep是強大的文本搜索命令

-c:只輸出匹配的行數

-n:先是匹配行及行號

-v:顯示不包含匹配文本的所有行

4.2、sed

sed行文件編輯工具 ,編輯文件以行爲單位的

4.3、awk

可以以行和列爲單位處理文件

4.4、find

find [路徑] [參數] [關鍵字]

-name 按照文件名查找

-perm 按照文件權限查找

-user 按照文件屬主查找

-group 按照文件所屬組來查找文件

-type 查找某類型文件

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章