LFCS: Linux-da faýllary döretmek, redaktirlemek we dolandyrmak üçin GNU sed buýrugyny nädip ulanmaly - 1-nji bölüm


Linux gaznasy, LFCS (Linux Foundation Certified Sysadmin) şahadatnamasyny yglan etdi, bu maksatnama, bütin dünýädäki adamlara Linux ulgamlary üçin aralyk ulgam dolandyryş meselelerinde esasy sertifikat almaga kömek etmegi maksat edinýän täze programma. Bu, ilkinji el näsazlyklaryny düzetmek we derňemek bilen bir hatarda işleýän ulgamlary we hyzmatlary goldamagy we in engineeringenerçilik toparlaryna meseleleri köpeltmek üçin akylly karar bermegi öz içine alýar.

Linux gaznasynyň kepillendiriş programmasy barada aşakdaky wideo serediň.

Bu seriýa LFCS (Linux Foundation Certified Sysadmin) 1-den 10-a çenli böleklere taýýarlyk diýlip atlandyrylar we Ubuntu, CentOS we openSUSE üçin aşakdaky mowzuklary öz içine alar:

Bu ýazgy, LFCS kepilnama synagy üçin zerur domenleri we başarnyklary öz içine alýan 20 sapakly tapgyryň 1-nji bölümi. Aýdylyşy ýaly, terminalyňyzy ýakyň we başlalyň.

Linux-da tekst akymlaryny gaýtadan işlemek

Linux programmalaryň girişine we çykyşyna simwollaryň akymy (ýa-da yzygiderliligi) hökmünde seredýär. Gaýtadan gönükdirme we turbalara düşünmek üçin ilki bilen ýörite faýllar (UNIX we Linux konwensiýasy, maglumat akymlary we periferiýa enjamlary ýa-da enjam faýllary, I/O (Giriş we çykyş) akymlarynyň iň möhüm üç görnüşine düşünmelidiris. adaty faýllar hökmünde seredilýär).

> (gönükdirme operatory) bilen | (turba geçiriji operatory) arasyndaky tapawut, birinjisi buýrugy faýl bilen baglanyşdyrsa, ikinjisi buýrugyň çykyşyny başga biri bilen baglanyşdyrýar. buýruk.

# command > file
# command1 | command2

Gaýtadan gönükdirme operatory faýllary ýuwaşlyk bilen döredýär ýa-da gaýtadan ýazýar, şonuň üçin ony gaty seresaplylyk bilen ulanmalydyrys we hiç haçan turba geçiriji bilen ýalňyşmarys. Linux we UNIX ulgamlaryndaky turbalaryň bir artykmaçlygy, turba bilen baglanyşykly aralyk faýlyň ýoklugydyr - birinji buýrugyň stdouty bir faýla ýazylmaýar we ikinji buýruk bilen okalýar.

Aşakdaky tejribe maşklary üçin\ Bagtly çaga (näbelli awtor) goşgusyny ulanarys.

Akym redaktory üçin sed ady gysga. Bu adalga bilen tanyş bolmadyklar üçin giriş akymynda (bir faýl ýa-da turbadan giriş) esasy tekst üýtgeşmelerini ýerine ýetirmek üçin akym redaktory ulanylýar.

Sediň iň esasy (we meşhur) ulanylyşy nyşanlaryň çalyşmagydyr. Baş harplaryň her bir hadysasyny y UPPERCASE Y üýtgetmek we çykyşy ahappychild2.txt ugrukdyrmak bilen başlarys. g baýdagy, faýlyň her setirinde terminiň ähli ýagdaýlaryny çalyşmalydygyny görkezýär. Bu baýdak aýrylsa, sed her setirde diňe terminiň ilkinji gezek ýüze çykmagyny çalşar.

# sed ‘s/term/replacement/flag’ file
# sed ‘s/y/Y/g’ ahappychild.txt > ahappychild2.txt

