Linux exec command manual

王林
Release: 2024-02-18 16:42:13
forward
828 people have browsed it

Linux exec命令手册

Function description

The exec command is used in Linux to call and execute specified commands. The exec command is usually used in shell scripts to execute other commands. When using the exec command in the current terminal, the specified command will replace the current process after execution, instead of creating a new child process.

Command syntax

exec [选项]
Copy after login

Option meaning

Options meaning
-c Use an empty environment to execute
-a The shell will pass the name as zero arguments to the executed command
-l Place a dash at the beginning of the shell to pass parameters to the command

Reference example

Example 1

// 首先使用echo命令将文本“www.linuxyz.cn”进行输出:
[root@bunian ~]# echo www.bunian.cn
www.bunian.cn

// 然后再使用exec命令调用echo命令输出同样的信息,并且对输出的信息进行对比,输入指令如下所示:
[root@bunian ~]# exec -c echo www.bunian.cn
www.bunian.cn

// 通过比较两者执行后的结果来看,所实现的功能是相同的,即使用exec命令调用echo命令成功。
Copy after login

Example 2

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

Knowledge expansion

1. The system call exec replaces the original process with a new process, but the PID of the process remains unchanged. Therefore, it can be considered that the exec system call does not create a new process, but only replaces the contents of the original process context. The code segment, data segment, and stack segment of the original process are replaced by the new process.

A process mainly includes the following aspects:

  • An executable program
  • All data associated with the process (including variables, memory, buffers)
  • Program context (program counter PC, saves the location of program execution)
  • 2. exec is a function cluster consisting of 6 functions, starting with excl and execv.

    Execute the exec system call. This is generally the case. Use the fork() function to create a new process, and then let the process execute the exec call. We know that after fork() creates a new process, the parent process shares the code segment with the child process, but the data space is separate, but the parent process will copy the contents of its own data space to the child process, and the context will also Will be copied to the child process. In order to improve efficiency, a copy-on-write strategy is adopted, that is, when a child process is created, the address space of the parent process is not copied. The parent and child processes have a common address space, and only when the child process needs to write data (such as to Write data into the buffer), at this time the address space will be copied and the buffer will be copied to the child process. Therefore, the parent and child processes have independent address spaces. This strategy can greatly improve efficiency after executing exec after fork(). If you copy at the beginning, then after exec, the data of the child process will be abandoned and replaced by a new process.

    The above is the detailed content of Linux exec command manual. For more information, please follow other related articles on the PHP Chinese website!

    Related labels:
    source:mryunwei.com
    Statement of this Website
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
    Popular Tutorials
    More>
    Latest Downloads
    More>
    Web Effects
    Website Source Code
    Website Materials
    Front End Template
    About us Disclaimer Sitemap
    php.cn:Public welfare online PHP training,Help PHP learners grow quickly!