iT邦幫忙

2023 iThome 鐵人賽

DAY 12
1
自我挑戰組

用ChatGPT詠唱來完成工作與點亮前後端技能樹系列 第 12

【Day12】ChatGPT請教教我:Command Line - 基礎CMD指令、Terminal指令

  • 分享至 

  • xImage
  •  

在我們繼續研究前端相關程式編寫之前,這邊要先停下腳步
先來學習基礎的終端命令指令操作 (Command Line)

因為接下來的章節要講解Git版控與React等
若沒有基礎命令列概念,會在一些安裝的步驟或是建立專案的步驟上卡住
或是遇到「終端機」等字眼,不明白那是什麼、要怎麼開啟
(前面Day10就有一點點遇到TypeScript的編譯操作了,但我都直接假裝大家知道)

所以,今天來解決這個問題,我們就來問問ChatGPT

Command Line基本介紹

https://ithelp.ithome.com.tw/upload/images/20230923/20135750RjyFrPUerp.png

嗯,當然可以幫你解釋一下。

Command Line(命令列)通常指的是一種透過文字指令來與電腦溝通的介面。這種介面可以讓你輸入各種指令,以執行特定的任務或操作,而無需使用圖形化的使用者介面(GUI)。

而命令提示字元(Command Prompt)是在Windows作業系統中的一種Command Line介面。當你在Windows中打開命令提示字元時,你可以輸入像是指令、程式名稱等文字來執行相對應的工作。

另一方面,終端機(Terminal)通常指的是在Unix、Linux或Mac作業系統中的Command Line介面。你可以透過終端機來輸入指令,執行系統或應用程式的相關操作。

簡單來說,Command Line、命令提示字元和終端機都是提供文字介面來與電腦互動的方式,只是在不同的作業系統中有不同的名稱和外觀。

上述介紹了許多的新專有名詞
也解釋了「Command Line」、「命令提示字元」、「終端機」都是指一樣的東西
只是不同作業系統上有不同的稱呼

另外也提到了一個詞彙「圖形化的使用者介面(GUI)」
好像每個字都看得懂,但不太清楚確切含義
因此來詢問ChatGPT
https://ithelp.ithome.com.tw/upload/images/20230923/201357504BwwPUQGKY.png

GUI是Graphical User Interface(圖形使用者介面)的縮寫,它是一種通過視覺元素(如圖標、按鈕、視窗等)來與電腦進行互動的介面方式。

相對於Command Line(命令列)的文字介面,GUI提供了一個直觀、圖形化的方式來操作電腦。在GUI中,你可以使用滑鼠點擊、拖拽等方式來完成各種任務,而不需要記住和輸入文字指令。

以下是GUI和Command Line的主要差異:

  1. 操作方式
    • GUI:使用滑鼠點擊、拖拽等直觀的方式來進行操作。
    • Command Line:需要透過鍵盤輸入文字指令來執行相應的操作。
  2. 直觀性
    • GUI:通常較為直觀,特別適合初學者或不熟悉指令的使用者。
    • Command Line:需要較多的學習和記憶,對於初學者可能較為陌生。
  3. 功能
    • GUI:通常提供了豐富的圖形化操作,方便用戶進行各種任務,如文件管理、應用程式執行等。
    • Command Line:可以執行更多複雜的系統指令,對於高級用戶或開發者來說更加靈活。

總的來說,GUI提供了一個較為直觀和容易上手的方式來操作電腦,而Command Line則提供了更強大、彈性的控制能力,特別適合需要進行高級設定或開發工作的用戶。對於你作為一名前端工程師的目標來說,GUI通常用於開發環境的設定和應用程式的運行,而Command Line則可用於更進階的開發任務。

綜合以上,GUI就是你各位現在用來操作電腦的方式啦

想要開啟瀏覽器,就對著瀏覽器的icon滑鼠點點兩下
想進入資料夾,就對著「我的電腦」滑鼠點點兩下、然後對著像要的資料夾點擊
想要複製檔案,就點選檔案之後右鍵,選單中選擇複製

所有的結果,都用圖像、畫面來呈現,操作也是根據畫面來操作

那Command Line呢?
就是透過「指令」去達成這些操作,而且可以達到更多、更彈性的操作
但所有的操作跟結果,都是文字

了解這些之後,來問問ChatGPT,請他基本的列舉一些可以透過Command Line操作的類型

