文章目录

  • 1、查看库或文件是x86还是arm版本:
  • 2、File命令:
  • 3、readelf命令:


1、查看库或文件是x86还是arm版本:

file libglog.so.0.7.0

或者

readelf -h libapp_test_demo_1.a

2、File命令:

1、功能:
    file命令用来探测给定文件的类型。file命令对文件的检查分为文件系统、魔法幻数检查和语言检查3个过程。

2、语法
    file(选项)(参数)

3、选项
    -b:列出辨识结果时,不显示文件名称;
    -c:详细显示指令执行过程,便于排错或分析程序执行的情形;
    -f<名称文件>:指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称;
    -L:直接显示符号连接所指向的文件类别;
    -m<魔法数字文件>:指定魔法数字文件;
    -v:显示版本信息;
    -z:尝试去解读压缩文件的内容。

4、参数
    文件:要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。
    
5、实例
    1、显示文件类型    
        file -b install.log
        
    2、查看软链接对应文件的文件类型

        file -L file

3、readelf命令:

1、功能:
    一般用于查看ELF格式的文件信息, 常见的文件如在Linux上的可执行文件,动态库(*.so)或者静态库(*.a) 等包含ELF格式的文件。
    也可以用man命令窥其全貌。它用来显示一个或者多个elf格式的目标文件的信息,可以通过它的选项来控制显示哪些信息。
    
2、语法:
    readelf <选项> elf-文件
    
3、以短长形式给出:
    -a :--all 显示全部信息,等价于 -h -l -S -s -r -d -V -A -I

    -h :--file-header 显示elf文件开始的文件头信息. 

    -l :--program-headers  ;--segments 显示程序头(段头)信息(如果有的话)。 

    -S :--section-headers  ;--sections 显示节头信息(如果有的话)。 

    -g :--section-groups 显示节组信息(如果有的话)。

    -t :--section-details 显示节的详细信息(-S的)。 

    -s :--syms  ;--symbols 显示符号表段中的项(如果有的话)。 

    -e :--headers 显示全部头信息,等价于: -h -l -S 

    -n :--notes 显示note段(内核注释)的信息。 

    -r :--relocs 显示可重定位段的信息。 

    -u :--unwind 显示unwind段信息。当前只支持IA64 ELF的unwind段信息。 

    -d :--dynamic 显示动态段的信息。 

    -V :--version-info 显示版本段的信息。 

    -A :--arch-specific 显示CPU构架信息。 

    -D :--use-dynamic 使用动态段中的符号表显示符号,而不是使用符号段。 

    -x <number or name> :--hex-dump=<number or name> 以16进制方式显示指定段内内容。number指定段表中段的索引,或字符串指定文件中的段名。 

    -w[liaprmfFsoR]或者

    -debugdump[=line,=info,=abbrev,=pubnames,=aranges,
    =macro,=frames,=frames-interp,=str,=loc,=Ranges] 显示调试段中指定的内容。 

    -I :--histogram 显示符号的时候,显示bucket list长度的柱状图。 

    -v :--version 显示readelf的版本信息。 

    -H :--help 显示readelf所支持的命令行选项。 

    -W :--wide 宽行输出。 

4、参数:
    elf-file(s)就表示那些被检查的文件。可以支持32位,64位的elf格式文件,也支持包含elf文件的文档
    
5、示例:
    1、生成a.out文件,用readelf命令读取一下
    
    readelf -h test
    readelf -h test.debug