Bash1

blob.png

blob.png

blob.png做語法測試,沒有消息就是最好的消息

blob.png加權限

blob.png

blob.png

單個語句的錯誤并不妨礙之后的語句,但是邏輯錯誤會導致后續語句執行不了

bash:

    -n:語法測試

    -x:模擬單步執行

變量類別:

    本地變量

    環境變量:

        export:導出,作用于當前進程及其子進程

    局部變量

    位置變量:到達兩位數用${10}

2、

blob.png

blob.png

命令引用:

    1、“使用反引號

    2、使用$()

blob.png

blob.png

3、

blob.png

blob.png

4、寫一個腳本,接受一個參數作為用戶名,此腳本可創建此用戶,并且其密碼同用戶名

blob.png

blob.png

blob.png

blob.png

5、$#記錄參數的個數,$*所有的參數,$@所有的參數(當成一個參數)

blob.png

blob.png

blob.png

blob.png

6、

blob.png

blob.png

blob.png

shift [n]:n默認為1

blob.png

blob.png

bash的循環語句:

    for:遍歷有限的元素列表

    while

    until

for語句格式:

    for var_name in list;do

        循環體

    done

生成數值列表:

    1、{start..end}

    2、seq 開始 [步進] 結束

blob.png

練習:創建10個用戶,user301–user310

for userNo in {301..310}

for userNo in $(seq 301 310);do

    useradd user${userNo}

done

blob.png

blob.png

blob.png

練習:創建目錄/tmp/dir-當前時間,在此目錄中創建10個空文件,分別為file1-file10

blob.png

blob.png

練習:

1、創建用戶tuser1-tuser9

2、創建目錄/tmp/dir-當前時間

3、在/tmp/dir-當前時間目錄中創建9個空文件

4、將file101的屬主改為tuser1,依次類推

blob.png

blob.png

blob.png

bash中的算術運算

declare

    -i:整型變量

    -x:環境變量,類似于export

let varName=算術表達式

varName=$[算術表達式]

varName=$((算術表達式))

varName=`expr $num1 + $num2`

練習:計算100以內所有正整數之和

blob.png

blob.png

練習:分別計算100以內所有奇數和偶數之和

blob.png

blob.png

練習:計算當前系統所有用戶的id之和

blob.png

blob.png

練習:計算/etc/rc.d/rc.sysinit /etc/init.d/functions /etc/issue三個文件中的字符數之和

blob.png

blob.png

練習:新建用戶tmpuser1-tmpuser10,并計算他們的id之和

blob.png

blob.png

位置參數:

blob.png

blob.png

blob.png

blob.png

$#:參數個數

$*,$@:引用所有的位置參數

blob.png

blob.png

交互式腳本:

blob.png

blob.png

給變量以默認值:
varName=${varName:-value}

如果varName不空,則其值不變,否則value則作為其值

blob.png

${varName:-value}

blob.png

超時和默認值:

blob.png

blob.png

練習:通過鍵盤給定一個文件的路徑,來判斷文件內容的類型

blob.png

blob.png

練習:通過鍵盤給定一個目錄路徑,默認為“/”,來判斷目錄下文件內容的類型

blob.png

blob.png

算術運算:

    let varName=value

    declare -i varNmae=value

    declare -x全局變量

bash實現算術運算的方式:(不支持小數運算)

    let varName=expression

    $[expression]

    $((expression))推薦

    expr expression 中間必須加空格

blob.png    

        a=2

        b=4

        let c=$a+$b

        let a++

字串連接:

變量引用后方跟直接字串時,變量名要加{}

blob.png

變量命名:第一個單詞首字母小寫,其他單詞首字母大寫

練習:

1、腳本可以接受一個以上的文件路徑作為參數

2、顯示每個文件所擁有的行數

3、顯示本次共對多少個文件執行了行數統計

4、顯示所有文件的總行數

blob.png

blob.png

練習:

新建10個用戶,并求他們的id之和

blob.png

blob.png

練習:

分別統計/etc/rc.d/rc.sysinit /etc/rc.d/init.d/functions /etc/inittab以#開頭的行和空白行

blob.png

blob.png

練習:

顯示當前系統上所有默認shell為bash的用戶名、uid及所有此類用戶的uid之和

blob.png

blob.png

邏輯運算:

    與運算:

        真,假:

            真&&真=真

            真&&假=假

            假&&真=假

            假&&假=假

    或運算:

        真,假:

            真||真=真

            真||假=真

            假||真=真

            假||假=假

    非運算:

        真,假:

            !真=假

            !假=真

    亦或運算:操作數相同為假、相反為真

比較運算:>,<,>=,<=,==,!=

條件測試:

[ expr ]:命令

[[ expr ]]:關鍵字

test expr

測試類型:根據比較時的操作數的類型

    整數測試:整數比較

    字符串測試

    文件測試:判斷文件的存在及屬性等

    注意:比較運算通常只在同一種類型之間進行

    整型測試:

        -gt:大于

        -lt:小于

        -ge:大于等于

        -le:小于等于

        -eq:等于

        -nq:不等

    字符測試:

        >:大于

        <:小于

        <=:小于等于

        >=:大于等于

        !=:不等

        -n:是否不空,不空為真,空為假

        -z:是否為空,空為真,不空為假

