„Linux Foundation“ paskelbė LFCS („Linux Foundation“ sertifikuotas „Sysadmin“) sertifikavimas - nauja programa, kurios tikslas - padėti asmenims visame pasaulyje įgyti sertifikatą atliekant pagrindines ir tarpines „Linux“ sistemų administravimo užduotis. Tai apima veikiančių sistemų ir paslaugų palaikymą, pirmų rankų trikčių šalinimą ir analizę bei protingą sprendimų priėmimą, kad problemos būtų perduotos inžinierių komandoms.
Žiūrėkite šį vaizdo įrašą, kuriame demonstruojama apie „Linux Foundation“ sertifikavimo programą.
Serija bus pavadinta „Pasirengimas LFCS („Linux Foundation“ sertifikuotas „Sysadmin“) Dalys 1 per 10 ir apims šias „Ubuntu“, „CentOS“ ir „openSUSE“ temas:
1 dalis: Kaip naudoti komandą GNU „sed“ kuriant, redaguojant ir manipuliuojant failais „Linux“
Svarbu: Dėl LFCS sertifikavimo reikalavimų pakeitimų įsigaliojo Vasario mėn. 2, 2016, įtraukiame šias būtinas temas į čia paskelbtą LFCS seriją. Norėdami pasiruošti šiam egzaminui, labai raginame naudoti LFCE serija taip pat.
Šis įrašas yra dalis 1 iš a 20 pamokų serija, kuri apims būtinas sritis ir kompetencijas, kurių reikia LFCS sertifikavimo egzaminą. Tai sakant, įjunkite savo terminalą ir pradėkime.
„Linux“ programų įvestį ir išvestį laiko simbolių srautais (arba sekomis). Norėdami suprasti peradresavimą ir vamzdžius, pirmiausia turime suprasti tris svarbiausius įvesties/išvesties (įvesties ir išvesties) srautų tipus. iš tikrųjų yra specialūs failai (pagal susitarimą UNIX ir Linux, duomenų srautai ir išoriniai įrenginiai arba įrenginio failai taip pat laikomi įprastais failais).
Skirtumas tarp > (peradresavimo operatorius) ir | (dujotiekio operatorius) yra tai, kad pirmasis jungia komandą su failu, o pastarasis komandos išvestį jungia su kita komanda.
# komanda> failas. # komanda1 | komanda2.
Kadangi peradresavimo operatorius tyliai sukuria ar perrašo failus, turime jį naudoti labai atsargiai ir niekada nesuklysti su dujotiekiu. Vienas vamzdžių privalumas „Linux“ ir „UNIX“ sistemose yra tai, kad nėra tarpinio failo pypkė - pirmosios komandos eilutė nėra įrašoma į failą, o paskui skaitoma antra komandą.
Šiems praktiniams pratimams naudosime eilėraštį „Laimingas vaikas“(Anoniminis autorius).
Pavadinimas sed yra trumpas srauto redaktorius. Tiems, kurie nežino šio termino, srauto redaktorius naudojamas pagrindinėms teksto transformacijoms atlikti įvesties sraute (faile arba įvestyje iš dujotiekio).
Pats paprasčiausias (ir populiariausias) sed vartojimas yra simbolių pakeitimas. Pradėsime keisdami kiekvieną mažosios raidės atvejį y iki didžiųjų raidžių Y ir nukreipia išvestį į ahappychild2.txt. The g vėliava rodo, kad sed turėtų pakeisti visus termino atvejus kiekvienoje failo eilutėje. Jei ši vėliava praleista, sed pakeis tik pirmą termino atsiradimą kiekvienoje eilutėje.
# sed 's/term/change/flag failas.
# sed ‘s/y/Y/g’ ahappychild.txt> ahappychild2.txt.
Jei norite ieškoti ar pakeisti specialų simbolį (pvz /, \, &) turite pabėgti nuo jo (terminu ar pakeitimo eilutėmis) atgaliniu brūkšniu.
Pavyzdžiui, žodį ir simbolį pakeisime. Tuo pačiu pakeisime žodį Aš su Tu kai pirmas randamas eilutės pradžioje.
# sed 's/ir/\ &/g; s/^Aš/Tu/g 'ahappychild.txt.
Aukščiau pateiktoje komandoje a ^ (caret ženklas) yra gerai žinoma reguliari išraiška, naudojama eilutės pradžiai pavaizduoti.
Kaip matote, galime sujungti dvi ar daugiau keitimo komandų (ir jose naudoti reguliarias išraiškas), atskirdami jas kabliataškiu ir įterpdami rinkinį į atskiras kabutes.
Kitas sed naudojimas yra pasirinktos failo dalies rodymas (arba ištrynimas). Šiame pavyzdyje parodysime pirmąsias 5 eilutes /var/log/messages nuo birželio 8 d.
# sed -n '/^Birželio 8 d./p'/var/log/messages | sed -n 1,5p.
Atminkite, kad pagal numatytuosius nustatymus sed spausdina kiekvieną eilutę. Šį elgesį galime panaikinti naudodami -n parinktį ir liepkite sed spausdinti (pažymėta p) tik tą failo dalį (arba vamzdį), kuri atitinka modelį (birželio 8 d. eilutės pradžioje pirmuoju atveju, o 1–5 eilutės imtinai).
Galiausiai, apžiūrint scenarijus ar konfigūracijos failus, gali būti naudinga patikrinti patį kodą ir palikti komentarus. Ištrinami šie sed vieno eilutės (d) tuščias eilutes arba tas, kurios prasideda # ( | simbolis rodo loginę reikšmę ARBA tarp dviejų reguliariųjų išraiškų).
# sed '/^# \ |^$/d' apache2.conf.
The unikalus komanda leidžia mums pranešti arba pašalinti pasikartojančias failo eilutes, pagal numatytuosius nustatymus rašant stdout. Turime tai pastebėti unikalus neaptinka pasikartojančių linijų, nebent jos yra greta. Taigi, unikalus dažniausiai naudojamas kartu su ankstesniu rūšiuoti (kuri naudojama teksto failų eilutėms rūšiuoti). Pagal numatytuosius nustatymus rūšiuoti pirmą lauką (atskirtą tarpais) laiko pagrindiniu lauku. Norėdami nurodyti kitą rakto lauką, turime naudoti -k variantas.
The du –sch/path/to/directory/* komanda grąžina vietos diske sunaudojimą kiekvienam pakatalogiui ir failams nurodytame kataloge žmonėms skaitomiems formatą (taip pat rodo bendrą katalogo skaičių), o išvestis užsakoma ne pagal dydį, o pagal pakatalogį ir failo pavadinimą. Norėdami rūšiuoti pagal dydį, galime naudoti šią komandą.
# du -sch /var /* | rūšiuoti - h.
Galite suskaičiuoti įvykių skaičių žurnale pagal datą pasakydami unikalus atlikti palyginimą, naudojant pirmuosius 6 kiekvienos eilutės simbolius (-w 6) (kai nurodyta data) ir prieš kiekvieną išvesties eilutę nurodant įvykių skaičių (-c) su tokia komanda.
# katė /var/log/mail.log | uniq -c -w 6.
Galiausiai galite sujungti rūšiuoti ir unikalus (kaip paprastai būna). Apsvarstykite šį failą su aukotojų sąrašu, aukojimo data ir suma. Tarkime, norime žinoti, kiek yra unikalių donorų. Mes naudosime šią komandą, norėdami iškirpti pirmąjį lauką (laukai yra atskirti dvitaškiu), rūšiuoti pagal pavadinimą ir pašalinti pasikartojančias eilutes.
# katė sortuniq.txt | supjaustyti -d: -f1 | rūšiuoti | unikalus
Taip pat skaitykite: 13 komandų „katė“ pavyzdžių
grep ieško teksto failų arba (komandų išvesties), ar atsiranda tam tikra reguliarioji išraiška, ir išleidžia bet kurią eilutę, kurioje yra atitiktis standartinei išraiškai.
Rodyti informaciją iš /etc/passwd vartotojui „gacanepa“, nekreipiant dėmesio į didžiąsias ir mažąsias raides.
# grep -i gacanepa /etc /passwd.
Rodyti visą turinį /etc kurio vardas prasideda rc po kurio eina bet koks skaičius.
# ls -l /etc | grep rc [0-9]
Taip pat skaitykite: 12 „grep“ komandų pavyzdžių
The tr komandą galima naudoti norint išversti (pakeisti) arba ištrinti simbolius iš stdin, o rezultatą įrašyti į stdout.
Rūšyje sortuniq.txt pakeiskite visas mažąsias raides į didžiąsias.
# katė sortuniq.txt | tr [: apatinis:] [: viršutinis:]
Išspauskite ribotuvą išėjime ls -l tik į vieną erdvę.
# ls -l | tr -s "
The supjaustyti komanda išskiria įvesties eilučių dalis (iš stdin ar failų) ir parodo rezultatą standartinėje išvestyje pagal baitų skaičių (-b parinktis), simboliai (-c) arba laukai (-f). Pastaruoju atveju (remiantis laukais) numatytasis laukų skyriklis yra skirtukas, tačiau naudojant skirtuką -d variantas.
Ištraukite naudotojų paskyras ir joms priskirtus numatytuosius apvalkalus /etc/passwd ( –D parinktis leidžia mums nurodyti lauko ribotuvą ir - f jungiklis nurodo, kuris (-i) laukas (-ai) bus išgautas.
# katė /etc /passwd | supjaustytas -d: -f1,7.
Apibendrinant, sukursime teksto srautą, susidedantį iš pirmojo ir trečiojo tuščių failų paskutinis komandą. Mes naudosime grep kaip pirmasis filtras, skirtas patikrinti, ar nėra vartotojo seansų gacanepa, tada suspauskite ribotuvus tik į vieną tarpą (tr -s ‘ ‘). Toliau išskleisime pirmąjį ir trečiąjį laukus supjaustytiir galiausiai surūšiuoti pagal antrąjį lauką (šiuo atveju IP adresai), rodantį unikalų.
# paskutinis | grep gacanepa | tr -s '' | supjaustyti -d '' -f1,3 | rūšiuoti -k2 | unikalus
Aukščiau pateikta komanda rodo, kaip galima sujungti kelias komandas ir vamzdžius, kad būtų gauti filtruoti duomenys pagal mūsų norus. Nesivaržykite taip pat paleisti ją dalimis, kad galėtumėte pamatyti išvestį, kuri yra sujungta iš vienos komandos į kitą (beje, tai gali būti puiki mokymosi patirtis!).
Nors šis pavyzdys (kartu su likusiais dabartinės pamokos pavyzdžiais) iš pirmo žvilgsnio neatrodo labai naudingas, jie yra gražus atspirties taškas pradėti eksperimentuoti su komandomis, kurios naudojamos kuriant, redaguojant ir manipuliuojant failais iš „Linux“ komandos linija. Nesivaržykite palikti savo klausimų ir komentarų žemiau - jie bus labai dėkingi!