首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >strace适用于一些内置命令。

strace适用于一些内置命令。
EN

Unix & Linux用户
提问于 2014-09-09 01:28:19
回答 1查看 866关注 0票数 3

我试图理解Linux中的一些内核级概念。我正在检查shell内置命令和其他可执行命令之间的区别。

这个奇妙的答案清楚地说明了不同之处,并指定了对shell内置命令的需求。

现在我知道了,使用type <command-name>,我可以检查它是外部命令还是shell内置命令。

因此,我决定对各种命令执行一些strace,以了解更多的内部信息。

我学习了这个巧妙的小把戏在shell内置命令上做stracees,根据上面的答案,我也能在cd ..上做strace

现在,当我运行type pwd并获得输出作为,pwd is a shell builtin。因此,我希望我不能在它上运行strace,因为它也是一个shell内置的。但是,当我在上面做了一个strace时,我惊讶地发现strace不需要做stty就能工作。

我也对strace进行了echo验证,而且效果也很好。

所以我的理解是,stracepwdecho的情况下起作用,因为pwdecho的执行并没有改变shell的任何行为。

我的理解正确吗?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2014-09-09 01:36:40

因为pwdecho具有同名的外部命令/bin/pwd/bin/echo。如果您查看strace输出,您可以看到:

代码语言:javascript
复制
$ strace pwd
execve("/bin/pwd", ["pwd"], [/* 68 vars */]) = 0
brk(0)                                  = 0x241e000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f80c31b9000

请注意,在PATH中搜索时,strace只接受设置了执行位的常规文件。

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/154492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档