Dhibiti Faili kwa Ufanisi kwa kutumia Maagizo ya kichwa, mkia na paka katika Linux


Kuna amri na programu kadhaa zinazotolewa na Linux kwa kutazama yaliyomo kwenye faili. Kufanya kazi na faili ni moja wapo ya kazi ngumu, watumiaji wengi wa kompyuta wawe wapya, mtumiaji wa kawaida, mtumiaji wa hali ya juu, msanidi programu, msimamizi, n.k. Kufanya kazi na faili kwa ufanisi na kwa ufanisi ni sanaa.

Leo, katika makala hii tutajadili amri maarufu zaidi zinazoitwa kichwa, mkia na paka, wengi wetu tayari tunafahamu amri hizo, lakini ni wachache sana kati yetu wanaotekeleza inapohitajika.

1. kichwa Amri

Amri ya kichwa inasoma mistari kumi ya kwanza ya jina lolote la faili. Syntax ya msingi ya amri ya kichwa ni:

head [options] [file(s)]

Kwa mfano, amri ifuatayo itaonyesha mistari kumi ya kwanza ya faili inayoitwa '/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

Ikiwa faili zaidi ya moja itatolewa, kichwa kitaonyesha mistari kumi ya kwanza ya kila faili tofauti. Kwa mfano, amri ifuatayo itaonyesha mistari kumi ya kila faili.

# 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:::

Iwapo inatakwa kuepua idadi zaidi ya mistari kuliko kumi chaguo-msingi, basi chaguo la '-n' linatumiwa pamoja na nambari kamili inayosema idadi ya mistari itakayorejeshwa. Kwa mfano, amri ifuatayo itaonyesha mistari 5 ya kwanza kutoka kwa faili ya '/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

Kwa kweli, hakuna haja ya kutumia chaguo la '-n'. Kistarishio pekee na ubainishe nambari kamili bila nafasi ili kupata matokeo sawa na amri iliyo hapo juu.

# 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

Amri ya kichwa inaweza pia kuonyesha nambari yoyote inayotaka ya baiti kwa kutumia chaguo la '-c' ikifuatiwa na idadi ya baiti zitakazoonyeshwa. Kwa mfano, amri ifuatayo itaonyesha baiti 45 za kwanza za faili fulani.

# head -c45 /var/log/yum.log

Jan 10 00:06:49 Updated: openssl-1.0.1e-16.el

2. Amri ya mkia

Amri ya mkia hukuruhusu kuonyesha mistari kumi ya mwisho ya faili yoyote ya maandishi. Sawa na amri ya kichwa hapo juu, amri ya mkia pia inaweza kutumia chaguo  'n' nambari ya mistari na 'n' idadi ya vibambo.

Syntax ya msingi ya amri ya mkia ni:

# tail [options] [filenames]

Kwa mfano, amri ifuatayo itachapisha mistari kumi ya mwisho ya faili inayoitwa ‘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

Ikiwa zaidi ya faili moja imetolewa, tail itachapisha mistari kumi ya mwisho ya kila faili kama inavyoonyeshwa hapa chini.

# 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

Vile vile, unaweza pia kuchapisha mistari michache ya mwisho kwa kutumia chaguo la '-n' kama inavyoonyeshwa hapa chini.

# 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

Unaweza pia kuchapisha idadi ya herufi kwa kutumia hoja ya '-c' kama inavyoonyeshwa hapa chini.

# tail -c5 access.log

ymantec.com:443 - NONE/- text/html

3. paka Amri

Amri ya 'paka' hutumiwa sana, zana ya ulimwengu wote. Hunakili ingizo la kawaida kwa pato la kawaida. Amri inasaidia kusogeza, ikiwa faili ya maandishi hailingani na skrini ya sasa.

Syntax ya msingi ya amri ya paka ni:

# cat [options] [filenames] [-] [filenames]

Matumizi ya mara kwa mara ya paka ni kusoma yaliyomo kwenye faili. Kinachohitajika ili kufungua faili ya kusoma ni kuandika paka ikifuatiwa na nafasi na jina la faili.

# 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 
…

Amri ya paka pia ilitumika kubatilisha idadi ya faili pamoja.

# 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 

Inaweza pia kutumika kuunda faili pia. Inafanikiwa kwa kutekeleza paka ikifuatiwa na opereta wa uelekezaji upya wa pato na jina la faili litakaloundwa.

# cat > tecmint.txt

Tecmint is the only website fully dedicated to Linux.

Tunaweza kuwa na kitengeneza mwisho maalum kwa amri ya 'paka'. Hapa inatekelezwa.

# 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

Usiwahi kudharau uwezo wa  amri ya 'paka' na inaweza kuwa muhimu kwa kunakili faili.

# 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

Sasa ni nini kinyume cha paka? Ndio ni 'tac'. 'tac' ni amri chini ya Linux. Ni bora kuonyesha mfano wa 'tac' kuliko kuzungumza chochote kuhusu hilo.

Unda faili ya maandishi na majina ya mwezi wote, ili neno moja lionekane kwenye mstari.

# 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

Kwa mifano zaidi ya matumizi ya amri ya paka, rejelea Matumizi ya Amri ya paka 13

Hayo ni yote kwa sasa. Nitakuwa hapa tena na Makala nyingine ya Kuvutia, yenye thamani ya Kujua. Hadi wakati huo endelea kuwa macho na uunganishwe na Tecmint. Usisahau kutupatia maoni yako muhimu katika sehemu yetu ya maoni.