選擇:

    if和case

if:三種格式

    1、if 測試條件;then

        選擇分支

      fi

    if ! id $username &> /dev/null;then

        useradd $username

    fi

    練習:寫一個腳本,接受一個參數,這個參數是用戶名,如果用戶存在,則顯示其id號

blob.png

blob.png

改進版:

blob.png

blob.png

    2、if 測試條件;then

        分支1

     else:

        分支2

    fi

blob.png

blob.png

練習:通過命令行傳遞2個整數參數給腳本,腳本返回其最大值

blob.png

blob.png

練習:通過命令行傳遞任意個整數給腳本,腳本可以返回其最大值

blob.png

blob.png

練習:通過命令行給定一個文件路徑,判斷如果此文件中存在空白行,則顯示其空白行的總數,否則顯示無空白行

如果把命令執行成功與否當做條件,則if語句后必須只跟命令本身,而不能引用

blob.png

blob.png

    3、if 條件1;then

        分支1

     elif 條件2;then

         分支2

     elif 條件3;then

        分支3

     else

        分支n

     fi

練習:傳遞一個參數給腳本,如果參數為quit則顯示你要退出了,如果參數為yes,則顯示說你要繼續,如果為其他任意參數,則說無法識別。

blob.png

blob.png

練習:傳遞一個用戶名給腳本:如果其id為0,則為管理員,如果id大于500則為普通用戶,其他為系統用戶

blob.png

blob.png

重定向:改變其標準位置

標準輸入:0

    鍵盤

標準輸出:1

    顯示器

錯誤輸出:2

    顯示器

輸出重定向:

    command > position覆蓋重定向

blob.png

    command >> position追加重定向

錯誤重定向:

    command 2> position覆蓋輸出

    command 2>> position追加輸出

blob.png

正常的信息正常輸出:

blob.png

合并重定向:

    command &> position指向同一位置,position中要么保存正常信息,要么是錯誤信息

    command > position 2> &1錯誤的也輸出到1的位置

blob.png

分別重定向:

command > position1 2>position2正確的輸出到position1中,錯誤的輸出到position2中

blob.png

會把原文件清掉

輸入重定向:

    command < position

<<:here document此處生成文檔,EOF:end of file

blob.png

blob.png直接輸出到屏幕

 

原創文章,作者:黑白子,如若轉載,請注明出處:http://www.www58058.com/46814

(0)
黑白子黑白子
上一篇 2016-09-17 21:45
下一篇 2016-09-17 21:53

相關推薦

  • wordpress和discuz的負載均衡(lvs-nat)

    實驗目的:利用lvs-nat模型實現wordpress和discuz的負載均衡 實驗要求:客戶端訪問wordpress或Discuz服務時,無論被調度至哪臺RS上,其會話和訪問的頁面都應保持一致; 實驗環境:一臺server用作VS(需要兩塊網卡,eth1連接內部網絡,eth0連接外部網絡),兩臺server用作RS,一臺server用于部署mysql、NF…

    2017-05-13
  • Shell腳本編程 流程控制—循環

    循環:重復執行所指定的代碼片段,直到循環條件不滿足,則退出循環 一、for循環     語法格式:     for 變量名 in 列表     do         循環體     done &nbs…

    Linux干貨 2016-08-24
  • 第7天:磁盤文件管理

    http://note.youdao.com/yws/public/redirect/share?id=57ab13d4749920de1fbb0d4953fcd21b&type=false

    Linux干貨 2016-08-18
  • linux 啟動文件 /etc/fstab 文件刪除 無法開機 修復的方法

    /etc/fstab文件刪除系統自檢無法掛載 無法啟動 按照提示進入命令行  手動寫/etc/fstab,如無內核文件  無grub  就缺啥補啥 fdisk    -l 查看當前分區  blkid    查看分區文件系統的卷標 手動掛載 …

    Linux干貨 2016-09-13
  • Linux基礎知識—Vim編輯器/crond周期性任務計劃

    vim文本編輯 vim是vi文本編輯的增強版本,因其編輯功能強大、且支持各種語言開發環境關鍵字自動增亮功能,也可稱為是開發工具。在Centos7/RHEL7開始,默認將vi定義成vim –color=auto,已經取代了vi的地位。下面總結下關于vim工具的使用 vim有三種模式,每個模式下有其特定的功能;我們可自由在三者之間切換使用: COMM…

    Linux干貨 2016-11-01
  • Linux救援模式

        學習了Linux的啟動流程,為了加深理解,今天做了如下的實驗:刪除掉Linux系統在啟動過程中比較重要的幾個文件,查看啟動時出現的現象。加深對知識的理解。學習機器因為某些文件的缺失的修復方式。     一、刪除grub.conf    &nb…

    Linux干貨 2016-11-23
欧美性久久久久