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ディレクトリを比較して、お互いの中のすべてのファイルの違いを出す。
|