Characterörite nyşan (ýa-da /, \, & ýaly) gözlemek ýa-da çalyşmak isleseňiz, möhletden gaçmaly bolarsyňyz ýa-da yza çekilen setirler bilen çalyşmak.

Mysal üçin, sözüň we ampersandyň ornuny tutarys. Şol bir wagtyň özünde, birinjisi setiriň başynda tapylanda I sözüni Sen bilen çalyşarys.

# sed 's/and/\&/g;s/^I/You/g' ahappychild.txt

Aboveokardaky buýrukda, ^ (caret belgisi), setiriň başyny görkezmek üçin ulanylýan belli yzygiderli aňlatma.

Görşüňiz ýaly, iki ýa-da has köp çalyşmak buýrugyny birleşdirip bileris (we içindäki yzygiderli aňlatmalary ulanyp), nokatly nokat bilen bölüp we toplumy ýekeje sitatanyň içine goşup bileris.

Sediň başga bir ulanylyşy, faýlyň saýlanan bölegini görkezmek (ýa-da pozmak). Aşakdaky mysalda, 8-nji iýundan başlap /var/log/habarlar -yň ilkinji 5 setirini görkezeris.

# sed -n '/^Jun  8/ p' /var/log/messages | sed -n 1,5p

Üns beriň, sed her setiri çap edýär. Bu hereketi -n opsiýasy bilen ýok edip bileris, soňra bolsa faýlyň diňe (ýa-da turba) nusgasyna gabat gelýän bölegini çap etmegi ( p bilen görkezilýär) aýdyp bileris. (8-nji iýun birinji setirde we ikinji ýagdaýda 1-5 aralygyndaky setirler).

Netijede, koduň özüni barlamak we teswirleri goýmak üçin skriptleri ýa-da konfigurasiýa faýllaryny barlanda peýdaly bolup biler. Aşakdaky sed bir liner ( d ) boş setirleri ýa-da # bilen başlaýanlary pozýar ( | belgisi iki yzygiderli arasynda ýa-da bir manyny görkezýär aňlatmalar).

# sed '/^#\|^$/d' apache2.conf

uniq buýrugy, faýlda dublikat setirleri habar bermäge ýa-da aýyrmaga mümkinçilik berýär, adaty ýagdaýda stdout-a ýazýar. uniq ýanaşyk bolmasa gaýtalanýan setirleri tapmaýandygyny bellemelidiris. Şeýlelik bilen, uniq köplenç öňki sort (tekst faýllarynyň setirlerini tertiplemek üçin ulanylýar) bilen bilelikde ulanylýar. Düzgüne görä, sort birinji meýdany (boşluklar bilen bölünýär) esasy meýdan hökmünde alýar. Başga bir açar meýdany kesgitlemek üçin -k opsiýasyny ulanmalydyrys.

