如何显示Linux可执行文件使用的所有共享库?

我想知道系统上的可执行文件使用了哪些库。更具体地说,我想对使用最多的库以及使用它们的二进制文件进行排名。我怎样才能做到这一点?

回答:

  1. 使用ldd到列表共享为每个可执行文件库。
  2. 清理输出
  3. 排序,计算计数,按计数排序

要在“ / 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

编辑-删除了“ grep -P”

以上是 如何显示Linux可执行文件使用的所有共享库? 的全部内容, 来源链接: utcz.com/qa/402719.html

回到顶部