Linux共通

【Linux初心者向け】catコマンドの使い方について解説

今回の記事ではLinux基礎コマンド「cat」コマンドについて紹介していきます。

ファイル内容を連結したり、表示するには手軽で簡単なcatコマンドを利用します。

 

業務未経験でlinuxに触れる際、覚えておきたいlinuxコマンドが多数存在いたしますが、ファイルの中身を確認したいときに必ず利用されるのでぜひ覚えていってください。

 

この記事の要点

catの概要・書式・実行例がわかる

catの活用例を通してcatコマンドの理解が深まる

 

この記事を読むことでcatのコマンドを使い方を学べますが、覚えて使えるようになるには、実際に練習する必要がありますので、ぜひ手を動かして使っていってください7=。

それでは紹介していきます。

catコマンドとは?

「cat」コマンドの「cat」は、「conCATenate(つなぐ、連結する)」の意味で、ディレクトリ内のファイルの連結や内容を確認することができます。

 

ここで注意なのは、中身を確認するだけで編集することはできませんので、誤って内容を変更してしまったような出来事もありません。

主な利用例はファイルの内容を表示したり、オプションを利用することにより、ファイル内容の各行に行番号を追加して表示したりなど便利です。

 

テキストエディッタでは誤って編集し上書き保存して後々誤ったことに気づいたりなどよくあります。

そのためなるべく汎用性の高いツールを利用するのではなく、必要最低限の基本を持ち、且つ動作が早いCLIのコマンドを利用したほうが良い場面があるので、覚えていきましょう。

 

catコマンドの書式

catコマンドの書式とオプションは下記となります。

使用用途に応じて組み合わせたり、自作のスクリプトに組み込んだりと用途はそれぞれとなります。

ここではオプションはこれだけあるよということでご認識いただければと思います。

<書式>

cat [オプション]  ファイル名

オプション

-b,--number-nonblank 行番号を付け加える。ただし、空白行にはつけない
-s,--squeeze-blank 連続した空行を1行にする
-v,--show-nonprinting TAB,改行、改ページ以外の非表示文字を表示する
-t 非表示文字を表示、TABを”^I”、用紙送りを
-E,--show-ends 行の最後に”$”を表示する
-A,--show-ends 行の最後に”$”を表示する
-A,--show-all すべての非表示文字を表示する

 

catコマンド実行例

主な利用パターンを5種類ご紹介いたします。

ファイルの中身を表示

基本的な使い方であるファイル内容を表示を行います。

①touchコマンドでfile1を生成。

②echoコマンドで「test」文字列をfile1に出力。

③catコマンドでfile1の内容を表示させております。

mitsu-pc@mitsu:~/デスクトップ/catdirectory$ touch file1
mitsu-pc@mitsu:~/デスクトップ/catdirectory$ echo test >> file1
mitsu-pc@mitsu:~/デスクトップ/catdirectory$ cat file1
test
mitsu-pc@mitsu:~/デスクトップ/catdirectory$

ファイルの中身を行番号付きで表示

catコマンドの「-n」オプションを使用することにより、表示するファイルの内容を行番号を出しながら表示してくれます。

①touchコマンドでfile1

②echoコマンドで「aaamitsu」と「bbbmitsu」をfile1に出力

③catコマンドでfile1の中身を書く行ごとにナンバーで表示させる

mitsu-pc@mitsu:~/デスクトップ/catdirectory$ touch file1
mitsu-pc@mitsu:~/デスクトップ/catdirectory$ echo aaamitsu >> file1
mitsu-pc@mitsu:~/デスクトップ/catdirectory$ echo bbbmitsu >> file1
mitsu-pc@mitsu:~/デスクトップ/catdirectory$ cat -n file1
1 aaamitsu
2 bbbmitsu
mitsu-pc@mitsu:~/デスクトップ/catdirectory$ cat file1
aaamitsu
bbbmitsu
mitsu-pc@mitsu:~/デスクトップ/catdirectory$

ファイルの中身の連結

こちらcatコマンドで指定する引数を増やすことによりファイル内容を連結されることができます。

①touchコマンドでfile1を生成。

