系統基礎知識I:大幅提高生產力的好幫手
在轉職成為後端工程師的道路上,掌握命令行操作是一項不可或缺的技能。無論你是在管理伺服器、部署應用程式,還是進行日常的開發工作,熟練掌握命令行都能大大提升你的工作效率。本文將介紹一些基本但強大的命令,幫助你在開發上事半功倍。
什麼是終端機?
在開始學習命令行之前,我們先來認識一下什麼是終端機。
終端機(Terminal)是一個程式,提供了文字介面讓使用者與電腦作業系統進行互動。在現代電腦作業系統中,終端機通常是一個視窗應用程式,模擬了早期的硬體終端機。當你開啟終端機時,它會運行一個叫做 shell 的程式(例如 Bash 或 Zsh),這個 shell 負責解釋和執行你輸入的命令。
註:你可能會聽到人們交替使用「終端機」、「命令行」、「Console」、「控制台」這些稱呼。雖然它們在技術上有些微妙的差異,但在日常使用中,這些詞通常指的是同一個東西:一個讓你輸入文字命令來控制電腦的介面。
為什麼命令行很重要?
- 效率: 命令行操作通常比圖形介面更快速。一旦熟悉了命令,你可以在幾秒鐘內完成需要在圖形介面中點擊多次的操作。例如,使用單行命令就可以查找並刪除所有超過30天的日誌文件。
- 自動化: 可以輕鬆編寫腳本來自動執行重複性任務。你可以寫一個腳本來自動排程備份資料庫,取代每次的手動操作。這不僅節省時間,還能減少人為錯誤。
- 遠端管理: 大多數伺服器都是通過命令行進行管理的。當你需要管理網際網路上多台伺服器時,通常只能通過命令行介面訪問。這使得你可以從世界任何地方管理你的基礎設施。
- 精確控制: 命令行提供對系統和應用程式更精細的控制。很多重要的系統配置和參數調整只能通過命令行完成。例如,調整系統內核參數或配置複雜的網路設置。
- 開發工具整合: 許多開發工具和框架都有命令行介面。Git版本控制系統就是一個典型的例子,它的大部分功能都是通過命令行來操作的。熟悉命令行可以讓你更有效地使用這些工具。
- 問題診斷: 在系統出現問題時,命令行工具通常是最可靠的診斷和修復手段。當圖形介面無法啟動或網路連接有問題時,命令行可能是你唯一的選擇。
基本命令介紹
1. ls (List)
- 功能:列出目錄內容
- 常用選項
ls -l
:顯示詳細訊息ls -a
:顯示隱藏檔案 - 例子:
ls
ls -la
註:
ls
是你會經常使用的命令之一。-l
選項會顯示檔案的權限、擁有者、大小等訊息,-a
會顯示以點 (.) 開頭的隱藏檔案。
2. cd (Change Directory)
- 功能:切換目錄
- 常用用法
cd ..
:返回上一層目錄cd ~
:返回家目錄 - 例子:
cd /var/www
cd ~/projects
註:
cd
是你在命令行中導航的主要方式。記住..
表示上一層目錄,~
表示你的家目錄。
3. mkdir (Make Directory)
- 功能:創建新目錄
- 常用選項
mkdir -p
:創建多層目錄 - 例子:
mkdir new_project
mkdir -p path/to/new/directory
註:
-p
選項非常有用,它允許你一次創建多層嵌套的目錄,如果上級目錄不存在,它會自動創建。
4. rm (Remove)
- 功能:刪除檔案或目錄
- 常用選項
rm -r
:遞迴刪除目錄及其內容rm -f
:強制刪除,不提示 - 例子:
rm file.txt
rm -rf old_directory
註:使用
rm
時要非常小心,特別是使用-rf
選項時,因為它會無提示地刪除所有內容,且無法恢復。
5. cp (Copy)
- 功能:複製檔案或目錄
- 常用選項
cp -r
:遞迴複製目錄 - 例子:
cp source.txt destination.txt
cp -r source_dir destination_dir
註:複製目錄時,記得使用
-r
選項,否則只會複製目錄本身,而不包括其內容。
6. mv (Move)
- 功能:移動檔案或目錄;也用於重新命名
- 例子:
mv old_name.txt new_name.txt
mv file.txt /path/to/new/location/
註:
mv
命令既可以移動檔案/目錄,也可以重新命名。如果來源和目標在同一目錄,就相當於重新命名。
7. touch
- 功能:創建空檔案或更新檔案的時間戳記
- 例子:
touch new_file.txt
touch existing_file.txt
註:
touch
命令如果檔案不存在,會創建一個空檔案;如果檔案已存在,則會更新它的存取和修改時間。
8. cat (Concatenate)
- 功能:顯示檔案內容,連接檔案,或創建新檔案
- 例子:
cat file.txt
cat file1.txt file2.txt > combined.txt
註:
cat
命令可以快速查看檔案內容,但對於大型檔案,使用less
命令可能更合適。
9. less
- 功能:分頁查看檔案內容
- 例子:
less large_file.txt
註:
less
命令允許你向前和向後滾動查看檔案內容。按 'q' 鍵退出,'/' 進行搜索,'n' 跳到下一個搜索結果。
管道(pipe)
管道 (|
) 允許將一個命令的輸出作為另一個命令的輸入,這是一個強大的功能。
例子:
ls -l | grep ".txt"
cat log.txt | grep "error" | wc -l
註:第一個例子列出當前目錄中所有以 .txt 結尾的檔案。第二個例子計算 log.txt 檔案中包含 “error” 的行數。管道允許你將多個簡單的命令組合成複雜的操作。
grep 補充說明
grep
是一個強大的文本搜索工具,常與管道一起使用。它可以在文件或標準輸入中搜索指定的模式。
基本用法:
command | grep pattern
例如,ls -l | grep ".txt"
會從 ls -l
的輸出中過濾出包含 ".txt" 的行,實際上顯示當前目錄中所有 .txt 文件的詳細訊息。
實用技巧和常見錯誤
- 使用 Tab 鍵自動完成: 輸入命令或文件名的前幾個字母後,按 Tab 鍵可以自動完成或顯示可能的選項。這不僅提高效率,還能避免拼寫錯誤。
- 使用上下箭頭鍵瀏覽命令歷史: 這可以快速重複或修改之前執行過的命令。
- 小心使用通配符: 例如
rm *
會刪除當前目錄下的所有文件。在使用前最好先用ls *
確認一下會影響哪些文件。 - 注意命令的大小寫: Unix/Linux 系統區分大小寫,
Ls
和ls
是不同的命令。
效率提升技巧(未來再學就好)
- 使用別名(alias): 為常用的命令建立簡稱。例如:
alias ll=’ls -la’
- 學習使用 screen 或 tmux: 這些工具允許你在一個終端中運行多個會話,特別適合遠端操作。
- 了解輸入/輸出重定向: 使用
>
,>>
,<
可以重定向命令的輸出或輸入。
結語
命令行是後端工程師的重要工具,掌握這些基礎知識將大大提升你的工作效率。隨著經驗的積累,你會熟能生巧的,加油!