linux系统中,终端是一种字符型设备,通常用tty来简称各种类型的终端设备。
tty --- teletype 电传打字机的意思.
1. 串行端口终端(/dev/ttySn)
在命令行上,用标准输出重定向到端口对应的设备文件明上,可以通过该端口发送数据。
echo test > /dev/ttyS0 //会把test发送到ttyS0端口设备上。
2. 伪终端(/dev/pty/)
pts/ptmx(pts/ptmx结合使用,进而实现pty):
pts(pseudo-terminal slave)是pty的实现方法,与ptmx(pseudo-terminal master)配合使用实现pty。
3. 控制台终端 (/dev/ttyn, /dev/console)
Unix系统中,计算机显示设备通常被成为控制台终端(Console),有一些设备特殊文件与之相联:tty0,tty1,tty2 等。
当用户在控制台上登陆时,使用的是tty1. 按ALT+F1 ~ ALT+F6 组合键,可以在各个ttyn之间切换。
tty1~ tty6等称为虚拟终端。tty0是当前所使用的虚拟终端的一个别名,系统所产生的信息会发送到该终端上,因此 不管当前正在使用哪个虚拟终端,系统信息都会发送到控制台终端上。
linux系统中,可以在系统启动命令行里制定当前的输出终端,格式如下:
console=device, options
//devices指终端设备
//options指对devices的设置,取决于具体的设备驱动。
如:console=ttyS1, 9600 console=tty0 //定义了2个终端,调用open()打开/dev/console时,会使用虚拟终端tty0,但内核消息会在tty0 和 tty1 上同时显示。
通过查看/proc/tty/drivers文件,可以获知什么类型的tty设备存在。
4. 虚拟终端 /dev/pts/0, /dev/pts/1
远程登录 如 ssh. telnet 等,会在/dev/pts/下建立 0, 1 等设备节点,用来建立虚拟终端