Linuxで使う検索コマンド4選|効率的に検索するには順番が大切な話
こんにちは。
普段はIT業界についてのブログを執筆してるエンジニアです。
» 参考:プログラマーの年収は200万円以下です【IT業界の残酷な成功法則】
今回は、Linuxについての解説記事です。
Linuxを勉強する人「Linuxで検索をするときに使うコマンドを覚えたい。どのコマンドとどのコマンドが検索に使うコマンド?」
こんな疑問に答えます。
本記事では、Linuxの検索に使うコマンドを4つ紹介します。
検索といっても目的や対象はさまざま。そこで検索につかうコマンド4つと、検索したいときにどのコマンドをどの順番で使う検討をすれば良いか解説します。
効率的な検索には順番があります
- CASE ①: テキストファイルの中を検索する場合
grepコマンドを使う - CASE ②: 実行プログラムの場所を検索する場合
whichコマンドを使う - CASE ③: 実行プログラム以外のファイル/ディレクトリを検索する場合
locateコマンドを使う - ①〜③で探しているファイルが見つからない場合の検索
findコマンドを使う
この順番にこだわるのは、findコマンドを使うのを極力避けたいからです。
findコマンドは非常に便利なのですが、探していないファイルも大量にマッチしてしまったり、検索に時間がかかってしまうことも多く、極力使うのを避けたいからです。
そのため本記事では使う順番に沿って①〜③、さらにfindコマンドという順序で使い方を解説していきます。
テキストファイルの中を検索するときの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コマンド
構文
pythonのプログラムがどこにあるか検索するときは以下のようにします。
$ which python
実行結果は以下の通りです。パスを取得することができました。
[実行結果]
/usr/bin/python
ただし、whichでは環境変数$PATHに設定された場所しか検索ができません。
$ which open.sh
実行プログラムでも、環境変数に設定されていない場所にある場合にはエラーになってしまいます。
[実行結果]
open.sh not found
実行プログラムがwhichコマンドで見つからない場合は、次のlocateコマンドで探します。
データベースからファイルを検索するlocateコマンド
構文
locateコマンドはファイル情報をデータベースに格納し、そこから対象のファイルを検索するコマンドです。
$ locate open.sh
実行結果は以下の通りです。
[実行結果]
/home/user01/bin/open.sh
好きな場所からファイルを検索するfindコマンド
構文
grep,which,locateコマンドを使ってもファイルやディレクトリが見つからない場合にはfindコマンドを使います。次の例では、拡張子が”.sh
“の全てのファイルを検索します。
$ find . -name "*.sh"
実行結果は以下の通りです。
[実行結果]
./bin/open.sh ./bin/news.sh
最初のgrepの例で文字列が見つからなかった場合、次のようにfindコマンドで複数のファイルから検索することができます。
構文
現在のディレクトリ配下のファイルの中身から、”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つ紹介し、効率的に検索する順番について解説しました。
参考になりましたら幸いです。
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】大文字から小文字に変換する方法【小文字から大文字も】
シェルの便利機能
「今の会社を辞めて転職します。エンジニア職に強みのあるおすすめの転職サイト・転職エージェントを教えて欲しい。また好条件で転職するにはどうすれば良いですか?」こんな悩みに答えます。 ITエンジニアに強いおすすめの転職サイト・転職エージェント3選 転職成功には強くてニューゲームが条件。どうやって実現する?