這篇文章已封存,而且 Apple 也不會再更新。

OS X Server:如何編輯配置檔

伺服器說明文件可能會指示你建立或修改屬性列表(plist)或其他文字型配置檔,以啟用未顯示於 Server Admin 工具中的功能。

如果你不熟悉如何編輯配置檔,請閱讀下列主題。

選擇適當的文字編輯器

「文字編輯」(位於 /Applications/)是常見的圖形化文字編輯器,在某些情況下可用來編輯配置檔。但請特別注意,務必要以系統能夠使用的格式儲存文件(請參閱下文)。另外,如果你在「文字編輯」中的權限有限,編輯檔案的難度就會比使用命令列文字編輯器更高。

使用命令列文字編輯器可避免一些與使用「文字編輯」有關的格式和權限錯誤。OS X 隨附且功能最完整的三種命令列文字編輯器為:

  • nano 是簡易的命令列型編輯器,能取代 pico 編輯器,因此運用 pico 編輯器的相關指示可用於 nano。如果你呼叫 pico 編輯器,實際上會執行 nano。nano 是使用命令列型編輯器的絕佳入門款,因為它的畫面上有簡單易懂的說明。

  • vim 是與 vi 相容的文字編輯器,提供多項強大的增強功能,方便四處移動、搜尋和編輯文件。基本編輯操作很容易學習,也有許多額外功能可供探索。大部分功能都是透過輸入會觸發特定行為的按鍵組合來存取。Vim(或其仿照的編輯器 vi)在大部分以 UNIX 為基礎的作業系統中都找得到。如果你將透過命令列進行大量編輯,就很適合學習使用此編輯器。但如果你只需偶爾使用命令列型編輯器,不必特地學習也沒關係。

  • Emacs 和 vim 一樣是功能極為完整的編輯器,可在大部分以 UNIX 為基礎的系統上找到。除了編輯功能之外,Emacs 的可自訂程度極高,模組中也提供額外功能,讓 Emacs 介面的作用遠不止於編輯文字。這項工具在基礎編輯方面相對簡單,也有非常深入的功能可供專門使用者探索。Emacs 和 vim 一樣是運用按鍵組合來存取許多不同的功能行為,必須熟記才能發揮最佳效果,因此 Emacs 對於經常使用命令列的人來說最為實用。

如果你是使用命令列的新手,而且預期不會頻繁使用這項工具來進行編輯,那麼 nano 或許是你的最佳選擇。如果預計會投入大量時間來使用命令列環境,或許值得學習 vim 或 Emacs。這些編輯器的設計概念差異相當大,因此請分別花些時間瞭解,以判斷何者最合適自己。

呼叫命令列編輯器的方法是輸入編輯器的名稱,後面接著一個空格和你想打開的檔案名稱。若要建立新的檔案,請為檔案輸入名稱。以下是透過 nano 在「文件」檔案夾中打開新檔案「myfile.conf」的範例:

nano ~/Documents/myFile.conf

視檔案權限而定,你可能需要使用 sudo 指令。以下是透過 nano 編輯 ldap.conf 檔案的範例,這個檔案只能由 root 使用者變更:

sudo nano /etc/openldap/ldap.conf

如需更多有關使用 nano、vim 或 Emacs 的資訊,請參閱各別的手冊頁面。

儲存文字檔案供系統使用

編輯文字檔案來讓 UNIX 工具程式執行時,你必須正確地儲存檔案,以利其呼叫程式使用(或執行)。使用純文字並確保權限正確,這點特別重要。

使用純文字

儲存文字檔案時,許多圖形化文字編輯器(包括「文字編輯」)會採用比大部分 UNIX 程式預期來得更複雜的格式。如果你是使用「文字編輯」來編輯文字型配置檔,請儲存為純文字,而非預設的 RTF 格式。若要在「文字編輯」中變更文字文件的預設格式,你有兩種選擇:

  • 若要將所有文件儲存為純文字,請在「文字編輯」偏好設定的「新增文件」面板中選取「格式」下的「純文字」。

  • 若要變更個別文件的格式,請從「格式」選單中選擇「製作純文字格式」。

雖然 RTF 格式在編輯器中看起來像是簡單的文字,但實際上卻是描述格式、顏色、字體和其他資訊的完整規格,這些資訊並未包含在大部分 UNIX 程式預期的純文字檔案中。若要查看 RTF 格式文件裡實際包含的內容,請在「文字編輯」中儲存檔案,然後在命令列文字編輯器中打開同一個檔案。

命令列文字編輯器將自動以純文字的形式儲存配置檔。

權限

你必須具備讀取及寫入配置檔的權限,也必須確定經過編輯的檔案仍保留原始權限,否則系統可能無法使用該檔案。

許多系統檔案僅限由 root 使用者編輯。以一般使用者的身分登入之後,如果你在「文字編輯」中以受限的權限打開配置檔,可能會收到訊息,指出你沒有儲存檔案的權限。請避免為了存取檔案而變更檔案權限或以 root 使用者的身分登入。請改為以管理者的身分登入,並透過命令列編輯器使用 sudo 指令來暫時取得根權限,如上所示。

編輯屬性列表

OS X 中的許多偏好設定和配置檔會使用屬性列表(plist)來指定應用程式或程序的屬性,使用者個人專屬檔案夾中 Library/Preferences/ 檔案夾的 Finder 偏好設定 plist 便是一個例子,檔案會命名為 com.apple.Finder.plist。plist 的預設命名慣例是在應用程式或程序名稱的前面加上散發者的反向 DNS 名稱,後面則加上「.plist」副檔名。

屬性列表可以是二進位或 xml 格式。你可以使用文字編輯器來編輯 xml 屬性列表,也可以使用下列工具來編輯二進位或 xml 格式的屬性列表。

  • Xcode「屬性列表編輯器」是 OS X 開發者工具,提供用於編輯屬性列表的圖形化介面。Xcode 4 或以上版本可直接編輯屬性列表。舊版開發者工具中包含「屬性列表編輯器」,其形式為獨立的應用程式。如果你已瞭解屬性列表和其慣例,這些工具就極為實用。如需詳細資訊,請參閱 http://developer.apple.com/mac。

  • defaults 是一項命令列工具,可用來讀取和編輯屬性列表。如果你知道屬性列表中需要變更的特定鍵和值為何,使用此工具就會很有效率。

  • PlistBuddy 是另一項命令列工具,可直接讀取和修改屬性列表中的值。當你需要變更複雜的 plist 檔案時,這會比 defaults 更有彈性。

如需使用 defaults 和 PlistBuddy 的相關資訊,請參閱各別手冊頁面。

更多內容

先備份再編輯檔案

每當你編輯配置檔或屬性列表時,建議先備份檔案再進行編輯。這樣一來,如果檔案不小心配置錯誤,就能使用可用的副本取代。由於許多配置檔位於你具備讀取權限(但沒有寫入權限)的位置,因此你通常可以使用 Finder 將檔案拷貝到其他位置,或使用 sudo 指令在原處拷貝。舉例來說,下列指令會為 syslog.conf 檔案製作名為 syslog.conf.original 的備份副本。

sudo cp /etc/syslog.conf /etc/syslog.conf.original

下列兩個指令會移開配置錯誤的 syslog.conf 檔案,並以上方建立的備份副本取代。

sudo mv /etc/syslog.conf /etc/syslog.conf.bad

sudo cp /etc/syslog.conf.original /etc/syslog.conf

發佈日期: