Linuxサーバー管理入門 - Linuxサーバー管理でPerlを使う

Linuxの基本的なコマンドを覚えよう その2

 さてそれでは作業をするにあたって便利になるコマンドをどんどん覚えていきましょう。

文字列の検索 grep

 grepコマンドは、コマンドの中でも頻繁に使うコマンドです。grepはテキストファイルの中に、指定した文字列が含まれている場合に、その行を表示してくれます。

grep 文字列 テキストファイル

 たとえばテキストファイル(foo.txt)が次のようなものだったとしましょう。

cat is animal
dog is animal
mouse is animal
cat だ。

 このテキストファイルからcatを含む行を取り出したいとするなら、次のように書きます。

grep cat foo.txt

 出力結果は次のようになります。

cat is animal
cat だ。

他のコマンドと組み合わせる

 grepは他のコマンドと組み合わせるととても便利です。たとえばlsコマンドと組み合わせてみましょう。

ls | grep log

 lsはファイルの一覧を表示するコマンドです。そして後ろに続くの|はパイプと呼ばれるもので、lsの出力を次のコマンドの入力に渡すことができます。

 上記のコマンドを実行すると、ファイル一覧の中からlogというファイル名を含むものだけを抽出することができます。

 lsだけではなくて、他のコマンドとも組み合わせることができます。

 もしスペースを含む文字列を指定した場合はダブルクォートで文字列を囲みます。

grep "cat is" foo.txt

正規表現を使う

 grepでは、抽出条件として正規表現を指定することができます。

grep "^cat" foo.txt

 反対に、文字列で検索する場合は「-F」オプションが利用できます。

grep "cat" foo.txt

サブディレクトリすべてから検索

 grepには大変便利な機能があります。それはサブディレクトリを含めて再帰的に、検索してくれる機能です。rオプションを使用します。

grep -r cat dir1

 dir1というディレクトリ以下に含まれているテキストファイルの中からcatを含む行を表示してくれます。

 以下のように複数のディレクトリを指定することも可能です。

grep -r cat dir1 dir2

環境変数を見る

 環境変数を見るには、envを使用します。

env

 環境変数は、アプリケーションなどで利用される設定が格納するための変数です。

HOSTNAME=www345u.sakura.ne.jp
SHELL=/bin/bash
OLDPWD=/home/kimoto/labo
USER=kimoto

環境変数の設定 env

 環境変数を設定するには次のようにします。

export APP_NAME=myapp

 環境変数は一般的には大文字です。自分で好きな名前をつけることができます。設定した環境変数は、現在のシェルの中でだけ有効です。つまり、一度ログアウトしたり、端末を終了したりすれば、設定はなくなります。

 デフォルトの設定として、環境変数を設定したい場合は、シェルの設定ファイルで定義する必要があります。シェルの設定ファイルは、ホームディレクトリにある.bashrcです。

vi ~/.bashrc

 この設定ファイルの中には、環境変数の設定や、コマンドを記述することができます。

コマンドのパスを調べる which

 コマンドのパスを調べるには、whichを使用します。たとえばperlというコマンドは実際何を実行しているのかを知ることができます。

which perl

 すると以下のように実際に実行しているアプリケーションのパスが表示されます。

~/perl5/perlbrew/perls/perl-5.14.2/bin/perl

ファイルの内容を出力

 ファイルの内容を出力するにはcatを使います。

cat ファイル

テキストファイルを先頭から見る more

 テキストファイルの先頭の部分だけ見たい場合はmoreを使います。

more テキストファイル

 Enterを押していくと、ページが進んでいきます。終わりたいときはqを押します。

テキストファイルの末尾を見る tail

 テキストファイルの末尾を見るにはtailを使用します。

tail テキストファイル

 tailには便利なオプションがあって、ファイルを監視して、ファイルの末尾に文字列が追加された場合に、表示し続けてくれるfオプションがあります。ログを監視するのに便利です。

tail -f developmen.log