前言
本文不急著操作 Unix,僅作一些概念上的介紹。
Unix 和 Unix-like 系統
現今的 Unix 認證由 the Open Group 執行。通常只有商用系統才會願意花這個錢去認證。目前常見的 Unix 有 macOS 和 Solaris。
GNU/Linux 不是 Unix,而是仿 Unix 系統 (Unix-like system)。GNU/Linux 並沒有用當初 Unix 的原始碼,而是從頭實作新的系統。
BSD 系統 (FreeBSD、NetBSD、OpenBSD) 有用到當初 Unix 的原始碼,但沒做 Unix 認證。所以 BSD 在技術上是 Unix,但在商業上非 Unix。
本系列文章採用比較寬鬆的講法,當我們講 Unix 時,是指有 Unix 概念的系統,所以 macOS、GNU/Linux、BSD、Solaris 等都算在內。當我們要提及特定系統時,就會明確地說明該系統的名字。
Unix 值得學習嗎?
這是個人化的問題,我們無法直接回答。這裡列出一些 Unix 常見的用途,讓讀者思考是否要學習 Unix:
- 網路服務,像是網頁伺服器 (web server)、郵件伺服器 (mail server)、檔案伺服器 (FTP server)、防火牆 (firewall) 等
- 當成嵌入式系統 (embedded system) 使用
- 有許多科學軟體 (scientific software) 可用
- 用來學習程式設計 (programming)
- 其實也可以當成桌面環境 (desktop environment) 來用
除了 macOS 以外,Unix 的桌面環境體驗偏弱,目前不建議當成主要桌面來使用。
學習 Unix 最好要有明確的學習目標,才會學得長久。由於 Unix 上可學的東西很多,沒有明確目標的話,很容易就疲乏了。
學 Unix 要學命令列嗎?
如果不學命令列、只學桌面環境的話,充其量只是換個桌面上網、打文書。這樣沒什麼學 Unix 的價值。
很多 Unix 使用情境是沒有桌面環境可用的,像是網路服務、嵌入式系統等。這時候,學習命令列就是必要的技能。
學 Unix 要學程式設計嗎?
完全不學程式設計的話,算是浪費 Unix 的功能。重點是要學到多深入。如果只是要寫簡短的 shell 命令稿或 Perl 命令稿來進行非互動式系統操作的話,建議每位 Unix 學習者都學一點,學會了對使用系統會更有效率。
如果是要學寫應用程式的話,就見仁見智了。有些任務,資訊界已經有成熟的解決方案。若再重覆實作同類型的程式,除了自我學習外,無形中浪費不少時間。(相對) 快速地學會使用別人的程式來解決自己的問題,也算是一種資訊能力。
如果某項任務,目前資訊界沒什麼好的解決方案。這時候,可以試著動手寫程式來解決問題。或許你的程式會成為下一個知名的開源軟體也說不定。
個人電腦上常見的 Unix
除了新近的 Mac 電腦採用自家 ARM 晶片外,大部分電腦使用者都使用 Intel 相容個人電腦。以下列出常見、易取得的 Unix,讓讀者從中選擇:
- macOS
- GNU/Linux
- BSD
- Solaris
- Windows Subsystem for Linux
macOS
macOS 是目前最易用的商用 Unix。但 macOS 採用軟硬體同綑的鋿售模式,要使用 macOS 就得買 Mac 電腦。由於其他 Unix 有更低廉的取得方式,不太需要為了學習 Unix 特地買 Mac 電腦。
GNU/Linux
GNU/Linux 並非 Unix,而是仿 Unix 系統,但兩者的操作邏輯是相通的。而且 GNU/Linux 的學習資源較 Unix 多,先學 GNU/Linux 再轉用 Unix 也是不錯的選擇。
市面上有許多 GNU/Linux 發行版。這些發行版提供的軟體大同小異,主要的差別在套件管理程式及設定檔配置。只要用得順手、符合需求即可。
BSD (Berkeley Software Distribution)
BSD 系統是免費的開源 Unix。常見的 BSD 有 FreeBSD、NetBSD、OpenBSD。一般來說,會選擇資源相對多的 FreeBSD 來學習 Unix。本系列文章即採用 FreeBSD 做為學習 Unix 的工具。
Solaris
Solaris 是搭配 SPARC 架構的商業 Unix,但也有 Intel 相容電腦的版本。目前 Solaris 相關的學習資源較少,對於學習 Unix 來說,不是最佳選擇。
WSL (Windows Subsystem for Linux)
WSL 是在 Windows 下運行的 GNU/Linux 子系統。但 WSL 有時會碰到原生 GNU/Linux 所沒有的問題。對於學習者來說,處理這些問題是不必要的。現階段不建議用 WSL 來學 Unix。
如何選擇?
通常都是從主流 GNU/Linux 發行版或 FreeBSD 中擇一。因為這兩者是免費的自由軟體,容易取得。
剛開始最好持續用同一種系統,不要一碰到問題就換系統,比較容易學到東西。等熟悉了就可以隨需求自行更換系統。
本系列文章會使用 FreeBSD,並適時點出 FreeBSD 和 GNU/Linux 的差異處。選擇 FreeBSD 而非 GNU/Linux 是因為前者有用到 Unix 程式碼而後者無。
如何安裝?
為了繞過硬體相容性議題,本系列文章會將 FreeBSD 安裝在虛擬機器內。在 Windows 上會使用 VirtualBox,在 macOS 上會使用 UTM。前者使用 x86-64 版本,後者使用 ARM64 (aarch64) 版本。