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文章
809瀏覽量
43033 -
Linux
+關注
關注
88文章
11760瀏覽量
219032 -
命令
+關注
關注
5文章
755瀏覽量
23756
原文標題:每天一個 Linux 命令(100):strings 命令
文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
熱點推薦
求助 LabVIEW 字符串比較
1.輸入一個字符串,儲存起來。
2.再次輸入一個字符串,先和儲存起來的字符串比較,如果不同則存儲起來,如果相同則不儲存。
3.再次輸入一個字符串,和所有儲存起來的
發表于 03-02 17:24
字符串關聯數字變量如何使用?我們的地址都是16位數據,可以使用16位數字變量顯示字符串嗎?
字符串關聯數字變量如何使用?我們的地址都是16位數據,可以使用16位數字變量顯示字符串嗎?
發表于 12-15 08:24
tsc mh641系列工業打印機:高清打印,精準高效
模糊導致的掃描失誤。同時,設備支持連續批量打印,內置智能送紙校準系統,可自動調整紙張張力,減少卡紙、偏位等問題,大幅提升打印穩定性。此外,tsc工業條碼打印機還配備直觀
求助,關于C代碼中的printf打印的疑問求解
在使用E203 testbench執行附帶的benchmark測試用例時候,得到如下打印信息:
CPU驗證小白一枚,有個問題不是很理解:黃色框框內的字符看起來應該是C代碼中的printf語句
發表于 11-10 07:54
飛凌嵌入式ElfBoard-Linux系統基礎入門-文件操作相關shell命令
:2.5.13 grep文本查找命令命令:grep功能:用于查找文件里符合條件的字符串參數:grep [選項]選項說明-r遞歸方式查找符合條
發表于 09-30 09:46
在Python中字符串逆序有幾種方式,代碼是什么
對于一個給定的字符串,逆序輸出,這個任務對于python來說是一種很簡單的操作,畢竟強大的列表和字符串處理的一些列函數足以應付這些問題 了,今天總結了一下python中對于字符串的逆序
linux系統awk特殊字符命令詳解
在Linux系統中,awk?是一種非常強大的文本處理工具,能夠對文本數據進行分析、格式化和篩選。利用其內置的特殊字符和操作符,用戶可以實現復雜的數據處理任務。以下對一些常見的awk特殊字符和操作符
哪些場景要使用到RFID標簽打印機?RFID標簽打印機一般多少錢?
RFID標簽打印機是一種將射頻識別技術與打印技術相結合的設備,可實現對RFID標簽的信息錄入與表面信息打印,廣泛應用于多個領域。以下是一些常
harmony-utils之StrUtil,字符串工具類
,致力于助力開發者迅速構建鴻蒙應用。其封裝的工具涵蓋了APP、設備、屏幕、授權、通知、線程間通信、彈框、吐司、生物認證、用戶首選項、拍照、相冊、掃碼、文件、日志、異常捕獲、字符、字符串、數字、集合
如何將dif_time打印到 uart 或將其保存在文件中?
uint8_t 緩沖區,然后將其打印到 UART 控制臺或保存在文件中。 我正在尋找一些有關如何實現這一目標的指導!
代碼片段
//全局變量
uint32_t 開始時間;
uint32_t停止時間
發表于 05-15 06:51
STM32C031C6使用的是UART2通訊,通過printf()函數發送字符串時,漢字錯碼怎么解決?
使用的是UART2通訊,通過printf()函數發送字符串時,漢字錯碼(見下圖),應該是KEIL哪里沒有設置好的問題。
啟用了UART2的中斷接收,可以接收到串口調試助手的數據,但是緩存區的指針沒有歸零,下次接收時緩存區中的內容接續(如下圖所示),不知道用什么
發表于 03-07 12:30
strings命令:用于打印文件中可打印字符串
評論