Categories
學習筆記

Shell Script 基礎篇(一)

以下關於shell script的一切都以sh為標準 🙂
shell script

1)man — display online manual documentation pages
在unix-like系統里 有個叫man的傢伙 它會知道關於程序怎麼用 所以不知道怎麼用的時候可以問問它
詢問方法:man 程序
例子:man ls
可見結果如下:(//為我寫的注解)

NAME
//程序名稱+大致用途
ls — list directory contents

SYNOPSIS
//概要:各種用法 option+arguement
//[]為可選 <>為數字範圍 無括弧的則是必須的
//以ls為例 前面的 [-ABCFGHILPRSTUWZabcdfghiklmnopqrstuwx1] 裏面的任何一個option都是可以合在一起用的,就如“ls -al”和“ls -a -l”都是可行的
//所謂arguement就是跟在option之後的其他選項,如ls -D %D的“%D”就是arguement
ls [-ABCFGHILPRSTUWZabcdfghiklmnopqrstuwx1] [-D format] [file …]

DESCRIPTION
//各種描述 包括各個option的用途等
…………….(這裡有很多東西)…………….
-A Include directory entries whose names begin with a dot (`.’)
…………….(下面還有很多東西)…………….

2)ls — list directory contents
ls是用來列出文件夾內內容的指令
-A 列出所有,包括以“.”為開頭的隱藏文件,但不包括“.”和“..”
-a 列出所有
-D 設定輸出的時間格式 詳情請man strftime
-R 循環式向子目錄內挖掘顯示
-l 以long format方式列出文件,更為詳細,包括file permission,ownership,大小,修改時間等

關於long format中的file permission一欄 可見類型如“drwxr-xr-x”第一個字“d”代表它的類型 而後各三個分別代表“擁有者”,“擁有組”,和“其他人”的可讀可寫可執行權限。
long format的類型如下:
– Regular file.
b Block special file.
c Character special file.
d Directory.
l Symbolic link.
p FIFO.
s Socket.
w Whiteout.

關於更詳細的內容請使用“man ls”

3)grep — print lines matching a pattern
當在某行中找到匹配字時 列印出該行
-v 反向列印
例子:ls -al | grep total
例子:ls -al | grep -v total

4)sort — sort lines of text files
排序小程序 默認以ascii方式字典排列
-n 以數字方式排列
-r 倒序排列
-kN,N 以第幾欄作為參考(N為數字)
例子:ls -al | sort -nr -k5,5

5)head — display first lines of a file
列出前X行
-n N 列出前N行
例子:ls -al | grep -v ^total | head -n 5

6)tail — display the last part of a file
列出后X行
-n N 列出后N行
例子:ls -al | grep -v ^total | tail -n 5

7)cat — concatenate and print files
查看文件工具
-n 加行號
例子:ls -al | cat -n

8)awk — pattern-directed scanning and processing language
單元分割工具 默認以空格分割 $1~$X等
這工具非常強大 可以做各種判斷和運算 詳情請查看man awk
例子:ls -al | awk ‘{print $1 “\t” $5 “\t” $9}’ (\t為tab鍵)
實用例子:計算目錄下所有文件大小的總和
命令:ls -al | awk ‘{total += $5} END {print “Total Size: ” total}’

9)wc — word, line, character, and byte count
文字計算工具
-l 計算行數
-c 計算字數
-w 計算字串數
例子:ls -al | wc -l

10)echo — write arguments to the standard output
輸出字串工具
-e 開啟特殊字元支持 如“\t”和“\n”等
例子1(輸出到窗口):echo “abc”
例子2(輸出到窗口):echo -e “abc\nabc”
例子3(輸出到文件 覆蓋重寫):echo “abc” > 1.txt
例子4(輸出到文件 繼續寫):echo “abc” >> 1.txt

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.