Dateien effektiv verwalten mit den Befehlen head, tail und cat in Linux

Es gibt mehrere Befehle und Programme von Linux zur Anzeige des Inhalts einer Datei. Das Arbeiten mit Dateien ist eine der anspruchsvollsten Aufgaben, die die meisten Computerbenutzer – seien es Neulinge, regelmäßige Benutzer, fortgeschrittene Benutzer, Entwickler, Administratoren usw. – ausführen. Das effektive und effiziente Arbeiten mit Dateien ist eine Kunst.

Manage Files in Linux

Heute werden wir in diesem Artikel die beliebtesten Bons heißen head, tail und cat diskutieren. Die meisten von uns sind bereits mit solchen Befehlen vertraut, verwenden sie jedoch nur selten, wenn es gebraucht wird.

1. head Befehl

Der head Befehl liest die ersten zehn Zeilen eines beliebigen Dateinamens. Die grundlegende Syntax des head Befehls lautet:

head [options] [file(s)]

Zum Beispiel werden die folgenden Befehle die ersten zehn Zeilen der Datei mit dem Namen ‘/etc/passwd‘ anzeigen.

# head /etc/passwd 

root:x:0:0:root:/root:/bin/bash 
daemon:x:1:1:daemon:/usr/sbin:/bin/sh 
bin:x:2:2:bin:/bin:/bin/sh 
sys:x:3:3:sys:/dev:/bin/sh 
sync:x:4:65534:sync:/bin:/bin/sync 
games:x:5:60:games:/usr/games:/bin/sh 
man:x:6:12:man:/var/cache/man:/bin/sh 
lp:x:7:7:lp:/var/spool/lpd:/bin/sh 
mail:x:8:8:mail:/var/mail:/bin/sh 
news:x:9:9:news:/var/spool/news:/bin/sh

Wenn mehr als eine Datei angegeben wird, zeigt head die ersten zehn Zeilen jeder Datei separat an. Die folgenden Befehle zeigen beispielsweise zehn Zeilen jeder Datei an.

# head /etc/passwd /etc/shadow

==> /etc/passwd <== root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin ==> /etc/shadow <==
root:$6$85e1:15740:0:99999:7:::
bin:*:15513:0:99999:7:::
daemon:*:15513:0:99999:7:::
adm:*:15513:0:99999:7:::
lp:*:15513:0:99999:7:::
sync:*:15513:0:99999:7:::
shutdown:*:15513:0:99999:7:::
halt:*:15513:0:99999:7:::
mail:*:15513:0:99999:7:::
uucp:*:15513:0:99999:7:::

Wenn mehr Zeilen als die Standardzahl von zehn zurückgegeben werden sollen, wird die ‘-n‘ Option zusammen mit einer ganzen Zahl verwendet, die angibt, wie viele Zeilen zurückgegeben werden sollen. Zum Beispiel werden die folgenden Befehle die ersten 5 Zeilen aus der Datei ‘/var/log/yum.log‘ anzeigen.

# head -n5 /var/log/yum.log

Jan 10 00:06:49 Updated: openssl-1.0.1e-16.el6_5.4.i686
Jan 10 00:06:56 Updated: openssl-devel-1.0.1e-16.el6_5.4.i686
Jan 10 00:11:42 Installed: perl-Net-SSLeay-1.35-9.el6.i686
Jan 13 22:13:31 Installed: python-configobj-4.6.0-3.el6.noarch
Jan 13 22:13:36 Installed: terminator-0.95-3.el6.rf.noarch

Eigentlich muss die ‘-n‘ Option nicht verwendet werden. Geben Sie einfach den Bindestrich gefolgt von der Zahl ohne Leerzeichen ein, um das gleiche Ergebnis wie oben zu erhalten.

# head  -5 /var/log/yum.log

Jan 10 00:06:49 Updated: openssl-1.0.1e-16.el6_5.4.i686
Jan 10 00:06:56 Updated: openssl-devel-1.0.1e-16.el6_5.4.i686
Jan 10 00:11:42 Installed: perl-Net-SSLeay-1.35-9.el6.i686
Jan 13 22:13:31 Installed: python-configobj-4.6.0-3.el6.noarch
Jan 13 22:13:36 Installed: terminator-0.95-3.el6.rf.noarch

