Weboldal keresés

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.