首先, 终端 (Terminal)概念通常是指那些与集中式主机系统(例如IBM大型计算机)相连的“哑”用户设备。 而个人计算机演变至今,让人很难理解这个概念。
1、终端和控制台都不是个人电脑的概念,而是多人共用的小型中型大型计算机上的概念。 一台主机,连很多终端,终端为主机提供了人机接口,每个人都通过终端使用主机的资源. 终端有字符哑终端和图形终端两种.控制台是另一种人机接口, 不通过终端与主机相连, 而是通过显示卡-显示器和键盘接口分别与主机相连, 这是人控制主机的第一人机接口. 控制台上通过getty软件虚拟了六个字符哑终端(或者叫控制台终端tty1-tty6)(数量可以在/etc/inittab里自己调)和一个图型终端, 在虚拟图形终端中又可以通过软件(如rxvt)再虚拟无限多个虚拟字符哑终端(pts/0....)。 所以在个人计算机上,只有一个实际的控制台,没有终端,所有终端都是在控制台上用软件模拟的。
2、控制台 “Ctrl”+“Alt”+“Fx” Linux在控制台下提供了不止一个(字符哑)终端,支持多用户同时登录,包括在本机同时登录。控制台“Ctrl”+“Alt”+“Fx”能够切换到第x个(字符哑)终端。 在图形界面下输入命令的那个叫伪终端,不在图形界面则是虚拟终端,用串口作终端则直接叫终端了。它们都有什么不同? 远古时候存在各种串行设备,它们的物理接口与传输特性各自有异,而它们作为终端有一些代码可以抽象出来,于是形成了最早的tty层。
3、控制终端(/dev/tty) 这是个在应用程序中的一个概念,前台进程有个控制终端,就对应这个。 其实/dev/tty会映射到当前的设备(通过tty命令可以看到),如果在图形界面(Xwindows)输入#tty 发现dev/tty映射到/dev/pts/0的伪终端, 如果在控制台会看到映射到/dev/tty0。
4、伪终端(/dev/pty/)这个是终端的发展,为满足现在需求(比如网络登陆、xwindow窗口的管理)。 伪终端(Pseudo Terminal)是成对的逻辑终端设备,例如/dev/ptyp3和/dev/ttyp3(或着在设备文件系统中分
5、控制台终端(/dev/ttyn, /dev/console) 在UNIX系统中,计算机显示器通常被称为控制台终端(Console)。 它仿真了类型为Linux的一种终端(TERM=Linux),tty1 –tty6等称为虚拟终端,而tty0则是当前所使用虚拟终端的一个别名, 系统所产生的信息会发送到该终端上。 console是一个缓冲的概念,其实是为内核提供打印的。我们的pc,终端常用的是显示器和键盘构成,我们用户打印和内核打印都从这个终端反映给用户。所以,这里,/dev/console是连接到/dev/tty0的,其实这里有2个概念,console和tty,怎么实现?其实console这个结构中有个device,这里其实就是tty0对应的一个虚拟终端设备。 如果,我们来个专门打印内核的设备(比如通过串口),我们把那个串口register_console,那么/dev/console就到这个串口设备了。这时,内核打印就到这个串口设备了,而用户的打印还是和上面的/dev/tty相关,如果/dev/tty对应/dev/tty0,那么用户打印还在窗口中出现。所以说/dev/console是用来外接控制台的。
6、串行端口终端(/dev/ttySn) (Serial Port Terminal)是使用计算机串行端口连接的终端设备。 计算机把每个串行端口都看作是一个字符设备,/dev/tts/0(或/dev/ttyS0), /dev/tts/1(或/dev/ttyS1)等,设备号分别是(4,0), (4,1)等,分别对应于DOS系统下的COM1、COM2等。例如,在命令行提示符下键入:#echo test > /dev/ttyS1会把单词”test”发送到连接在ttyS1(COM2)端口的设备上,可接串口来实验。
总结: 首先:两种模式:字符模式:对应的为控制台,设备文件为/dev/tty1-6, 而/dev/tty0则是当前终端设备文件的别名。 关于dev/tty其实很简单:就是当前终端设备的一个链接(有点像/dev/tty0),测试如下
stty命令用于显示和修改终端行设置(change and print terminal line settings)。 常用参数stty命令不带参数可以打印终端行设置,加上-a参数可以打印得更详细些。 stty size可以显示终端的大小,即行数和列数。 stty命令还可以更改终端行的设置,格式如下: stty SETTING CHAR 其中,SETTING可以是如下 eof : 输入结束,文件结束,默认为Ctrl+D。比如:用cat >file来创建文件时,按Ctrl+D来结束输入。 werase:删除最后一个单词,默认为Ctrl+W。 stty命令还有一些其他用法,如: stty -echo 关闭回显。比如在脚本中用于输入密码时。 stty echo 打开回显。 设置退格键Backspace的删除行为 stty erase ^H
Ctrl+S 注:按了Ctrl+S之后,就会禁止屏幕输出,从而出现终端僵死的情况。 这个时候,只要按Ctrl+Q就会结束这种局面,因为它会允许屏幕输出。 Ctrl+Q |
|
来自: astrotycoon > 《linux编程》