Linux如何在開機的時候直接進入文字(命令列)介面?


Linux作業系統擁有客製性極高的圖形使用者介面(Graphical User Interface, GUI),以及功能強大的文字(命令列)介面(Command Line Interface, CLI),一般Linux發行版會直接內建圖形介面,使用者安裝完Linux作業系統後,開機即可直接進入圖形介面。只是,在很多時候,我們可能不太希望使用到圖形介面,像是使用效能較差的硬體時,不開啟圖形介面可以省下不少的記憶體CPU成本。或是系統僅用來作為伺服器時,因為要長時間開著,不使用圖形介面也可以省下不少的電力。

以文字介面開機(Ubuntu 15.10之前適用)

要如何讓原先開機會直接進入圖形介面的Linux作業系統,在開機時直接進入文字介面?通常只需修改開機管理程式的設定即可。以GRUB這個常見的開機管理程式為例,可以使用類似以下的指令來用文字編輯器開啟「/etc/default/grub」:

sudo pluma /etc/default/grub

Linux如何在開機的時候直接進入文字(命令列)介面?

先找到GRUB_CMDLINE_LINUX_DEFAULT這項設定值,並在該行行首加入「#」,將其註解備份。接著在下一行插入新的設定值內容:

GRUB_CMDLINE_LINUX_DEFAULT="text"

Linux如何在開機的時候直接進入文字(命令列)介面?

修改完畢後儲存檔案,再使用以下指令來更新GRUB

sudo update-grub

Linux如何在開機的時候直接進入文字(命令列)介面?

重開機後,就可以直接進入文字介面登入使用者帳號密碼來操作電腦了!

Linux如何在開機的時候直接進入文字(命令列)介面?

Linux如何在開機的時候直接進入文字(命令列)介面?

以文字介面開機(Ubuntu 16.04之後適用)

Ubuntu 16.04開始使用systemd這個init系統,在顯示管理器(Display Manager, DM)方面和先前的版本有一些不同。

在設定Display Manager之前,必須先知道自己是使用哪種Display Manager,可以使用以下指令查看預設值。

cat /etc/X11/default-display-manager

Linux如何在開機的時候直接進入文字(命令列)介面?

Linux Mint 18 MATE為例,是使用「mdm」作為預設的Display Manager

若要停用Display Manager,讓開機能直接使用文字介面的話,那就輸入以下指令:

sudo systemctl disable display-manager

接著將「/etc/systemd/system/display-manager.service」這個檔案連結到「/dev/null」:

sudo ln -s -f /dev/null /etc/systemd/system/display-manager.service

如此一來開機就會自動進入文字介面了。

若要啟用「mdm」,使用圖形介面的話,那就輸入以下指令,將「/etc/systemd/system/display-manager.service」這個檔案連結到原本的Display Manager(例如mdm的路徑就在「/lib/systemd/system/mdm.service」):

sudo ln -s -f /lib/systemd/system/mdm.service /etc/systemd/system/display-manager.service

若想讓開機畫面也文字化,那就參考Ubuntu 15.10之前的方法來設定GRUB

什麼是TTY?

使用文字介面的時候,會看到tty1、tty2之類的名稱,這是什麼東西呢?TTY是「Teletypes」這個字的縮寫,原意是打字機,引申為打字輸入的介面,也就是終端機(Terminal)的文字輸入介面。tty之後接的號碼,可以想像成是第幾台終端機,例如tty1就是第一台終端機。Linux預設有七台終端機,分別是tty1、tty2、tty3、tty4、tty5、tty6、tty7,tty7一般作為X-Window圖形介面使用。切換不同tty的方式很簡單,只要使用鍵盤組合鍵即可達成,按法為:「ctrl + alt + F1~F7」,「F」的號碼就代表tty的號碼。如按下「ctrl + alt + F5」就可以切換到tty5。

為什麼Linux要分好多台tty呢?因為Linux是一套多人多工的系統,它允許在同一時間使用多個相同或是不同的使用者帳號,來做不同的工作,系統在開機後預設創建多台的tty,可以有效增加使用者的工作效率。舉例來說,tty1在使用apt-get處理套件的時候,還可以切換到tty2做其它如編輯文字檔案的工作。

TTY文字會出現方塊或是菱形亂碼的解決方法

在TTY文字介面下,不是英文的文字可能會顯示不出來,如下圖的中文都變成了菱形。

Linux如何在開機的時候直接進入文字(命令列)介面?

要解決文字變成亂碼的問題,就只能修改系統語系為英文了。修改tty的語言設定,可以使用export指令來修改該tty的環境變數,指令如下:

export LC_ALL="en_US.UTF-8"
export LANGUAGE="en_US.UTF-8"
export LANG="en_US.UTF-8"

每次使用不同tty時都要打修改語言的指令實在麻煩,建議可以將指令寫成bash迴圈程式,直接將指令套用到不同的tty上,並在一開機的時候自動執行這個迴圈程式,省得以後要一直重打。Linux不同使用者都擁有自己的家目錄「~」,而家目錄底下的「.bashrc」檔案會在bash啟動的時候先被執行,替該使用者預先做一些事情,因此這個修改tty語言的bash迴圈程式,可以寫在「.bashrc」檔案。首先將tty的工作目錄移動到家目錄下,然後使用文字編輯器開啟「.bashrc」檔案,以「vim」文字編輯器為例,指令如下:

vim .bashrc

Linux如何在開機的時候直接進入文字(命令列)介面?

Linux如何在開機的時候直接進入文字(命令列)介面?

「.bashrc」檔案一開始可能存在,也可能不存在。不管怎麼樣,將底下的bash迴圈程式加到「.bashrc」檔案的最尾端。

Linux如何在開機的時候直接進入文字(命令列)介面?

存檔後,使用以下指令重新啟動電腦,tty1~tty4的語言就變成英文了!

sudo reboot

Linux如何在開機的時候直接進入文字(命令列)介面?

Linux如何在開機的時候直接進入文字(命令列)介面?

在文字介面下,啟動和關閉圖形介面

使用文字介面操作系統,固然方便、快速又省資源,只是有時候還是會遇到不得不用圖形介面的時候,例如看PDF、HTML的文件的時候,這時還是需要一些方式來開啟和關閉圖形介面。

在開啟圖形介面前,必須先知道自己是使用哪種顯示管理器(Display Manager, DM),可以使用以下指令查看預設值。

cat /etc/X11/default-display-manager

Linux如何在開機的時候直接進入文字(命令列)介面?

Linux Mint 17 MATE為例,是使用「mdm」作為預設的Display Manager

知道自己的Linux系統是使用哪種Display Manager之後,就可以使用「service」的「start」和「stop」來開關圖形介面了!以「mdm」為例,指令如下:

sudo service mdm start

sudo service mdm stop

Linux如何在開機的時候直接進入文字(命令列)介面?

Linux如何在開機的時候直接進入文字(命令列)介面?

有興趣的人,還可以用「free」指令來觀察開啟圖形介面時和關閉圖形介面時,系統記憶體的使用情形。

Linux如何在開機的時候直接進入文字(命令列)介面?

關於作者

Magic Len

各位好,我是Magic Len,是這網站的管理員。我是台灣台中大肚山上人,畢業於台中高工資訊科和台灣科技大學資訊工程系,曾在桃機航警局服役。我熱愛自然也熱愛科學,喜歡和別人分享自己的知識與經驗。如果你有興趣認識我,可以加我的Facebook,並且請註明是從MagicLen來的。

相關文章