当我们调用任何shell命令时,内部发生了什么

Pra*_*rak 1 c shell

当我们调用任何shell命令时,任何人都可以帮助我在内部理解代码/步骤流.例如,假设我在bourne shell上运行follwoing:

ls  -l | grep -r "string"
Run Code Online (Sandbox Code Playgroud)

内部发生的函数调用是什么?

据我所知,它会在execv内部调用一些家庭功能.但是,任何人都可以告诉我它将进行的其他函数调用是什么以及它的序列是什么?

Nik*_* C. 11

您可以通过使用strace实用程序来了解会发生什么.运行它:

strace sh -c 'ls  -l | grep -r "string"'

这将运行一个shell,而shell将依次运行您的命令,最后strace将打印出系统调用方面幕后发生的事情.