Er zijn verschillende commando’s en programma’s die door Linux worden aangeboden voor het bekijken van de inhoud van een bestand. Werken met bestanden is een uitdagende taak die de meeste computergebruikers, of ze nu nieuwkomers, reguliere gebruikers, gevorderde gebruikers, ontwikkelaars, beheerders, enzovoort zijn, uitvoeren. Effectief en efficiënt werken met bestanden is een kunst.

Vandaag zullen we in dit artikel de meest populaire commando’s genaamd head, tail en cat bespreken, de meesten van ons zijn al bekend met dergelijke commando’s, maar slechts heel weinig mensen passen ze toe wanneer dat nodig is.
1. head Command
Het head commando leest de eerste tien regels van een gegeven bestandsnaam. De basis syntaxis van het head commando is:
head [options] [file(s)]
Bijvoorbeeld, het volgende commando zal de eerste tien regels van het bestand genaamd ‘/etc/passwd‘ weergeven.
# 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
Als er meer dan één bestand wordt opgegeven, zal head de eerste tien regels van elk bestand afzonderlijk weergeven. Bijvoorbeeld, het volgende commando zal tien regels van elk bestand tonen.
# 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:::
Als er meer regels dan de standaard tien moeten worden opgehaald, wordt de ‘-n‘ optie gebruikt samen met een geheel getal dat het aantal op te halen regels aangeeft. Bijvoorbeeld, het volgende commando zal de eerste 5 regels uit het bestand ‘/var/log/yum.log‘ weergeven.
# 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
In feite is het niet nodig om de ‘-n‘ optie te gebruiken. Geef gewoon het minteken en specificeer het geheel getal zonder spaties om hetzelfde resultaat te krijgen als het bovenstaande commando.
# 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
Het head-commando kan ook een willekeurig aantal bytes weergeven met behulp van de optie ‘-c‘ gevolgd door het aantal weer te geven bytes. Bijvoorbeeld, het volgende commando zal de eerste 45 bytes van het opgegeven bestand weergeven.
# head -c45 /var/log/yum.log Jan 10 00:06:49 Updated: openssl-1.0.1e-16.el
2. tail Command
Het tail-commando stelt u in staat de laatste tien regels van een tekstbestand weer te geven. Net als het head-commando hierboven, ondersteunt het tail-commando ook opties zoals ‘n‘ voor het aantal regels en ‘n‘ voor het aantal tekens.
De basisopmaak van het tail-commando is:
# tail [options] [filenames]
Bijvoorbeeld, het volgende commando zal de laatste tien regels van een bestand genaamd ‘access.log‘ afdrukken.
# 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
Als er meer dan één bestand wordt opgegeven, zal tail de laatste tien regels van elk bestand afdrukken, zoals hieronder getoond.
# 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
Op vergelijkbare wijze kunt u ook de laatste paar regels afdrukken met behulp van de ‘-n‘ optie, zoals hieronder getoond.
# 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
U kunt ook het aantal tekens afdrukken met behulp van het ‘-c’ argument, zoals hieronder getoond.
# tail -c5 access.log ymantec.com:443 - NONE/- text/html
3. cat Command
Het ‘cat‘-commando is het meest gebruikte, universele gereedschap. Het kopieert standaardinvoer naar standaarduitvoer. Het commando ondersteunt scrollen als een tekstbestand niet op het huidige scherm past.
De basisopmaak van het cat-commando is:
# cat [options] [filenames] [-] [filenames]
Het meest gebruikte doel van cat is het lezen van de inhoud van bestanden. Het enige dat nodig is om een bestand te openen voor lezen is het typen van cat gevolgd door een spatie en de bestandsnaam.
# 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 …
Het cat-commando wordt ook gebruikt om een aantal bestanden samen te voegen.
# 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]
Het kan ook worden gebruikt om bestanden aan te maken. Dit wordt bereikt door het uitvoeren van cat gevolgd door de uitvoeromleidingsoperator en de naam van het te maken bestand.
# cat > tecmint.txt Tecmint is the only website fully dedicated to Linux.
We kunnen een aangepaste eindmaker hebben voor het ‘cat’-commando. Hier is het geïmplementeerd.
# 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
Onderschat nooit de kracht van het ‘cat’-commando en het kan handig zijn voor het kopiëren van bestanden.
# 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
Wat is nu het tegenovergestelde van cat? Ja, dat is ’tac’. ’tac’ is een commando onder Linux. Het is beter om een voorbeeld van ’tac’ te tonen dan er iets over te zeggen.
Maak een tekstbestand met de namen van alle maanden, zodat één woord op elke regel verschijnt.
# 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
Voor meer voorbeelden van het gebruik van het cat-commando, raadpleeg de 13 cat Command Usage
Dat is alles voor nu. Ik kom terug met een ander interessant artikel, de moeite waard om te weten. Blijf ondertussen afgestemd en verbonden met Tecmint. Vergeet niet om ons waardevolle feedback te geven in onze opmerkingensectie.
Source:
https://www.tecmint.com/view-contents-of-file-in-linux/