Linux zaklada objavila je LFCS (Linux Foundation Certified Sysadmin) certificiranje, novi program koji ima za cilj pomoći pojedincima diljem svijeta da se certificiraju u osnovnim i srednjim zadacima administracije sustava za Linux sustave. To uključuje podršku tekućim sustavima i uslugama, uz rješavanje problema iz prve ruke i analizu, te pametno donošenje odluka kako bi se problemi prenijeli inženjerskim timovima.
Pogledajte sljedeći video koji prikazuje Program certifikacije za Linux Foundation.
Serija će biti naslovljena Priprema za LFCS (Linux Foundation Certified Sysadmin) Dijelovi 1 kroz 10 i pokrivaju sljedeće teme za Ubuntu, CentOS i openSUSE:
1. dio: Kako koristiti naredbu GNU 'sed' za stvaranje, uređivanje i upravljanje datotekama u Linuxu
Važno: Zbog promjena u zahtjevima certifikacije LFCS na snazi Veljače 2, 2016, uključujemo sljedeće potrebne teme u LFCS seriju koja je ovdje objavljena. Za pripremu za ovaj ispit preporučuje se korištenje LFCE serija također.
Ovaj post je dio 1 od a 20-udžbenička serija, koji će pokriti potrebne domene i kompetencije koje su potrebne za LFCS certifikacijski ispit. S obzirom na to, pokrenite svoj terminal i počnimo.
Linux tretira unos i izlaz iz programa kao nizove (ili nizove) znakova. Da bismo počeli razumjeti preusmjeravanje i cijevi, prvo moramo razumjeti tri najvažnije vrste I/O (ulaznih i izlaznih) tokova, koji su zapravo posebne datoteke (prema dogovoru u UNIX -u i Linuxu, tokovi podataka i periferni uređaji ili datoteke uređaja također se tretiraju kao obične datoteke).
Razlika između > (operator preusmjeravanja) i | (operator cjevovoda) je da dok prvi povezuje naredbu s datotekom, drugi povezuje izlaz naredbe s drugom naredbom.
# naredba> datoteka. # naredba1 | naredba2.
Budući da operator preusmjeravanja šutke stvara ili prepisuje datoteke, moramo ga koristiti s iznimnim oprezom i nikada ga ne zamijeniti s cjevovodom. Jedna od prednosti cijevi na Linux i UNIX sustavima je ta što ne postoje posredničke datoteke pipe - stdout prve naredbe se ne zapisuje u datoteku, a zatim se čita drugom naredba.
Za sljedeće vježbe vježbe koristit ćemo pjesmu „Sretno dijete”(Anonimni autor).
Ime sed je kratica za stream editor. Za one koji nisu upoznati s tim pojmom, uređivač toka koristi se za izvođenje osnovnih tekstualnih transformacija na ulaznom toku (datoteci ili unosu iz cjevovoda).
Najosnovnija (i najpopularnija) uporaba sed je zamjena znakova. Počet ćemo promjenom svake pojave malih slova y do VELIKOG SLOVA Y i preusmjeravanje izlaza na ahappychild2.txt. The g flag označava da sed treba izvršiti zamjenu za sve instance termina u svakom retku datoteke. Ako je ova zastavica izostavljena, sed će zamijeniti samo prvu pojavu termina u svakom retku.
# sed datoteka s/termin/zamjena/zastava.
# sed ‘s/y/Y/g’ ahappychild.txt> ahappychild2.txt.
Ako želite tražiti ili zamijeniti poseban znak (npr /, \, &) morate ga izbjeći, u izrazima ili zamjenskim nizovima, s kosom crtom unatrag.
Na primjer, zamijenit ćemo riječ i znakom &. Istodobno ćemo zamijeniti riječ Ja s Vas kada se prvi nalazi na početku retka.
# sed 's/i/\ &/g; s/^I/Vi/g 'ahappychild.txt.
U gornjoj naredbi, a ^ (znak kareta) dobro je poznat regularni izraz koji se koristi za predstavljanje početka retka.
Kao što vidite, možemo kombinirati dvije ili više naredbi zamjene (i koristiti regularne izraze unutar njih) tako što ćemo ih odvojiti točkom -zarezom i skupiti unutar pojedinačnih navodnika.
Druga uporaba sed -a je prikazivanje (ili brisanje) odabranog dijela datoteke. U sljedećem primjeru prikazat ćemo prvih 5 redaka /var/log/messages od 8. lipnja.
# sed -n '/^8. lipnja/p'/var/log/messages | sed -n 1,5p.
Imajte na umu da prema zadanim postavkama sed ispisuje svaki redak. Ovo ponašanje možemo nadjačati s -n opciju, a zatim recite sed da ispiše (označeno sa str) samo dio datoteke (ili cijevi) koji odgovara uzorku (8. lipnja na početku retka u prvom slučaju i retci od 1 do 5 uključujući u drugom slučaju).
Konačno, tijekom pregleda skripti ili konfiguracijskih datoteka može biti korisno pregledati sam kôd i izostaviti komentare. Sljedeći sed jednolinijski briše (d) prazne retke ili one koji počinju s # ( | znak označava logičko ILI između dva regularna izraza).
# sed '/^# \ |^$/d' apache2.conf.
The uniq naredba nam omogućuje da prijavimo ili uklonimo dvostruke retke u datoteci, prema zadanim postavkama pišući na stdout. Moramo napomenuti da uniq ne detektira ponovljene linije osim ako su susjedne. Tako, uniq se obično koristi zajedno s prethodnim vrsta (koji se koristi za sortiranje redova tekstualnih datoteka). Prema zadanim postavkama, vrsta uzima prvo polje (odvojeno razmacima) kao ključno polje. Da bismo naveli drugo ključno polje, moramo koristiti -k opcija.
The du –sch/path/to/directory/* naredba vraća korištenje prostora na disku po poddirektorijima i datotekama unutar navedenog direktorija u čitljivom obliku formatu (također prikazuje ukupan broj po direktoriju) i ne raspoređuje izlaz prema veličini, već prema poddirektoriju i nazivu datoteke. Za sortiranje prema veličini možemo koristiti sljedeću naredbu.
# du -sch /var /* | sortiraj –h.
Broj događaja u dnevniku možete izbrojati prema datumu uniq izvršiti usporedbu pomoću prvih 6 znakova (-w 6) svakog retka (gdje je naveden datum), i svakom izlaznom retku predbrojiti po broju pojavljivanja (-c) sa sljedećom naredbom.
# cat /var/log/mail.log | uniq -c -w 6.
Konačno, možete kombinirati vrsta i uniq (kakvi obično jesu). Razmotrite sljedeću datoteku s popisom donatora, datumom donacije i iznosom. Pretpostavimo da želimo znati koliko ima jedinstvenih donatora. Upotrijebit ćemo sljedeću naredbu za izrezivanje prvog polja (polja su razgraničena dvotočkom), sortiranje po imenu i uklanjanje dupliciranih redaka.
# mačka sortuniq.txt | izrezati -d: -f1 | sortiraj | uniq.
Pročitajte također: 13 Primjeri naredbi "cat"
grep traži tekstualne datoteke ili (izlaz naredbe) za pojavu navedenog regularnog izraza i ispisuje bilo koji redak koji se podudara sa standardnim izlazom.
Prikažite podatke iz /etc/passwd za korisnika gacanepa, zanemarujući velika i mala slova.
# grep -i gacanepa /etc /passwd.
Prikaži sav sadržaj /etc čije ime počinje s rc iza kojeg slijedi bilo koji pojedinačni broj.
# ls -l /etc | grep rc [0-9]
Pročitajte također: 12 Primjeri naredbi "grep"
The tr naredba se može koristiti za prevođenje (promjenu) ili brisanje znakova iz stdina, te zapis rezultata u stdout.
Promijenite sva mala slova u velika u datoteci sortuniq.txt.
# mačka sortuniq.txt | tr [: donji:] [: gornji:]
Stisnite graničnik na izlazu ls –l na samo jedan prostor.
# ls -l | tr -s ''
The izrezati naredba izdvaja dijelove ulaznih redaka (iz stdin -a ili datoteka) i prikazuje rezultat na standardnom izlazu, na temelju broja bajtova (-b opcija), znakovi (-c) ili polja (-f). U ovom posljednjem slučaju (na temelju polja), zadani razdjelnik polja je kartica, ali se drugi razdjelnik može odrediti pomoću -d opcija.
Izvucite korisničke račune i zadane ljuske koje su im dodijeljene iz /etc/passwd ( –D opcija nam omogućuje da odredimo graničnik polja, a –F prekidač označava koja će se polja izvaditi.
# mačka /etc /passwd | izrezati -d: -f1,7.
Ukratko, stvorit ćemo tekstualni tok koji se sastoji od prve i treće datoteke koje nisu prazne izlaza datoteke posljednji naredba. Koristit ćemo grep kao prvi filter za provjeru sesija korisnika gacanepa, zatim stisnite graničnike na samo jedan razmak (tr -s ‘ ‘). Zatim ćemo izdvojiti prvo i treće polje pomoću izrezati, i na kraju sortirajte po drugom polju (u ovom slučaju IP adrese) koje prikazuje jedinstveno.
# posljednji | grep gacanepa | tr -s '' | izrezati -d '' -f1,3 | sortiraj -k2 | uniq.
Gornja naredba pokazuje kako se više naredbi i cijevi mogu kombinirati kako bi se dobili filtrirani podaci prema našim željama. Slobodno ga pokrenite i po dijelovima kako biste lakše vidjeli izlaz koji se prenosi iz jedne naredbe u drugu (usput rečeno, ovo može biti odlično iskustvo učenja!).
Iako se ovaj primjer (zajedno s ostalim primjerima u trenutnom vodiču) na prvi pogled ne čini jako korisnim, oni su lijepo polazište za početak eksperimentiranja sa naredbama koje se koriste za stvaranje, uređivanje i upravljanje datotekama iz naredbe Linux crta. Slobodno ostavite svoja pitanja i komentare ispod - bit će vam jako zahvalni!