https://ithelp.ithome.com.tw/upload/images/20230923/20135750ks6rUnKtr6.png

當然可以!透過Command Line(命令列)可以執行許多不同種類的操作,以下是其中一些常見的操作類型:

  1. 檔案和目錄管理
    • 創建、複製、移動、刪除檔案和目錄。
    • 列出目錄中的內容。
    • 變更目前的工作目錄。
  2. 系統設定
    • 管理系統設定和配置,如環境變數、用戶帳戶等。
  3. 網路操作
    • 建立網路連線、測試網路連通性等。
  4. 程式執行
    • 啟動應用程式或執行指定的程式。
  5. 套件管理
    • 安裝、更新、移除軟體套件。
  6. 版本控制
    • 使用版本控制工具如Git來管理程式碼。
  7. 簡單的文本處理
    • 使用工具來處理文字,如grep、awk等。
  8. 系統監控
    • 監視系統資源的使用情況。
  9. 維護和救援
    • 進行系統維護、故障排除等操作。
  10. 自動化任務
    • 使用指令來自動執行重複性的任務。

這些僅僅是Command Line可以執行的一些基本操作,實際上,它具有極大的靈活性,可以執行各種複雜的任務,特別在開發和系統管理領域。當你開始學習Command Line時,你會逐漸熟悉這些操作,並能夠應用它們來提高你的工作效率。

基礎的介紹到這邊,接下來來請他提供有關指令教學

CMD(命令提示字元) & Terminal(終端機) 指令

https://ithelp.ithome.com.tw/upload/images/20230923/20135750vdsnj9ypb7.png

好的,我將分別提供在Windows和Mac上的基礎Command Line使用教學,並對比使用GUI的操作方式。

在 Windows 上使用 Command Line:

1. 開啟命令提示字元:

  • 使用 GUI:在開始功能表中搜尋 "cmd" 或 "命令提示字元",然後點擊選項來開啟。
  • 使用 Command Line:按下 Win + R 開啟執行視窗,然後輸入 cmd 並按下 Enter 開啟。

2. 列出目錄內容:

  • 使用 GUI:使用檔案總管進入目錄,可以直接看到其中的檔案和目錄。
  • 使用 Command Line:輸入 dir 並按下 Enter,會列出目前目錄的所有內容。

3. 創建目錄:

  • 使用 GUI:在檔案總管中右鍵點擊,選擇 "新建資料夾"。
  • 使用 Command Line:輸入 mkdir 新資料夾名稱 並按下 Enter。

4. 移動到不同目錄:

  • 使用 GUI:在檔案總管中直接點擊進入目錄。
  • 使用 Command Line:輸入 cd 目標目錄路徑 並按下 Enter。

在 Mac 上使用 Terminal:

1. 開啟終端機:

  • 使用 GUI:在Launchpad中找到 "終端機" 或在應用程式資料夾中尋找。
  • 使用 Terminal:可以在Spotlight搜索 "Terminal" 並打開。

2. 列出目錄內容:

  • 使用 GUI:使用Finder進入目錄,可以直接看到其中的檔案和目錄。
  • 使用 Terminal:輸入 ls 並按下 Enter,會列出目前目錄的所有內容。

3. 創建目錄:

  • 使用 GUI:在Finder中右鍵點擊,選擇 "新建資料夾"。
  • 使用 Terminal:輸入 mkdir 新資料夾名稱 並按下 Enter。

4. 移動到不同目錄:

  • 使用 GUI:在Finder中直接點擊進入目錄。
  • 使用 Terminal:輸入 cd 目標目錄路徑 並按下 Enter。

這些是在Windows和Mac上使用Command Line的基礎操作。習慣了Command Line後,你會發現它可以更高效地執行一些任務,尤其是在處理大量檔案或進行程式開發時。

基本上在圖型介面上(就一般電腦操作畫面)可以處理的操作,都有對應的指令去執行
上面的操作中,cd 移動目錄這個動作是相當基本且常用的

後續的系列文中,若有提到「開啟終端機、移動到XXX的目錄下」
多半都是指使用cd這個指令,移動到你要操作的資料夾中

因此我們針對這個指令,進行更深入的詢問

一樣分成Windows中CDM與Mac的Terminal的指令分開教學
https://ithelp.ithome.com.tw/upload/images/20230924/20135750wh3gAxiERb.png

當然可以!以下是在 Windows 和 Mac 中移動目錄的更多指令教學:

在 Windows 中移動目錄:

