Linux开发中常用shell命令-说明一

一. Linux下常用 shell 命令-说明一

1.  strings 命令

strings 命令在对象文件或二进制文件中查找可打印的字符串。

常用的选项:

-a --all:扫描整个文件而不是只扫描目标文件初始化和装载段
-f –print-file-name:在显示字符串前先显示文件名
-t --radix={o,d,x} :输出字符的位置,基于八进制,十进制或者十六进制

使用方式如下:

strings libAPI.so | grep xxx: 显示库文件中某些重要信息。

strings a.out | grep xxx:  查看可执行文件中某些关键信息。

等等一系列操作。

2.  strip 命令

strip 命令从目标文件或可执行文件中剥掉一些符号信息和调试信息,使文件变小。

Linux 开发中,除了执行文件以外,会有一个用来调试的文件,类型为 not striped,想要了解此文件的作用以及产生的原因,就会涉及 strip 命令。

strip 命令不仅仅可以针对可执行文件, 还能针对目标文件和动态库等。

如下对一个可执行程序进行操作:

首先,输入 ls -l main.out 命令查看下文件大小。

其次,输入 file main.out 命令可以看到 main.out 文件为 not striped类型的。

其次,使用 nm main.out 命令可以看到 main.out 文件的符号信息。

 

接下来可以使用 strip 命令对目标文件中符号信息进行剥离。如下所示:

可以看到,使用 strip main.out 命令对目标程序进行了符号剥离之后,目标文件变小了,类型已经是 stripped 类型的文件,同时已经不含有符号信息。

strip 作用:

1.  剥离之后比剥离之前的文件小,依然可以正常运行,这样可以节省空间。

2. 在实际的开发中, 经常需要对动态库.so 进行 strip 操作, 减少占地空间。

而在调试的时候(比如用 addr2line 命令), 就需要带符号信息的可执行文件来方便调试。

通常的做法是: strip 前的库用来调试, strip 后的库用来实际发布, 他们两者有对应关系。 一旦发布的 strip 后的库出了问题, 就可以找对应的未 strip 的库来定位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值