Linux や Unix 系の OS には /dev というディレクトリーが作られます。
この /dev ディレクトリーは、デバイスを抽象化したファイルかのようにアクセスできるようになってます。
ちなみに物理的なデバイスではない特殊なファイルもあります。
これ以外にもターミナルにアクセスする端末(ターミナル)デバイスを抽象化した特殊ファイルもあります。
まずは「 > 」リダイレクトを使ってファイルを作ります。
$ 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