FreeBSD 使用手冊
Prev | Chapter 3 UNIX 基礎概念 | Next

# 3.2 Virtual Consoles 和終端機

有很多方法可以操作 FreeBSD ，其中一種就是在文字終端機上打字。 如此使用 FreeBSD 即可輕易的體會到 UNIX® 作業系統的威力和彈性。 這一節描述什麼是“終端機”和 “console” ，以及可以如何在 FreeBSD 中運用它們。

## 3.2.1 The Console

如果您沒有將 FreeBSD 設定成開機時自動進入圖形化模式，系統會在啟動的 script 跑完之後顯示登入的提示符號。 您將會看到像是這樣的東西：

    Additional ABI support:.
    Local package initialization:.
    Additional TCP options:.

    Fri Sep 20 13:01:06 EEST 2002

    FreeBSD/i386 (pc3.example.org) (ttyv0)

    login:

這個訊息在您的系統上會有些許的不同，但是應該會看到類似的東西。 我們感興趣的是最後兩行，最後兩行是：

    FreeBSD/i386 (pc3.example.org) (ttyv0)

這行包含了剛開機完系統的資訊。 您看到的是在 Intel 或相容處理器的 x86 架構上執行的 “FreeBSD”的 console[1]。 這台機器的名字(每台 UNIX 機器都有一個名字)是 `pc3.example.org`，而您現在看到的是它的系統 console—— `ttyv0`終端機。

最後的一行應該都會是：

    login:

這是您應該要輸入您的“帳號名稱”的地方。 下一小節將告訴您如何登入 FreeBSD。

## 3.2.2 登入 FreeBSD

FreeBSD 是一個 multiuser、multiprocessing 的系統。 這是一個正式的名稱，指的是在單一機器上可以同時被不同人使用， 但同時可以執行很多程式的系統。

每一種多使用者系統都需要可以分辨不同“使用者”的方法。 在 FreeBSD (以及所有的 UNIX-like 作業系統) 中，所有的使用者在執行程式之前必須先“登入”系統。 每個使用者都有一組獨特的帳號名稱 (“username”)及密碼(“password”)。 FreeBSD 在允許使用者執行程式前將會先問這兩個問題。

在 FreeBSD 開機並跑完啟動的 script 之後[2]，它將會印出提示字元要求您輸入正確的帳號名稱：

    login:

在這個範例裡，我們假設您的帳號是`john`。 在提示字元處輸入 `john` 並按下 Enter 。 接著您應該會看到另一個提示字元要您輸入“密碼”：

    login: john
    Password:

輸入 `john` 的密碼，再按下 Enter。 輸入的密碼 不會顯示在螢幕上。 您不需要為此擔心，這樣做是為了安全上的問題。

如果您輸入了正確的密碼，您應該已經登入 FreeBSD。 現在就可以嘗試所有可用的指令了。

您應該會看到MOTD (即今日訊息、Messages Of The Day)，後面接著命令提示字元 (一個 `#`,`$`, 或是 `%` 字元)。 這就表示您已經成功登入 FreeBSD 了。

## 3.2.3 多重 Console

在一個 Console 下執行 UNIX 當然是沒有問題，然而 FreeBSD 是可以同時執行很多程式的。 像 FreeBSD 這樣可以同時執行一大堆程式的作業系統，只有一個 console 可以輸入指令實在是有點浪費。 因此 “virtual consoles” 就顯得相當好用。

可以設定讓 FreeBSD 同時有很多 virtual console， 用幾個按鍵的組合就可以從一個 virtual console 跳到別的 virtual console 。 每一個 console 都有自已不同的輸出頻道，當從某一個 virtual console 切換到下一個的時候，FreeBSD 會自動處理鍵盤輸入及螢幕輸出。

FreeBSD 保留了特別的按鍵組合來切換 console [3]。 您可以用 Alt-F1、 Alt-F2、到 Alt-F8 來切換 FreeBSD 的不同 console。

當您從一個 console 切換到下一個的時候，FreeBSD 會處理螢幕輸出的儲存及回復。 這就“好像”有很多“虛擬”的螢幕和鍵盤， 可以讓您輸入指令到 FreeBSD 執行。 在某一個 console 上執行的程式並不會因為切到別的 console 而停止執行，切換到另一個 console 時，它們仍會繼續執行。

## 3.2.4 `/etc/ttys` 檔

FreeBSD 預設的虛擬 console 總共有 8 個， 但這並非硬性規定，您可輕鬆設定這些虛擬 console 的數量增減。 有關虛擬 console 的編號跟設定都在 `/etc/ttys` 這檔案內設定。

