Efektīvi pārvaldiet failus, izmantojot galvas, astes un kaķa komandas Linux
Faila satura apskatei ir vairākas Linux nodrošinātās komandas un programmas. Darbs ar failiem ir viens no biedējošajiem uzdevumiem. Lielākā daļa datoru lietotāju ir iesācējs, parasts lietotājs, pieredzējis lietotājs, izstrādātājs, administrators utt. Darbs ar failiem ir efektīva māksla.
Šodien šajā rakstā mēs apspriedīsim vispopulārākās komandas, ko sauc par galvu, asti un kaķi. Lielākā daļa no mums jau zina par šādām komandām, taču ļoti maz no mums to īsteno, kad nepieciešams.
1. galva Komanda
Galva komanda nolasa jebkura norādītā faila nosaukuma pirmās desmit rindas. Galvas komandas sintakse ir šāda:
head [options] [file(s)]
Piemēram, šī komanda parādīs faila pirmās desmit rindas ar nosaukumu “/ 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
Ja tiek doti vairāki faili, galva katra faila pirmās desmit rindas parādīs atsevišķi. Piemēram, šī komanda parādīs katra faila desmit rindas.
# 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:::
Ja ir vēlams iegūt vairāk rindu nekā noklusējuma desmit, tad opcija ‘-n’ tiek izmantota kopā ar veselu skaitli, kas norāda izgūstamo līniju skaitu. Piemēram, šī komanda parādīs pirmās 5 rindas no faila “/var/log/yum.log” faila.
# 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
Faktiski nav nepieciešams izmantot opciju ‘-n’. Vienkārši defise un norādiet veselu skaitli bez atstarpēm, lai iegūtu tādu pašu rezultātu kā iepriekšminētā komanda.
# 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
Galva komanda var arī parādīt jebkuru vēlamo baitu skaitu, izmantojot opciju ‘-c’, kam seko parādāmo baitu skaits. Piemēram, šī komanda parādīs pirmos 45 baitus no norādītā faila.
# head -c45 /var/log/yum.log Jan 10 00:06:49 Updated: openssl-1.0.1e-16.el
2. astes komanda
Komanda aste ļauj parādīt jebkura teksta faila pēdējās desmit rindas. Līdzīgi kā virs galvas komandai, arī astes komanda atbalsta opcijas ‘n’ līniju skaits un ‘n’ rakstzīmju skaits.
Komandas pamata sintakse ir:
# tail [options] [filenames]
Piemēram, šī komanda izdrukās pēdējās desmit rindas failā ar nosaukumu “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
Ja tiek nodrošināti vairāki faili, aste izdrukās katra faila pēdējās desmit rindas, kā parādīts zemāk.
# 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
Līdzīgi jūs varat arī izdrukāt pēdējās rindas, izmantojot opciju ‘-n’, kā parādīts zemāk.
# 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
Varat arī izdrukāt rakstzīmju skaitu, izmantojot ‘-c’ argumentu, kā parādīts zemāk.
# tail -c5 access.log ymantec.com:443 - NONE/- text/html
3. kaķu komanda
Visizplatītākais universālais rīks ir komanda ‘cat’. Tas kopē standarta ievadi standarta izvadē. Komanda atbalsta ritināšanu, ja teksta fails neatbilst pašreizējam ekrānam.
Kaķu komandas sintakse ir šāda:
# cat [options] [filenames] [-] [filenames]
Visbiežāk kaķis tiek izmantots failu satura lasīšanai. Lai atvērtu failu lasīšanai, ir nepieciešams ierakstīt cat, kam seko atstarpe un faila nosaukums.
# 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 …
Kaķu komanda arī izmantoja, lai kopā sasietu failu skaitu.
# 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
To var izmantot arī, lai izveidotu failus. Tas tiek panākts, izpildot kaķi, kam seko izejas pāradresācijas operators un izveidojamais faila nosaukums.
# cat > tecmint.txt Tecmint is the only website fully dedicated to Linux.
Mums var būt pielāgots gala veidotājs komandai “kaķis”. Šeit tas tiek īstenots.
# 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
Nekad nenovērtējiet par zemu komandas ‘cat’ spēku un tā var būt noderīga failu kopēšanai.
# 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
Kas tagad ir pretstats kaķim? Jā, tas ir ‘tac’. ‘Tac’ ir komanda operētājsistēmā Linux. Labāk ir parādīt ‘tac’ piemēru, nekā par to kaut ko runāt.
Izveidojiet teksta failu ar visa mēneša nosaukumiem tā, lai uz līnijas tiktu parādīts viens vārds.
# 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
Lai iegūtu vairāk kaķu komandu izmantošanas piemēru, skatiet 13 kaķu komandu lietošanu
Tas pagaidām ir viss. Es atkal būšu šeit ar vēl vienu interesantu rakstu, kura vērts zināt. Līdz tam sekojiet līdzi un sazinieties ar Tecmint. Neaizmirstiet sniegt mums vērtīgas atsauksmes mūsu komentāru sadaļā.