ふつうのUNIXコマンド解説(cat)
こんにちは、代表の秋葉です。
最近は、講義やゼミの活動でLinuxにふれる機会が多くコツコツと学ぶ日々です。Linuxはコマンドでの操作が基本となることが多いので最初は苦戦しやすいですね。
そこで今回は基本となるコマンドから「cat」コマンドを取り上げて説明をいたします。
それでは早速行きましょう!
〇ファイルの内容を出力する 「cat」
catは「ファイルの内容を連結して標準出力に出力する」というコマンドです。書式は、
cat [オプション]… [ファイル]…
です。今回は -nオプションについてのみご説明いたします。
まず、「標準出力に出力する」ということから解説をしていきます。
Linuxのプログラムでは、「1つの入り口と2つの出口」があり、それぞれを標準入力・標準出力・標準エラー出力という言葉で表現しています。
標準入力はプログラムに入ってくるデータのことを表します。
例えば、キーボードでプログラムに対して文字を打ち込むということが標準入力です。
続いて、標準出力とはプログラムの実行を書き出す先のことを言います。
プログラムを実行した端末のディスプレイが標準出力ということです。
最後に、標準エラー出力とはエラーメッセージを書き出す先のことをいいます。標準出力と同じように、エラーメッセージが表示されるディスプレイのこととなっています。
さて、ここでもう一度catについての説明を見てみましょう。
「ファイルの内容を連結して標準出力に出力する」
というコマンドでした。つまり、「ファイルの内容を連結して、画面上に表示する」コマンドということになります。
それでは、catがどのようなコマンドが分かったので実際に動作を見てみましょう。
まず、test1という、中身が
UNIX, UNIX
unix, unix
LINUX, LINUX
Linux, Linux
linux, linux
となっているファイルを用意しました。
cat test1
を実行すると
$ cat test1
UNIX, UNIX
unix, unix
LINUX, LINUX
Linux, Linux
linux, linux
このような実行結果になります。ファイルの中身がそのまま出力されていますね。
次に、-n というオプションをつけて
$ cat -n test1
を実行してみます。すると
$ cat -n test1
1 UNIX, UNIX
2 unix, unix
3 LINUX, LINUX
4 Linux, Linux
5 linux, linux
今度は行番号がつきました。
-n は全ての行に行番号をつけるというオプションのためこのような表示結果となりました。
また、cat を使うとファイルを連結して標準出力することもできます。
新たに test2 というファイルを用意しました。中身は、
linux linux linux
LINUX LINUX LINUX
Linux Linux Linux
となっています。ここで、
$ cat test1 test2
を実行してみると、
UNIX, UNIX
unix, unix
LINUX, LINUX
Linux, Linux
linux, linux
linux linux linux
LINUX LINUX LINUX
Linux Linux Linux
このような結果が出力されました。test1というファイルの中身に続いてtest2というファイルの中身が出力されていることが分かりますね。
最後に、リダイレクトを使ったcatコマンドによるファイルの作成にふれてみたいと思います。
標準出力された文字列はリダイレクトを使うことでファイルに書き込むことができます。リダイレクトを表すために”>”を使用します。
【標準入力元の変更】は "<" を 【標準出力先の変更】は ”>"を使います。
catコマンドとリダイレクトを組み合わせるとファイルの作成ができます。
$ cat > text
AAA
BBB
CCC
DDD
EEE
FFF
cat > text を実行しました。するとデータの入力が始まります。
「Ctrl + D」を押すと入力を終了することができます。
終了するとtextというファイルが出来上がっています。
catで中身を見てみると
$ cat text
AAA
BBB
CCC
DDD
EEE
FFF
となっていました。
入力したデータがそのままファイルの中身になったわけです。
さて、今回はcatについて基本的な紹介をしましたが、いかがだったでしょうか。UNIXのコマンドは覚えると便利なことが多くなっていくのでコツコツと勉強に励んでいきたいと思っています。
皆さんも興味があればぜひ勉強してみてください。
最後まで読んでいただきありがとうございました。
今回、記事の執筆にあたり以下の資料を参考にしました。