猫 は、ファイルを連結して画面に書き込むように設計された非常にシンプルなツールであり、標準出力(stdout)と呼ばれます。これは、GPLv3+ライセンスの下でリリースされたGNUCoreUtilsの一部です。これは、ほぼすべてのLinuxディストリビューションまたはFreeBSDやSolarisなどの他のUnixオペレーティング環境で見つかると期待できます。 猫の最も簡単な使用法 ファイルの内容を表示することです。これは、 hello.worldという名前のファイルの例です。 :
$ ls
hello.world
$ cat hello.world
Hello World!
$
Linuxターミナル
- Linux用の上位7つのターミナルエミュレータ
- Linuxでのデータ分析のための10個のコマンドラインツール
- 今すぐダウンロード:SSHチートシート
- 高度なLinuxコマンドのチートシート
- Linuxコマンドラインチュートリアル
猫を使用する最も一般的な方法 コマンドは、 / etcにあるような構成ファイルを表示するためのものです。 ディレクトリ。 猫 コマンドは、ファイルに損傷を与える危険を冒すことなくファイルを表示します。 ViやNanoなどのエディターを使用して重要な構成ファイルを開くと、誤ってファイルに不要な変更を加える可能性があります。 猫 コマンドはエディタではないため、ファイルの内容を変更するリスクはありません。
より長いファイルを表示する必要がある場合は、もっとのパイプを使用できます コマンド:
$ cat <somelongfile> | more
猫 同時に複数のファイルを表示できます。 2つのファイルを表示したい場合— hello.world およびgoodbye.world -コマンドの引数として両方のファイル名を含めます:
$ cat hello.world goodbye.world
Hello World!
Good Bye World!
$
猫 出力中にファイルの行に番号を付けることもできます。ヘルプドキュメントに示されているように、これを行うには2つのコマンドがあります。
-b, --number-nonblank number nonempty output lines, overrides -n
-n, --number number all output lines
-bを使用する場合 hello.worldを使用したコマンド ファイルの場合、出力には次のように番号が付けられます:
$ cat -b hello.world
1 Hello World!
$
上記の例では、空の行があります。 -n を使用すると、この空の行が表示される理由を特定できます。 引数:
$ cat -n hello.world
1 Hello World!
2
$
これで、余分な空の行があることがわかります。これらの2つの引数は、ファイルの内容ではなく最終出力で機能するため、 -nを使用する場合 両方のファイルのオプションの場合、番号付けは次のように行をカウントします:
$ cat -n hello.world goodbye.world
1 Hello World!
2
3 Good Bye World!
4
$
便利なもう1つのオプションは、 -sです。 スクイーズブランクの場合 。この引数は猫に伝えます 繰り返される空の行の出力を1行に減らします。これは、画面上のより多くのテキストに効果的に収まるため、空の行が多いファイルを確認するときに役立ちます。この例のように、いくつかの空の行で区切られた3行のファイルがあるとします。 greetings.world :
$ cat greetings.world
Greetings World!
Take me to your Leader!
We Come in Peace!
$
-sを使用する オプションは画面スペースを節約します:
$ cat -s greetings.world
Greetings World!
Take me to your Leader!
We Come in Peace!
$
猫 多くの場合、あるファイルの内容を別のファイルにコピーするために使用されます。 「cpを使用しないのはなぜですか」と質問されるかもしれません。 ?" both.filesという新しいファイルを作成する方法は次のとおりです。 、 helloの内容が含まれています とさようなら ファイル:
$ cat hello.world goodbye.world > both.files
$ cat both.files
Hello World!
Good Bye World!
$
zcat
猫には別のバリエーションがあります zcatとして知られるコマンド 。このコマンドは、 gunzip でファイルを解凍しなくても、Gzipで圧縮されたファイルを表示できます。 指図。余談ですが、これによりディスク容量も節約されます。これが、ファイルが圧縮される理由です。
zcat コマンドは、システムログファイルの確認に多くの時間を費やすシステム管理者にとって大幅な時間の節約になる可能性があるため、もう少しエキサイティングです。圧縮されたログファイルはどこにありますか? / var / logをご覧ください ほとんどのLinuxシステムで。私のシステムでは、 / var / log syslog.2.gzなどのいくつかのファイルが含まれています およびsyslog.3.gz 。これらのファイルは、ログファイルを回転および圧縮してディスク領域を節約し、ログが管理不能なファイルサイズに拡大するのを防ぐログ管理システムの結果です。 zcatなし 、 gunzipを使用してこれらのファイルを解凍する必要があります それらを表示する前にコマンド。ありがたいことに、 zcatを使用できます :
$ cd /var/log
$ ls *.gz
syslog.2.gz syslog.3.gz
$
$ zcat syslog.2.gz |more
Jan 30 00:02:26 workstation systemd[1850]: Starting GNOME Terminal Server...
Jan 30 00:02:26 workstation dbus-daemon[1920]: [session uid=2112 pid=1920] Successful
ly activated service 'org.gnome.Terminal'
Jan 30 00:02:26 workstation systemd[1850]: Started GNOME Terminal Server.
Jan 30 00:02:26 workstation org.gnome.Terminal.desktop[2059]: # watch_fast: "/org/gno
me/terminal/legacy/" (establishing: 0, active: 0)
Jan 30 00:02:26 workstation org.gnome.Terminal.desktop[2059]: # unwatch_fast: "/org/g
nome/terminal/legacy/" (active: 0, establishing: 1)
Jan 30 00:02:26 workstation org.gnome.Terminal.desktop[2059]: # watch_established: "/
org/gnome/terminal/legacy/" (establishing: 0)
--More--
両方のファイルをzcatに渡すこともできます 両方を中断せずに確認したい場合。ログローテーションの仕組みにより、ログの内容の時系列順を維持するために、ファイル名を逆の順序で渡す必要があります。
$ ls -l *.gz
-rw-r----- 1 syslog adm 196383 Jan 31 00:00 syslog.2.gz
-rw-r----- 1 syslog adm 1137176 Jan 30 00:00 syslog.3.gz
$ zcat syslog.3.gz syslog.2.gz |more
猫 コマンドは単純に見えますが、非常に便利です。普段使っています。また、本物の猫のように餌をやったり、撫でたりする必要もありません。いつものように、manページ( man cat )を確認することをお勧めします )猫の場合 およびzcat 使用方法の詳細を学ぶためのコマンド。 -helpを使用することもできます コマンドライン引数の簡単な概要の引数。