終端機:Mac 上最多人害怕的一個程式(稍微進階一點點篇)

Loyi Yu-Sung Hsu
#蘋果宅
Published in
6 min readAug 7, 2019

上次在入門篇有說過的,終端機這個程式對多數在圖形使用者介面 (GUI) 世界長大的使用者,尤其是一直以來都強調圖形使用者介面的直觀性的 Apple 的使用者來說,因為它傳統命令列的介面形式,很容易讓人感到害怕。

確實 Apple 在讓使用者感到不會害怕電腦這點來說應該是有不少貢獻,比起傳統 Windows 在 macOS 上安裝程式多半是把一個圖形拉到應用程式的資料夾就解決了,比起 Linux 很多在 Linux 上要經過終端機的功能設定,在系統偏好設定中也是打個勾就完成了。

複習一下入門篇

在上面一篇中,我們介紹過的概念包含:

  1. 使用者與超級使用者:這個是在終端機中使用系統最高權限的 sudo 的部分。我們也在這邊介紹過根目錄 (/),也就是整個電腦「檔案系統」的起始點,就像是 Windows 的 C 槽一點進去,也是在 C 槽的根目錄 C:/。另外就是在 Mac 世界中比較多人知道是「使用者資料夾」,也就是你的「桌面」、「文件」、「下載」⋯⋯等等資料夾待的地方,那個叫做家目錄 (~)的東西。
  2. 不重要的指令:touch 碰一下,可以來製造檔案或是就是簡單地碰一下(更新最新更新時間)。
  3. 在硬碟上跑來跑去:cd(更換目前目錄)、ls(顯示所有不是隱藏的東東)、mkdir(建立資料夾)
  4. 把東西移來移去:mv(移動檔案)、cp(複製檔案)、rm (移除檔案)

對了,那個趣聞

之前在玩具總動員第四集上映的時候,整個網路上似乎很常有人提到第二集製作的過程中發生的「差點不小心刪掉整個目錄」事件。

據說當時在管理伺服器的人,不小心在裡面輸入了 rm -r -f * 的指令,現在了解 rm 指令的你,知道發生了什麼事情了嗎?

在終端機中的 * 跟 for-loop

上面的這行指令,還跟一個我們還沒介紹過的概念有關,也就是這個米到底是什麼。在終端機的世界中,* 這個記號代表的是在這個目錄下的所有檔案。因為前面的 -r 表示的是要刪除資料夾,後面的 -f 代表的是強制執行(不用每次都徵詢許可),所以整體念起來這句 rm -r -f * 的意思就是:

強制刪除在這個目錄下的所有東西(資料夾)

因為其實這個指令的意思這麼明確,有的時候在看這個「趣聞」的時候,都不禁懷疑到底是 Pixar 公司出了內鬼,還是真的是一個管理員「不小心」刪了全部的檔案 — — 否則讓一個對於指令這麼不熟悉的人管理伺服器,他不緊張我都幫他緊張了。

另外一個不太一樣的是 for-loop。就像一般的程式語言會有迴圈的概念,在終端機中也是可以透過迴圈的方式進行檔案系統編輯,像是批次命名之類的功能。

就像上圖演示的,我們可以用 for 變數 in {範圍} 的方式,在 do 後面使用 ${i} 來指稱我們的變數。我這邊用 echo 把檔案 ${i} 印出來,效果也確實是依照 1, 2, 3, 4 的順序把文字印出來了。

另外一個常用到 for-loop 的地方就是陣列。我們在終端機中一樣可以先宣告一個陣列之後,用 for-loop 在陣列中移動來做我們要做的事情。

上圖中我們宣告一個 mike, leo, john 的陣列,然後透過 for-loop 來依序顯示 the mike, the leo, the john。

那個上次安麗的 brew 跟 brew cask

上次在套件管理系統那篇也介紹了使用 brew 安裝命令列程式跟使用 cask 安裝一般圖形介面程式的部分。因為上次那篇文章之後,我特別用 brew search 的方式,發現很多我們常用的程式都可以透過 cask 進行安裝,也可以透過 cask-fonts 的方式安裝字型。

以下介紹幾個我自己覺得特別好用的套件:

一般的 brew

安裝方式 brew update 後,brew install 套件名稱

  • youtube-dl:下載 YouTube 影片的套件,使用方式很多,比較不知道怎麼弄的話,可以使用網路上的人推薦的格式:
    youtube-dl -f bestvideo+bestaudio `影片網址` — recode-video mp4
  • mas:管理 Mac App Store 的套件,可以把 Mac App Store 也當成套件管理系統使用,執行 mas upgrade 就可以快速更新 Mac 上使用 Mac App Store 安裝的程式。

Cask

在 Cask 上可以取得的程式多得令人驚訝,安裝 Cask 程式使用指令 brew cask install 程式名稱

  • caprine:在 Mac 上使用 Facebook Messenger 的 Electron 程式,這個程式有很多隱私相關的功能,包含不顯示已讀、不顯示打字中的動畫⋯⋯等等。
  • appcleaner:一個在圈子內比較知名但是比較少人知道需要的程式。這個程式是用來解除安裝非 Mac App Store 跟非套件管理的程式用的。一般來說,透過拖曳安裝的程式,刪除時很容易會忽略你的程式會有很多「暫存檔案」,這些暫存檔案若是透過 appcleaner,它就會一起幫你掃描出來,一次解除安裝!

字型

對!Cask 還可以安裝字型

第一次使用前要先執行
brew tap homebrew/cask-fonts
之後就跟一般的 cask 一樣,使用指令 brew cask install 字型套件名稱

  • font-noto-sans-cjk:有名的思源黑體也是可以透過 brew cask 進行安裝
  • font-ubuntu:這個是知名的 Linux 系統 Ubuntu 使用的字型,同樣是可以使用 brew cask 進行安裝

另外如果不確定一個程式在 brew 或 brew cask 上面有沒有,可以簡單地使用 brew search 的指令確認。例如我要確認 brew 上面有沒有 Microsoft Office 的話:

對,brew 上面連 Microsoft Office 都有。因為上面有標記 Casks,所以使用 brew cask install microsoft-office 就可以進行安裝囉!

如果不知道一個指令怎麼用

對了,如果你安裝了一個命令列的小程式,或是不確定一個功能怎麼用的時候,通常可以試試看在指令後面加上 -h 或是在前面加上 man 來查閱說明書!

以上,我們今天關於終端機的稍微進階篇的介紹就到這邊結束囉!不了解就有可能害怕,希望對你比較不害怕、進而想要使用終端機有所幫助!

--

--