在我們繼續研究前端相關程式編寫之前,這邊要先停下腳步
先來學習基礎的終端命令指令操作 (Command Line)
因為接下來的章節要講解Git版控與React等
若沒有基礎命令列概念,會在一些安裝的步驟或是建立專案的步驟上卡住
或是遇到「終端機」等字眼,不明白那是什麼、要怎麼開啟
(前面Day10就有一點點遇到TypeScript的編譯操作了,但我都直接假裝大家知道)
所以,今天來解決這個問題,我們就來問問ChatGPT
嗯,當然可以幫你解釋一下。
Command Line(命令列)通常指的是一種透過文字指令來與電腦溝通的介面。這種介面可以讓你輸入各種指令,以執行特定的任務或操作,而無需使用圖形化的使用者介面(GUI)。
而命令提示字元(Command Prompt)是在Windows作業系統中的一種Command Line介面。當你在Windows中打開命令提示字元時,你可以輸入像是指令、程式名稱等文字來執行相對應的工作。
另一方面,終端機(Terminal)通常指的是在Unix、Linux或Mac作業系統中的Command Line介面。你可以透過終端機來輸入指令,執行系統或應用程式的相關操作。
簡單來說,Command Line、命令提示字元和終端機都是提供文字介面來與電腦互動的方式,只是在不同的作業系統中有不同的名稱和外觀。
上述介紹了許多的新專有名詞
也解釋了「Command Line」、「命令提示字元」、「終端機」都是指一樣的東西
只是不同作業系統上有不同的稱呼
另外也提到了一個詞彙「圖形化的使用者介面(GUI)」
好像每個字都看得懂,但不太清楚確切含義
因此來詢問ChatGPT
GUI是Graphical User Interface(圖形使用者介面)的縮寫,它是一種通過視覺元素(如圖標、按鈕、視窗等)來與電腦進行互動的介面方式。
相對於Command Line(命令列)的文字介面,GUI提供了一個直觀、圖形化的方式來操作電腦。在GUI中,你可以使用滑鼠點擊、拖拽等方式來完成各種任務,而不需要記住和輸入文字指令。
以下是GUI和Command Line的主要差異:
- 操作方式:
- GUI:使用滑鼠點擊、拖拽等直觀的方式來進行操作。
- Command Line:需要透過鍵盤輸入文字指令來執行相應的操作。
- 直觀性:
- GUI:通常較為直觀,特別適合初學者或不熟悉指令的使用者。
- Command Line:需要較多的學習和記憶,對於初學者可能較為陌生。
- 功能:
- GUI:通常提供了豐富的圖形化操作,方便用戶進行各種任務,如文件管理、應用程式執行等。
- Command Line:可以執行更多複雜的系統指令,對於高級用戶或開發者來說更加靈活。
總的來說,GUI提供了一個較為直觀和容易上手的方式來操作電腦,而Command Line則提供了更強大、彈性的控制能力,特別適合需要進行高級設定或開發工作的用戶。對於你作為一名前端工程師的目標來說,GUI通常用於開發環境的設定和應用程式的運行,而Command Line則可用於更進階的開發任務。
綜合以上,GUI就是你各位現在用來操作電腦的方式啦
想要開啟瀏覽器,就對著瀏覽器的icon滑鼠點點兩下
想進入資料夾,就對著「我的電腦」滑鼠點點兩下、然後對著像要的資料夾點擊
想要複製檔案,就點選檔案之後右鍵,選單中選擇複製
所有的結果,都用圖像、畫面來呈現,操作也是根據畫面來操作
那Command Line呢?
就是透過「指令」去達成這些操作,而且可以達到更多、更彈性的操作
但所有的操作跟結果,都是文字
了解這些之後,來問問ChatGPT,請他基本的列舉一些可以透過Command Line操作的類型
當然可以!透過Command Line(命令列)可以執行許多不同種類的操作,以下是其中一些常見的操作類型:
- 檔案和目錄管理:
- 創建、複製、移動、刪除檔案和目錄。
- 列出目錄中的內容。
- 變更目前的工作目錄。
- 系統設定:
- 管理系統設定和配置,如環境變數、用戶帳戶等。
- 網路操作:
- 建立網路連線、測試網路連通性等。
- 程式執行:
- 啟動應用程式或執行指定的程式。
- 套件管理:
- 安裝、更新、移除軟體套件。
- 版本控制:
- 使用版本控制工具如Git來管理程式碼。
- 簡單的文本處理:
- 使用工具來處理文字,如grep、awk等。
- 系統監控:
- 監視系統資源的使用情況。
- 維護和救援:
- 進行系統維護、故障排除等操作。
- 自動化任務:
- 使用指令來自動執行重複性的任務。
這些僅僅是Command Line可以執行的一些基本操作,實際上,它具有極大的靈活性,可以執行各種複雜的任務,特別在開發和系統管理領域。當你開始學習Command Line時,你會逐漸熟悉這些操作,並能夠應用它們來提高你的工作效率。
基礎的介紹到這邊,接下來來請他提供有關指令教學
好的,我將分別提供在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的指令分開教學
當然可以!以下是在 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中移動目錄。請確保在使用這些指令時輸入正確的路徑,以避免意外的移動或刪除操作。
移動方面的範例和教學到這邊就十分夠用了,試著請他提供更多指令
當然,我將提供更多在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給了其他更多指令,但都和操作檔案相關
沒關係,就以上的內容,請他提供一些使用情境和範例
當然,我將提供一些情境範例並教學相關指令,這樣你可以更清楚地了解如何在不同情境下使用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提供一些範例,是需要仰賴指令才能做到的
當然,以下是一些需要使用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版本控制,我們明天見~