Skip to content

Exec command on Linux (runs by replacing the shell)

The exec command in Linux is used to invoke other commands, programs, or processes without creating a child process, replacing the current process with the one that you want to execute. It’s not something that is used very often.

For example, if you are in the terminal and type the command exec ifconfig, you will get the result of the ifconfig command, but you will no longer have the shell next, because the Bash process will be replaced by ifconfig:

$ exec ifconfig <br></br>en1: flags=8863 mtu 1500 <br></br>ether c8:bc:c8:dc:c 1:05 <br></br>inet6 fe80: :cabc:c8ff:fedc:c 105% en1 prefixlen 64 scopeid 0x5 <br></br>inet 10.0.1.5 netmask 0xffff00 broadcast 10.0.1.255 <br></br>nd6 options=1

media: autoselect
status: active
[Process completed] Exec is an “old” legacy program, at the time when creating a child process while executing a program consumed scarce memory and a slow shared CPU. It simply copies the “binary” of the program that executes over the process that is running, avoiding some CPU cycles to create the header and buffers of a child program.

Learn much more about Linux in our online course. You can register here. If you already have an account, or want to create one, just log in or create your user here.

Did you like it?

Share