当我们装完Linux系统之后,我们可能会碰到按下删除键后出现^H这种情况。
同样,输入上下左右键显示^A^B^C^D这种情况。
这是为什么呢?
别急,后面我会说具体解决办法,先来看看这是为什么?
一、终端程序架构
首先,我们需要了解终端程序架构。
终端程序架构分为三层,分别是用户进程、行规程、终端驱动。
1. 用户进程
每个会话可以选择关联一个终端,默认会话中的前台进程组可以读写终端,即通过调系统 api 从 stdin 读取字节流,然后再输出字节流到 stdout 或 stderr。比如 bash、cat 等。
2. 行规程
行规程为用户进程提供三个缓冲区,分别对应 stdin、stdout 和 stderr。除此之外, 行规程还负责与终端驱