核心概念#

每位木工都需要一個堅固可靠的工作台。對於操縱文字檔案的程式設計師來說,那個工作台就是命令列 shell。從 shell 提示字元中,你可以調用全部的工具庫,使用管線將它們以原始開發者從未想到的方式組合。你可以啟動應用程式、除錯器、瀏覽器、編輯器和工具程式。你可以搜尋檔案、查詢系統狀態、過濾輸出。透過 shell 程式設計,你可以為經常執行的活動建立複雜的巨集命令。

GUI 的限制#

對於在 GUI 介面和 IDE 中長大的程式設計師來說,這可能看起來很極端。簡單的回答是「不」——用 GUI 你無法做到所有事情。

GUI 的好處是 WYSIWYG(所見即所得),缺點是 WYSIAYG(所見即全部所得)。GUI 環境通常被限制在設計者預想的功能範圍內。如果你需要超越設計者提供的模式,通常就會束手無策。

務實的程式設計師不只是寫程式——我們做所有事情:寫文件、建立物件模型、自動化建置流程。任何單一工具的範圍通常只限於它被期望執行的任務。

Tip 26 - Use the Power of Command Shells(使用命令列 shell 的威力)

客製化你的 Shell#

就像木工會客製化工作空間一樣,開發者也應該客製化 shell。常見的客製化包括:

  • 設定色彩主題:可以花很多時間嘗試各種主題
  • 配置提示字元:顯示當前目錄名和版本控制狀態等資訊
  • 別名和 shell 函數:將常用命令簡化為簡單的別名
    • 例如 alias apt-up='sudo apt-get update && sudo apt-get upgrade'
    • 例如 alias rm='rm -iv'(防止意外刪除檔案)
  • 命令補全:配置 shell 識別你正在輸入的命令並提供上下文相關的補全

你會花大量時間生活在 shell 中。像寄居蟹一樣,把它變成自己的家。

相關章節#

  • Topic 13,原型與便利貼
  • Topic 16,純文字的威力
  • Topic 21,操縱文字
  • Topic 30,轉換式程式設計
  • Topic 51,務實的入門套件