Both /sbin/sh and /usr/bin/sh shells are Bourne shells.
The difference is that /sbin/sh is statically linked and /usr/bin/sh is
dynamically linked. There is also /bin/sh, however /bin is just a symbolic
link to /usr/bin.
# ls -l /sbin/sh
-r-xr-xr-x 2 bin root 251712 Jul 16 1997 /sbin/sh
# file /sbin/sh
/sbin/sh: ELF 32-bit MSB executable SPARC Version 1, statically linked, stripped
# ldd /sbin/sh
ldd: /sbin/sh: file is not a dynamic executable or shared object
# ls -l /usr/bin/sh
-r-xr-xr-x 3 bin root 88620 Jul 16 1997 /usr/bin/sh
# file /usr/bin/sh
/usr/bin/sh: ELF 32-bit MSB executable SPARC Version 1, dynamically linked, stripped
# ldd /usr/bin/sh
libc.so.1 =>; /usr/lib/libc.so.1
libdl.so.1 =>; /usr/lib/libdl.so.1
Dynamically linked binaries use shared libraries during their execution. This
makes them smaller in size and when libraries get updated, the binaries will
automatically use the updated libraries.
Statically linked binaries contain all the code within them. They do not
use shared libraries at all. This makes them larger in size. The useful thing
about statically linked binaries is that they can run all by themselves as
they do not depend on shared libraries. If the system is "broken" and libraries
were removed, damaged, or /usr is not mounted, /sbin/sh can still be executed.
This is why it is recommended to use /sbin/sh as the default root shell.
zhangbin 回复于:2002-09-20 08:52:01
长见识.
czc9 回复于:2002-09-20 08:58:27
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 同时 为什么 明白 终于 回复 不错 stripped 对比 bear |
注册
个人空间
