天天看點

shell 學習筆記整理(一)

shell腳本地功能--使用者和核心連接配接的特殊程式。

    程式設計語言:編譯型和腳本語言(script 。shell就是腳本語言)

shell腳本的類型:

    1.非互動式腳本

    2.互動式腳本

shell程式設計的基礎:

    1.文本編輯器 vi(vim)當然,shell是純文字,可以使用任何文本編輯器(不要用word)

    2.熟悉linux檔案系統的布局

    3.學習shell的各種功能

        重定向,管道,指令替換,指令聚合

    4.學習各種管理和監視指令的使用

        使用者管理,權限管理,程序管理,包管理,系統監視,網絡監視

    5.學習各種文本檔案工具使用:

        cat grep tr sed awk,正規表達式

shell 腳本的格式:

    Sha-Bang(#!)(shell 腳本開始符号的讀法)

    #! /bin/bash  告訴解釋器用什麼工具(或語言)解釋下面的代碼。

    可執行語句和shell控制結構

        一個shell腳本通常由一組linux指令,shell指令,控制結構和注釋語句構成。

    shell腳本是純文字檔案,可以使用任何文本編輯器編寫。

    一般預設.sh結尾的字尾名(約定俗成,但是不要誤會,linux沒有字尾名這個東西。一切都是檔案)

    指令是shell腳本最基本元素,通常由指令名稱、選項和參數組成

    腳本執行個體:

        ./test.sh -f config.conf -v --prefix=/home

        -(短選項)與後面連接配接用空格  --(長選項)和後面用等号連接配接

    執行:

        第一種方法:授權chmod +x script_name(讓腳本有可執行權限)

            755

        第二種執行方式:通過工具(指令/bin/bash)

            bash

    ; && || 差別

        ; 可同時執行多個指令。并且每個指令都不會對其它指令産生影響。

        && 一般是2個指令連接配接。如果前一個指令執行成功,才會執行後一個指令,如果失敗後面的指令就不執行。

        || 一般也是2個指令的連接配接,如果前一個指令執行不成功,才會執行後一個指令。

        執行個體:

        [root@swallow ~]# more test.sh 

        #!/bin/bash

        datt;date

        echo

        datt&&date

        datt||date

        exit 0

    從執行結果了解含義:

        [root@swallow ~]# sh test.sh 

        test.sh: line 2: datt: command not found

        Sun Mar 19 06:17:40 CST 2017

        test.sh: line 4: datt: command not found

        test.sh: line 6: datt: command not found

特殊字元:

    #! 開始的标志

    ;  多個指令一起連用的分隔符

    [root@swallow log]# echo a;echo b;echo c

    a

    b

    c

    .  多種作用:

        1. 相當與 source 指令

        2. 作為檔案名稱的一部分(隐藏檔案名)  (使用ls -a  可以檢視linux下面的隐藏檔案)

        3.如果作為目錄名的話,一個單獨的點代表目前工作目錄,兩個點代表上一級目錄。

            一般用于複制的時候使用   $ cp  /usr/local/mysql/* .

        4.在比對字元的時候用來比對 任意單個字元

    \ 稱為轉義符。一種對單字元的引用機制。

    / 檔案名稱分隔符  比如 (/usr/local/mysql)

    ``(esc按鍵下面的那個按鍵) 用于引用指令。一般用法:`command` 将結果作為參數。

    >  >>  |

    覆寫(重定向) 追加(重定向) 管道符(前面的輸入作為和面的輸出)

控制字元:(适用于CRT(連接配接終端))

    ctrl + L  清屏

    ctrl + U 删除光标到開頭的字元

    ctrl + K 删除光标所在位置到行尾的字元

    ctrl + C (break 終結一個前台作業)

    ctrl + D (和 exit很想。登出一個)

    ctrl + M (回車)

    ctrl + S (挂起。在一個終端中當機stdin)

    ctrl + Q (恢複。在一個終端恢複stdin

    ctrl + Z (暫停操作)

    ctrl + a (光标移動到行首)

    ctrl + e (光标移動到行尾)

本文轉自 swallow_zys  51CTO部落格,原文連結:http://blog.51cto.com/12042068/1908030,如需轉載請自行聯系原作者