Terminal與Shell
Terminal與Shell就像ATM機器與ATM裡的軟體,我們可以通過一些指令(commands)來操作,執行想要的動作。
常見指令
cd
=> 切換資料夾
cd 相對路徑/絕對路徑
- Change Directory
- . 表示此層目錄
- .. 表示上層目錄
- ~ 表示家目錄 = /Users/xxxx/
- ~[名字] 代表到[名字]的家目錄
範例:
1.家目錄
2.從~/Desktop/form/data1/data1-1到~/Desktop/HTML
(先回到上上上層的桌面資料夾,再選擇下層的HTML資料夾)
pwd
=> 顯示目前資料夾
- Print Working Directory
ls
=> 顯示檔案清單
- List
- -a 連同隱藏檔,顯示全部檔案
- -l 列出檔案細節
mkdir
=> 建立資料夾
- Make Directory
- -m mode 改權限
- -p 自動把目錄遞迴建立起來(例如:mkdir -p ./data/js)data資料夾與js資料夾都不存在,使用-p後都會幫我們自動建立起來)
Permissions:
Owner | Group | Other | |
---|---|---|---|
Read | 400 | 040 | 004 |
Write | 200 | 020 | 002 |
Execute | 100 | 010 | 001 |
rm
=> 刪檔/資料夾
- Remove
- -d 刪除資料夾,或是用
rmdir
(注意只能刪除空資料夾,如果要連裡面的檔案一起全刪要加-r) - -f 刪除檔案,無視權限,且不會提醒"確認刪除"
- -i 刪除檔案,會提醒要同意"確認刪除"
- -r 刪除植根於資料夾中的每個檔案層次結構。(刪到裡面都沒東西的意思)
- -d 刪除資料夾,或是用
mv
=> 移動檔案/資料夾
mv 原檔案/新檔案 or 原路徑/新路徑
- Move
- -n 不去覆蓋已存在的檔案/資料夾
- -i 覆蓋檔案/資料夾前會提醒"是否同意"
- -f 強制覆蓋檔案/資料夾,不會提醒
touch
=> 新建檔案/修改檔案時間
touch 路徑+檔案名
- touch
- -f 強制更新檔案,無視權限
- 檔案原本不存在 => 建立新檔
- 檔案原本就在 => 更新檔案時間
cp
=> 複製檔案/資料夾
cp Source_file Target_file
cp Source_file(s) Target_Folder
- Copy
- -r 複製資料夾和subtree(遞歸)(即使檢測到錯誤,也會繼續複製)
- -f 覆蓋重複的檔案/資料夾,不會提醒,無視權限
- -i 覆蓋現有檔案/資料夾前,提示"確認覆蓋"
- -n 不要覆蓋現有檔案/資料夾
範例:
1.複製data1到同個位置,並改名成data2
2.複製data1到文件底下
3.複製data1到文件底下,並改名成data2
4.複製所有結尾為.jpg的檔案至文件底下
5.複製檔名有空格的文件到檔名有空格的資料夾(有空格的話,記得用雙引號包起來)
man
=> 顯示手冊
man command
clear
/command+K
=> 清空螢幕
參考資料:
An A-Z Index of the Apple macOS command line (macOS bash)
Terminal 指令