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