Linux, コマンド · 1 min read · Sep 19, 2025
初心者のためのLinux stringsコマンドチュートリアル(5つの例)
バイナリ/実行可能ファイルの中を見て人間が読める文字列を取得する作業は、誰もが行うわけではありませんが、もしこれを求められたらどうしますか?ファイルをエディタで開き、手動で探すのは優雅な解決策ではありません。では、どうするべきでしょうか?はい、その通りです - あなたのためにこれを行うコマンドラインユーティリティが存在します。
問題のツールはStringsと呼ばれ、このチュートリアルでは、いくつかのわかりやすい例を使ってこのコマンドの基本について説明します。しかし、その前に、この記事のすべての例はUbuntu 16.04 LTSマシンでテストされていることを言及しておく価値があります。
Linux Stringsコマンド
Stringsコマンドは基本的にファイル内の印刷可能な文字の文字列を出力します。以下がその構文です:
strings [OPTIONS] FILENAMEそして、ツールのmanページは次のように説明しています:
与えられた各ファイルについて、GNU stringsは少なくとも4文字以上の印刷可能な文字列を出力し(または以下のオプションで指定された数)、その後に印刷不可能な文字が続きます。
stringsプログラムがどのように設定されているかに応じて、各ファイル内で見つけられるすべての印刷可能なシーケンスを表示するか、または初期化されたデータセクションにあるシーケンスのみを表示します。ファイルタイプが認識できない場合、またはstringsがstdinから読み取っている場合は、見つけられるすべての印刷可能なシーケンスを常に表示します。
後方互換性のために、コマンドラインオプションの後に単に-があるファイルも、-dオプションの有無にかかわらず完全にスキャンされます。
stringsは主にテキスト以外のファイルの内容を判断するために便利です。以下は、Stringsコマンドがどのように機能するかを理解するのに役立つQ&Aスタイルの例です。
Q1. stringsコマンドの使い方は?
基本的な使い方は非常に簡単です - ファイル名を入力として渡し、コマンドを実行するだけです。
Stringsは主にバイナリ/実行可能ファイルから情報を抽出するために使用されるため、すべての例でそのようなファイルを使用します。
例えば:
strings testこのコマンドが私のシステムで生成した出力は次の通りです:

Q2. カスタム文字制限を強制するには?
最初に説明したように、Stringsツールのデフォルトの動作は、少なくとも4文字以上の文字列のみを出力することです。しかし、もし希望するなら、-nコマンドラインオプションを使用してこの制限を変更できます(新しい制限を示す数値を渡す必要があります)。
例えば、制限を2に設定したい場合、次のようにできます:
strings -n 2 testこれで、出力に2文字および3文字の文字列も表示されるようになります。
Q3. stringsに文字列シーケンスのオフセットを表示させるには?
Stringsに出力で表示される文字列シーケンスのオフセットも表示させたい場合、-tコマンドラインオプションを使用して、オフセットの基数を指定する単一の文字入力を提供する必要があります - ‘o’は8進数、’x’は16進数、または’d’は10進数です。
例えば:
strings -t d testそして、私のシステムで生成された出力は次の通りです:

これで、出力の文字列がそれぞれのオフセットに先行して表示されることがわかります。
Q4. Stringsにファイル全体をスキャンさせるには?
Stringsがどのように設定されているかによって、入力ファイル全体をスキャンする場合としない場合があります。しかし、ツールが完全なファイルを読み取ることを絶対に確実にしたい場合(初期化されたデータセクションだけでなく)、-aコマンドラインオプションを使用します。
例えば:
strings -a test逆に、Stringsにファイル内の初期化されたロード済みデータセクションからの文字列のみを表示させたい場合は、-dコマンドラインオプションを使用します。
strings -d testQ5. セパレーターを変更するには?
ご覧の通り、デフォルトではStringsが使用するセパレーターは改行です。しかし、希望する場合は、-sコマンドラインオプションを使用してカスタムセパレーターを設定できます。
例えば:
strings -s [[[]]] test
結論
Stringsコマンドは、バイナリ/実行可能ファイルから有用な情報を掘り下げるのが好きな場合に非常に便利なツールです。ここではいくつかの重要なコマンドラインオプションについて説明しました。これらを練習し、完了したら、ツールのmanページでさらに情報を確認してください。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。