サイド上背景

サイトについて

リンクフリー

個人ご利用の場合はリンクフリーです。備忘録等に各種ドキュメントへのリンク。ご自由にご利用ください。

転載

出典元表記(当社名orリンク記載)の際は転載等ご自由にご利用ください。

ライセンス

このページの内容の一部は、Google が作成、提供しているコンテンツをベースに変更・複製したもので、クリエイティブ・コモンズの表 示 3.0 ライセンスに記載の条件に従って使用しています。

株式会社 Sola.com

ソラコムお問い合わせ

〒981-0913
宮城県仙台市青葉区昭和町3-7 スカイコート上杉601
TEL:022-234-9972
Fax:022-778-6779

きょうのことば

" 大きい貢献、目立たぬサポート、具体的な現実主義 "

ドイツ参謀部標語(松村 2005)


コンテンツ背景
Home 技術ドキュメント Linux操作 PHPプログラマのためのgrep・findコマンドの使い方
PHPプログラマのためのgrep・findコマンドの使い方
作者: 代表取締役 高橋洋人   

grepの使い方(基本:grep -R "keyword" ./*)

grepはディレクトリ以下のファイルの中身から、特定のキーワードを探し出すことができます。
プログラムのいずれかのファイルの中の処理を修正したりする際には、手がかりとなる言葉でgrep検索をかけてみて、「どの部分を修正すれば良いのか?」を突き止めます。

これは技術者の基本ですので、必ず身につけましょう。

(バリエーション)
grep -R --color "key" ./*
-見つかったkeyの色を変え、見やすく表示する

grep -R --color "key" ./*.php
-phpファイルに限定して、ディレクトリ以下のkeyを含むファイルを検索し、それをハイライト表示する。

findコマンドの使い方(基本:find ./ -name "search*")

 findは主にファイル名を検索したい時に使います。
基本例では「現在のディレクトリ以下の中でsearchで始まるファイルを検索」しています。見落としてはいけないのは、ダブルコーテーション(")内に、「*」(ワイルドカード)がある点です。これがなければ、「完全一致検索」となり、膨大なファイルを相手にするプログラミングの際には、効率があまり良くありません。

具体的には、次のようなシーンで使います。

テンプレートにsearch.tplというものがあるが、これのモデル(M/実際に処理が書かれているファイル)はどれだ?
①.search.tplというファイルに対して、わざわざkensaku.phpなど名前を変えるケースはあまり考えられない。
②.恐らくどこかに「search.php」などのファイルがあるはずだ(find ./ -name "search")
※これで見つからない場合は、grepを併用して「それではsearch.tplを呼び出しているファイルは?」あるいは「***.tpl」を呼び出しているファイルは?などターゲットを追い詰めていきます。

(バリエーション)
find ./ -perm 777
-ディレクトリ以下で、パーミッションが777(誰でも書き込める)ファイル、ディレクトリを探す。
※777はログや、画像書き込みフォルダ、一時ディレクトリに使う際が多いので、セキュリティチェックやファイル保存、書き込みができない際などの検証に適している。

diffコマンドの使い方(チームで同時に作業をするとき)

 ファイルをいざ編集するとき、原則的にバックアップを残し、後で回復ができたりこれまでの変更経歴を確認できるようにします。
次に作業をする作業者が、「今のと前のとでどんな変化があるか?」を確認する際に、diff(differentな点を確認する)をします。

(基本コマンド)
diff search.tpl search.tpl~
※前者と後者で何が違うかと表示。

(便利なコマンド)
「元のファイルは分かるが、バックアップがどこかにあるはずなのに分からない場合」
diff search.tpl /home/xxx/public_html
※public_html以下にsearch.tplと同じ名前のファイルがある場合に、比較をしてその結果を返す。

「システム全体のバックアップディレクトリがあり、それぞれの違いをみたい場合」
diff system system_OLD
※sysytemディレクトリとsystem_OLDディレクトリを比較して、お互いの中のすべてのファイルの違いを出す。