《Shell指令碼學習指南》學習筆記
Shell指令碼學習
讀
《Shell指令碼學習指南》
一書
基本語法
- 環境變數
$PATH
- IO重定向:
- 以
<
改變標準輸入
- 如:
tr -d '\r' < dos-file.txt
- 如:
- 以
>
改變標準輸出
- 如:
tr -d '\r' < dos-file.txt > UNIX-file.txt
(如果>
的目的檔案不存在,將自動建立,若存在,將覆蓋原檔案)
- 如:
- 以
>>
附加到檔案(檔案末尾追加)
- 若檔案不存在,則自動建立,若存在,則在檔案末尾追加
- 以
|
建立管道
- 前一個program的輸出作為後一個program的輸入(
program1 | program2
),如:ls | grep a
- 前一個program的輸出作為後一個program的輸入(
- 以
特殊檔案:
/dev/null
和/dev/tty
/dev/tty:輸入密碼時,預設不列印輸入的密碼到終端,例如:(-echo 用來關閉列印輸入,echo開啟)
printf "Enter new password: " stty -echo read pass < /dev/tty printf "Enter again: " read pass2 < /dev/tty stty echo ...
常用命令:
- who:查詢系統的登陸使用者
- cat > 檔名 :將後面的輸入資訊重定向到檔案中,以 ^D 結束
- tr:轉換字元
-d
:刪除source-char-list所列舉的字元,如:tr -d '\r' < dos-file.txt | sort > UNIX-file.txt
,將dos-file.txt中的回車符全部刪掉,再排好序重定向到UNIX-file.txt檔案中
- sh (執行一個指令碼)
-x
顯示指令碼中的每個命令,以+
開頭,可以在指令碼中開啟追蹤功能,set -x
,用set +x
關閉追蹤
- grep
- sed
- cut
- awk
- sort
- uniq :(去重)
- head -n n 檢視前n行
tail -n n 檢視後n行
umask
命令使用注意事項
- 以
-
開頭表示選項,以--
開頭表示長選項 - 多條命令寫在一行,以
;
分隔
指令碼的語法說明:
- 以
#! 指令碼直譯器路徑
開頭,如:#! /bin/sh
- 變數
- 命名:字母或下劃線開頭,後面可以是字母數字,下劃線
- 賦值:變數名=值(注意等號前後不能有任何空格,變數值之間有空格時,需要用引號括起來),單行多次賦值,之間用空格分隔
- 使用變數:以
$變數名
- 輸出:
echo
- echo 引數(引數以空格分隔)
printf
- 不會自動換行,需要換行,需在末尾加上
\n
- 例句:
printf "the first program always print %s,%s" hello world
(\d
表示十進位制整數)
- 不會自動換行,需要換行,需在末尾加上
- 再shell指令碼中訪問shell指令碼的引數
- 讀取第
n
個引數,通過$n
讀取,若n
的數值大於9,則需用大括號括起來,如${10}
,讀取第10個引數
- 讀取第
未完–
相關文章
- Shell指令碼學習筆記指令碼筆記
- shell指令碼學習筆記-1指令碼筆記
- shell指令碼程式設計學習筆記-運算子指令碼程式設計筆記
- shell指令碼程式設計學習筆記——變數指令碼程式設計筆記變數
- 【Linux學習筆記29】shell指令碼基礎Linux筆記指令碼
- shell學習筆記筆記
- 《JAVA學習指南》學習筆記Java筆記
- 《AngularJs權威指南》學習筆記---指令AngularJS筆記
- Vue 學習筆記——指令Vue筆記
- Shell 學習筆記 基礎筆記
- POSIX-shell學習筆記筆記
- shell和bash指令碼命令學習指令碼
- 【區塊鏈學習】《區塊鏈學習指南》學習筆記區塊鏈筆記
- 官方遊戲--學習筆記二(英雄指令碼)遊戲筆記指令碼
- Angularjs學習筆記指令AngularJS筆記
- Linux命令和shell指令碼學習Linux指令碼
- Go 入門指南學習筆記Go筆記
- React入門指南(學習筆記)React筆記
- MongoDB 學習筆記之常用 shell 命令MongoDB筆記
- Shell學習筆記_時間計算筆記
- 【學習】Linux Shell指令碼程式設計Linux指令碼程式設計
- Linux學習之路(三)Shell指令碼初探Linux指令碼
- Centos學習筆記14 – java程式啟動指令碼CentOS筆記Java指令碼
- surfer 8 scripter 學習筆記(1)指令碼物件模型筆記指令碼物件模型
- 指令碼學習指令碼
- numpy的學習筆記\pandas學習筆記筆記
- angular學習筆記(十九)-指令修改domAngular筆記
- angular學習筆記(三十)-指令(4)-transcludeAngular筆記
- angular學習筆記(三十)-指令(3)-templateUrlAngular筆記
- angular學習筆記(三十)-指令(1)-概述Angular筆記
- angular學習筆記(三十)-指令(8)-scopeAngular筆記
- Linux學習筆記(2)——ls指令Linux筆記
- 《HTTPS權威指南》- SSL、TLS和密碼學學習筆記HTTPTLS密碼學筆記
- [心得] JavaScript權威指南學習筆記JavaScript筆記
- 《JavaScript 學習指南》閱讀筆記(一)JavaScript筆記
- MongoDB權威指南學習筆記03MongoDB筆記
- jmeter學習指南之最佳化指令碼JMeter指令碼
- Linux Shell 程式設計學習筆記Linux程式設計筆記