Top Banner
Mac OS Terminal 常指令與技巧
36

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

Jul 18, 2015

Download

Software

Liwei Chen
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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 。