Linuxで使う検索コマンド4選|効率的に検索するには順番が大切な話

Linuxコマンドを勉強したい人向け

 この記事は、Linux初心者向けの記事です。
Linuxで検索コマンドを勉強する人

Linuxを勉強する人「Linuxで検索をするときに使うコマンドを覚えたい。どのコマンドとどのコマンドが検索に使うコマンド?」

こんな疑問に答えます。

本記事では、Linuxの検索に使うコマンドを4つ紹介します。

検索といっても目的や対象はさまざま。そこで検索につかうコマンド4つと、検索したいときにどのコマンドをどの順番で使う検討をすれば良いか解説します。

効率的な検索には順番があります

この順番にこだわるのは、findコマンドを使うのを極力避けたいからです。

findコマンドは非常に便利なのですが、探していないファイルも大量にマッチしてしまったり、検索に時間がかかってしまうことも多く、極力使うのを避けたいからです。

そのため本記事では使う順番に沿って①〜③、さらにfindコマンドという順序で使い方を解説していきます。

テキストファイルの中を検索するときのgrepコマンド

テキストファイルの中を検索するときのgrepコマンド

構文

grep 《検索文字列》 《検索するファイル名》

file1.txtというテキストファイルの中から、”test“という文字列を検索して表示する例です。

$ grep text file1.txt

実行結果は以下の通りです。
[実行結果]

This is grep test.
And this test is succeed.

同様に、file2.txtというテキストファイルの中から、”test“という文字列を検索します。

$ grep text file2.txt

見つからなければ、何も表示されません。
[実行結果]

 

どこかに”text“という文字が入ったファイルがあるはずなんだけど見つからない!という場合はfindコマンドで探します。
後ほどfindコマンドの項目で具体例をベースに解説します。

実行プログラムを検索するときのwhichコマンド

実行プログラムを検索するときのwhichコマンド

構文

which 《探している実行プログラム名》

pythonのプログラムがどこにあるか検索するときは以下のようにします。

$ which python

実行結果は以下の通りです。パスを取得することができました。
[実行結果]

/usr/bin/python

ただし、whichでは環境変数$PATHに設定された場所しか検索ができません。

$ which open.sh

実行プログラムでも、環境変数に設定されていない場所にある場合にはエラーになってしまいます。
[実行結果]

open.sh not found

実行プログラムがwhichコマンドで見つからない場合は、次のlocateコマンドで探します。

データベースからファイルを検索するlocateコマンド

データベースからファイルを検索するlocateコマンド

構文

locate 《探しているファイル名》

locateコマンドはファイル情報をデータベースに格納し、そこから対象のファイルを検索するコマンドです。

$ locate open.sh

実行結果は以下の通りです。
[実行結果]

/home/user01/bin/open.sh

好きな場所からファイルを検索するfindコマンド

好きな場所からファイルを検索するfindコマンド

構文

grep 《検索元ディレクトリ》 -name “《探しているファイル名》”

grep,which,locateコマンドを使ってもファイルやディレクトリが見つからない場合にはfindコマンドを使います。次の例では、拡張子が”.sh“の全てのファイルを検索します。

$ find . -name "*.sh"

実行結果は以下の通りです。
[実行結果]

./bin/open.sh
./bin/news.sh

最初のgrepの例で文字列が見つからなかった場合、次のようにfindコマンドで複数のファイルから検索することができます。

構文

find 《検索元ディレクトリ》 -exec grep 《検索文字列》 {} +

現在のディレクトリ配下のファイルの中身から、”test“という文字列を検索して表示する例です。

$ find . -exec grep test {} + 2> /dev/null

実行結果は以下の通りです。いろいろなファイルから”test“という文字列が見つかりました。
[実行結果]

./file1.txt:This is grep test.
./file1.txt:And this test is succeed.
./file3.txt:test.
./SQL/file.sql: "good" ELSE "bad" END FROM test;
./temp/file.sh:echo $test

