# Command Line基本理解
command line 也被稱作 命令行 或 命令行介面 是一個純文字的應用程式,可以查看,處理電腦裡的檔案,我們平常習慣了[圖形使用者介面](https://zh.wikipedia.org/wiki/%E5%9B%BE%E5%BD%A2%E7%94%A8%E6%88%B7%E7%95%8C%E9%9D%A2)(Graphical User Interface,GUI)的操作,其實背後也都是這些[命令列介面](https://zh.wikipedia.org/wiki/%E5%91%BD%E4%BB%A4%E8%A1%8C%E7%95%8C%E9%9D%A2)(Command Line Interface,CLI)所構成的。
使用CLI的優勢:
* 有些功能只能靠 CLI 達成。
* 有時候使用 CLI 更快達成目的。
---
# Command Line常用基本指令
介紹常用的command line指令,讓自己更熟悉使用commandline 跟電腦溝通。
---
# ls
* ls=list
* 列出所有檔案和路徑
* 寫法變化
i 列出隱藏的目錄:`ls -a`
ii 列出詳細資料:`ls -l`
iii 包上述兩個:`ls -la`
iv 列出 .js 的檔案:`ls *.js`
`ls` 指令可列出在目前目錄所有的檔案及目錄,後面接的 `-al` 參數,`a` 是指連小數點開頭的檔案(例如.trash)也會顯示,`l` 則是完整檔案的權限、擁有者以及建立、修改時間:

---
# cd
* cd = change directory
* 切換目錄
* 寫法: `cd '要去的目的地'`
* ex:要從 /Users/yamaki,前往進project資料夾,便在iterm輸入


* 寫法變化
i. `cd .` 一個點:代表所在目錄
ii. `cd ..`兩個點:代表回去上一層目錄
* 小訣竅:輸入cd 空格後再按住tab鍵會有像打出ls的功能,可以選擇要去資料夾

# pwd
* 顯示目前所在位置

---
# cat
將檔案內容顯示在 Terminal 面板。
1. 顯示文件所有内容 cat filename
2. 創建一个新文件cat > filename(只能創建新文件不能編輯已有文件)
打完文件內容記得要按ctrl +d結束。
3. 把文件合併成一個文件cat file1 file2 > filexxx

----
# touch
* 碰一下檔案
* 寫法:touch 檔名
* 情況一:假設檔案不存在,就會建立一個新的檔案。
* 情況二:假設檔案存在,更改檔案些改時間。
---
# mkdir
* mkdir = make directory
* 新增資料夾
* 寫法:`mkdir xxx`
* 可以先用`cd xx `到你想要去的資料夾創造你想要的資料夾,就可以用`mkdir xxx`創造你需要的資料夾
---
# rm
* rm = remove
* 刪除檔案,這邊的刪除檔案是「直接刪除」,並不會進到垃圾桶中,因此使用時要小心。
* 變化型:
1.`rmdir (remove directory)`:刪除空資料夾,若資料夾內有檔案就無法刪除。
2.`rm -rf `:刪除整個檔案或整個資料夾 #謹慎使用,刪掉就真掰掰了。
* 小訣竅:當刪除的檔名帶有空格或特殊字元時可使用單引號將檔名括起來,ex:`rm '要 刪 除 的 檔 名'`。
---
# mv
* mv = move file
* 作用一
1.移動檔案
2.寫法:mv 檔名 路徑 #要注意相對路徑跟絕對路徑的差異。
3.舉例:
相對路徑:mv file folder #以 desktop 為 home 目錄。
絕對路徑:mv file /Users/miahsu/desktop
補充說明:將檔案移動到上一層,就必須使用絕對路徑的寫法來移動
* 作用二
1. 改檔名
2. 寫法:`mv 原檔名 新檔名`
3. ex:`mv applelFile newFile`
---
# touch
* 碰一下檔案
* 寫法:`touch 檔名`
* 情況一:假設檔案不存在,就會建立一個新的檔案。
* 情況二:假設檔案存在,更改檔案些改時間。
----
# cp
* cp = copy
* 複製檔案
* ex:`cp file01.txt file011.txt`# 把檔案 file01 複製一份成 file011.txt

* 變化型
`cp -r`
寫法:`cp -r `原資料夾名稱 新資料名稱
ex:`cp -r folder folder_copy`

---
# sudo
* 取得權限
---
# clear
* 清空畫面
---
# vim
* 進入 vim 編輯器,分為普通模式跟編輯模式
* 對應 key:
`i `進入編輯模式
`esc `進入普通模式
`:q `退出
`:wq` 存檔後退出
`:q!` 不存檔直接退出
---
# tldr
用命令列做事情是一件很有效率的事,但我們常常會忘記如何寫命令或是不知道怎麼下筆,這時好幫手 「tldr」出現了。
* ldr是什麼?
1. 一個command line的開源工具
2. 使用情況:
知道指令,但忘記怎麼用
遇到沒看過的指令,不知道如何用
* 安裝tldr
打開iterm 輸入
```
brew tap tldr-pages/tldr
brew install tldr
```
* ex:

---
