Hallake faile tõhusalt, kasutades pea, saba ja kassi käske Linuxis
Faili sisu vaatamiseks on Linuxil mitu käsku ja programmi. Failidega töötamine on üks hirmutav ülesanne, enamik arvutikasutajaid, olgu selleks algaja, tavakasutaja, kogenud kasutaja, arendaja, administraator jne. Efektiivne ja tõhus töö failidega on kunst.
Täna käsitleme selles artiklis kõige populaarsemaid käske, mida nimetatakse pea, saba ja kass, enamik meist on sellistest käskudest juba teadlikud, kuid väga vähesed meist rakendavad seda vajaduse korral.
1. pea käsk
Peakäsk loeb mis tahes antud failinime esimesed kümme rida. Pea käsu põhisüntaks on:
head [options] [file(s)]
Näiteks kuvab järgmine käsk faili esimesed kümme rida nimega ‘/ 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
Kui on antud rohkem kui üks fail, kuvatakse head iga faili kümme esimest rida eraldi. Näiteks näitab järgmine käsk iga faili kümmet rida.
# 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:::
Kui soovitakse tuua rohkem ridu kui kümme vaikerida, kasutatakse valikut ‘-n’ koos täisarvuga, mis ütleb allalaaditavate ridade arvu. Näiteks kuvatakse järgmise käsu abil faili ‘/var/log/yum.log’ esimesed 5 rida.
# 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
Tegelikult pole vaja kasutada valikut ‘-n’. Lihtsalt sidekriips ja määrake tühikuteta täisarv, et saada ülaltoodud käsuga sama tulemus.
# 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
Pea-käsk võib kuvada mis tahes soovitud arvu baite, kasutades valikut ‘-c’, millele järgneb kuvatavate baitide arv. Näiteks kuvab järgmine käsk antud faili esimesed 45 baiti.
# head -c45 /var/log/yum.log Jan 10 00:06:49 Updated: openssl-1.0.1e-16.el
2. saba käsk
Saba käsk võimaldab kuvada mis tahes tekstifaili viimast kümmet rida. Sarnaselt ülaltoodud peakäsule toetab ka saba käsk suvandeid ‘n’ ridade arv ja ‘n’ märkide arv.
Saba käsu põhisüntaks on:
# tail [options] [filenames]
Näiteks prindib järgmine käsk faili 'access.log' nimega kümme viimast rida.
# 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
Kui pakutakse rohkem kui ühte faili, prindib tail iga faili kümme viimast rida, nagu allpool näidatud.
# 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
Samamoodi saate ka viimaseid ridu printida, kasutades allpool näidatud valikut ‘-n’.
# 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
Märkide arvu saate printida ka argumendi ‘-c abil, nagu allpool näidatud.
# tail -c5 access.log ymantec.com:443 - NONE/- text/html
3. kassi käsk
Käsk ‘kass’ on kõige laialdasemalt kasutatav universaalne tööriist. See kopeerib standardse sisendi standardväljundisse. Käsk toetab kerimist, kui tekstifail ei vasta praegusele ekraanile.
Kassi käsu põhiline süntaks on:
# cat [options] [filenames] [-] [filenames]
Kassi kõige sagedamini kasutatakse failide sisu lugemist. Faili lugemiseks on vaja ainult sisestada kass, millele järgneb tühik ja faili nimi.
# 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 …
Kassi käsk liitis ka failide arvu kokku.
# 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
Seda saab kasutada ka failide loomiseks. Selle saavutamiseks käivitatakse kass, millele järgneb väljundi ümbersuunamise operaator ja loodav failinimi.
# cat > tecmint.txt Tecmint is the only website fully dedicated to Linux.
Meil võib olla kassi käskude jaoks kohandatud lõpptootja. Siin seda rakendatakse.
# 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
Ärge kunagi alahinnake käsu „kass” jõudu ja see võib olla kasulik failide kopeerimiseks.
# 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
Mis on kassi vastand? Jah, see on "tac". ‘Tac’ on Linuxi käsk. Parem on näidata „tac” näidet, kui sellest midagi rääkida.
Looge kogu kuu nimedega tekstifail, nii et reale ilmuks üks sõna.
# 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
Rohkem näiteid kassi käskude kasutamise kohta leiate artiklist 13 kassi käsu kasutamist
Praeguseks kõik. Olen siin taas ühe huvitava artikliga, mis on teadmist väärt. Siiani olge Tecmintiga kursis ja ühenduses. Ärge unustage meile oma kommentaaride jaotises oma väärtuslikku tagasisidet anda.