LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: johnny_jiang

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

[复制链接]
 楼主| 发表于 2006-2-24 10:00:06 | 显示全部楼层
Post by yongjian
你如果用stty吧echo隐藏了,就什么也打印不出来了。如果把erase键重新定义了,那样删除也不行了。所以命令行编辑还是有一定的影响的。


yongjian兄,那我可不可以这样理解.

终端接收键盘的输入,当终端接收到回车后,shell进行处理,我可以修改终端的设置来重新定义按键.
比如我把原来的回车键定义成其他按键.那么当你敲击回车时,将不执行当前的命令...
回复 支持 反对

使用道具 举报

发表于 2006-2-24 10:27:05 | 显示全部楼层
不行吧,由终端驱动和stty指派的信号发生字符都应该保持原本功能的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-24 10:42:34 | 显示全部楼层
Post by seamonkey
不行吧,由终端驱动和stty指派的信号发生字符都应该保持原本功能的。


呵呵,有点晕了,能不能说具体点啊
回复 支持 反对

使用道具 举报

发表于 2006-2-24 11:14:05 | 显示全部楼层
当你使用老式的x3270终端时,kb键值定义就和现在的不一样。如enter表示换行,但不是命令输入的终止,而ctrl键被定义为真正的enter.
回复 支持 反对

使用道具 举报

发表于 2006-2-24 11:44:30 | 显示全部楼层
补充一下,信号发生字符是是不可被重新指派的,如C-c,C-z,说错纠正啊。

但是,

Enter key是可以被readline指派为其它作用的。

cat ~/.inputrc
RETURN: backward-char

真管用了。

yongjian兄接触过这些终端?这就是termcap的作用吧。
回复 支持 反对

使用道具 举报

发表于 2006-2-24 12:09:52 | 显示全部楼层
要是C-j和RETURN同时被重新指派了怎么办?
回复 支持 反对

使用道具 举报

发表于 2006-2-24 12:54:17 | 显示全部楼层
嗯是的。我工作上用。
回复 支持 反对

使用道具 举报

发表于 2006-2-24 13:01:39 | 显示全部楼层
Post by seamonkey
补充一下,信号发生字符是是不可被重新指派的,如C-c,C-z,说错纠正啊。

但是,

Enter key是可以被readline指派为其它作用的。

cat ~/.inputrc
RETURN: backward-char

真管用了。

yongjian兄接触过这些终端?这就是termcap的作用吧。

我认为是可以的。试试
  1. stty intr ^b
复制代码
.之后C-b变成了C-c.而C-c不再有interrupt功能。
回复 支持 反对

使用道具 举报

发表于 2006-2-24 13:10:03 | 显示全部楼层
我是说在Readline中, C-c或C-z等被stty或终端驱动指派的signal发生字符,并不能被重新指派,是这样吧。
回复 支持 反对

使用道具 举报

发表于 2006-2-24 13:53:37 | 显示全部楼层
我认为是。readline保留stty中key binding的含义。而且readline主要是针对命令行编辑用途,好象是不能定义signal CHAR的。
回复 支持 反对

使用道具 举报

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

本版积分规则

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