Katze ist ein ziemlich einfaches Tool zum Verketten und Schreiben von Dateien auf Ihren Bildschirm, das als Standardausgabe (stdout) bezeichnet wird. Es ist Teil der GNU Core Utils, die unter der GPLv3+-Lizenz veröffentlicht wurden. Sie können davon ausgehen, dass es in fast jeder Linux-Distribution oder anderen Unix-Betriebssystemumgebung wie FreeBSD oder Solaris zu finden ist. Die einfachste Verwendung von cat soll den Inhalt einer Datei anzeigen. Hier ist ein Beispiel mit einer Datei namens hello.world :
$ ls
hello.world
$ cat hello.world
Hello World!
$
Das Linux-Terminal
- Die 7 besten Terminalemulatoren für Linux
- 10 Befehlszeilentools für die Datenanalyse unter Linux
- Jetzt herunterladen:SSH-Spickzettel
- Spickzettel für fortgeschrittene Linux-Befehle
- Linux-Befehlszeilen-Tutorials
Die häufigste Art, wie ich die Katze verwende Der Befehl dient zum Anzeigen von Konfigurationsdateien, wie z. B. denen in /etc Verzeichnis. Die Katze Der Befehl zeigt eine Datei an, ohne sie zu beschädigen. Wenn ich eine kritische Konfigurationsdatei mit einem Editor wie Vi oder Nano öffne, könnte ich versehentlich unerwünschte Änderungen an der Datei vornehmen. Die Katze command ist kein Editor und stellt daher kein Risiko dar, Änderungen am Inhalt einer Datei vorzunehmen.
Wenn ich eine längere Datei anzeigen muss, kann ich eine Pipe mit more verwenden Befehl:
$ cat <somelongfile> | more
Katze kann mehrere Dateien gleichzeitig anzeigen. Wenn wir zwei Dateien sehen möchten – hello.world und goodbye.world – würden wir beide Dateinamen als Argumente in den Befehl aufnehmen:
$ cat hello.world goodbye.world
Hello World!
Good Bye World!
$
Katze kann auch die Zeilen einer Datei während der Ausgabe nummerieren. Dazu gibt es zwei Befehle, wie in der Hilfedokumentation gezeigt:
-b, --number-nonblank number nonempty output lines, overrides -n
-n, --number number all output lines
Wenn ich das -b verwende Befehl mit hello.world Datei wird die Ausgabe wie folgt nummeriert:
$ cat -b hello.world
1 Hello World!
$
Im obigen Beispiel gibt es eine leere Zeile. Warum diese leere Zeile erscheint, können wir mit dem -n feststellen Argument:
$ cat -n hello.world
1 Hello World!
2
$
Jetzt sehen wir, dass es eine zusätzliche leere Zeile gibt. Diese beiden Argumente wirken sich eher auf die endgültige Ausgabe als auf den Dateiinhalt aus, also wenn wir das -n verwenden würden Option mit beiden Dateien zählt die Nummerierung Zeilen wie folgt:
$ cat -n hello.world goodbye.world
1 Hello World!
2
3 Good Bye World!
4
$
Eine weitere nützliche Option ist -s für Leerzeichen . Dieses Argument teilt cat mit um wiederholte Leerzeilenausgaben auf eine Zeile zu reduzieren. Dies ist hilfreich, wenn Sie Dateien mit vielen leeren Zeilen überprüfen, da dadurch effektiv mehr Text auf den Bildschirm passt. Angenommen, ich habe eine Datei mit drei Zeilen, die durch mehrere Leerzeilen voneinander getrennt sind, wie in diesem Beispiel greetings.world :
$ cat greetings.world
Greetings World!
Take me to your Leader!
We Come in Peace!
$
Mit dem -s Option spart Platz auf dem Bildschirm:
$ cat -s greetings.world
Greetings World!
Take me to your Leader!
We Come in Peace!
$
Katze wird oft verwendet, um den Inhalt einer Datei in eine andere Datei zu kopieren. Sie fragen sich vielleicht:„Warum nicht einfach cp verwenden ?" So könnte ich eine neue Datei mit dem Namen both.files erstellen , die den Inhalt von hello enthält und Auf Wiedersehen Dateien:
$ cat hello.world goodbye.world > both.files
$ cat both.files
Hello World!
Good Bye World!
$
zcat
Es gibt noch eine weitere Variante der Katze Befehl bekannt als zcat . Dieser Befehl kann Dateien anzeigen, die mit Gzip komprimiert wurden, ohne dass die Dateien mit gunzip dekomprimiert werden müssen Befehl. Nebenbei spart dies auch Speicherplatz, was der ganze Grund dafür ist, dass Dateien komprimiert werden!
Die zcat Der Befehl ist etwas aufregender, da er eine enorme Zeitersparnis für Systemadministratoren sein kann, die viel Zeit mit der Überprüfung von Systemprotokolldateien verbringen. Wo können wir komprimierte Protokolldateien finden? Sehen Sie sich /var/log an auf den meisten Linux-Systemen. Auf meinem System /var/log enthält mehrere Dateien, wie z. B. syslog.2.gz und syslog.3.gz . Diese Dateien sind das Ergebnis des Protokollverwaltungssystems, das Protokolldateien rotiert und komprimiert, um Speicherplatz zu sparen und zu verhindern, dass Protokolle auf unüberschaubare Dateigrößen anwachsen. Ohne zcat , müsste ich diese Dateien mit dem gunzip entpacken Befehl, bevor Sie sie anzeigen. Zum Glück kann ich zcat verwenden :
$ 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--
Wir können auch beide Dateien an zcat übergeben wenn wir beide ununterbrochen überprüfen wollen. Aufgrund der Funktionsweise der Protokollrotation müssen Sie die Dateinamen in umgekehrter Reihenfolge übergeben, um die chronologische Reihenfolge des Protokollinhalts beizubehalten:
$ 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
Die Katze Der Befehl scheint einfach zu sein, ist aber sehr nützlich. Ich benutze es regelmäßig. Sie müssen es auch nicht wie eine echte Katze füttern oder streicheln. Wie immer schlage ich vor, dass Sie sich die Manpages ansehen (man cat ) für die Katze und zcat Befehle, um mehr darüber zu erfahren, wie es verwendet werden kann. Sie können auch die --Hilfe verwenden Argument für eine schnelle Zusammenfassung der Befehlszeilenargumente.