Fundacija Linux je objavila LFCS (Sysadmin s certifikatom Linux Foundation) certificiranje, nov program, katerega cilj je pomagati posameznikom po vsem svetu pri pridobivanju certifikatov za naloge osnovnih do vmesnih sistemskih sistemov za sisteme Linux. To vključuje podporo delujočim sistemom in storitvam, skupaj z odpravljanjem napak in analizo iz prve roke ter pametnim odločanjem za prenašanje težav na inženirske ekipe.
Oglejte si naslednji videoposnetek, ki prikazuje program certificiranja Linux Foundation.
Serija bo nosila naslov Priprava na LFCS (Sysadmin s certifikatom Linux Foundation) Deli 1 skozi 10 in zajemajo naslednje teme za Ubuntu, CentOS in openSUSE:
1. del: Kako uporabiti ukaz GNU 'sed' za ustvarjanje, urejanje in upravljanje datotek v Linuxu
Pomembno: Zaradi sprememb v veljavnosti certifikacijskih zahtev LFCS Februar 2, 2016, v serijo LFCS, objavljeno tukaj, vključujemo naslednje potrebne teme. Za pripravo na ta izpit priporočamo uporabo Serija LFCE tudi.
Ta objava je del 1 od a Serija 20 vaj, ki bo zajemal potrebna področja in kompetence, ki so potrebne za LFCS certifikacijski izpit. Kot rečeno, zaženite svoj terminal in začnimo.
Linux obravnava vnos in izhod iz programov kot tokove (ali sekvence) znakov. Za začetek razumevanja preusmerjanja in cevi moramo najprej razumeti tri najpomembnejše vrste V/I (vhodnih in izhodnih) tokov, ki so v resnici posebne datoteke (po dogovoru v sistemih UNIX in Linux se podatkovni tokovi in zunanje naprave ali datoteke naprav obravnavajo tudi kot navadne datoteke).
Razlika med > (operater preusmeritve) in | (operator cevovoda) je, da medtem ko prvi poveže ukaz z datoteko, slednji poveže izhod ukaza z drugim ukazom.
# ukaz> datoteka. # ukaz1 | ukaz2.
Ker operater preusmeritve tiho ustvarja ali prepisuje datoteke, ga moramo uporabljati izjemno previdno in ga nikoli ne zamenjati s cevovodom. Ena prednost cevi v sistemih Linux in UNIX je, da ni vmesnih datotek pipe - stdout prvega ukaza ni zapisan v datoteko in ga nato prebere drugi ukaz.
Za naslednje vaje bomo uporabili pesem »Srečen otrok”(Anonimni avtor).
Ime sed je okrajšava za urejevalnik tokov. Za tiste, ki tega izraza ne poznajo, se urejevalnik tokov uporablja za izvajanje osnovnih pretvorb besedila v vhodnem toku (datoteki ali vnosu iz cevovoda).
Najosnovnejša (in priljubljena) uporaba sed je zamenjava znakov. Začeli bomo s spreminjanjem vseh malih črk y na VELIKO ZADEVO Y in preusmerite izhod na ahappychild2.txt. The g flag označuje, da bi sed moral zamenjati vse primerke izraza v vsaki vrstici datoteke. Če je ta zastavica izpuščena, bo sed nadomestil samo prvi pojav izraza v vsaki vrstici.
# sed datoteka 's/term/replace/flag'.
# sed ‘s/y/Y/g’ ahappychild.txt> ahappychild2.txt.
Če želite poiskati ali zamenjati poseben znak (npr /, \, &) morate se izogniti temu, v izrazu ali nadomestnih nizih, s poševnico nazaj.
Na primer, besedo in ampersand bomo nadomestili. Hkrati bomo besedo zamenjali jaz z Ti ko prvi najdemo na začetku vrstice.
# sed 's/in/\ &/g; s/^I/You/g 'ahappychild.txt.
V zgornjem ukazu a ^ (znak kareta) je dobro znan regularni izraz, ki se uporablja za predstavitev začetka vrstice.
Kot lahko vidite, lahko združimo dva ali več ukazov za zamenjavo (in v njih uporabimo regularne izraze), tako da jih ločimo s podpičjem in niz vključimo v enojne narekovaje.
Druga uporaba sed je prikaz (ali brisanje) izbranega dela datoteke. V naslednjem primeru bomo prikazali prvih 5 vrstic /var/log/messages od 8. junija.
# sed -n '/^8. junija/p'/var/log/messages | sed -n 1,5p.
Upoštevajte, da sed privzeto natisne vsako vrstico. To vedenje lahko preglasimo z -n možnost in nato povejte sedmu, naj natisne (označeno z str) samo del datoteke (ali cevi), ki se ujema z vzorcem (8. junij na začetku vrstice v prvem primeru in vrstice od 1 do vključno vključno v drugem primeru).
Nazadnje je lahko pri pregledu skriptov ali konfiguracijskih datotek koristno pregledati samo kodo in pustiti komentarje. Naslednji sed-liner briše (d) prazne vrstice ali tiste, ki se začnejo z # ( | znak označuje logično ALI med dvema regularnima izrazoma).
# sed '/^# \ |^$/d' apache2.conf.
The uniq ukaz nam omogoča, da prijavimo ali odstranimo podvojene vrstice v datoteki, privzeto pišemo v stdout. To moramo opozoriti uniq ne zazna ponavljajočih se vrstic, razen če so sosednje. Tako uniq se običajno uporablja skupaj s prejšnjim razvrsti (ki se uporablja za razvrščanje vrstic besedilnih datotek). Privzeto, razvrsti vzame prvo polje (ločeno s presledki) kot ključno polje. Če želite določiti drugo ključno polje, moramo uporabiti -k možnost.
The du –sch/path/to/directory/* ukaz vrne porabo prostora na disku po podimenikih in datotekah v podanem imeniku v berljivi obliki format (prikazuje tudi skupno na imenik) in ne ureja izpisa po velikosti, ampak po podimeniku in imenu datoteke. Za razvrščanje po velikosti lahko uporabimo naslednji ukaz.
# du -sch /var /* | razvrsti –h.
Število dogodkov v dnevniku lahko preštejete po datumu uniq za izvedbo primerjave z uporabo prvih 6 znakov (-w 6) vsake vrstice (kjer je naveden datum) in predpono vsake izhodne vrstice s številom pojavitev (-c) z naslednjim ukazom.
# mačka /var/log/mail.log | uniq -c -w 6.
Končno lahko kombinirate razvrsti in uniq (kot običajno). Razmislite o naslednji datoteki s seznamom donatorjev, datumom donacije in zneskom. Recimo, da želimo vedeti, koliko je edinstvenih darovalcev. Naslednji ukaz bomo uporabili za izrezovanje prvega polja (polja so ločena z dvopičjem), razvrščanje po imenu in odstranjevanje podvojenih vrstic.
# mačka sortuniq.txt | cut -d: -f1 | razvrsti | uniq.
Preberite tudi: 13 Primeri ukazov "cat"
grep išče besedilne datoteke ali (ukazni izhod) za pojav določenega regularnega izraza in prikaže katero koli vrstico, ki se ujema s standardnim izhodom.
Prikažite podatke iz /etc/passwd za uporabnika gacanepa, ignoriranje velikih in malih črk.
# grep -i gacanepa /etc /passwd.
Pokaži vso vsebino /etc katerega ime se začne z rc čemur sledi poljubna številka.
# ls -l /etc | grep rc [0-9]
Preberite tudi: 12 primerov ukazov "grep"
The tr ukaz lahko uporabite za prevajanje (spreminjanje) ali brisanje znakov iz stdin in rezultat zapišite v stdout.
V datoteki sortuniq.txt spremenite vse male črke v velike.
# mačka sortuniq.txt | tr [: spodnji:] [: zgornji:]
Stisnite ločilo v izhodu ls - l na samo en prostor.
# ls -l | tr -s "
The rezati ukaz izvleče dele vnosnih vrstic (iz stdin ali datotek) in prikaže rezultat na standardnem izhodu na podlagi števila bajtov (-b možnost), znaki (-c) ali polja (-f). V tem zadnjem primeru (na podlagi polj) je privzeti ločevalnik zavihkov, vendar je mogoče z ločitvijo določiti drug ločilo. -d možnost.
Izvlecite uporabniške račune in privzete lupine, ki so jim dodeljene /etc/passwd ( –D možnost nam omogoča, da določimo ločilo za polje, in –F stikalo označuje, katera polja bodo ekstrahirana.
# mačka /etc /passwd | cut -d: -f1,7.
Če povzamemo, bomo ustvarili besedilni tok, ki ga sestavljata prva in tretja datoteka, ki ni prazna, iz izhoda datoteke zadnji ukaz. Uporabili bomo grep kot prvi filter za preverjanje sej uporabnika gacanepa, nato stisnite ločila na samo en presledek (tr -s ‘ ‘). Nato bomo izvlekli prvo in tretje polje z rezatiin končno razvrstite po drugem polju (v tem primeru naslovi IP), ki prikazuje edinstveno.
# zadnji | grep gacanepa | tr -s '' | cut -d '' -f1,3 | razvrsti -k2 | uniq.
Zgornji ukaz prikazuje, kako je mogoče združiti več ukazov in kanalov, da dobimo filtrirane podatke glede na naše želje. Zaženite ga lahko tudi po delih, da boste lažje videli rezultate, ki se prenašajo od enega ukaza do drugega (mimogrede, to je lahko odlična učna izkušnja!).
Čeprav se ta primer (skupaj z ostalimi primeri v trenutni vadnici) na prvi pogled ne zdi zelo uporaben, so lepo izhodišče za začetek eksperimentiranja z ukazi, ki se uporabljajo za ustvarjanje, urejanje in upravljanje datotek iz ukaza Linux vrstica. Svoja vprašanja in komentarje lahko pustite spodaj - zelo vam bodo hvaležni!