Linux終端類型

来源:http://www.cnblogs.com/f-ck-need-u/archive/2017/06/30/7099578.html
-Advertisement-
Play Games

unix是一個多用戶多任務的操作系統。早期電腦昂貴,所以當時使用便宜的設備連接到電腦上(當時還沒有鍵盤和顯示器,使用紙帶和卡片來輸入輸出)來使用操作系統,這個便宜的設備就是終端,也可以認為終端是一種控制台。所以可以認為電腦本身是console終端,便宜的連接設備是物理終端pty。 Linux是類un ...


unix是一個多用戶多任務的操作系統。早期電腦昂貴,所以當時使用便宜的設備連接到電腦上(當時還沒有鍵盤和顯示器,使用紙帶和卡片來輸入輸出)來使用操作系統,這個便宜的設備就是終端,也可以認為終端是一種控制台。所以可以認為電腦本身是console終端,便宜的連接設備是物理終端pty。

Linux是類unix系統,所以也繼承了終端的特性。但是後來電腦逐漸便宜,也出現了顯示器和鍵盤,所以可以使用鍵盤當作輸入終端,顯示器當作輸出終端,這些終端就是虛擬終端,虛擬終端其實就是虛擬控制台,或者說是一個虛擬設備。

Linux提供了很多種虛擬終端,使用ttyN表示,使用Ctrl+Alt+F[1-6]可以進行虛擬終端的切換,這些終端設備記錄在/dev/目錄下。

[root@xuexi ~]# ls /dev/tty
tty    tty12  tty17  tty21  tty26  tty30  tty35  tty4   tty44  tty49  tty53  tty58  tty62  ttyS0 
tty0   tty13  tty18  tty22  tty27  tty31  tty36  tty40  tty45  tty5   tty54  tty59  tty63  ttyS1 
tty1   tty14  tty19  tty23  tty28  tty32  tty37  tty41  tty46  tty50  tty55  tty6   tty7   ttyS2 
tty10  tty15  tty2   tty24  tty29  tty33  tty38  tty42  tty47  tty51  tty56  tty60  tty8   ttyS3 
tty11  tty16  tty20  tty25  tty3   tty34  tty39  tty43  tty48  tty52  tty57  tty61  tty9

tty加上數值的就是虛擬終端,CTRL+ALT+F1表示切換到tty1終端,ctrl+alt+f2表示切換到tty2終端,一般Linux上只提供了ctrl+alt+f[1-6]這6個終端之間切換的功能。兩個特殊的終端是tty和tty0,tty表示當前正在使用的終端,tty0表示當前已被激活的所有虛擬終端。還有ttySN,這些表示串列終端。

還有從ssh或telnet等從網路連接到電腦上的終端,或者從圖形虛擬終端打開的命令行終端,都稱為偽終端,使用pts/N表示,對應的設備為/dev/pts目錄下的數值N文件。

[root@xuexi ~]# ls /dev/pts/
0     ptmx 

0表示第一個偽終端,1表示第二個偽終端。

偽終端和其它所有終端的管理方式都不一樣,它是通過連接電腦的程式管理的,例如ssh連接則由ssh負責申請偽終端資源,並要求輸入用戶名和密碼。如果ssh連接進程被殺,則此偽終端也相應的退出。

另外,有些身份驗證的程式並非一定會為連接從程式分配終端,例如執行sudo ssh時,sudo就不一定會為ssh分配偽終端。

在現代Linux上,console終端已經和原始的意義不太一樣了,其設備映射在/dev/console上,所有內核輸出的信息都輸出到console終端,而其他用戶程式輸出的信息則輸出到虛擬終端或偽終端。

總結下:

/dev/console:控制台終端

/dev/ttyN:虛擬終端,ctrl+alt+f[1-6]切換的就是虛擬終端

/dev/ttySN:串列終端

/dev/pts/N:偽終端,ssh等工具連接過去的活著圖形終端下開啟的命令行終端就是偽終端。

 

回到系列文章大綱:http://www.cnblogs.com/f-ck-need-u/p/7048359.html

轉載請註明出處:http://www.cnblogs.com/f-ck-need-u/p/7099578.html

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • JDBC_ODBC,純java方式連接mysql 1.單詞部分 ①JDBCjava連接資料庫②driver manager驅動③connection連接④statement聲明 ⑤execute執行⑥query查詢⑦result set結果集⑧connectivity連通⑨access存取使用 en ...
  • 轉眼,從實習到畢業,來公司已經差不多有4個月了。在學校沒學到什麼東西,怪自己太懶,又沒有鑽研技術的那股精神。如今來公司做金蝶系列的插件開發,都顯得很吃力。 之前在學校,資料庫就學了一點毛皮,現在要學會寫SQL存儲過程,觸發器,報表等高級SQL查詢語句,下麵給出自己學習寫觸發器的過程: 什麼是觸發器, ...
  • openssl dhparam用於生成和管理dh文件。dh(Diffie-Hellman)是著名的密鑰交換協議,或稱為密鑰協商協議,它可以保證通信雙方安全地交換密鑰。但註意,它不是加密演算法,所以不提供加密功能,僅僅只是保護密鑰交換的過程。在openvpn中就使用了該交換協議。 openssl dhp ...
  • 電腦組成、linux發行版、linux哲學思想、基本命令、目錄結構 ...
  • 現在有這麼一個場景:我是一個很忙的大老闆,我有100個手機,手機來信息了,我的秘書就會告訴我“老闆,你的手機來信息了。”我很生氣,我的秘書就是這樣子,每次手機來信息就只告訴我來信息了,老闆趕緊去看。但是她從來不把話說清楚:到底是哪個手機來信息啊!我可有100個手機啊!於是,我只能一個一個手機去查看, ...
  • 管理員許可權運行“命令提示符” 輸入:netsh winsock reset 然後重啟電腦即可 ...
  • 本文目錄: 14.1 按下電源和bios階段 14.2 MBR和各種bootloader階段 14.2.1 boot loader 14.2.2 分區表 14.2.3 採用VBR/EBR方式引導操作系統 14.3 grub階段 14.3.1 使用grub2時的啟動過程 14.3.2 使用傳統grub ...
  • 1、故障現象 CentOS 6.5重啟後顯示grub loading stage2,屏幕顯示一直停在這個地方。 2、故障原因 系統啟動找不到引導盤 3、解決辦法 BMC中通過虛擬光碟機掛載同一系統鏡像,重新啟動 選擇rescue installed system 進入Shell腳本輸入界面後輸入命令 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...