1. 移動到上層目錄:

  • 使用 Command Line:輸入 cd .. 並按下 Enter,這會將你移動到上一層目錄。

2. 移動到根目錄:

  • 使用 Command Line:輸入 cd \\ 並按下 Enter,這會將你移動到系統的根目錄。

3. 移動到特定的目錄:

  • 使用 Command Line:輸入 cd 路徑 並按下 Enter,例如 cd C:\\Users 會將你移動到 C:\\Users 目錄。

4. 切換磁碟:

  • 使用 Command Line:輸入磁碟代號,例如 D:,然後按下 Enter,這會讓你切換到D槽。

在 Mac 中移動目錄:

1. 移動到上層目錄:

  • 使用 Terminal:輸入 cd .. 並按下 Enter,這會將你移動到上一層目錄。

2. 移動到根目錄:

  • 使用 Terminal:輸入 cd / 並按下 Enter,這會將你移動到根目錄。

3. 移動到特定的目錄:

  • 使用 Terminal:輸入 cd 路徑 並按下 Enter,例如 cd /Users 會將你移動到 /Users 目錄。

4. 切換到家目錄:

  • 使用 Terminal:輸入 cd ~ 並按下 Enter,這會將你移動到當前使用者的家目錄。

5. 切換目錄的同時顯示完整路徑:

  • 使用 Terminal:輸入 cd -P 路徑 並按下 Enter,這會讓你在切換目錄時顯示完整路徑。

這些指令可以讓你更靈活地在Command Line中移動目錄。請確保在使用這些指令時輸入正確的路徑,以避免意外的移動或刪除操作。

移動方面的範例和教學到這邊就十分夠用了,試著請他提供更多指令
https://ithelp.ithome.com.tw/upload/images/20230924/20135750ni1mpCOJGi.png

當然,我將提供更多在Windows和Mac上使用的Command Line指令:

在 Windows 中的其他常用指令:

1. 複製檔案或目錄

  • copy source destination:將指定的檔案或目錄複製到目的地。

2. 刪除檔案或目錄

  • del file:刪除指定的檔案。
  • rmdir directory:刪除指定的目錄。

3. 重新命名檔案或目錄

  • ren old_name new_name:將檔案或目錄重新命名。

4. 查看檔案內容

  • type file:顯示指定檔案的內容。

5. 建立空白檔案

  • type nul > file:創建一個名為 "file" 的空白檔案。

6. 顯示當前工作目錄

  • cd:在不帶任何參數的情況下,它會顯示當前工作目錄的完整路徑。

在 Mac 中的其他常用指令:

1. 複製檔案或目錄

  • cp source destination:將指定的檔案或目錄複製到目的地。

2. 刪除檔案或目錄

  • rm file:刪除指定的檔案。
  • rm -r directory:刪除指定的目錄。

3. 重新命名檔案或目錄

  • mv old_name new_name:將檔案或目錄重新命名。

4. 查看檔案內容

  • cat file:顯示指定檔案的內容。

5. 建立空白檔案

  • touch file:創建一個名為 "file" 的空白檔案。

6. 顯示當前工作目錄

  • pwd:顯示當前工作目錄的完整路徑。

這些指令是在Windows和Mac中使用Command Line時常用到的一些基本操作,可以幫助你更有效率地處理檔案和目錄,以及進行一些基本的系統管理工作。當然,還有許多其他指令可供使用,取決於你的需求和工作領域。

可能因為我沒有特別指定,前述又在討論跟檔案目錄操作相關的主題
ChatGPT給了其他更多指令,但都和操作檔案相關

沒關係,就以上的內容,請他提供一些使用情境和範例

https://ithelp.ithome.com.tw/upload/images/20230924/20135750qXatjJ9OkI.png

當然,我將提供一些情境範例並教學相關指令,這樣你可以更清楚地了解如何在不同情境下使用Command Line。

情境範例 1: 複製檔案

任務:將一個名為 file.txt 的檔案從桌面複製到 Documents 目錄。

在 Windows 上的指令

copy C:\\Users\\你的使用者名稱\\Desktop\\file.txt C:\\Users\\你的使用者名稱\\Documents\\

在 Mac 上的指令

cp ~/Desktop/file.txt ~/Documents/

情境範例 2: 創建新目錄

任務:在 D: 槽中創建一個名為 Project 的新目錄。

在 Windows 上的指令

mkdir D:\\Project