Der head-Befehl kann auch eine beliebige Anzahl von Bytes mithilfe der Option ‘-c‘ gefolgt von der Anzahl der anzuzeigenden Bytes anzeigen. Zum Beispiel zeigt der folgende Befehl die ersten 45 Bytes der angegebenen Datei an.

# head -c45 /var/log/yum.log

Jan 10 00:06:49 Updated: openssl-1.0.1e-16.el

2. tail-Befehl

Der tail-Befehl ermöglicht es, die letzten zehn Zeilen einer Textdatei anzuzeigen. Ähnlich wie der head-Befehl oben unterstützt auch der tail-Befehl die Optionen ‘n‘ für die Anzahl der Zeilen und ‘n‘ für die Anzahl der Zeichen.

Die grundlegende Syntax des tail-Befehls lautet:

# tail [options] [filenames]

Zum Beispiel gibt der folgende Befehl die letzten zehn Zeilen einer Datei mit dem Namen ‘access.log‘ aus.

# tail access.log 

1390288226.042      0 172.16.18.71 TCP_DENIED/407 1771 GET http://download.newnext.me/spark.bin? - NONE/- text/html
1390288226.198      0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html
1390288226.210   1182 172.16.20.44 TCP_MISS/200 70872 GET http://mahavat.gov.in/Mahavat/index.jsp pg DIRECT/61.16.223.197 text/html
1390288226.284     70 172.16.20.44 TCP_MISS/304 269 GET http://mahavat.gov.in/Mahavat/i/i-19.gif pg DIRECT/61.16.223.197 -
1390288226.362    570 172.16.176.139 TCP_MISS/200 694 GET http://p4-gayr4vyqxh7oa-3ekrqzjikvrczq44-if-v6exp3-v4.metric.gstatic.com/v6exp3/redir.html pg 
1390288226.402      0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html
1390288226.437    145 172.16.18.53 TCP_DENIED/407 1723 OPTIONS http://172.16.25.252/ - NONE/- text/html
1390288226.445      0 172.16.18.53 TCP_DENIED/407 1723 OPTIONS http://172.16.25.252/ - NONE/- text/html
1390288226.605      0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html
1390288226.808      0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html

Wenn mehrere Dateien angegeben werden, gibt tail die letzten zehn Zeilen jeder Datei aus, wie unten gezeigt.

# tail access.log error.log

==> access.log <== 1390288226.042      0 172.16.18.71 TCP_DENIED/407 1771 GET http://download.newnext.me/spark.bin? - NONE/- text/html 1390288226.198      0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html 1390288226.210   1182 172.16.20.44 TCP_MISS/200 70872 GET http://mahavat.gov.in/Mahavat/index.jsp pg DIRECT/61.16.223.197 text/html 1390288226.284     70 172.16.20.44 TCP_MISS/304 269 GET http://mahavat.gov.in/Mahavat/i/i-19.gif pg DIRECT/61.16.223.197 - 1390288226.362    570 172.16.176.139 TCP_MISS/200 694 GET http://p4-gayr4vyqxh7oa-3ekrqzjikvrczq44-if-v6exp3-v4.metric.gstatic.com/v6exp3/redir.html pg  1390288226.402      0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html 1390288226.437    145 172.16.18.53 TCP_DENIED/407 1723 OPTIONS http://172.16.25.252/ - NONE/- text/html 1390288226.445      0 172.16.18.53 TCP_DENIED/407 1723 OPTIONS http://172.16.25.252/ - NONE/- text/html 1390288226.605      0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html 1390288226.808      0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html ==> error_log <==
[Sun Mar 30 03:16:03 2014] [notice] Digest: generating secret for digest authentication ...
[Sun Mar 30 03:16:03 2014] [notice] Digest: done
[Sun Mar 30 03:16:03 2014] [notice] Apache/2.2.15 (Unix) DAV/2 PHP/5.3.3 mod_ssl/2.2.15 OpenSSL/1.0.0-fips configured -- resuming normal operations

Ebenso können Sie auch die letzten Zeilen mit der Option ‘-n‘ wie unten gezeigt ausgeben.

# tail -5 access.log

