Efektyviai tvarkykite failus naudodami galvos, uodegos ir katės komandas sistemoje „Linux“


Yra keletas „Linux“ pateiktų komandų ir programų failo turiniui peržiūrėti. Darbas su failais yra viena varginančių užduočių, nes dauguma kompiuterio vartotojų yra naujokai, įprasti vartotojai, pažengę vartotojai, kūrėjai, administratoriai ir kt. Efektyvus ir efektyvus darbas su failais yra menas.

Šiandien šiame straipsnyje aptarsime populiariausias komandas, vadinamas galva, uodega ir kate, dauguma iš mūsų jau žino apie tokias komandas, tačiau labai nedaugelis iš mūsų jas įgyvendina, kai to reikia.

1. galvos komanda

„Head“ komanda nuskaito pirmąsias dešimt bet kurio nurodyto failo pavadinimo eilučių. Pagrindinė galvos komandos sintaksė yra:

head [options] [file(s)]

Pavyzdžiui, ši komanda parodys pirmąsias dešimt failo, pavadinto „/ etc/passwd“, eilutes.

# 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

Jei pateikiama daugiau nei vienas failas, pirmosios dešimt kiekvieno failo eilučių galva parodys atskirai. Pavyzdžiui, ši komanda parodys dešimt kiekvieno failo eilučių.

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

Jei norima gauti daugiau eilučių nei numatytasis dešimt, tada naudojama parinktis ‘-n’ kartu su sveikuoju skaičiumi, nurodančiu, kiek eilučių reikia gauti. Pavyzdžiui, ši komanda parodys pirmąsias 5 eilutes iš failo „/var/log/yum.log“ failo.

# 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

Tiesą sakant, nereikia naudoti parinkties „-n“. Tiesiog brūkšneliu nurodykite sveikąjį skaičių be tarpų, kad gautumėte tą patį rezultatą kaip aukščiau nurodyta 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

„Head“ komanda taip pat gali rodyti bet kokį norimą baitų skaičių naudodama parinktį „-c“, po kurios bus rodomas baitų skaičius. Pavyzdžiui, ši komanda parodys pirmuosius 45 nurodyto failo baitus.

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

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

2. uodegos komanda

„Tail“ komanda leidžia rodyti paskutines dešimt bet kokio teksto failo eilučių. Panašiai kaip aukščiau esančioje komandoje „head“, „tail“ komanda taip pat palaiko „n“ eilučių ir „n“ simbolių skaičių parinktis.

Pagrindinė uodegos komandos sintaksė yra:

# tail [options] [filenames]

Pavyzdžiui, ši komanda atspausdins paskutines dešimt failo, vadinamo „access.log“, eilučių.

# 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

Jei pateikiama daugiau nei vienas failas, uodega atspausdins paskutines dešimt kiekvieno failo eilučių, kaip parodyta žemiau.

# 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

Panašiai galite atsispausdinti kelias paskutines eilutes naudodami parinktį ‘-n’, kaip parodyta žemiau.

# 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

Taip pat galite atspausdinti simbolių skaičių naudodami „-c“ argumentą, kaip parodyta žemiau.

# tail -c5 access.log

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

3. katės komanda

„Katės“ komanda yra plačiausiai naudojama, universali priemonė. Jis nukopijuoja standartinę įvestį į standartinę išvestį. Komanda palaiko slinkimą, jei teksto failas neatitinka dabartinio ekrano.

Pagrindinė katės komandos sintaksė yra:

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

Dažniausiai katė naudojama failų turiniui skaityti. Viskas, ko reikia norint atidaryti failą skaitymui, yra įvesti katę, po to tarpą ir failo pavadinimą.

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

„Cat“ komanda taip pat naudojo sujungdama bylų skaičių.

# 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 

Jis taip pat gali būti naudojamas kuriant failus. Tai pasiekiama vykdant katę, po kurios yra išvesties peradresavimo operatorius ir kuriamo failo pavadinimas.

# cat > tecmint.txt

Tecmint is the only website fully dedicated to Linux.

Galime turėti „cat“ komandai pritaikytą galutinį gamintoją. Čia jis įgyvendinamas.

# 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

Niekada nenuvertinkite „katės“ komandos galios ir tai gali būti naudinga kopijuojant failus.

# 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 yra katės priešingybė? Taip, tai „tac“. ‘Tac’ yra „Linux“ komanda. Geriau parodyti „tac“ pavyzdį, nei apie tai ką nors kalbėti.

Sukurkite teksto failą su viso mėnesio pavadinimais taip, kad eilutėje būtų vienas žodis.

# 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

Daugiau kačių komandų naudojimo pavyzdžių rasite 13 kačių komandų naudojime

Kol kas viskas. Aš vėl būsiu čia su kitu įdomiu straipsniu, kurį verta žinoti. Iki to laiko sekite naujienas ir prisijunkite prie „Tecmint“. Nepamirškite pateikti savo vertingų atsiliepimų mūsų komentarų skyriuje.