当我们调用任何shell命令时,任何人都可以帮助我理解内部的代码/步骤流程。例如,假设我在 bourne shell 上运行以下命令:
ls -l | grep -r "string"
内部发生的函数调用是什么?
据我所知,它会在execv
内部调用一些家庭函数。但是谁能告诉我它将进行的其他函数调用是什么以及它的顺序是什么?
您可以使用 strace 实用程序自行查看会发生什么。运行它:
strace sh -c 'ls -l | grep -r "字符串"'
这将运行一个 shell,然后运行你的命令,最后 strace 将打印出在系统调用方面发生的幕后情况。
简而言之:
也许其他人会添加更精确的“步骤”......