LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 4408|回复: 49

[求助]终端和Shell的关系?

[复制链接]
发表于 2006-2-23 14:21:18 | 显示全部楼层 |阅读模式
一直对终端的概念不是很清楚,所以产生了如下问题.

1.什么是终端?
2.终端与Shell之间有什么关系?
3.readline和他们有什么关系?
4.在shell中Tab键有命令补全功能,他是由哪部分功能提供的呢?

:ask
发表于 2006-2-23 15:27:11 | 显示全部楼层
终端最早指硬件设备,一般通过串行线连接到主机,向主机系统输入数据,显示由主机系统返回的数据。典型的有DEC公司的VT100,随着个人电脑的普及,这类设备很少见了。请见:

http://www.cs.utk.edu/~shuford/terminal/dec.html

现在说的终端,则是软件对传统硬件终端的仿真,所以称为Terminal Emulator。如rxvt是对vt100的模拟。
shell是操作系统中用户和内核交互的层面,既有基于命令行的如bash,csh,也有图形界面的如windows explorer。
终端是用户访问命令行界面(包括基于命令行界面的shell)的途径。
readline是gnu开发的软件库,提供了命令行编辑的能力,如光标在行内快速定位,命令历史搜索等。
tab补全是shell提供的,如何实现不知道。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-23 15:51:02 | 显示全部楼层
Post by seamonkey
终端最早指硬件设备,一般通过串行线连接到主机,向主机系统输入数据,显示由主机系统返回的数据。典型的有DEC公司的VT100,随着个人电脑的普及,这类设备很少见了。请见:

http://www.cs.utk.edu/~shuford/terminal/dec.html

现在说的终端,则是软件对传统硬件终端的仿真,所以称为Terminal Emulator。如rxvt是对vt100的模拟。
shell是操作系统中用户和内核交互的层面,既有基于命令行的如bash,csh,也有图形界面的如windows explorer。
终端是用户访问命令行界面(包括基于命令行界面的shell)的途径。
readline是gnu开发的软件库,提供了命令行编辑的能力,如光标在行内快速定位,命令历史搜索等。
tab补全是shell提供的,如何实现不知道。


当我们在命令行上敲击命令时,是终端在接受还是Shell本身?
是不是在编辑命令的时候,shell调用了readline来进行控制?:ask
回复 支持 反对

使用道具 举报

发表于 2006-2-23 15:58:03 | 显示全部楼层
输入是通过终端,接受处理是shell,回显也是通过终端,如果我没理解错的话。

你指的编辑命令是什么意思。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-23 16:19:12 | 显示全部楼层
Post by seamonkey
输入是通过终端,接受处理是shell,回显也是通过终端,如果我没理解错的话。

你指的编辑命令是什么意思。


其实就是seamonkey兄前面提到的,
readline是gnu开发的软件库,提供了命令行编辑的能力,如光标在行内快速定位,命令历史搜索等。


我其实就是想问,readline是什么时候,被谁调用的?
另外stty是对终端的行为进行设置和打印,那么他应该对Shell产生一定影响把.我就是想把这之间的一些联系理清楚.
回复 支持 反对

使用道具 举报

发表于 2006-2-23 16:33:02 | 显示全部楼层
现在bash都是内建readline支持的吧,bash有个--noedit选项可以禁用readline。

stty完全是控制终端行为的,和shell没关系。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-23 16:44:10 | 显示全部楼层
Post by seamonkey
现在bash都是内建readline支持的吧,bash有个--noedit选项可以禁用readline。

stty完全是控制终端行为的,和shell没关系。


我的意思是,终端行为被改变后,是否对命令行的编辑会有影响?
回复 支持 反对

使用道具 举报

发表于 2006-2-23 16:50:03 | 显示全部楼层
在键绑定上有影响的,其它没研究过。
回复 支持 反对

使用道具 举报

发表于 2006-2-23 23:19:08 | 显示全部楼层
你如果用stty吧echo隐藏了,就什么也打印不出来了。如果把erase键重新定义了,那样删除也不行了。所以命令行编辑还是有一定的影响的。
回复 支持 反对

使用道具 举报

发表于 2006-2-23 23:23:57 | 显示全部楼层
Post by seamonkey
现在bash都是内建readline支持的吧,bash有个--noedit选项可以禁用readline。

stty完全是控制终端行为的,和shell没关系。

是--noediting
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表