Linux开发环境及应用·第一周·开始使用Linux(一)
这是中国大学MOOC中的课程:《linux开发环境及应用》的学习笔记……与其说是笔记,不如说是照抄ppt^_^
Linux字符终端
终端(Terminal)
UNIX/Linux是多用户系统
- 主机连接多台字符终端
- 字符终端作为交互式输入输出设备
终端的构成
- 键盘
- 显示器
- RS232串行通信接口
字符终端的历史
- 英文打字机 typewriter
- 电传打字机 teletypewriter 简写tty
- 字符终端,以屏幕代替卷纸打印机(同样称为tty设备)
主机与终端的连接
- 主机中的串口卡(硬件)引出多个RS232串口
- 每个RS232接口通过电缆连接一台终端
- RS232电缆的长度限制
- 早期要求小于10米
- 现在可达百米
终端与主机的功能分工
终端:主机的输入和输出设备
终端通过电缆把用户的按键信息送到主机,把主机发来的信息在屏幕上显示
主机:程序和数据的存储及处理
数据及程序存放在主机的硬盘上,程序的运行由主机完成
行律与驱动程序
驱动程序
- 不同的硬件需要不同的驱动程序
- 与行律模块的接口:上行和下行字符流
行律的作用
- 一行内字符的缓冲、回显与编辑,直到按下回车键
- 数据加工,如:将
\n
转化为\r\n
- 将
Ctrl-C
字符转化为中止进程运行的信号
主机与终端之间的通信
一个程序例子
#include<stdio.h>
int main(void)
{
int n;
printf("Input N: ");
scanf("%d", &n);
printf("N * N = %d\n", n * n);
printf("Bye!\n");
}
终端按键
1 7 Backspace 6 Enter
行律功能的调整
- 程序中通过编程的方法
- 相关命令stty
- stty erase ^H – 终端默认ctrl + backspace 为删除,这样设置后直接backspace就能删除了。
- stty -a – 以人可读的方式打印所有当前设置
终端转义序列
转义字符
Esc: ASCII码1B(十进制27,八进制033)
主机发往终端方向数据中的转义序列的功能
- 控制光标位置、字符颜色、字符大小等等
- 选择终端的字符集
- 控制终端上的打印机、刷卡机、磁条器、密码键盘
举例
- Esc[2J 由主机送到终端的四字节序列: 1B 5B 32 4A 功能:清除屏幕
- Esc[8A 四字节序列,光标上移8行
- Esc[16;8H 七字节序列,光标移动到16行8列
- Esc[1;31m 七字节序列,红色字符
终端类型
主机根据终端类型,实现相应功能时发送对应的控制码;当终端类型设置不对,可能一些全屏幕操作的软件运行失败
仿真终端和虚拟终端
仿真终端
- PC机RS232串口,运行终端仿真软件来仿一个真正的终端设备的功能
例如:早期DOS操作系统下的CrossTalk、Windows中的“超级终端”
仿真的内容包括实现终端的转义码序列功能
虚拟终端
- 终端与主机之间的通信由串口替代为一个TCP连接,双向传递字节流
- 主机与PC通过网络相连,客户端运行telnet、服务器端telnetd,成为Linux的基于TCP通信的虚拟终端
- 安全终端,在TCP连接上加密和压缩数据,如:SecureCRT、putty