1390288226.402      0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html
1390288226.437    145 172.16.18.53 TCP_DENIED/407 1723 OPTIONS http://172.16.25.252/ - NONE/- text/html
1390288226.445      0 172.16.18.53 TCP_DENIED/407 1723 OPTIONS http://172.16.25.252/ - NONE/- text/html
1390288226.605      0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html
1390288226.808      0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html

Sie können auch die Anzahl der Zeichen mit dem Argument ‘-c’ wie unten gezeigt ausgeben.

# tail -c5 access.log

ymantec.com:443 - NONE/- text/html

3. cat-Befehl

Der ‘cat‘-Befehl ist das am weitesten verbreitete, universelle Werkzeug. Es kopiert die Standard-Eingabe in die Standard-Ausgabe. Der Befehl unterstützt Scrollen, wenn die Textdatei nicht auf den aktuellen Bildschirm passt.

Die grundlegende Syntax des cat-Befehls lautet:

# cat [options] [filenames] [-] [filenames]

Der häufigste Einsatz von cat besteht darin, den Inhalt von Dateien zu lesen. Alles, was zum Öffnen einer Datei zum Lesen erforderlich ist, ist das Tippen von cat gefolgt von einem Leerzeichen und dem Dateinamen.

# cat /etc/passwd 

root:x:0:0:root:/root:/bin/bash 
daemon:x:1:1:daemon:/usr/sbin:/bin/sh 
bin:x:2:2:bin:/bin:/bin/sh 
sys:x:3:3:sys:/dev:/bin/sh 
sync:x:4:65534:sync:/bin:/bin/sync 
games:x:5:60:games:/usr/games:/bin/sh 
man:x:6:12:man:/var/cache/man:/bin/sh 
lp:x:7:7:lp:/var/spool/lpd:/bin/sh 
…

Der cat-Befehl wird auch verwendet, um eine Reihe von Dateien zusammenzufügen.

# echo 'Hi Tecmint-Team' > 1 
# echo 'Keep connected' > 2 
# echo 'Share your thought' > 3 
# echo 'connect us [email protected]' > 4
# cat 1 2 3 4 > 5
# cat 5 

Hi Tecmint-Team 
Keep connected 
Share your thought 
connect us [email protected]

Es kann auch verwendet werden, um Dateien zu erstellen. Dies wird durch Ausführen von cat gefolgt vom Ausgaberichtungsoperator und dem Dateinamen, der erstellt werden soll, erreicht.

# cat > tecmint.txt

Tecmint is the only website fully dedicated to Linux.

Wir können einen benutzerdefinierten Endekennzeichner für den Befehl ‚cat‘ haben. Hier ist er implementiert.

# cat > test.txt << end 

I am Avishek 
Here i am writing this post 
Hope your are enjoying 
end
# cat test.txt 

I am Avishek 
Here i am writing this post 
Hope your are enjoying

Unterschätzen Sie niemals die Kraft des Befehls ‚cat‘ und können nützlich sein zum Kopieren von Dateien.

# cat avi.txt

I am a Programmer by birth and Admin by profession
# cat avi.txt > avi1.txt
# cat avi1.txt

I am a Programmer by birth and Admin by profession

Jetzt, was ist das Gegenteil von ‚cat‘? Ja, es ist ‚tac‘. ‚tac‘ ist ein Befehl unter Linux. Es ist besser, ein Beispiel für ‚tac‘ zu zeigen, als darüber zu sprechen.

Erstellen Sie eine Textdatei mit den Namen aller Monate, sodass ein Wort pro Zeile erscheint.

# cat month

January
February
March
April
May
June
July
August
September
October
November
December
# tac month

December
November
October
September
August
July
June
May
April
March
February
January

Für weitere Beispiele zur Verwendung des Befehls ‚cat‘ siehe die 13 cat Befehlsverwendung

Das ist alles für jetzt. Ich werde hier wieder mit einem weiteren interessanten Artikel sein, der es wert ist, bekannt zu sein. Bis dahin bleiben Sie dran und verbunden mit Tecmint. Vergessen Sie nicht, uns Ihr wertvolles Feedback in unserem Kommentarbereich zu geben.

Source:
https://www.tecmint.com/view-contents-of-file-in-linux/