有人可以向我详细介绍在linux中执行“ls”命令时会发生什么。使用了什么系统调用?文件系统做什么?显然取决于使用哪个文件系统。有人可以就这个话题提供深入的讨论,或者指出一些很好的资源!谢谢!
答案 0 :(得分:1)
ls='ls --color=auto'
/bin/ls
fork()
)新进程并执行它的代码(exec()
)。进程env从父进程继承到新的“ls”进程。ldd /bin/ls
)strace
进行检查,我认为主要部分是openat()
,getdents()
首先打开目录,然后再读取其中的条目。wait()
信号,父进程bash完全终止。答案 1 :(得分:0)
PWD
,例如/ foo / bar和excute(/ usr / bin / ls / foo / bar)