Upravljajte datotekama Efektivno koristeći naredbe head, tail i cat u Linuxu
Postoji nekoliko naredbi i programa koje pruža Linux za pregled sadržaja datoteke. Rad sa datotekama je jedan od zastrašujućih zadataka, koji obavlja većina korisnika računara, bilo da se radi o početnicima, redovnim korisnicima, naprednim korisnicima, programerima, administratorima itd. Efikasan i efikasan rad sa fajlovima je umetnost.
Danas ćemo u ovom članku raspravljati o najpopularnijim naredbama pod nazivom head, tail i cat, a većina nas već zna za takve komande, ali vrlo malo nas to implementira kada je potrebno.
1. glavna komanda
Naredba head čita prvih deset redova bilo kojeg datog imena datoteke. Osnovna sintaksa naredbe head je:
head [options] [file(s)]
Na primjer, sljedeća komanda će prikazati prvih deset redova datoteke pod nazivom „/etc/passwd“.
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
Ako je dato više od jedne datoteke, head će prikazati prvih deset redova svake datoteke posebno. Na primjer, sljedeća komanda će prikazati deset redova svake datoteke.
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:::
Ako se želi dohvatiti veći broj redova od zadanih deset, tada se koristi opcija '-n' zajedno s cijelim brojem koji govori o broju redova koje treba preuzeti. Na primjer, sljedeća komanda će prikazati prvih 5 redova iz datoteke „/var/log/yum.log“.
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
U stvari, nema potrebe za korištenjem opcije „-n“. Samo crticu i navedite cijeli broj bez razmaka da biste dobili isti rezultat kao gornja naredba.
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
Naredba head također može prikazati bilo koji željeni broj bajtova pomoću opcije '-c' nakon čega slijedi broj bajtova koji će se prikazati. Na primjer, sljedeća komanda će prikazati prvih 45 bajtova date datoteke.
head -c45 /var/log/yum.log
Jan 10 00:06:49 Updated: openssl-1.0.1e-16.el
2. rep komanda
Komanda tail vam omogućava da prikažete poslednjih deset redova bilo koje tekstualne datoteke. Slično gornjoj naredbi head, tail komanda također podržava opcije „n“ broj redova i „n“ broj znakova.
Osnovna sintaksa naredbe tail je:
tail [options] [filenames]
Na primjer, sljedeća naredba će ispisati posljednjih deset redova datoteke pod nazivom „access.log“.
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
Ako je dostupno više od jedne datoteke, tail će ispisati posljednjih deset linija svake datoteke kao što je prikazano ispod.
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
Slično, možete također odštampati posljednjih nekoliko redova koristeći opciju '-n' kao što je prikazano ispod.
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
Također možete ispisati broj znakova koristeći argument '-c' kao što je prikazano ispod.
tail -c5 access.log
ymantec.com:443 - NONE/- text/html
3. cat Command
Naredba 'cat' je najčešće korištena, univerzalna alatka. Kopira standardni ulaz u standardni izlaz. Naredba podržava pomicanje, ako tekstualna datoteka ne odgovara trenutnom ekranu.
Osnovna sintaksa cat komande je:
cat [options] [filenames] [-] [filenames]
Najčešća upotreba cat je čitanje sadržaja datoteka. Sve što je potrebno da otvorite datoteku za čitanje je da upišete cat nakon čega slijedi razmak i naziv datoteke.
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
…
Naredba cat se također koristi za spajanje broja datoteka zajedno.
echo 'Hi Tecmint-Team' > 1
echo 'Keep connected' > 2
echo 'Share your thought' > 3
echo 'connect us [email ' > 4
cat 1 2 3 4 > 5
cat 5
Hi Tecmint-Team
Keep connected
Share your thought
connect us [email
Može se koristiti i za kreiranje datoteka. To se postiže izvršavanjem cat nakon čega slijedi operator preusmjeravanja izlaza i ime datoteke koja se kreira.
cat > tecmint.txt
Tecmint is the only website fully dedicated to Linux.
Možemo imati prilagođeni end maker za naredbu 'mačka'. Ovdje je to implementirano.
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
Nikada nemojte podcijeniti moć komande ‘mačka’ i može biti korisna za kopiranje datoteka.
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
Šta je sada suprotno od mačke? Da, to je „tac“. 'tac' je naredba pod Linuxom. Bolje je pokazati primjer 'tac' nego pričati bilo šta o tome.
Napravite tekstualnu datoteku sa nazivima svih mjeseci, tako da se jedna riječ pojavi u redu.
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
Za više primjera korištenja naredbi cat, pogledajte 13 cat Upotreba naredbi
To je sve za sada. Ponovo ću biti ovdje sa još jednim zanimljivim člankom, koji vrijedi znati. Do tada ostanite sa nama i povezani na Tecmint. Ne zaboravite nam dati svoje vrijedne povratne informacije u našem odjeljku za komentare.