- 一種基礎作業系統的純文字介面:允許使用者用文字、指令來執行操作
- shell script:利用類程式的方式把shell命令匯集成一個腳本,藉由執行該腳本達到我們想要進行的操作
- bash vs sh vs zsh
基礎
- 基礎指令
- 基礎符號
- = 賦值
- $ 取得變數
- 要取得變數資料要使用$
- $VARIABLE_NAME
- 但賦值時不需要$
- -eq/ -ne/ -gt/ -ge/ -lt/ -le
- \ 跳脫符號
- 要換行要使用\+按Enter
- 把enter跳脫的意思,就不會直接執行
- ?
- 上一個執行的指令所回傳的值
- 0通常代表成功
- 其他值可用來查詢錯誤代碼
-
, >>輸出符號
- 把原本應該顯示在螢幕的資訊輸出到指定檔案
-
會覆蓋原檔案
-
會往原檔案下方累加
- 1>代表指令正確執行時的輸出
- 2>代表指令發生錯誤時的輸出
- cat > filename
- 讓使用者接下來打的東西直接輸出到filename裡面
- <, <<輸入符號
- && vs ||
- cmd1 && cmd2
- 若 cmd1 執行完畢且正確執行($?=0),則開始執行 cmd2,否則cmd2不執行
- cmd1 || cmd2
- 若 cmd1 執行完畢且正確執行($?=0),則 cmd2 不執行。
- 若 cmd1 執行完畢且錯誤,則執行 cmd2
- ; vs |
- cmd1; cmd2; cmd3
- cmd1 | cmd2 | cmd3
- &
- 指令默認為前台執行
- &加在指令尾巴,代表指令在背景執行
常用指令
- chmod
- 改變檔案權限
- chmod +x filename 讓檔案可以執行(+x)
- ./filename
- echo
- 將資料印在畫面上
- echo "... $Variable" 雙引號裡面才能引用變數
- echo $? 列印剛剛指令成功與否
- read
- 讀取使用者輸入的資料
- read VARIABLE 讀取輸入資料並放到變數VARIABLE中
- find
- 找指定檔案
- find -name filename
- grep
- 有符合我們要的就打印出來,常搭配管線命令
- cmd1 | grep pattern
- grep 關鍵字 檔案名稱
- awk
- grep算是打印指定的列,awk就是打印指定的行
- awk '{print $2,$3}'
- sort
- sed
- stream editor 字串取代、複製、刪除
- sed -i 's/Doraemon/小叮噹/g' Day20TestData.txt
- sed –n “5,10p” 檔案名稱
- sed -n “3,6d” 檔案名稱