Linux中國

Linux 黑話解釋:TTY 是什麼?

談到 Linux 和 UNIX 時,你一定聽說過 「TTY」 這個術語,但是,這玩意是什麼?

作為一個桌面用戶,它對你有用嗎?你需要它嗎?你能用它做什麼?

在本文中,讓我向你介紹這些,幫助你熟悉 Linux 中的 TTY

注意:這個問題沒有明確的答案,但它與過去的輸入/輸出設備的交互方式有關。因此,你必須了解一些歷史,才能清楚地了解情況。

「TTY」 背後的歷史

一切始於 19 世紀 30 年代的 電傳印表機 Teleprinter

電傳印表機可以讓你通過電線發送或接受消息,它取代了摩爾斯電碼通信,那是一種需要兩個操作員才能有效地相互通信的方式。

一台電傳印表機只需要一個操作員就可以輕鬆地傳遞消息。雖然它沒有現代布局的鍵盤,但它的系統後來由 Donald Murray 在 1901 年進行了改良,包括了一個類似打字機的鍵盤。

Murray 電碼減少了操作員發送消息的工作量。這才使得電傳印表機在 1908 年有了發展成為商業 電傳打字機 Teletypewriter 的可能。TTY 即是電傳打字機的縮寫。

二戰期間在倫敦實際使用的電傳打字機 | 圖片來源於維基百科

電傳打字機和普通 打字機 typewriter 的區別在於,電傳打字機連接到通信設備,直接發送輸入的消息。

電傳打字機使人類在沒有計算機的情況下通過電線進行更快的通信成為可能

從這時起,「TTY」 一詞就存在了。

(相對)現代的概念

現在,你一定想知道,它是如何進入現代計算機和 Linux 的?

最初是當電傳打字機進入了市場,幾年後半導體晶體管發展起來,然後演變成微處理器,為計算機的出現做好了準備。

最初的計算機沒有鍵盤的概念, 打孔卡 Punch card 就是輸入的方法。

一種插入計算機而不是通過鍵盤(TTY)輸入的打孔卡計算機程序 | 圖片來源於維基百科

隨著計算機的發展,批量輸入的打孔卡最終被電傳打字機取代,成為一種方便的輸入/輸出設備。

1956 年的 LGP-30 計算機,附帶 TTY

隨著技術的進步,電傳打字機被電子技術「虛擬化」了。因此,你不需要一個物理的、機械的 TTY,而是一個虛擬的電子 TTY。

早期的計算機甚至沒有視頻屏幕。字元被列印在紙上而不是顯示在屏幕上。因此,你會看到「 列印 print 」這個術語而不是「 顯示 display 」。隨著技術的進步,視頻顯示後來被添加到終端中。

換句話說,你可能聽說過把它們稱為「視頻終端」。或者,你可以稱它們為「物理」終端。

後來,它們演變成具有更強的能力和功能的軟體模擬的終端。

這就是所謂的「 終端模擬器 terminal emulator 」,如 GNOME 終端或 Konsole,或者其他 你在 Linux 上找到的各種終端模擬器

所以,Linux 中的 TTY 到底是什麼?

在 Linux 或 UNIX 中,TTY 變為了一個抽象設備。有時它指的是一個物理輸入設備,例如串口,有時它指的是一個允許用戶和系統交互的虛擬 TTY(參考此處)。

TTY 是 Linux 或 UNIX 的一個子系統,它通過 TTY 驅動程序在內核級別實現進程管理、行編輯和會話管理。

在編程的場景下,你還需要深入研究。但是考慮到本文的範圍,這可能是一個容易理解的定義。

如果你好奇的話,你可以查看一個有點舊的資源(TTY 揭秘),它儘可能的澄清了 Linux 和 UNIX 系統中的 TTY 的各種技術細節。

事實上,每當你在系統中啟動一個終端模擬器或使用任何類型的 shell 時,它都會與虛擬 TTY(也被稱為 偽 TTY pseudo-TTY ,即 PTY)進行交互。

你可以在終端模擬器中輸入 tty 來找到相關聯的 PTY。

如何在 Linux 中訪問 TTY?

在 Linux 中很容易訪問 TTY。事實上,當我不知道它是什麼時,我不小心打開了它,於是對要做什麼、如何擺脫它感到恐慌。

在大多數 發行版 中,你可以使用以下鍵盤快捷鍵來得到 TTY 屏幕:

  • CTRL + ALT + F1 – 鎖屏
  • CTRL + ALT + F2 – 桌面環境
  • CTRL + ALT + F3 – TTY3
  • CTRL + ALT + F4 – TTY4
  • CTRL + ALT + F5 – TTY5
  • CTRL + ALT + F6 – TTY6

你最多可以訪問六個 TTY。但是,前兩個快捷方式指向發行版的鎖定屏幕和桌面環境。

而其他快捷方式將會讓你進入一個命令行界面。

什麼時候應該使用 TTY?

TTY 不僅是一個技術寶藏,即使像我這樣不是開發人員的用戶,它也很有用。

在圖形桌面環境凍結的情況下,它應該可以派上用場。在某些情況下,從 TTY 重建桌面環境能幫助解決程序問題。

或者,你也可以選擇在 TTY 中執行任務,例如更新 Linux 系統等。在這些情況下,你不希望顯示問題中斷你的進程。

最壞的情況是,如果圖形用戶界面失去響應,你可以進入 TTY 並重新啟動計算機。

有些用戶還喜歡在 TTY 的幫助下傳輸大文件(我不是其中之一)。

Linux 中的 TTY 命令

當你在終端模擬器中輸入 tty 時,它將列印連接到標準輸入的終端文件名,就像手冊頁描述的一樣。

換句話說,要知道你連接的 TTY 編號,只需輸入 tty。並且,如果有多個用戶遠程連接到 Linux 機器,你可以使用 who 命令來檢查其他用戶連接到的是哪個 TTY。

via: https://itsfoss.com/what-is-tty-in-linux/

作者:Ankush Das 選題:lujun9972 譯者:MjSeven 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國