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
echo
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
sun mar 19 06:17:40 cst 2017
特殊字元:
#! 開始的標誌
; 多個命令一起連用的分隔符
[root@swallow log]# echo a;echo b;echo cab
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 (游標移動到行尾)
shell學習筆記(一)
1.在變數的設定中,單引號與雙引號有什麼不同呢?單引號與雙引號的最大的不同在於雙引號仍然可以保有變數的內容,但單引號僅能是一般字元,而不會有特殊符號。2.在指令下達的過程中,quote 這個符號代表的意義為何?在一串指令中,在 之內的指令將會被先執行,而其執行出來的結果將作為外部的輸入資訊!例如 u...
shell學習筆記(一)
1.history 執行命令歷史紀錄 2.執行上一次命令3.n執行這條命令4.vim執行最近的乙個 vim 5.alias 可以簡單修改名字別名也就是把貓叫個咪 也可以比如 alias ls 6.ctrl z jobs,fg bg作業控制 7.mail s vayne 1219345363 qq.c...
shell學習筆記(一)
一.指令碼編寫和使用 1.sh指令碼宣告 bin sh 2.注釋寫法 該行都是 3.使指令碼可執行 chmod x filename 4.執行指令碼 在終端terminal中輸入.filename即可 二.變數的定義和使用 1.定義變數 變數名 屬性值 2.使用變數 變數名 大括號用來表示變數名的範...