②echoコマンドで「a」文字列をfile1に追記。

③touchコマンドでfile2を生成。

④echoコマンドで「b」文字列をfile2に追記。

⑤catコマンドでfile1とfile2のファイルの中身を連結

mitsu-pc@mitsu:~/デスクトップ/catdirectory$ touch file1
mitsu-pc@mitsu:~/デスクトップ/catdirectory$ echo a >> file1
mitsu-pc@mitsu:~/デスクトップ/catdirectory$ touch file2
mitsu-pc@mitsu:~/デスクトップ/catdirectory$ echo b >> file2
mitsu-pc@mitsu:~/デスクトップ/catdirectory$ cat file1 file2
a
b
mitsu-pc@mitsu:~/デスクトップ/catdirectory$

 

「-」つきファイル名のファイルを表示するには?

シェルの機能により「-」つきファイル名を指定するには「--」をコマンドの後に指定してその後ファイル名を指定します。

mitsu@miitsu-computer:~/デスクトップ$ touch -- -mitsu
mitsu@miitsu-computer:~/デスクトップ$ ll
合計 24
-rw-rw-r-- 1 mitsu mitsu 5 1月 9 22:20 -mitsu
drwxr-xr-x 4 mitsu mitsu 4096 1月 9 22:19 ./
drwxr-xr-x 16 mitsu mitsu 4096 1月 6 13:47 ../
-rw-rw-r-- 1 mitsu mitsu 26 1月 8 22:28 file1
drwxrwxr-x 2 mitsu mitsu 4096 12月 8 12:58 metawork/
drwxrwxr-x 2 mitsu mitsu 4096 12月 13 13:56 permission/
mitsu@miitsu-computer:~/デスクトップ$ mv -- -mitsu -mitsu2
mitsu@miitsu-computer:~/デスクトップ$ ll
合計 24
-rw-rw-r-- 1 mitsu mitsu 5 1月 9 22:20 -mitsu2
drwxr-xr-x 4 mitsu mitsu 4096 1月 9 22:21 ./
drwxr-xr-x 16 mitsu mitsu 4096 1月 6 13:47 ../
-rw-rw-r-- 1 mitsu mitsu 26 1月 8 22:28 file1
drwxrwxr-x 2 mitsu mitsu 4096 12月 8 12:58 metawork/
drwxrwxr-x 2 mitsu mitsu 4096 12月 13 13:56 permission/
mitsu@miitsu-computer:~/デスクトップ$

ディレクトリは以下のファイルを全て連結する

ワイルドカードを利用することによりカレントディレクトリおよびディレクトリは以下のファイル全てを結合することができます。

mitsu@miitsu-computer:~/デスクトップ$ ll
合計 16
drwxr-xr-x 4 mitsu mitsu 4096 1月 9 22:45 ./
drwxr-xr-x 16 mitsu mitsu 4096 1月 6 13:47 ../
drwxrwxr-x 2 mitsu mitsu 4096 12月 8 12:58 metawork/
drwxrwxr-x 2 mitsu mitsu 4096 12月 13 13:56 permission/
mitsu@miitsu-computer:~/デスクトップ$ cat */*
ggle
gogle
tes?
test
test
mitsu@miitsu-computer:~/デスクトップ$

まとめ

本記事は以上になります。いかがだったでしょうか?

catコマンドは下記のような用途で主に使用されています。

まとめ

・ファイルの中身を確認

・ファイルの中身をナンバーで表示

・ファイルの中身を連結

 

linuxを利用した環境ではこれらの用途でcatコマンドがよく使用されているので、ぜひ活用して役立てていただければ幸いです。

また他の記事でも解説していきますので、よければ見ていってください!

 

  • この記事を書いた人
  • 最新記事

ミツ

サーバ初心者向け「server-beginner」を運営する「ミツ」と申します。 Linux系やwindows系などのサーバに関する部分をメインで執筆していきますので、興味ある方はぜひご覧いただけますと幸いです。 <経歴> 専門学校卒業後、ネットワーク、インフラ、プログラミングを一通り経験。 当メディアでは主にLinux分野に関する内容を発信していきます。

-Linux共通