shared-libraries - 在Linux中,如何显示可执行文件使用的所有共享库?

  显示原文与译文双语对照的内容
80 3

我想知道系统上的可执行文件使用了哪些库。 更具体地说,我希望排序哪些库使用最多,以及使用它们的二进制文件。 我该怎么做?

时间:原作者:0个回答

98 5
  • 使用 ldd 列出每个可执行文件的共享库。
  • 清除输出
  • 排序,计算计数,按计数排序

若要在"/bin"目录中查找所有可执行文件的答案:

find/bin -type f -perm/a+x -exec ldd {} ; 
| grep so 
| sed -e '/^[^t]/d' 
| sed -e 's/t//' 
| sed -e 's/.*=..//' 
| sed -e 's/(0.*)//' 
| sort 
| uniq -c 
| sort -n

将"/bin"更改为"/"以搜索所有目录。

输出( 仅用于/bin 目录)的外观如下所示:

 1/lib64/libexpat.so.0
 1/lib64/libgcc_s.so.1
 1/lib64/libnsl.so.1
 1/lib64/libpcre.so.0
 1/lib64/libproc-3.2.7.so
 1/usr/lib64/libbeecrypt.so.6
 1/usr/lib64/libbz2.so.1
 1/usr/lib64/libelf.so.1
 1/usr/lib64/libpopt.so.0
 1/usr/lib64/librpm-4.4.so
 1/usr/lib64/librpmdb-4.4.so
 1/usr/lib64/librpmio-4.4.so
 1/usr/lib64/libsqlite3.so.0
 1/usr/lib64/libstdc++.so.6
 1/usr/lib64/libz.so.1
 2/lib64/libasound.so.2
 2/lib64/libblkid.so.1
 2/lib64/libdevmapper.so.1.02
 2/lib64/libpam_misc.so.0
 2/lib64/libpam.so.0
 2/lib64/libuuid.so.1
 3/lib64/libaudit.so.0
 3/lib64/libcrypt.so.1
 3/lib64/libdbus-1.so.3
 4/lib64/libresolv.so.2
 4/lib64/libtermcap.so.2
 5/lib64/libacl.so.1
 5/lib64/libattr.so.1
 5/lib64/libcap.so.1
 6/lib64/librt.so.1
 7/lib64/libm.so.6
 9/lib64/libpthread.so.0
 13/lib64/libselinux.so.1
 13/lib64/libsepol.so.1
 22/lib64/libdl.so.2
 83/lib64/ld-linux-x86-64.so.2
 83/lib64/libc.so.6

编辑- 删除"-P""

原作者:
...