おわりに

今回は以上です。Linuxで検索につかうコマンドを4つ紹介し、効率的に検索する順番について解説しました。

参考になりましたら幸いです。

  • 給付を貰いながら講座を受講して、Linux技術者認定(LPIC-1&2)を短期で取得しませんか?技術力の認定があれば、転職・就職・昇進に有利です。もちろん実務能力も向上します。無料の資料請求はこちら(Linuxアカデミー)   の右上から。
 LPIC資格対策コース(LeveI1):学習時間は15時間  LPIC2資格対策コース(LeveI2):学習時間は25時間  Linuxセキュリティコースもあります:学習時間は25時間  会社員なら、教育訓練給付制度の給付対象となる講座です。  資格試験の内容、学習プラン、講座に関する資料を無料送付。
Linux技術者認定(LPIC Level1&Level2)

キャンペーン情報:無料で1,000円プレゼント Linuxアカデミーでは、教室でカウンセリングを受けた方を対象にスターバックスカード1,000円分の無料プレゼントキャンペーン中です。この機会にぜひどうぞ! » LPIC-1&2 対策コースの詳細はこちら » LinuCライセンスを独学で取得したい方はこちら

Blog TOP  Linuxコマンドを勉強したい人向け|Linuxの使い方 記事まとめ

Linux&Linuxコマンドを勉強したい人向けの記事もくじ

用語解説・技術一般

  "UNIXとLINUX"の違いについて解説します
  CUIとGUIの違い・特徴について解説します

サーバリソースを確認するコマンドの使い方

  【Linux】CPU使用率を確認する3つの方法を解説します
  【Linux】topコマンドで,CPU消費の原因を特定する方法
  【Linux】ps実行時に-efオプションを付ける理由について
  【Linux】メモリ使用率を確認する|容量・空きの確認も
  【Linux】ディスク容量を確認する|ディスク容量監視も

ファイル操作に関するコマンドの使い方

  【Linux】ファイルの行数をカウントする方法を解説
  【Linux】文字コード変換ならiconvコマンド1択です
  【Linux】/dev/nullを、エンジニアが使う2つの目的
  【Linux】findのexecオプションの使い方とその注意点
  【Linux】findの結果から圧縮ファイルを作るコマンド
  【Linux】hostsの場所はどこ?→/etc/hostsにあります
  【Linux】touchコマンドで,時刻更新&空ファイル作成

Linux管理者用コマンドの使い方

  【Linux】再起動コマンド(shutdown)の使い方と注意点

よく使う便利なコマンドの使い方

  【Linux】改行なしでechoコマンドを使う時の -nオプション
  【Linux】sleepコマンドの使用例と注意点について解説する
  【Linux】rmコマンドでディレクトリを削除する方法を解説
  【Linux】ファイルを削除するコマンド2選【rm以外もあり】
  【Linux】awkの区切り文字を指定する,-Fオプションを解説
  【Linux】sedで文字列の置換をするeオプションを解説する
  【Linux】dateコマンドのフォーマットとその便利な使い方
  【Linux】大文字から小文字に変換する方法【小文字から大文字も】

シェルの便利機能

  【Linux】コマンド履歴を検索する【Ctrl+r】


今、ITエンジニアは前例のない売り手市場です

ITエンジニアは前例のない売り手市場、転職なら今

現在のエンジニアの求人数と求人倍率をご存知ですか?

直近(※)のIT業界全体の求人倍率は7.85倍です。

つまり 企業が8回 IT人材の求人を出しても、 1人しかエントリーがない 状況です。

エンジニア側が企業を選ぶ なら、今がチャンスです。

※転職サイトdodaが毎月発表している転職求人倍率。
 2019年12月9日発表/集計対象期間は2019年11月1日〜30日

詳しくはこちら


人気記事【今年の抱負】退職しオープン&フリー&シンプルに生きていく【失敗しない働き方改革の本質】