[oeasy]python0037_終端_terminal_電傳打字機(jī)_tty_shell_控制臺_console_發(fā)展歷史
換行回車
回憶上次內(nèi)容
換行
和回車
是兩回事對應(yīng)字節(jié)
0x0D
Carriage-Return
可移動的打印頭
所以是
Return
垂直 不動
水平
回
到紙張左側(cè)運(yùn)輸字符 的 裝置 (Carriage)
回
到 行首對應(yīng)字節(jié)
0x0A
Line-Feed
所以是
feed
水平 不動
垂直 向上喂紙
換行
回車
tty
、terminal
、shell
、console
區(qū)分 幾個概念
好像 都叫
終端
有什么
不一樣
嗎???Console
控制臺有 顯示寄存器狀態(tài) 的 指示燈
有 直接操作寄存器 的 開關(guān)
可以 理解為 主機(jī)(MainFrame) 的 控制面板
從底層 監(jiān)控 硬件狀態(tài)
而且 控制臺與主機(jī) 直接物理連接
無法 遠(yuǎn)程操作

terminal
終端X Window terminal
當(dāng)時的 大流行設(shè)備
是
Teletype Model 33
主機(jī)網(wǎng)絡(luò)中 最終的端點
一般 是 電傳打字機(jī)(
tty
)之類的 硬件Xterm
全稱是terminal
上面運(yùn)行著的 才是shell
terminal
這個單詞 來自于什么呢?term
(學(xué)期)終端和學(xué)期
term
又 有什么關(guān)系 呢?
term

條款 與 條件
就要 付違約金
權(quán)利和義務(wù)的 范圍
條款 限制了
出了這個邊界
最重要的是 起點和終點
比如 秋季學(xué)期 一般是 9月到12月
開始點和結(jié)束點 決定的這段時間 叫做
類似的 還有 任期、孕期、刑期 之類的
都是 有頭有尾的時間范圍
一個
term
term
作為時間段terms
and conditionsterm
作為 行業(yè)的術(shù)語計算機(jī) 術(shù)語(term)
就像高墻一樣
把外面的人 隔開
讓 里面的人 溝通流暢
了解 一個行業(yè)的邏輯
必須 了解術(shù)語
俗話說 隔行如隔山
想要
這些 術(shù)語、行話
術(shù)語
就是 行業(yè)圈子的邊界
/終點
terminal
terminal
指的是終端
作為一個 計算機(jī)(computer ) 術(shù)語(term)
terminal
作為端點邊緣

點 是 線段的邊緣(term)
線 是 面的邊緣(term)
航線的端點 就是 Terminal
所以航站樓(T1、T2) 一般都是 T打頭
來自于terminal
也有
端點
的意思還可以用在 空間概念 上
邊緣
極端的情況 容易到頭
主機(jī)-終端時代
癌癥晚期
terminal cancer
一臺主機(jī)可以連接多個終端

通過 終端的shell 和 主機(jī)的kernel 交互
主機(jī)的kernel 再去 和硬件交互
可以說 終端上的
shell
就是 當(dāng)時的
主界面
就像 今天的
瀏覽器
或圖形用戶界面
后來
個人電腦 普及
人人 都有 自己的主機(jī)
通過 自己的圖形用戶界面 操作
使用圖形化 的 控制面板
到今天
需要訪問 的 數(shù)據(jù)
多在 服務(wù)器上
主機(jī)-終端模式 再次復(fù)活
通過 客戶端-服務(wù)器(client-server) 進(jìn)行訪問
也可以 通過 瀏覽器-服務(wù)器(browser-server) 進(jìn)行訪問
只不過
shell
這次重生 基于 tcp/ip網(wǎng)絡(luò)
主機(jī) 更多
分布 更廣
網(wǎng)絡(luò) 更復(fù)雜
shell
- 外殼終端硬件基礎(chǔ)上的 軟件外殼
可以有 不同的外殼 (
ksh
、csh
、bash
等)python游樂場 也可以理解為 一個外殼(
shell
)一套外殼 就是 一套命令解釋系統(tǒng)
則可以 管理進(jìn)程
就可以查看 當(dāng)前文件夾中的 文件列表
比如 執(zhí)行
ls
命令ps
命令在終端(
terminal
)上 通過殼子(shell
) 控制內(nèi)核(kernel
)

通過(kernel) 控制硬件
方便
tty
和電腦主機(jī) 交互遠(yuǎn)程登錄的ssh 是
Secure Shell
shell
的硬件裝置 是tty
tty

TTY TeleTYpewriter
電傳打印機(jī)位于終端的 連接主機(jī)所用的 硬件
接收 主機(jī)發(fā)送過來的 字節(jié)
發(fā)送字節(jié) 給主機(jī)

可以發(fā)送
abc
之類 的 字母也可以發(fā)送
\n
、\r
等 轉(zhuǎn)義字符什么是
\r
來著?回顧
想要知道
\r
(return) 是什么...

先回憶
\n
(line-feed) 是什么?早年間 想要換行時
Line Feed
就得 傳過來 一個
\n
字符對應(yīng)的字節(jié) 為
0x0a
目的是 紙張向上一行
\n
字符 可以 存儲進(jìn)文件嗎?存儲文件
編寫 一個純文本
輸入 ab12
中間加一個回車

:%!xxd

將 文件 轉(zhuǎn)化為 字節(jié)形態(tài)
可以看到 回車換行的位置
是
0x0a
有了
0x0a
字符就有了 換行(line-feed)
換行的同時 也自動回車了
可是!
我 沒有給 回車字符
\r
就能 自動回車(退到行首) 了?
換行 有 自動回車的功能 嗎?
先去總結(jié)
總結(jié)
區(qū)分概念
主機(jī)旁邊 的 控制面板
終端硬件基礎(chǔ)上的
軟件殼子
電傳打印機(jī)
終端硬件
主機(jī)網(wǎng)絡(luò)中
最終的 端點
terminal
終端TeleTYpewriter
shell
Console
控制臺存儲文件 的 時候
我 在文件里 打了回車
\n
系統(tǒng) 將
0x0a
存入字節(jié) 進(jìn)文件換行 自動就有 回車功能 了嗎???
我們下次再看!??
藍(lán)橋->https://www.lanqiao.cn/courses/3584
github->https://github.com/overmind1980/oeasy-python-tutorial
gitee->https://gitee.com/overmind1980/oeasypython
視頻->https://www.bilibili.com/video/BV1CU4y1Z7gQ 作者:oeasy