在 Mac 上的指令

mkdir /Volumes/D/Project

情境範例 3: 重新命名檔案

任務:將名為 old_file.txt 的檔案重新命名為 new_file.txt

在 Windows 上的指令

ren C:\\path\\to\\old_file.txt new_file.txt

在 Mac 上的指令

mv /path/to/old_file.txt /path/to/new_file.txt

情境範例 4: 查看目錄內容

任務:查看當前目錄中的所有檔案和目錄。

在 Windows 和 Mac 上的指令

dir (Windows)
ls (Mac)

情境範例 5: 刪除檔案

任務:刪除名為 unwanted.txt 的檔案。

在 Windows 上的指令

del C:\\path\\to\\unwanted.txt

在 Mac 上的指令

rm /path/to/unwanted.txt

情境範例 6: 刪除目錄

任務:刪除名為 old_folder 的目錄及其內容。

在 Windows 上的指令

rmdir C:\\path\\to\\old_folder

在 Mac 上的指令

rm -r /path/to/old_folder

這些是一些常見的情境範例,透過這些範例,你可以學會如何使用不同指令來執行相應的任務。請根據你的需求和具體情況,修改指令中的檔案路徑和名稱。

你可能會說,刪除檔案、新增資料夾、搬移檔案這些動作
我都可以直接靠著普通的電腦介面操作完成,為什麼要特別學指令?

能夠使用指令才表示能夠組裝這些指令來撰寫程式
而且往後會有一些需要靠指令完成安裝的動作

最後,請ChatGPT提供一些範例,是需要仰賴指令才能做到的

https://ithelp.ithome.com.tw/upload/images/20230924/201357502Ttt4YXWDq.png

當然,以下是一些需要使用Command Line才能完成的範例,這些任務通常無法透過GUI來執行:

1. Ping 指令 (Windows 和 Mac)

任務:測試與特定網站或主機的網路連通性。

指令

ping www.example.com

2. Traceroute 指令 (Windows 和 Mac)

任務:顯示封包在前往目的地時經過的所有中繼網路節點。

指令

tracert www.example.com

3. IP 設定 (Windows)

任務:設定網路介面的IP位址、子網路遮罩、閘道等。

指令

netsh interface ip set address name="網路介面名稱" source=static address=IP位址 mask=子網路遮罩 gateway=閘道

4. Netstat 指令 (Windows 和 Mac)

任務:顯示正在運行的網路連接和相關的統計數據。

指令

netstat -an

5. 磁碟管理 (Windows)

任務:管理磁碟分割、格式化磁碟等。

指令

diskpart

6. 安裝軟體 (Mac)

任務:使用Homebrew等工具來安裝軟體套件。

指令(使用Homebrew安裝Node.js):

brew install node

7. 設定防火牆規則 (Windows)

任務:管理防火牆的設定,開啟或關閉特定連接埠等。

指令

netsh advfirewall firewall add rule name="Allow Port 80" protocol=TCP localport=80 action=allow dir=IN

8. 解壓縮檔案 (Windows 和 Mac)

任務:使用Command Line解壓縮壓縮檔案。

指令(解壓縮zip檔案):

unzip file.zip

這些是一些需要使用Command Line才能完成的範例,它們通常涉及到系統層面的操作、網路設定或者檔案處理,而這些在GUI中可能會比較困難或不直觀。透過這些指令,你可以更靈活地進行系統管理和網路設定等工作。

結語

學會指令列的操作之後,除了後續的一些版控、安裝指令、建置指令能夠更順暢外,
還可以在朋友面前裝B,打開一個終端機黑框框打一堆指令,好像電影中的駭客一樣
(效益目的好像反了)

通常系統的Command Line操作也不用學得很精深
需要時就可以問、可以查,沒有需求的時候就當作看看,不一定要把所有指令記起來
(也很難記完所有指令吧)

學會cd 移動目錄就是基本及格了!

這次的對話連結放這裡:
https://chat.openai.com/share/8c8e9e00-74ea-47e5-9809-2059ea49bc86

我是覺得Terminal操作很帥氣的中二工程師一宵三筵
下一篇是Git版本控制,我們明天見~


上一篇
【Day11】ChatGPT請教教我:Class(類別) ! Object (物件)!物件導向 OOP!
下一篇
【Day13】ChatGPT請教教我:Git版控!(上)
系列文
用ChatGPT詠唱來完成工作與點亮前後端技能樹56
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言