du –sch/path/to/directory/* buýrugy, adam okalýan formatda görkezilen bukjanyň içindäki faýllara we faýllara disk giňişligini ulanýar (şeýle hem bir katalogda jemi görkezýär). çykyşyny ululygy boýunça sargyt ediň, ýöne bukja we faýl ady boýunça. Ululygy boýunça tertiplemek üçin aşakdaky buýrugy ulanyp bileris.

# du -sch /var/* | sort –h

Her setiriň ilkinji 6 simwolyny (-w 6) (deňeşdirilen senesi görkezilen) ulanyp, deňeşdirmäni ýerine ýetirmek üçin uniq aýdyp, gündelik wakalaryň sanyny senä görä sanap bilersiňiz. aşakdaky buýruk bilen ýüze çykanlaryň sany ( -c ) boýunça çykyş çyzygy.

# cat /var/log/mail.log | uniq -c -w 6

Netijede, sort we uniq (adatça bolşy ýaly) birleşdirip bilersiňiz. Donorlaryň sanawy, haýyr-sahawat senesi we mukdary bilen aşakdaky faýly gözden geçiriň. Näçe üýtgeşik donoryň bardygyny bilmek isleýäris diýeliň. Birinji meýdany kesmek (meýdanlar sütün bilen bölünýär), ady boýunça tertiplemek we dublikat setirleri aýyrmak üçin aşakdaky buýrugy ulanarys.

# cat sortuniq.txt | cut -d: -f1 | sort | uniq

Şeýle hem okaň : 13 pişik buýruk mysallary

grep kesgitlenen yzygiderli aňlatmanyň ýüze çykmagy üçin tekst faýllaryny ýa-da (buýruk çykyşy) gözleýär we adaty çykyşa gabat gelýän islendik setiri çykarýar.

Işe ähmiýet bermän, ulanyjy gacanepa üçin /etc/passwd maglumatlaryny görkeziň.

# grep -i gacanepa /etc/passwd

/etc mazmunyny görkeziň, ady rc bilen başlaýar we yzyndan islendik san görkezilýär.

# ls -l /etc | grep rc[0-9]

Şeýle hem okaň : 12 “grep” buýruk mysallary

tr buýrugy stdin-den nyşanlary terjime etmek (üýtgetmek) ýa-da pozmak we netijäni stdout-a ýazmak üçin ulanylyp bilner.

Sortuniq.txt faýlyndaky kiçi harplary baş harplara üýtgediň.

# cat sortuniq.txt | tr [:lower:] [:upper:]

ls –l çykyşynda delimiteri diňe bir giňişlige gysyň.

# ls -l | tr -s ' '

kesmek buýrugy giriş setirleriniň böleklerini (stdin ýa-da faýllardan) çykarýar we baýt sanyna ( -b opsiýa), nyşanlara (<) b> -c ), ýa-da meýdanlar ( -f ). Bu soňky ýagdaýda (meýdanlara esaslanýar), deslapky meýdan bölüji bellikdir, ýöne -d opsiýasyny ulanyp başga bir kesgitleýji kesgitläp bolýar.

Ulanyjy hasaplaryny we olara berlen deslapky gabyklary /etc/passwd -den çykaryň ( –d opsiýasy meýdan çäklendirijisini kesgitlemäge mümkinçilik berýär we –f wyklýuçatel haýsy meýdanyň (leriň) çykaryljakdygyny görkezýär.

# cat /etc/passwd | cut -d: -f1,7

Jemläp aýtsak, soňky buýrugynyň çykyşynyň birinji we üçünji boş däl faýllaryndan ybarat tekst akymyny dörederis. grep ulanyjynyň gacanepa sessiýalaryny barlamak üçin ilkinji süzgüç hökmünde ulanarys, soňra delimitatorlary diňe bir giňişlige gysarys ( tr -s '' ' ). Ondan soň, birinji we üçünji meýdanlary kesmek bilen çykararys we ahyrynda özboluşly görkezýän ikinji meýdan (bu ýagdaýda IP adresleri) boýunça tertipläris.

# last | grep gacanepa | tr -s ' ' | cut -d' ' -f1,3 | sort -k2 | uniq

Aboveokardaky buýruk, isleglerimize görä süzülen maglumatlary almak üçin birnäçe buýruklary we turbalary birleşdirip boljakdygyny görkezýär. Bir buýrukdan beýlekisine turbageçirijini görmäge kömek etmek üçin ony bölekler bilen işledip bilersiňiz (bu, gaty gowy tejribe bolup biler!).

Gysgaça mazmun

Bu mysal (häzirki okuw gollanmasyndaky beýleki mysallar bilen birlikde) ilkinji göreniňde gaty peýdaly bolup görünmese-de, Linux-dan faýllary döretmek, redaktirlemek we dolandyrmak üçin ulanylýan buýruklar bilen synag geçirip başlamak üçin ajaýyp başlangyç nokady. buýruk setiri. Soraglaryňyzy we teswirleriňizi aşakda goýup bilersiňiz - olar gaty minnetdar bolarlar!

  1. LFCS hakda
  2. Näme üçin Linux gaznasynyň şahadatnamasyny almaly?
  3. LFCS ekzamenine ýazylmak