免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1738 | 回复: 8
打印 上一主题 下一主题

[Linux] linux执行命令的详细过程 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-03-25 19:43 |只看该作者 |倒序浏览
小弟最近在做一个程序,需要做到的效果是,每当我输入一条命令,在拍下回车之后,先对命令进行一次我自己的处理,然后再交给系统做正常的运行,因此,想知道linux对用户输入的一条命令的执行过程是怎么样的,这样才能在中间插入自己的处理过程。希望了解的高手不吝赐教。

论坛徽章:
3
双鱼座
日期:2013-08-17 16:21:25CU十二周年纪念徽章
日期:2013-10-24 15:41:34射手座
日期:2014-08-10 13:48:32
2 [报告]
发表于 2014-03-25 19:48 |只看该作者
当取到命令后,调用exec函数,让系统执行   可以配合fork使用

论坛徽章:
3
双鱼座
日期:2013-08-17 16:21:25CU十二周年纪念徽章
日期:2013-10-24 15:41:34射手座
日期:2014-08-10 13:48:32
3 [报告]
发表于 2014-03-25 19:54 |只看该作者
有两种命令,内置命令shell自己解释执行,外部命令shell    fork一个子进程,然后调用exec执行,大体是这样

论坛徽章:
0
4 [报告]
发表于 2014-03-25 20:13 |只看该作者
我也不知道这个具体该怎么问,如楼上所言,输入命令->fork子进程->exec执行,我想知道后面的2步都是谁的做的,我们能不能修改这个过程?比如在输入命令之后,我给每个命令执行之前都输出一段hello的话,该如何实现呢?

论坛徽章:
0
5 [报告]
发表于 2014-03-25 20:16 |只看该作者
我好像问了个很愚蠢的问题,输入命令肯定是交给bash来进行处理,所以接下来是想知道,怎么修改bash,让它执行命令前先做我想让它做的事情。

论坛徽章:
3
双鱼座
日期:2013-08-17 16:21:25CU十二周年纪念徽章
日期:2013-10-24 15:41:34射手座
日期:2014-08-10 13:48:32
6 [报告]
发表于 2014-03-25 20:20 |只看该作者
回复 5# MD5Ryan


    自己写一个类似于bash的程序呗,可以在bash运行这个程序,把界面做的和bash就行吧。。里面的实现就是仿照bash执行命令的方式

论坛徽章:
0
7 [报告]
发表于 2014-03-25 20:40 |只看该作者
我的想法是自己修改bash的源代码,但是没有找到相关的资料,看来要自己动手了。

论坛徽章:
3
双鱼座
日期:2013-08-17 16:21:25CU十二周年纪念徽章
日期:2013-10-24 15:41:34射手座
日期:2014-08-10 13:48:32
8 [报告]
发表于 2014-03-25 20:44 |只看该作者
回复 7# MD5Ryan


    修改源码的话你得先下载到它的源码。。。然后编译后把它替换掉,你也可以自己写程序把它替换掉把。。。shell也不止bash,ksh,csh什么的源码你都可以找找

论坛徽章:
0
9 [报告]
发表于 2014-03-25 20:49 |只看该作者
恩 十分感谢  我先尝试一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP