第7章 /dev ディレクトリー

目次

7.1. echo のリダイレクト

Linux や Unix 系の OS には /dev というディレクトリーが作られます。

この /dev ディレクトリーは、デバイスを抽象化したファイルかのようにアクセスできるようになってます。

ちなみに物理的なデバイスではない特殊なファイルもあります。

/dev/null
このファイルに書き込まれたデータを全て捨てる

これ以外にもターミナルにアクセスする端末(ターミナル)デバイスを抽象化した特殊ファイルもあります。

/dev/tty
ログイン済みのシェルでは /dev/tty が現在使用中の端末(ターミナル)として機能

まずは「 > 」リダイレクトを使ってファイルを作ります。

$ cat > cat.in
abcde
fghijk

cat の後に手打ちで

「Ctrl + d」. の順序でキーボードを叩いてください。

確認は cat コマンドです。

$ cat cat.in
abcde
fghijk

こんな感じでリダイレクトが入力した文字列を cat.in ファイルへ記録したことが確認できます。

もしくはキーボードによる入力でなく、他のコマンドの出力をファイルにリダイレクトします。

例えばディレクトリー内のファイル名の一覧を出力してくれる ls コマンドを使うと良いでしょう。

$ ls
cat.in
$ ls > cat.ls
$ ls
cat.in  cat.ls
$ cat cat.ls
cat.in
cat.ls

このようにファイルではなくコマンドからでもリダイレクトでデータをコピーすることができます。

次にこれを端末(ターミナル)に相当する /dev/tty にリダイレクトとして、端末に表示されるかチェックしてみましょう。

$ cat cat.in > /dev/null
$ cat cat.in > /dev/tty
abcde
fghijk
$ cat cat.ls > /dev/tty
cat.in
cat.ls

このようにファイルの中身をリダイレクトしてログイン済みで使用中のターミナルに出力させることもできますね。

もちろんこんな面倒をことをせずに標準入力のデバイスから直接打ち込むというのもありです。

$ cat > /dev/tty
abc
abc
ddd
ddd
eee
eee

ちなみに筆者は cat コマンドの実行後には以下のようにキーボードを叩いてます。

Ctrl+d. 「ワイはシェルを学びたいんじゃないYO」とお考えの方もいらっしゃるでしょうがね。

しかしとあるハッカーさんによるとまずは、開発するソフトウェアに似たツールに習熟してからコードすると良いよって言ってますんで、シェルを学ぶのは良いことです。

Copyright 2018-2019, by Masaki Komatsu