Linux exec命令手册

linux exec命令手册

功能描述

exec命令在Linux中用于调用并执行指定的命令。通常在shell脚本中使用exec命令来执行其他命令。当在当前终端中使用exec命令时,指定的命令执行完毕后会取代当前进程,而不是创建一个新的子进程。

命令语法

exec [选项]

登录后复制

选项含义

选项 含义

-c使用一个空环境来执行-ashell会将名字作为零参数传递给执行的命令-l在shell的开头放置一个破折号参数传递给命令

参考实例

实例1

// 首先使用echo命令将文本“www.linuxyz.cn”进行输出:[root@bunian ~]# echo www.bunian.cnwww.bunian.cn// 然后再使用exec命令调用echo命令输出同样的信息,并且对输出的信息进行对比,输入指令如下所示:[root@bunian ~]# exec -c echo www.bunian.cnwww.bunian.cn// 通过比较两者执行后的结果来看,所实现的功能是相同的,即使用exec命令调用echo命令成功。

登录后复制

实例2

// 查找bunian.txt 并备份为bunian.txt.bak[root@bunian ~]# find /test -name "bunian.txt" -exec cp {} {}.bak ;

登录后复制

知识扩展

一、系统调用 exec 是以新的进程去代替原来的进程,但进程的PID保持不变。因此,可以这样认为,exec系统调用并没有创建新的进程,只是替换了原来进程上下文的内容。原进程的代码段,数据段,堆栈段被新的进程所代替。

一个进程主要包括以下几个方面的内容:

一个可以执行的程序与进程相关联的全部数据(包括变量,内存,缓冲区)程序上下文(程序计数器PC,保存程序执行的位置)

二、exec是一个函数簇,由6个函数组成,分别是以excl和execv打头的。

执行exec系统调用,一般都是这样,用fork()函数新建立一个进程,然后让进程去执行exec调用。我们知道,在fork()建立新进程之后,父进各与子进程共享代码段,但数据空间是分开的,但父进程会把自己数据空间的内容copy到子进程中去,还有上下文也会copy到子进程中去。而为了提高效率,采用一种写时copy的策略,即创建子进程的时候,并不copy父进程的地址空间,父子进程拥有共同的地址空间,只有当子进程需要写入数据时(如向缓冲区写入数据),这时候会复制地址空间,复制缓冲区到子进程中去。从而父子进程拥有独立的地址空间。而对于fork()之后执行exec后,这种策略能够很好的提高效率,如果一开始就copy,那么exec之后,子进程的数据会被放弃,被新的进程所代替。

以上就是Linux exec命令手册的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2292673.html

(0)
上一篇 2025年2月28日 01:58:26
下一篇 2025年2月28日 01:58:39

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论