shell パイプを使って繋げます。

muroiです。

今日はshellについての学習をしました。

学習内容
shell・概要
パイプの使い方
リダイレクト

shell・概要

そもそもシェル(shell)とは、OSの中心機能(カーネル)の周りを包む殻(shell)のようなもの、ユーザーの操作を受けてプログラムの起動や制御などを行うプログラムの事をいいます。


パイプの使い方

パイプは、あるコマンドの出力を別のコマンドの入力と繋ぐ際に用います。

パイプ:

あるコマンド  | あるコマンド

の、真ん中にある「|」の事を言います。

例えば今開いているポートの一覧を見たい!と思ったとき

netstat -a

とコマンドを入力して見ると思います。
これだけでもポートの一覧を見る事はできると思いますが、この中からhttpの通信だけを知りたい!って思った時は、大量に表示されてしまって確認するのも大変です。
そんな時に使うのがこのパイプ、これを使用してやる事によってhttpの通信だけに絞り込む事が可能となります。
使用例:

netstat -a | grep http

と入力する事により絞り込みができます。(ちなみに、grepは、文字列を検索するために使用するコマンドです。)


リダイレクト

リダイレクトは、入出力を切り替えるのに使用するものです。
今回はdateコマンドを使って、普段shell上に出力されているものをテキストに出力して保存できるようにしてみました。

date

とコマンドを打つ。すると下記の様に時間と日付が表示されます。(dateコマンドでの表示設定は日本語表示となっています。)
表示例:

2008年 5月20日 火曜日 17時44分37秒 JST

これを今度は、テキスト等ファイルに保存してみたいと思います。
使い方:

date > 保存先のテキストファイル名パス

上記の様に入力する事によって、テキストファイルに保存してやる事ができます。(また、「>」一つでは、ファイルが存在しない場合は新規でファイルを作り保存してくれます)

実例:

date > time.txt

これで時間をtime.txtというファイルに保存する事ができます。
しかし、このまま上記の保存方法だと新しい保存はできるのですが、仮にファイルが存在していた場合は上書きとなってしまい、過去の保存は消えてしまいます。
そこで、以前保存していたデータを消さず、追記するにはどうすればいいか・・。
追記をするためには、以下の様に記述をします。

使い方:

date >> 保存先のテキストファイル名パス

実例:

date >> time.txt

と記述する事によって、新たにデータを追記していく事が可能となります。


パイプなど、どんどん活用していけるようなれるといいです!
ちなみに

netstat -a | more

と入力すると、長い表示をページのように分けて表示することができます。
ただ、スペースで次ページを開く事ができるのですが前のページに戻る事はできません・・。

(2008/05/20 muroi追記)
動画アップしました!

コメントをどうぞ

名前: (Required)

eMail: (Required)

Website:

Comment:

Spam Protection by WP-SpamFree