Učinkovito upravljajte datotekama pomoću naredbi head, tail i cat u Linuxu
Linux nudi nekoliko naredbi i programa za pregled sadržaja datoteke. Rad s datotekama jedan je od zastrašujućih zadataka koji obavlja većina korisnika računala, bilo početnici, obični korisnici, napredni korisnici, programeri, administratori itd. Učinkovit i učinkovit rad s datotekama je umjetnost.
Danas ćemo u ovom članku raspravljati o najpopularnijim naredbama pod nazivom head, tail i cat, većina nas već zna za takve naredbe, ali vrlo malo nas to provodi kada je potrebno.
1. glava Zapovjedništvo
Naredba head čita prvih deset redaka bilo kojeg naziva datoteke. Osnovna sintaksa naredbe head je:
head [options] [file(s)]
Na primjer, sljedeća naredba prikazat će prvih deset redaka 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 dano više od jedne datoteke, glava će prikazati prvih deset redaka svake datoteke zasebno. Na primjer, sljedeća naredba prikazat će deset redaka 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 redaka od zadanih deset, tada se koristi opcija '-n' zajedno s cijelim brojem koji govori o broju redaka koje treba dohvatiti. Na primjer, sljedeća naredba prikazat će prvih 5 redaka 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
Zapravo, nema potrebe koristiti opciju '-n'. Samo crticu i navedite cijeli broj bez razmaka kako 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 korištenjem opcije '-c' nakon koje slijedi broj bajtova za prikaz. Na primjer, sljedeća naredba ć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 Naredba
Naredba tail omogućuje prikaz zadnjih deset redaka bilo koje tekstualne datoteke. Slično gornjoj naredbi za glavu, naredba za rep također podržava opcije ‘n’ broj redaka i ‘n’ broj znakova.
Osnovna sintaksa naredbe tail je:
tail [options] [filenames]
Na primjer, sljedeća naredba ispisat će zadnjih deset redaka 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 navedeno više od jedne datoteke, tail će ispisati zadnjih deset redaka svake datoteke kao što je prikazano u nastavku.
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 ispisati posljednjih nekoliko redaka pomoću opcije '-n' kao što je prikazano u nastavku.
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 pomoću argumenta '-c' kao što je prikazano u nastavku.
tail -c5 access.log
ymantec.com:443 - NONE/- text/html
3. mačka Zapovijed
Naredba ‘cat’ najčešće je korišten, univerzalni alat. Kopira standardni ulaz u standardni izlaz. Naredba podržava pomicanje, ako tekstualna datoteka ne stane na trenutni zaslon.
Osnovna sintaksa naredbe cat je:
cat [options] [filenames] [-] [filenames]
Cat se najčešće koristi za čitanje sadržaja datoteka. Sve što je potrebno za otvaranje datoteke za čitanje je upisati 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 također se koristi za spajanje određenog broja datoteka.
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
Također se može koristiti za stvaranje datoteka. To se postiže izvršavanjem cat nakon čega slijedi operator preusmjeravanja izlaza i naziv datoteke koju treba stvoriti.
cat > tecmint.txt
Tecmint is the only website fully dedicated to Linux.
Možemo imati prilagođeni end maker za naredbu 'cat'. Ovdje se provodi.
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 ne podcjenjujte moć naredbe 'cat' koja 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
Što je sada suprotno od mačke? Da, to je "tac". ‘tac’ je naredba pod Linuxom. Bolje je pokazati primjer 'tac' nego išta govoriti o tome.
Napravite tekstualnu datoteku s nazivima svih mjeseci, tako da se jedna riječ pojavljuje u retku.
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 naredbe cat, pogledajte 13 Upotreba naredbe cat
To je sve za sada. Opet ću biti ovdje s još jednim zanimljivim člankom koji vrijedi znati. Do tada ostanite s nama i povezani s Tecmintom. Ne zaboravite nam dati svoje vrijedne povratne informacije u našem odjeljku za komentare.