[Mac/Linux] Command Line指令
本篇紀錄Mac常用的指令(會持續更新)
基本指令
基本查詢
man 指令加上要查詢的指令來閱讀線上手冊,透過線上手冊可以查詢相關指令或是函數的名稱,如查詢ls的用法:
1 | |

按下鍵盤的q鍵即可離開。
查詢隱藏的檔案
-a可配合其他指令來查詢隱藏的檔案,如:
1 | |

上圖可看出,我電腦的家(home)目錄底下有許多隱藏的檔案
建立空檔案
執行touch並指定檔案名稱,當指定的檔案不存在時,touch就會自動建立一個空檔案,並將檔案的時間設定為目前的時間touch
資料補齊
如果文件名稱過長,或是指令只記得一部分的情形,按下鍵盤上的Tab鍵,會看到相似檔名的候選名單。而如果只有一個,它就會自動全部補上。
資料夾
移除資料夾
後面加個 -r 的指令,就是指要移除資料夾以及裡面全部內容,-r為--recurise的縮寫。
1 | |
複製資料夾
1 | |
範例
假設桌面有一新建的料夾test,內含test.txt的檔案
如果要複製test資料夾,並命名新資料夾為test_folder,執行
1 | |

上面可看出成功複製新的名為test_folder的資料夾。
若改成存在兩個資料夾,分別為test、test_folder,將test_folder複製到test資料夾內,可以執行
1 | |

上圖可發現成功將test_folder複製到test資料夾!
萬用字元
萬用字元的好處是可以節省的時間,其中*代表”0個到無窮多個”任意字元,利用*搭配bash其他常用指令,處理資料就更方便快速!更多萬用字元的說明查閱鳥哥的文章。
*常用於刪除大量同個副檔名的檔案,如某個專案資料夾裡的.log檔,就可以使用*.log一次刪除所有log檔。
萬用字元
*在做檔案或資料夾刪除時要特別小心,有時會誤刪部分相同的檔案及資料夾。
誤刪的情況
目前桌面上的資料夾有test、test1_folder、test_folder三個資料夾,以及test.txt、test1.txt兩個.txt檔案
目標要刪除三個資料夾,如果採萬用字元的做法會是
1 | |
執行上述命令會連同test.txt、test1.txt兩個.txt檔案刪除!
所以使用萬用字元做刪除要特別小心!
移除文件
1 | |
拷貝檔案
1 | |
如: 拷貝 hi.txt 到 hello.txt
1 | |
檔案的移動與更名
更名
1 | |
範例
更名前:
更名後: 將 hi.txt 改為 hello.txt
1 | |

移動
1 | |
建立目錄
1 | |
檢視當前目錄的文件
1 | |

顯示目錄下檔案
1 | |

上圖的訊息包含:權限、檔案大小、上次修改時間等
退回上一層
1 | |
回到根目錄
1 | |

開啟根目錄資料夾
1 | |
開啟當下電腦使用者根目錄
1 | |
開啟當前目錄
1 | |
顯示當前使用者目錄名稱
1 | |
顯示當前目錄的路徑
1 | |
切換路徑
1 | |
切換至根目錄
1 | |
根目錄V.S.家(home)目錄
Mac 打開Terminal預設路徑會在家目錄下,可以看到~的符號
若想知道當前目錄的路徑,可輸入pwd
如果是要切換至根目錄,可以輸入指令: cd /,切換路徑至根目錄夾下。

輸入ls可查看當前目錄下所有的檔案
如果要回到家目錄,輸入指令cd ~
觀念釐清
波浪線~等於電腦的名字,也就是說,cd ~與cd /Users/tsungyuchen兩者相等
絕對路徑 V.S. 相對路徑
絕對路徑
延續剛才上一個問題,cd /Users/tsungyuchen 路徑為斜線開頭,表示從根目錄開始。
相對路徑
從目前所在目錄開始算起
進階指令
找指定的檔案
find 指令可在執行指令的目錄下做搜尋,找指定的檔案,並回傳路徑。
在目前的目錄底下
不分英文大小寫
1 | |
區分英文大小寫
1 | |
在 /home 目錄底下,找尋檔案
不分英文大小寫
1 | |
區分英文大小寫
1 | |
快速查看某個檔案的內容
1 | |

其實
cat指令原始功能是將檔案合併,再顯示合併後的檔案,如果cat後方只接一個檔案,則直接顯示該檔案內容。
查詢檔案內的文字
不用打開文件,就能查詢檔案內的文字。
1 | |
如:
text檔內有”hello”的文字內容
執行指令
1 | |

不區分大小寫的模式
搜尋字詞前面加前綴詞 -i
1 | |
apt-get
apt-get 是專門給 ubuntu, debian 等 Linux 系統使用的套件下載軟體
ssh
常用來遠端連線
寫入
1 | |
其中>寫入時會覆蓋原本檔案的內容重新寫入。
範例(重新覆蓋):
假設今天桌面上有個test.txt檔,執行寫入方法:
1 | |
查看被寫入的檔案內容:
1 | |
覆蓋剛剛寫入的檔案
1 | |
查看被寫入的檔案內容:
1 | |

若要不覆蓋原本的檔案,將上個範例的>改為>>即可。
範例(不覆蓋):
寫入
1 | |
echo輸出的內容會斷行,若不想斷行可以改執行printf
查看
1 | |

合併檔案
可以透過cat指令將檔案進行合併顯示
輸出合併檔案(不影響原始檔案)
如果要將兩個內容合併輸出,可使用cat 檔案1 檔案2的指令
如:
建立一個名為cat.txt的檔案與剛剛的test.txt進行合併輸出。
1 | |
1 | |
輸出合併結果

cat只有單純輸出合併結果,並不影響原始檔案內容
將合併檔案後的檔案輸出成新檔案
1 | |
合併目標檔案,並產出合併過後的新檔案。如:
1 | |

上圖例子產出test.txt和cat.txt合併過後的新檔案,名為cat2.txt。
移動檔案
將檔案進行移動。
1 | |
範例
假設今天桌面有個test_folder目標資料夾,要將剛剛建立的test.txt檔移至目標資料夾。
1 | |

補充
Mac如何清除系統上被佔用的Port?
查詢 PID
如: 查詢 Port:3000 狀態
1 | |
清除 PID
查詢PID後,找到佔用該port對應的PID
1 | |
如對應PID為32952,則:
1 | |