36
Mac OS Terminal 常指令與技巧

20141203 mac os terminal 常用指令與小技巧

Embed Size (px)

Citation preview

Page 1: 20141203 mac os terminal 常用指令與小技巧

Mac OS Terminal 常⽤用指令與⼩小技巧

Page 2: 20141203 mac os terminal 常用指令與小技巧

終端機

• Linux 的介⾯面就是終端機,看到畫⾯面的地⽅方。

• Linux 系統同時會有很多終端機,⼀一般⼀一次只會看到⼀一個。

• Mac OS 因爲有圖像化介⾯面,視窗的概念,因此可以同時操作多個終端機。

Page 3: 20141203 mac os terminal 常用指令與小技巧

Option + ⽅方向鍵可快速在⻑⾧長指令內,做遊標的移動

Page 4: 20141203 mac os terminal 常用指令與小技巧

pwd

• 顯⽰示當前⺫⽬目錄

Page 5: 20141203 mac os terminal 常用指令與小技巧

!

• 重複上⼀一個執⾏行過,開頭相同的指令

• ex. !redis > redis-server

Page 6: 20141203 mac os terminal 常用指令與小技巧

ls -alh

• 可列出當前⺫⽬目錄的檔案系統

• al: 全部檔案(含隱藏檔)與屬性

• h: ⼤大⼩小顯⽰示爲可讀的⼤大⼩小(B,K,M)

Page 7: 20141203 mac os terminal 常用指令與小技巧

ls -alh

Page 8: 20141203 mac os terminal 常用指令與小技巧

檔案權限權限 擁有者羣組

Page 9: 20141203 mac os terminal 常用指令與小技巧

chown

• 可同時變更擁有者與羣組

• ex. chown user:group file

Page 10: 20141203 mac os terminal 常用指令與小技巧

檔案權限格式爲 drwxrwxrwx

• 綠:是否爲⺫⽬目錄

• 紅:擁有者(Owner)權限

• ⿈黃:羣組(Group)權限

• 紫:擁有者(Other)權限

Page 11: 20141203 mac os terminal 常用指令與小技巧

檔案權限rwx

• 讀取:是否可讀取

• 寫⼊入:是否可寫⼊入

• 執⾏行:是否可執⾏行

Page 12: 20141203 mac os terminal 常用指令與小技巧

檔案權限

• 每⼀一個區塊的權限都是數字的總和

• 如果只可執⾏行權限就是 1

• 可讀執⾏行不可寫是 5

• 不具有權限是 0

20

21

22

rwx

Page 13: 20141203 mac os terminal 常用指令與小技巧

chmod

• 可變更檔案或是資料夾的權限

• ex. chmod 777 mylog < 最壞⽰示範

• ex. chmod -R 755 htdoc < Web 常⽤用權限

Page 14: 20141203 mac os terminal 常用指令與小技巧

Recursive與檔案系統

• 資料夾與檔案都是物件,有各⾃自的權限

• chmod 與 chown 都只能變更⼀一個標的

• 遞迴可以讓指令對⺫⽬目標下的檔案與根⺫⽬目錄重複執⾏行

Page 15: 20141203 mac os terminal 常用指令與小技巧

rm

• 只能移除檔案

• 移除資料夾使⽤用 rmdir ,且只能移除空資料夾

• 透過遞迴可以移除所有檔案與資料夾

• ex. rm -Rf test/ < ⾮非常危險

Page 16: 20141203 mac os terminal 常用指令與小技巧

touch

• 修改檔案時間戳記 (存取時間與更改時間)

• 有時候也被當做快速建⽴立檔案的⽅方式

• 建⽴立的檔案權限就是建⽴立者的權限

Page 17: 20141203 mac os terminal 常用指令與小技巧

tail

• 可在終端機顯⽰示特定檔案最後⼗十⾏行內容

• 適合⽤用來觀看 log 檔案

Page 18: 20141203 mac os terminal 常用指令與小技巧

