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