iT邦幫忙

2024 iThome 鐵人賽

DAY 11
0

在轉職成為後端工程師的道路上,掌握命令行操作是一項不可或缺的技能。無論你是在管理伺服器、部署應用程式,還是進行日常的開發工作,熟練掌握命令行都能大大提升你的工作效率。本文將介紹一些基本但強大的命令,幫助你在開發上事半功倍。

什麼是終端機?

在開始學習命令行之前,我們先來認識一下什麼是終端機。

終端機(Terminal)是一個程式,提供了文字介面讓使用者與電腦作業系統進行互動。在現代電腦作業系統中,終端機通常是一個視窗應用程式,模擬了早期的硬體終端機。當你開啟終端機時,它會運行一個叫做 shell 的程式(例如 Bash 或 Zsh),這個 shell 負責解釋和執行你輸入的命令。

註:你可能會聽到人們交替使用「終端機」、「命令行」、「Console」、「控制台」這些稱呼。雖然它們在技術上有些微妙的差異,但在日常使用中,這些詞通常指的是同一個東西:一個讓你輸入文字命令來控制電腦的介面。

為什麼命令行很重要?

  1. 效率: 命令行操作通常比圖形介面更快速。一旦熟悉了命令,你可以在幾秒鐘內完成需要在圖形介面中點擊多次的操作。例如,使用單行命令就可以查找並刪除所有超過30天的日誌文件。

  2. 自動化: 可以輕鬆編寫腳本來自動執行重複性任務。你可以寫一個腳本來自動排程備份資料庫,取代每次的手動操作。這不僅節省時間,還能減少人為錯誤。

  3. 遠端管理: 大多數伺服器都是通過命令行進行管理的。當你需要管理網際網路上多台伺服器時,通常只能通過命令行介面訪問。這使得你可以從世界任何地方管理你的基礎設施。

  4. 精確控制: 命令行提供對系統和應用程式更精細的控制。很多重要的系統配置和參數調整只能通過命令行完成。例如,調整系統內核參數或配置複雜的網路設置。

  5. 開發工具整合: 許多開發工具和框架都有命令行介面。Git版本控制系統就是一個典型的例子,它的大部分功能都是通過命令行來操作的。熟悉命令行可以讓你更有效地使用這些工具。

  6. 問題診斷: 在系統出現問題時,命令行工具通常是最可靠的診斷和修復手段。當圖形介面無法啟動或網路連接有問題時,命令行可能是你唯一的選擇。

基本命令介紹

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 文件的詳細訊息。

實用技巧和常見錯誤

  1. 使用 Tab 鍵自動完成: 輸入命令或文件名的前幾個字母後,按 Tab 鍵可以自動完成或顯示可能的選項。這不僅提高效率,還能避免拼寫錯誤。

  2. 使用上下箭頭鍵瀏覽命令歷史: 這可以快速重複或修改之前執行過的命令。

  3. 小心使用通配符: 例如 rm * 會刪除當前目錄下的所有文件。在使用前最好先用 ls * 確認一下會影響哪些文件。

  4. 注意命令的大小寫: Unix/Linux 系統區分大小寫,Lsls 是不同的命令。

效率提升技巧(未來再學就好)

  1. 使用別名(alias): 為常用的命令建立簡稱。例如:

    alias ll='ls -la'
    
  2. 學習使用 screen 或 tmux: 這些工具允許你在一個終端中運行多個會話,特別適合遠端操作。

  3. 了解輸入/輸出重定向: 使用 >, >>, < 可以重定向命令的輸出或輸入。

結語

命令行是後端工程師的重要工具,掌握這些基礎知識將大大提升你的工作效率。隨著經驗的積累,你會熟能生巧的,加油!

同步更新於 Medium


上一篇
後端架構概述:蟹堡王的成長故事
下一篇
系統基礎知識II:如何避免系統在網路上裸奔?
系列文
30天轉職馬拉松:從0到Offer的學習計畫30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言