linux模擬終端
① linux的終端在哪裡
Ubuntu常用的有3種進入終端(terminal)界面方法,分別如下:
①按快捷鍵「Ctrl+Alt+T」即可打開終端窗口
注意事項:如果採用方法2的F1-F6的方法,返回圖形界面只要按「Ctrl+Alt+F7即可」。
② llinux中的終端和控制台的區別
終端(terminal,或者叫物理終端):
是一種設備,不是一個程序,一般說的就是能提供命令行用戶界面的設備,典型的是屏幕和鍵盤,或其他的一些物理終端。
控制台(console):
顯示系統消息的終端就叫控制台,Linux 默認所有虛擬終端都是控制台,都能顯示系統消息。
但有時專指CLI下的模擬終端設備的一個程序,和gnome-terminal,urxvt,mlterm,xterm等相同,只是CLI和GUI界面的區別。一般console有6個,tty1-6,CTRL+ALT+fn切換。
③ Linux上自帶的6個可使用ctrl alt fn切換的終端和圖形化界面終端模擬器的終端有什麼不同
使用的設備不同
④ Linux打開終端的命令是什麼
gnome-terminal(但是默認打開的是家目錄為終端)可以把這個命令設為快捷鍵缺點就是要自己慢慢cd 到自己的工作路徑
⑤ linux操作系統中的終端在哪裡打開啊
Linux常用的有3中進入終端界面方法,分別如下:
1、按快捷鍵「Ctrl+Alt+T」即可打開終端窗口
注意事項:
如果採用方法2的F1-F6的方法,返回圖形界面只要按「Ctrl+Alt+F7即可」。
⑥ Linux終端模擬器有哪些
1. Gnome-terminal
2. Konsole
3. (Xfce) terminal
4. LXTerminal
5. Terminator
6. Tilda
7. Guake
8. Yakuake
9. Terra
10. rxvt
11. Sakura
12. Terminology
⑦ 如何改造 Linux 虛擬終端顯示文字
必須使用 UTF-8 模式 ( 默認 vc->utf=1 即可 )
虛擬控制台的 vc_screenbuf 必須修改以為 glyph 提供至少 16bit 的空間。
圖形控制台需要 vc_font包含更多的字元,不只是 255 個,並提供代碼繪制雙倍寬度的中文字形,字體中的字元按照 UNICODE
排列,這樣 glyph 就是字元的 UNICODE 編碼。
修改虛擬控制台
一開始,我的打算是 vc_screenbuf 修改為 unsigned long long* 類型,32bit 給字元屬性,分別表示 16bit
終端前景色和背景色。glyph 則擁有 31bit 的空間 , 因為漢字的寬度為雙倍的英文字母 ,其中 1 bit 用來表示雙字元寬度。比如 '我' 會表達為
兩個 '我',第二個'我'的最高位為 1:繪制任何字形的時候,只繪制字形的左半部分;如果發現最高位為 1
則繪制字體點陣圖中的右半部分。這樣同樣的繪制代碼可以適應英文字母和漢字。寫入 vc_screenbuf 的時候,
如果是雙倍寬度的字元,需要同時寫入兩份,第二份的最高位置 1 就可以。但是 vc_screenbuf
的格式已經被到處假定為每字元兩個位元組。如此修改導致牽一發動全身。許多艱澀難懂的代碼都依賴 vc_screenbuf 是
每字元兩個位元組的設定,直接修改定義後,光是編譯器能直接檢測出來的就有百餘個地方需要修改,還有更多的邏輯並不能被編譯器檢測出來。如此修改的後果就是會出現許多隱晦的錯誤,非常難於調式。掙扎後,為最終選擇了另一條道路
:
為漢字重新分配一塊 vc_unicode_screenbuf
vc_unicode_screenbuf 緊挨著 vc_screenbuf , 事實上 vc_screenbuf
在分配空間的時候,多分配了一倍的空間,多分配的空間充作 vc_unicode_screenbuf,因此 struct vc_data 里並沒有添加
vc_unicode_screenbuf 成員。 vc_unicode_screenbuf 同樣為每字元 2 個位元組,並不包含字元屬性,所以 2
個位元組如數用來保存 glyph。vc_screenbuf 格式未變,所以 vgacon 不需要修改,這就減少了大量的工作量。向 vc_screenbuf
寫入字元的時候,同時寫入一份到 vc_unicode_screenbuf 。如果是漢字,由於其 glyph 大於 254 , 所以 vc_screenbuf
的那兩個字元 ( 漢字雙倍寬度 ) 實際寫入的是 0xff 和 0xfe ( 故而上文提到是 glyph 大於 254 的字元 ,0xfe 被保留它用了
)。0xff 表示該字元的 glyph 要到 vc_unicode_screenbuf 提取,然後繪制左半部分;0xfe 表示該字元的 glyph 要到
vc_unicode_screenbuf 提取,然後繪制右半部分。對於 glyph 大於 254 但是又不是雙倍寬度的字元,就不需要 0xfe
作陪了。比如屏幕上顯示的文字是黑底白字的 「牛 B」 , vc_screenbuf 的內容就是 「0x00ff, 0x0ffe, 0x0f42 」 ,
vc_unicode_screenbuf 的內容則是 「牛 , 牛 ,b」
。這是因為一個漢字為兩倍的英文字母寬度。在屏幕文字緩沖區上也必須佔用兩個字元的位置。並且必須有一種機制能知道應該繪制左半部分和右半部分,我使用的就是 0xff
和 0xfe。
修改圖形控制台繪制代碼
要修改的地方只有 3 個。
struct console_font 添加 charcount 成員。將主線內核的字體設置為 charcount = 255。 主線內核帶的字體都是
255 個 glyph 的,所以沒有添加字元個數的必要。不過我們即將要添加的字體會有數萬字元。
添加一個新的字體,復蓋 UNICODE BMP 基本區域的所有符號。
修改字元繪制代碼,添加 vc_unicode_screenbuf 的支持。
字元繪制代碼的修改比較繁瑣,代碼分布在 drivers/video/console/ 下的多個文件中。fbcon_putc(s) 由由
vc->vc_sw->con_putc(s) 調用, fbcon_putc(s) 轉而調用分散於 drivers/video/console/
的多個 puts 實現。因為終端要支持 console_rotate , decoration , timing , 故而每種模式下的繪制實現都是不同的。我拿
drivers/video/console/bitblt.c 最常用的不傾斜、不加裝飾等的終端模式為例來講解繪圖部分的修改。由於中文字體為 16x16
點陣,是對齊的字體,故而其繪制代碼為 bit_putcs_aligned() 原先的代碼以 glyph 為下標到 vc->vc_font->data
獲得字體數據,然後調用 fb_pad_aligned_buffer 執行塊拷貝操作。我的修改很簡單,原來獲得字體數據的代碼修改後放入 font_bits()
輔助函數。 在 font_bits 里,要判斷 glyph 是否為 0xff 或者 0xfe, 如果不是,使用 glyph 為下標獲得字體的左半部分後並返回。
如果是,則從 vc_unicode_screenbuf 獲得真正的 glyph 數值,然後再依據現有的 glyph 是 0xff 還是 0xfe
去獲得字體的右半部分還是左半部分返回。font_bits 獲得字體數據後執行 fb_pad_aligned_buffer 塊拷貝。需要修改的地方還有
drivers/video/console/fbcon_ccw.c fbcon_cw.c fbcon_ub.c 。依原理進行修改即可。
虛擬終端的不足之處
雖然費盡心機添加了中文支持,那隻是一個 workaround ,
並不能算真正的支持。要真正的支持必須徹底重寫虛擬終端和控制台。而要支持中文,就需要更進一步,全面支持 UNICODE ,
包括支持從右向左的書寫習慣。在內核里實現一個全面支持 UNICODE
的控制台並不是一件容易的事情,何況內核的政策也不允許將如此龐大的字型檔裝入內核。於是乎,這里出現了死胡同。KMS 和 Wayland
的出現讓這死胡同似乎有了個完美的解。
System Compositor?
System Compositor 是一個 wayland compositor,只是運行於系統全局范圍。
為了懶人我這里稍微講解一下 wayland compositor 吧。 Wayland 不同於 X , 在 wayland 的世界裡,只有
compositor 和 client。Client 利用各種 API (wayland 給出的示例使用的是 OpenGL ES, 但其實 wayland
並不限制使用的繪圖 API 類型 ) 進行窗口繪圖,然後將窗口的繪制結果直接提交給 compositor 合成到屏幕上。這樣 wayland 本身就不包含繪圖
API 而大大簡化了 wayland 的設計。Wayland compositor 可以同 X 一樣操作顯卡向屏幕輸出合成後的結果,也可以作為另一個
wayland compositor 的 client。
對於多賬戶同時登錄的實現,固然可以讓每一個本地 GUI 會話開啟一個 wayland compositor,但是存在更好的辦法就是固定開啟一個
system compositor。而讓所有用戶會話的 wayland compositor 再作為 system compositor 的 client.
藉由 system compositor 的合成效果,進行快速用戶切換也可以進行一些視覺效果。而且 Xorg 本身也已經支持作為 wayland client
運行,這樣可以使用傳統的 X 提供桌面,而讓 wayland system compositor 實現終端切換。這還有一個好處,只有 wayland
system compositor 是以 root 運行的,而用戶會話的 compositor 或 X 就不必以 root 許可權運行。因為 Wayland
非常輕量,所以 system compositor 可以作為系統級服務常駐內存運行。而因為有了 system compositor ,
內核也不再需要實現虛擬終端了:只需要實現終端模擬器作為 system compositor 的 client
。由於是在用戶空間實現的,所有可以加入 UNICODE,矢量字體,國際化的書寫習慣等等的支持,再也不用受限於內核啦。 Wayland
還是一個非常年輕的項目,Wayland system compositor 目前還只是設想中的概念,需要更多的人關注參與。筆者相信不久的將來 wayland
⑧ linux怎麼進入terminal
1、第一種方式,也是最簡單的方式,在Linux的首頁使用Ctrl+alt+T,打開終端。
⑨ Linux上有哪些好的終端模擬器
1. Gnome-terminal
讓我們先從「經典」終端開始,對於Gnome而言,Gnome-terminal和Gnome一樣經典。它支持多用戶配置,標簽,文本大小調整,背景轉換和高度定製。如它名字暗示的那樣,它適用於Gnome環境。
2. Konsole
同樣大名鼎鼎,Konsole在KDE環境下等同於Gnome-terminal。Konsole額外支持的一點是分割視圖和書簽目錄。
3. (Xfce) terminal
Xfce用戶同樣有他們的Xfce4終端。這個項目的目的是製造一個在外觀上相似Gnome-terminal的產品,但是更少佔用資源需求。它是高端定製化的,雖然沒有用戶配置功能或者透明背景。
4. LXTerminal
其目標是為了成為桌面環境下的最有名的終端,LXTerminal是為LXDE環境設計的。如你所能想到的,它甚至比xfce-terminal更輕量快速,去除了復雜的自定義和高級選項,只保持了標簽功能。
5. Terminator
現在讓我們看看終端模擬器中的勞斯萊斯,Terminator是這些終端裡面功能最完備的一款,它包括了標簽、水平和垂直分割視圖、截屏、用戶配置、插件、布局管理。可能還有一些你永遠都用不到的選項。它的缺點是太大和大量的資源消耗,這些就是你付出的代價。
6. Tilda
這里還有一款完全不同的一款終端,它稱為「下拉」式。如果你喜歡你的終端總是一鍵可達,也許你會喜歡下面提到的三個特點。首先,Tilda是一個典型的下拉式終端;它不依賴於環境並且非常輕量;你可以設置透明度或者甚至是不同的背景,並且選擇出現在屏幕的那個邊。除去這些,不要期待太復雜的功能,比如標簽或者分割視圖。Tilda只做一件事:在你需要的時候快速顯示出來。