0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

strings命令:用于打印文件中可打印字符串

Linux爱好者 来源:Linux爱好者 作者:恋猫大鲤鱼 2021-02-02 13:53 次阅读

1.命令简介

strings 命令是二进制工具集 GNU Binutils 的一员,用于打印文件中可打印字符串,文件可以是文本文件(test.c),但一般用于打印二进制目标文件、库或可执行文件中的可打印字符。字符串默认至少是 4 个或更多可打印字符的任意序列,可使用选项改变字符串最小长度。

2.命令格式

3.选项说明

注意,长选项的参数对于短选项也是必须的。

-a,--all,-
扫描整个文件而不是只扫描目标文件初始化和装载段
-d,--data
仅打印文件中已初始化、加载的数据段中的字符串,这可能会减少输出中的垃圾量
-e,--encoding=ENCODING
选择字符编码与字节序。encoding可取值s=7bits的ASCII, S=8bits的Latin1, {b,l}=16bits宽字符大小端编码, {B,L}=32bits宽字符大小端编码。其中b,B代表bigendian,l,L代表littleendian
-f,–-print-file-name
在显示字符串前先显示文件名
--help
显示帮助信息
-,-n,--bytes=MIN_LEN
指定可打印字符序列的最小长度,而不是默认的4个字符
-o
类似--radix=o
-t,--radix=RADIX
输出字符串在文件中的偏移位置,RADIX可取值o(octal,八进制)、d(decimal,十进制)或者x(hexadecimal,十六进制)
-T,--target=BFD_NAME
指定二进制文件格式
-v,-V,--version
显示版本信息
-w,--include-all-whitespace
默认情况下,Tab 和空格字符包含在字符串中,但其他空白字符除外,比如换行符和回车符等字符不是。-w 使所有的空白字符被认为是字符串的一部分
@FILE
从指定的文件FILE中读取命令行选项

4.常用示例

(1)打印可执行文件中的所有可读字符串。

strings/bin/ls
/lib64/ld-linux-x86-64.so.2
libselinux.so.1
_ITM_deregisterTMCloneTable
__gmon_start__
_Jv_RegisterClasses
_ITM_registerTMCloneTable
_init
fgetfilecon
freecon
lgetfilecon
...

(2)查看某一个字符串属于哪个文件。

strings-f*|grep"xxx"

(3)查看glibc支持的版本。libc.so.6是c标准库,而这个标准库的制作者为了让库的使用者知道该库兼容哪些版本的标准库,就在这个库中定义了一些字符串常量,使用如下命令可以查看向下兼容的版本。

strings/lib64/libc.so.6|grepGLIBC
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_2.16
GLIBC_2.17
GLIBC_PRIVATE

参考文献

[1] strings manual
[2] GNU Binutils

责任编辑:xj

原文标题:每天一个 Linux 命令(100):strings 命令

文章出处:【微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 二进制
    +关注

    关注

    2

    文章

    705

    浏览量

    41248
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206733
  • 命令
    +关注

    关注

    5

    文章

    638

    浏览量

    21849

原文标题:每天一个 Linux 命令(100):strings 命令

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何提取串口接收字符串数组里的某个字符串

    前几天搞了好久串口发送接收字符串的程序代码,终于搞出来了。还没高兴多久,新的问题又来了。我使用STM8S105K4的UART2口跟蓝牙模块通信的,我发送字符串指令给蓝牙后,蓝牙返回来了十几
    发表于 04-22 06:05

    Linux的sort命令介绍

    结尾的字符串作为输入文件名;如果 F 是 -,则从标准输入读取文件名 -f, --ignore-case 排序时,将小写字母视为大写字母 -i, --ignore-nonprint
    发表于 04-08 07:16

    USB字符串描述符里面的序列号字符串到底是什么东西?

    在设备描述符里面,有一个表示序列号字符串描述符的编号,请问这个序列号字符串的描述符是什么东西呢? 厂商字符串和设备字符串都能理解,而且在电脑的“设备与
    发表于 01-24 08:06

    MCU-TC397无法使用UART打印变量数据?

    我在 UART 工作遇到了一个问题。 MCU-TC397 所以我正在使用 TERA TERM 打印日志。 我使用的是标准代码,如下所示: void print_f(常量字符 *p_frm
    发表于 01-24 06:28

    labview扫描字符串怎么用

    LabVIEW 是一种流程化编程语言和开发环境,主要用于控制、测量和监测系统。在 LabVIEW 中,扫描字符串是一项常见的任务,它允许用户按照一定的模式从输入字符串中提取所需的信息。下面我将详细
    的头像 发表于 12-29 10:12 617次阅读

    labview扫描字符串怎么用

    LabVIEW是一种图形化编程语言,用于开发控制、测量和监控系统。虽然它主要用于工程和科学领域,但也可以用于处理文本和字符串。 在LabVIEW中,可以使用
    的头像 发表于 12-26 16:58 698次阅读

    c语言字符串定义

    C语言是一种强大而广泛使用的编程语言,字符串是其中一个非常重要的概念。在C语言中,字符串是由一系列字符组成的数组,它可以表示文本、数字等各种类型的数据。在本文中,我们将详尽、详实、细致地介绍C语言
    的头像 发表于 11-24 10:02 855次阅读

    linux搜索文件里的字符串

    以在文本文件中搜索指定的字符串,并将包含该字符串的行打印出来。 用法示例: grep "search_text" file_name grep命令
    的头像 发表于 11-23 10:20 522次阅读

    mysql字符串包含某个字符串

    MySQL是一种开源的关系型数据库管理系统,被广泛用于构建Web应用程序和其他大型数据驱动的应用。在进行MySQL数据库查询时,经常需要使用字符串包含操作,即判断一个字符串是否包含另一个字符串
    的头像 发表于 11-16 14:52 1134次阅读

    请问如何解析从串口接收到的字符串中提取命令和数字参数?

    如何解析从串口接收到的字符串中提取命令和数字参数?
    发表于 10-23 06:13

    IARUTF-8中文字符串不显示怎么解决?

    界面使用的是ucGUI原本使用GB2312编码的字符串可以直接读取显示,字库也用FontCvt做了初始化的时候也添加了GUI_UC_SetEncodeutf8();函数 后面换成UTF-8的中文字符串
    发表于 10-07 07:11

    strings命令的使用方法

    文件中通常有两种类型的字符:可打印字符和不可打印字符。字母、数字、字符、标点符号、空格等称为可打印字符
    发表于 09-24 12:14 1876次阅读
    <b class='flag-5'>strings</b><b class='flag-5'>命令</b>的使用方法

    C++字符串string

    string是C++编程语言中的字符串。在C++中字符串处理可以使用c语言字符串形式char *,也可以使用string类格式。
    的头像 发表于 07-10 00:26 885次阅读
    C++<b class='flag-5'>字符串</b>string

    如何遍历中文字符串

    今天和大家分享下如何遍历中文字符串,主要是如何打印中文字符,因为中文字符串每个字符占用不只一个字节的空间,如果我们逐个字节遍历,会出现奇怪的
    的头像 发表于 07-03 09:15 388次阅读
    如何遍历中文<b class='flag-5'>字符串</b>

    求助,有没有办法将字符串常量放入闪存

    ;greeting\") == 0) { ... 我似乎发现字符串被放置在一个特殊的链接器“部分”,因此我们可以识别它们。但是,当我链接我的应用程序时,我的理解是字符串(在运行时)被放置在宝贵
    发表于 06-12 06:18