Fájlok kezelése hatékonyan a fej, a farok és a macska parancsok használatával Linuxon
A Linux számos parancsot és programot biztosít a fájl tartalmának megtekintéséhez. A fájlokkal való munka az egyik ijesztő feladat, a legtöbb számítógép-felhasználó végzi, legyen az kezdő, normál felhasználó, haladó felhasználó, fejlesztő, rendszergazda stb. A fájlokkal való hatékony és eredményes munka művészet.
Ma ebben a cikkben a legnépszerűbb parancsokról lesz szó: head, tail és cat, a legtöbben már ismerik ezeket a parancsokat, de nagyon kevesen alkalmazzuk, amikor szükség van rá.
1. fej Parancs
A head parancs beolvassa egy adott fájlnév első tíz sorát. A head parancs alapvető szintaxisa a következő:
head [options] [file(s)]
A következő parancs például a „/etc/passwd” fájl első tíz sorát jeleníti meg.
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
Ha egynél több fájl van megadva, a head minden fájl első tíz sorát külön-külön mutatja. Például a következő parancs minden fájl tíz sorát jeleníti meg.
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:::
Ha az alapértelmezett tíznél több sort kíván lekérni, akkor a „-n” opciót egy egész számmal együtt használja, amely jelzi a lekérendő sorok számát. Például a következő parancs megjeleníti az első 5 sort a „/var/log/yum.log” fájlból.
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
Valójában nincs szükség a „-n” opció használatára. Csak a kötőjelet, és adja meg az egész számot szóközök nélkül, hogy ugyanazt az eredményt kapja, mint a fenti parancs.
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
A head parancs tetszőleges számú bájtot is megjeleníthet a „-c” opcióval, amelyet a megjelenítendő bájtok száma követ. Például a következő parancs megjeleníti az adott fájl első 45 bájtját.
head -c45 /var/log/yum.log
Jan 10 00:06:49 Updated: openssl-1.0.1e-16.el
2. farok Parancs
A tail parancs lehetővé teszi bármely szövegfájl utolsó tíz sorának megjelenítését. A fenti head parancshoz hasonlóan a tail parancs is támogatja a „n” sorok számát és az „n” karakterek számát.
A tail parancs alapvető szintaxisa a következő:
tail [options] [filenames]
Például a következő parancs kinyomtatja az „access.log” nevű fájl utolsó tíz sorát.
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
Ha egynél több fájl van megadva, a tail minden fájl utolsó tíz sorát nyomtatja ki az alábbiak szerint.
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
Hasonlóképpen az utolsó néhány sort is kinyomtathatja a '-n' opció használatával, az alábbiak szerint.
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
A karakterek számát a „-c” argumentum használatával is kinyomtathatja, az alábbiak szerint.
tail -c5 access.log
ymantec.com:443 - NONE/- text/html
3. macska Parancs
A „cat” parancs a legszélesebb körben használt univerzális eszköz. A szabványos bemenetet szabványos kimenetre másolja. A parancs támogatja a görgetést, ha a szövegfájl nem illeszkedik az aktuális képernyőhöz.
A cat parancs alapvető szintaxisa a következő:
cat [options] [filenames] [-] [filenames]
A macska leggyakoribb használata a fájlok tartalmának elolvasása. A fájl olvasásra való megnyitásához csak be kell írnia a cat, majd egy szóközt és a fájl nevét.
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
…
A cat parancs a fájlok számának összefűzésére is szolgált.
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
Fájlok létrehozására is használható. Ez úgy érhető el, hogy végrehajtja a cat parancsot, amelyet a kimeneti átirányítási operátor és a létrehozandó fájlnév követ.
cat > tecmint.txt
Tecmint is the only website fully dedicated to Linux.
Rendelhetünk egyedi végkészítőt a „macska” parancshoz. Itt valósul meg.
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
Soha ne becsülje alá a „cat” parancs erejét, és hasznos lehet fájlok másolásakor.
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
Most mi a macska ellentéte? Igen, ez „tac”. A „tac” egy parancs Linux alatt. Jobb példát mutatni a „tac”-ra, mint bármit is beszélni róla.
Hozzon létre egy szöveges fájlt az összes hónap nevével úgy, hogy egy szó jelenjen meg egy sorban.
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
A cat parancs használatára vonatkozó további példákért tekintse meg a 13 cat Command Usage című részt
Ez minden most. Újra itt leszek egy másik érdekes cikkel, amit érdemes tudni. Addig is maradjon velünk, és csatlakozzon a Tecminthez. Ne felejtse el értékes visszajelzését megadni a megjegyzés rovatunkban.