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.