教你如何更改Linux控制台上的字型

2021-08-16 03:35:22 字數 2672 閱讀 6800

linux 死忠們,你可以更改控制台的字型。按照 linux 一貫的尿性,不斷變化的 linux 環境使得這個問題變得不太簡單明瞭,而 linux 上也沒有字型管理這麼個東西,這使得我們很容易就被搞暈了。本文,我將會向你展示,我找到的更改字型的最簡方法。

我嘗試盡可能的保持心靈祥和,然而總有一些事情讓我意難平,比如控制台字型太小了。記住我的話,朋友,有一天你的眼睛會退化,無法再看清你編碼時用的那些細小字型,到那時你就後悔莫及了。

幸好,linux 死忠們,你可以更改控制台的字型。按照 linux 一貫的尿性,不斷變化的 linux 環境使得這個問題變得不太簡單明瞭,而 linux 上也沒有字型管理這麼個東西,這使得我們很容易就被搞暈了。本文,我將會向你展示,我找到的更改字型的最簡方法。

linux 控制台是個什麼鬼?

首先讓我們來澄清一下我們說的到底是個什麼東西。當我提到 linux 控制台,我指的是 tty1-6,即你從圖形環境用 ctrl-alt-f1 到 f6 切換到的虛擬終端。按下 ctrl+alt+f7 會切回圖形環境。(不過這些熱鍵已經不再通用,你的 linux 發行版可能有不同的鍵對映。你的 tty 的數量也可能不同,你圖形環境會話也可能不在 f7。比如,fedora 的預設圖形會話是 f2,它只有乙個額外的終端在 f1。) 我覺得能同時擁有 x 會話和終端會話實在是太酷了。

linux 控制台是核心的一部分,而且並不執行在 x 會話中。它和你在沒有圖形環境的無頭伺服器中用的控制台是一樣的。我稱呼在圖形會話中的 x 終端為終端,而將控制台和 x 終端統稱為終端模擬器。

但這還沒完。linux 終端從早期的 ansi 時代開始已經經歷了長久的發展,多虧了 linux framebuffer,它現在支援 unicode 並且對圖形也有了有限的一些支援。而且出現了很多在控制台下執行的多**應用,這些我們在以後的文章中會提到。

控制台截圖

獲取控制台截圖的最簡單方法是讓控制台跑在虛擬機器內部。然後你可以在宿主系統上使用中意的截圖軟體來抓取。不過借助 fbcat 和 fbgrab 你也可以直接在控制台上截圖。fbcat 會建立乙個可移植的畫素對映格式(ppm)的影象; 這是乙個高度可移植的未壓縮影象格式,可以在所有的作業系統上讀取,當然你也可以把它轉換成任何喜歡的其他格式。fbgrab 則是 fbcat 的乙個封裝指令碼,用來生成乙個 png 檔案。很多人寫過多個版本的 fbgrab。每個版本的選項都有限而且只能建立擷取全屏。

fbcat 的執行需要 root 許可權,而且它的輸出需要重定向到檔案中。你無需指定副檔名,只需要輸入檔名就行了:

$ sudo fbcat > pictures/myfile
在 gimp 中裁剪後,就得到了下圖。

fbgrab 還有一些選項,你可以通過 man fbgrab 來檢視,這些選項包括對另乙個控制台進行截圖,以及延時截圖等。在下面的例子中可以看到,fbgrab 截圖跟 fbcat 截圖類似,只是你無需明確進行輸出重定性了:

$ sudo fbgrab pictures/myotherfile
查詢字型就我所知,除了檢視字型儲存目錄 /usr/share/consolefonts/(debian 等),/lib/kbd/consolefonts/ (fedora),/usr/share/kbd/consolefonts (opensuse)外沒有其他方法可以列出已安裝的字型了。

更改字型

可讀字型不是什麼新概念。我們應該尊重以前的經驗!可讀性是很重要的。可配置性也很重要,然而現如今卻不怎麼看重了。

你也可以直接編輯 /etc/default/console-setup 檔案。下面這個例子中設定字型為 32 點大小的 terminus bold 字型,這是我的最愛,並且嚴格限制控制台寬度為 80 列。

active_consoles="/dev/tty[1-6]"

charmap="utf-8"

codeset="guess"

fontface="terminusbold"

fontsize="16x32"

screen_width="80"

這裡的 fontface 和 fontsize 的值來自於字型的檔名 terminusbold32x16.psf.gz。是的,你需要反轉 fontsize 中值的順序。計算機就是這麼搞笑。然後再執行 setupcon 來讓新配置生效。可以使用 showconsolefont 來檢視當前所用字型的所有字符集。要檢視完整的選項說明請參考 man console-setup。

systemd

systemd 與 console-setup 不太一樣,除了字型之外,你無需安裝任何東西。你只需要編輯 /etc/vconsole.conf 然後重啟就行了。我在 fedora 和 opensuse 系統中安裝了一些額外的大字型大小的 terminus 字型包,因為預設安裝的字型最大只有 16 點而我想要的是 32 點。然後將 /etc/vconsole.conf 的內容修改為:

keymap="us"

font="ter-v32b"

在控制台上近似輸出圓

題目 在控制台上近似輸出圓 思路 半徑為r,y為圓的縱座標,y的範圍為 0,2r 設定y的步長為y y 2,調整橢圓的 胖瘦 在控制台輸出,圓心座標為 r,r 可以推出x的座標為x r math.sqrt 2xrxy yxy 把得到的double x,返回最接近引數的 long,結果將捨入為整數。最...

控制台獲取 更改環境變數

include include include void dumpenvvariables ptstr penvblock void mydumpenvvariables0 ptstr penvblock void mydumpenvvariables1 ptstr penvblock void p...

linux基礎 控制台

圖形介面切換至命令列介面 ctrl alt f1 f6 命令列介面切換至圖形介面 startx linux一共有7個執行級別,可檢視 etc inittab檔案 0 停機 記住不要把initdefault 設定為0,因為這樣會使linux無法啟動 1 單使用者模式,就像win9x下的安全模式。2 多...