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,如需轉載請自行聯系原作者