可以用 `/etc/ttys` 檔案來設定 FreeBSD 的虛擬 console。 檔案內每行非註解文字(該行開頭沒有 `#` 這字)都是設定終端機或虛擬 console。 FreeBSD 預設有 9 個虛擬 console 但只啟動 8 個，也就是以下以 `ttyv` 開頭的那幾行設定。

    # name  getty                           type    status          comments
    #
    ttyv0   "/usr/libexec/getty Pc"         cons25  on  secure
    # Virtual terminals
    ttyv1   "/usr/libexec/getty Pc"         cons25  on  secure
    ttyv2   "/usr/libexec/getty Pc"         cons25  on  secure
    ttyv3   "/usr/libexec/getty Pc"         cons25  on  secure
    ttyv4   "/usr/libexec/getty Pc"         cons25  on  secure
    ttyv5   "/usr/libexec/getty Pc"         cons25  on  secure
    ttyv6   "/usr/libexec/getty Pc"         cons25  on  secure
    ttyv7   "/usr/libexec/getty Pc"         cons25  on  secure
    ttyv8   "/usr/X11R6/bin/xdm -nodaemon"  xterm   off secure

有關各欄位的設定以及其他選項，請參閱 ttys(5) 說明。

## 3.2.5 Single User 模式的 Console

有關 “single user 模式” 的介紹在 Section 12.6.2 這邊有詳盡介紹。 在 single user 模式時，能夠使用的 console 只有一個，並無虛擬 console 可用。 而 single user 模式相關設定值可以在 `/etc/ttys` 檔做調整。 下面以 `console` 開頭的那行，就是了：

    # name  getty                           type    status          comments
    #
    # If console is marked "insecure", then init will ask for the root password
    # when going to single-user mode.
    console none                            unknown off secure

> Note: 在 `console` 那行前面的註解有提到，可以把那行的 `secure` 改為 `insecure`， 如此一來，即使 FreeBSD 進入 single user 模式， 仍會要求您輸入 `root` 的密碼。

> 請審慎考慮是否要改為 `insecure`。 因為萬一忘記 `root` 密碼的話，若要登入 single user 模式就有些麻煩了。儘管還有其他方式可以登入，但對不熟 FreeBSD 開機程序的人而言，就會相當棘手。

## 3.2.6 更改 console 的顯示畫面

FreeBSD console 預設顯示大小可以調整為 1024x768、1280x1024 或其他顯示卡與螢幕有支援的解析度大小。 要切換顯示大小，必須要重新編譯 kernel 並加入下面這兩項設定：

    options VESA
    options SC_PIXEL_MODE

一旦 kernel 有加入這兩項並重新編譯完畢，就可以用 vidcontrol(1) 來偵測目前所支援的模式有哪些。 若要查看支援的模式，可以打：

    # vidcontrol -i mode

該指令會顯示該機器所支援的顯示模式清單。 然後可以在 `root` console 內透過 vidcontrol(1) 指令， 來更改顯示模式：

    # vidcontrol MODE_279

若對新的顯示模式覺得還不錯，可以在 `/etc/rc.conf` 設定之，以讓每次重開機後會自動生效。 以上面這情況為例，就是：

    allscreens_flags="MODE_279"

### Notes

[1] | 這就是 `i386` 的意義。 注意即使您不是在 Intel 的 386 處理器上執行 FreeBSD ，一樣是`i386`。 這不是指你的處理器的型號，這裡顯示的是你處理器的“架構”
[2] | 這些啟動的 script 是在開機的時候 FreeBSD 會自動執行的程式。 他們主要的功能是將所有該執行的東西設定好， 並將您設定成背景執行的服務啟動。
[3] | 在 syscons(4)、atkbd(4)、vidcontrol(1)、以及 kbdcontrol(1)等 manual page 中，對於 FreeBSD 的 console 及鍵盤驅動程式有詳細的技術說明。 我們在這裡不討論細節， 有興趣的讀者隨時可以在 manual pages 中查到關於運作方式的更詳細且完整的解釋。

Prev | Home | Next
UNIX 基礎概念 | Up | 權限

本文及其他文件，可由此下載：ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/。

若有 FreeBSD 方面疑問，請先閱讀 FreeBSD 相關文件，如不能解決的話，再洽詢 <questions@FreeBSD.org>。
關於本文件的問題，請洽詢 <doc@FreeBSD.org>。