tail• 加上參數 -n 20 可顯⽰示 20 ⾏行,或是可以偷懶直接帶⼊入數字

Page 19: 20141203 mac os terminal 常用指令與小技巧

tail• 加上參數 -f 可以讓終端機持續顯⽰示 log 的更新,直到按下 Ctrl + C 中斷操作

Page 20: 20141203 mac os terminal 常用指令與小技巧

&

• 執⾏行檔案的指令後⾯面加上 & 符號,可不鎖定終端機

• 但是這個程式如果有 print 訊息,還是會在終端機上⾯面被看到

• ex. redis-server&

Page 21: 20141203 mac os terminal 常用指令與小技巧

>

• 執⾏行檔案的指令後⾯面加上 > 符號,可將程式 print 的訊息導向

• ex. redis-server > /dev/null

Page 22: 20141203 mac os terminal 常用指令與小技巧

ps

• Process Status,顯⽰示當前使⽤用者執⾏行的程序

• 加上 aux 參數,可顯⽰示所有系統的程序

• ex. ps aux

Page 23: 20141203 mac os terminal 常用指令與小技巧

grep

• Globally Search a Regular Expression and Print,搜尋⼯工具

• 給 grep 關鍵字或正規表⽰示式,會列出結果

• ex. grep apple fruitlist.txt

Page 24: 20141203 mac os terminal 常用指令與小技巧

|

• pipe ,會把左邊的執⾏行結果丟給右邊

• ex. ps aux | grep redis

Page 25: 20141203 mac os terminal 常用指令與小技巧

kill

• 關閉系統程序,後⾯面通常加上 PID

• 正常關閉 : 15

• 強制關閉 : 9

• ex. kill -9 5568

Page 26: 20141203 mac os terminal 常用指令與小技巧

Finder

Page 27: 20141203 mac os terminal 常用指令與小技巧

不能被關閉• 可以關閉 Finder 所有視窗

• 但是 Finder 不能被關閉

Page 28: 20141203 mac os terminal 常用指令與小技巧

回到上⼀一層

• 在 Windows 內是倒退鍵

• 在 Mac 使⽤用 Cmd+ 上

Page 29: 20141203 mac os terminal 常用指令與小技巧

新增視窗與分⾴頁

• Cmd+N,開新視窗

• Cmd+T,開新分⾴頁

Page 30: 20141203 mac os terminal 常用指令與小技巧
Page 31: 20141203 mac os terminal 常用指令與小技巧

精度

var numA = 0.1;

var numB = 0.2;

alert( (numA + numB) === 0.3 );

會顯⽰示?

Page 32: 20141203 mac os terminal 常用指令與小技巧

精度

false

Page 33: 20141203 mac os terminal 常用指令與小技巧

精度0.1+0.2 = ????

JavaScript 說

0.01 = 0.0001 1001 1001 1001 … 無限循環

0.02 = 0.0011 0011 0011 0011 … 無限循環

不過雙精度浮點數最⾼高是 52 位

Page 34: 20141203 mac os terminal 常用指令與小技巧

精度

所以相加後是 0.0100110011001100110011001100110011001100110011001100

轉爲⼗十進位就是 0.30000000000000004

Page 35: 20141203 mac os terminal 常用指令與小技巧

精度只要先將數字乘上10的 n 次⽅方,n 是你要的⼩小數點精度,運算完在除以10的 n 次⽅方就可以解決這個問題。

ex. 想要算出 0.1+0.2,可寫成

var accuracy = 1 * 10;

alert((0.1*accuracy+0.2*accuracy)/accuracy);

Page 36: 20141203 mac os terminal 常用指令與小技巧

閉包

• myText 執⾏行完 closure_test 之後就應該要消失了

• 但是因爲 closure_test return 了⼀一個 function,且這個 function 內部使⽤用到了 text 變數,形成了⼀一個閉包。

• 這個閉包的特性,就像保護罩⼀一樣保護了 myText 。