LFCS #1: Kako koristiti naredbu 'sed' za manipulaciju datotekama u Linuxu
Linux fondacija najavila je LFCS (Linux Foundation Certified Sysadmin) certifikaciju, novi program koji ima za cilj da pomogne pojedincima širom svijeta da se certificiraju za osnovne do srednje zadatke administracije sistema za Linux sisteme.
Ovo uključuje podršku pokrenutih sistema i usluga, zajedno sa rješavanjem problema i analizom iz prve ruke, i pametno donošenje odluka za eskalaciju problema na inženjerske timove.
Od posljednje revizije od 11. avgusta 2023., mi smo pomno vodili računa o domenima i nadležnostima, u skladu sa datumom stupanja na snagu 11. maja 2023., kako je službeno objavljeno Linux fondacija.
Serija će se zvati Priprema za LFCS (Linux Foundation Certified Sysadmin) dijelove 1 do 33 i pokrivati sljedeće teme:
- Part 1
Kako koristiti naredbu 'Sed' za manipulaciju datotekama u Linuxu
- Part 2
-
Kako instalirati i koristiti Vi/Vim u Linuxu
- Part 3
Kako komprimirati datoteke i direktorije i pronaći datoteke u Linuxu
- Part 4
Particioniranje uređaja za skladištenje, formatiranje sistema datoteka i konfigurisanje zamjenske particije
- Part 5
Montiraj/Demontiraj lokalne i mrežne (Samba & NFS) datotečne sisteme u Linuxu
- Part 6
Sastavljanje particija kao RAID uređaja – Kreiranje i upravljanje rezervnim kopijama sistema
- Part 7
Upravljanje procesom pokretanja sistema i uslugama (SysVinit, Systemd i Upstart
- Part 8
Kako upravljati korisnicima i grupama, dozvolama za datoteke i Sudo pristupom
- Part 9
Upravljanje Linux paketima sa Yum, RPM, Apt, Dpkg, Aptitude i Zypper
- Part 10
Učenje osnovnih shell skriptova i rješavanje problema sa sistemom datoteka
- Part 11
Kako upravljati i kreirati LVM koristeći naredbe vgcreate, lvcreate i lvextend
- Part 12
-
Kako istražiti Linux s instaliranom dokumentacijom pomoći i alatima
- Part 13
Kako konfigurirati i riješiti probleme Grand Unified Bootloader (GRUB)
- Part 14
Nadgledajte korištenje resursa Linux procesa i postavite ograničenja procesa po korisniku
- Part 15
Kako postaviti ili izmijeniti parametre vremena izvođenja kernela u Linux sistemima
- Part 16
Implementacija obavezne kontrole pristupa sa SELinuxom ili AppArmorom u Linuxu
- Part 17
Kako postaviti liste kontrole pristupa (ACL) i kvote diska za korisnike i grupe
- Part 18
Instaliranje mrežnih usluga i konfiguriranje automatskog pokretanja pri pokretanju
- Part 19
Ultimativni vodič za postavljanje FTP servera za omogućavanje anonimnih prijava
- Part 20
Postavite osnovni DNS server za rekurzivno keširanje i konfigurirajte zone za domenu
- Part 21
Kako instalirati, osigurati i podesiti performanse MariaDB servera baze podataka
- Part 22
-
Kako instalirati i konfigurirati NFS server za dijeljenje sistema datoteka
- Part 23
Kako podesiti Apache sa virtuelnim hostingom zasnovanim na imenu sa SSL sertifikatom
- Part 24
Kako postaviti Iptables Firewall da omogućite daljinski pristup uslugama u Linuxu
- Part 25
Kako pretvoriti Linux u ruter da upravlja prometom statički i dinamički
- Part 26
Kako postaviti šifrirane sisteme datoteka i zamijeniti ih pomoću Cryptsetup alata
- Part 27
Kako pratiti korištenje sistema, prekide rada i rješavanje problema na Linux serverima
- Part 28
Kako postaviti mrežno spremište za instaliranje ili ažuriranje paketa
- Part 29
Kako izvršiti reviziju mrežnih performansi, sigurnosti i rješavanja problema
- Part 30
Kako instalirati i upravljati virtuelnim mašinama i kontejnerima
- Part 31
Naučite osnove Gita za efikasno upravljanje projektima
- Part 32
Vodič za početnike za konfiguriranje IPv4 i IPv6 adresa u Linuxu
- Part 33
Vodič za početnike za stvaranje mrežnog povezivanja i premošćavanja u Ubuntuu
Ovaj post je dio 1 serije 33 vodiča, koja će pokriti neophodne domene i kompetencije koje su potrebne za LFCS ispit za sertifikaciju. S obzirom na to, pokrenite svoj terminal i krenimo.
Obrada tekstualnih tokova u Linuxu
Linux tretira ulaz i izlaz iz programa kao tokove (ili nizove) znakova. Da bismo počeli razumijevati preusmjeravanje i cijevi, prvo moramo razumjeti tri najvažnija tipa I/O (ulaznih i izlaznih) tokova, koji su u stvari posebne datoteke (po konvenciji u UNIX-u i Linuxu, tokovi podataka i periferije, ili datoteke uređaja, se takođe tretiraju kao obični fajlovi).
Razlika između >
(operator preusmjeravanja) i |
(pipeline operator) je u tome što prvi povezuje naredbu s datotekom, drugi povezuje izlaz naredbe s drugom komanda.
command > file
command1 | command2
S obzirom da operator preusmjeravanja tiho kreira ili prepisuje datoteke, moramo ga koristiti s krajnjim oprezom i nikada ga ne zamijeniti s cevovodom.
Jedna od prednosti cijevi na Linux i UNIX sistemima je da nema međufajla koji je uključen u cijevi – stdout prve naredbe se ne upisuje u datoteku i zatim čita drugom naredbom.
Za sljedeće vježbe koristit ćemo pjesmu “Srećno dijete” (anonimni autor).
Korištenje naredbe sed
Ime sed je skraćenica za stream editor. Za one koji nisu upoznati s pojmom, uređivač toka se koristi za obavljanje osnovnih tekstualnih transformacija na ulaznom toku (datoteci ili unosu iz cjevovoda).
Promijenite mala slova u velika u datoteci
Najosnovnija (i najpopularnija) upotreba sed je zamjena znakova. Počećemo tako što ćemo svako pojavljivanje malih slova y
promijeniti u VELIKA Y
i preusmjeriti izlaz na ahappychild2.txt.
Oznaka g
označava da bi sed trebao izvršiti zamjenu za sve instance termina u svakom redu datoteke. Ako se ova zastavica izostavi, sed će zamijeniti samo prvo pojavljivanje pojma u svakom redu.
Sed osnovna sintaksa:
sed ‘s/term/replacement/flag’ file
Naš primjer:
sed ‘s/y/Y/g’ ahappychild.txt > ahappychild2.txt
Pretražite i zamijenite Word u datoteci
Ako želite tražiti ili zamijeniti poseban znak (kao što je /
, \
, &
) morate ga izbjeći u terminu ili zamjenski nizovi, sa kosom crtom unazad.
Na primjer, zamijenit ćemo riječ i za ampersand. U isto vrijeme, zamijenit ćemo riječ I
sa Vi
kada se prva nađe na početku reda.
sed 's/and/\&/g;s/^I/You/g' ahappychild.txt
U gornjoj naredbi, ^
(znak za umiranje) je dobro poznati regularni izraz koji se koristi za predstavljanje početka reda.
Kao što možete vidjeti, možemo kombinirati dvije ili više naredbi zamjene (i koristiti regularne izraze unutar njih) tako što ćemo ih odvojiti tačkom i zarezom i zatvoriti skup unutar jednostrukih navodnika.
Odštampajte odabrane linije iz datoteke
Druga upotreba sed je prikazivanje (ili brisanje) odabranog dijela datoteke. U sljedećem primjeru prikazat ćemo prvih 5 redova /var/log/messages od 8. juna.
sed -n '/^Jun 8/ p' /var/log/messages | sed -n 1,5p
Imajte na umu da sed po defaultu ispisuje svaki red. Možemo nadjačati ovo ponašanje opcijom -n, a zatim reći sed-u da ispiše (označeno sa p) samo dio datoteke (ili cijevi) koji odgovara uzorku (8. jun na početku reda u prvom slučaju i redovi od 1. do 5. uključujući u drugom slučaju).
Konačno, prilikom pregleda skripti ili konfiguracijskih datoteka može biti korisno pregledati sam kod i izostaviti komentare. Sljedeći sed u jednom redu briše (d
) prazne redove ili one koji počinju s #
(znak |
označava logički ILI< između dva regularna izraza).
sed '/^#\|^$/d' apache2.conf
uniq Command
Komanda uniq nam omogućava da prijavimo ili uklonimo duple redove u datoteci, zapisivanjem u stdout po defaultu. Moramo napomenuti da uniq ne otkriva ponovljene linije osim ako nisu susjedne.
Dakle, uniq se obično koristi zajedno sa prethodnim sortiranjem (koji se koristi za sortiranje redova tekstualnih datoteka). Podrazumevano, sort uzima prvo polje (odvojeno razmacima) kao ključno polje. Da navedemo drugačije ključno polje, moramo koristiti opciju -k
.
Primjeri Uniq komandi
Naredba du -sch /path/to/directory/* vraća korištenje prostora na disku po poddirektorijumima i datotekama unutar specificiranog direktorija u formatu koji je čitljiv (također prikazuje ukupno po direktoriju), a ne poredajte izlaz po veličini, ali prema poddirektorijumu i imenu datoteke.
Možemo koristiti sljedeću naredbu za sortiranje po veličini.
du -sch /var/* | sort –h
Možete prebrojati broj događaja u dnevniku po datumu tako što ćete reći uniq da izvrši poređenje koristeći prvih 6 znakova (-w 6)
svakog reda (gdje je datum je naveden) i prefiksiranje svake izlazne linije brojem pojavljivanja (-c
) sa sljedećom naredbom.
cat /var/log/mail.log | uniq -c -w 6
Konačno, možete kombinovati sort i uniq (kao što obično jesu). Razmotrite sljedeću datoteku sa listom donatora, datumom donacije i iznosom. Pretpostavimo da želimo da znamo koliko jedinstvenih donatora ima.
Koristit ćemo sljedeću cat komandu da isečemo prvo polje (polja su razgraničena dvotočkom), sortiramo po imenu i uklonimo duple linije.
cat sortuniq.txt | cut -d: -f1 | sort | uniq
grep naredba
Naredba grep pretražuje tekstualne datoteke ili (izlaz naredbe) za pojavu navedenog regularnog izraza i ispisuje bilo koju liniju koja sadrži podudaranje sa standardnim izlazom.
Primjeri naredbi Grep
Prikažite informacije 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 sa rc nakon čega slijedi bilo koji pojedinačni broj.
ls -l /etc | grep rc[0-9]
tr Upotreba naredbi
Naredba tr se može koristiti za prevođenje (promjenu) ili brisanje znakova iz stdin-a i zapisivanje rezultata u stdout.
Promijenite sva mala slova u velika u datoteci sortuniq.txt.
cat sortuniq.txt | tr [:lower:] [:upper:]
Stisnite graničnik u izlazu ls –l na samo jedan razmak.
ls -l | tr -s ' '
Upotreba komande Cut
Naredba cut izdvaja dijelove ulaznih linija (iz stdin-a ili datoteka) i prikazuje rezultat na standardnom izlazu, na osnovu broja bajtova (-b
opcija), znakova (-c
), ili polja (-f
).
U ovom posljednjem slučaju (zasnovano na poljima), zadani separator polja je tab, ali se može navesti drugačiji graničnik pomoću opcije -d
.
Primjeri naredbi Cut
Izdvojite korisničke naloge i podrazumevane ljuske koje su im dodeljene iz /etc/passwd (opcija –d
nam omogućava da navedemo graničnik polja i –f
prekidač označava koja polja će biti izdvojena.
cat /etc/passwd | cut -d: -f1,7
Sumirajući, kreiraćemo tekstualni tok koji se sastoji od prve i treće neprazne datoteke izlaza naredbe zadnja. Koristit ćemo grep kao prvi filter za provjeru sesija korisnika gacanepa, a zatim stisnuti graničnike na samo jedan razmak (tr -s ' '
).
Zatim ćemo izdvojiti prvo i treće polje sa cut, i konačno sortirati prema drugom polju (IP adrese u ovom slučaju) koje prikazuje jedinstveno.
last | grep gacanepa | tr -s ' ' | cut -d' ' -f1,3 | sort -k2 | uniq
Gornja naredba pokazuje kako se više komandi i cijevi može kombinirati kako bi se dobili filtrirani podaci prema našim željama. Slobodno ga pokrenite i po dijelovima, kako bi vam pomogli da vidite izlaz koji se prebacuje od jedne komande do druge (usput, ovo može biti sjajno iskustvo učenja!).
Sažetak
Iako se ovaj primjer (zajedno s ostatkom primjera u trenutnom vodiču) možda na prvi pogled ne čini korisnim, oni su dobra početna točka za početak eksperimentiranja s naredbama koje se koriste za kreiranje, uređivanje i manipulaciju datotekama iz Linuxa komandna linija.
Slobodno ostavite svoja pitanja i komentare ispod – biće vam veoma zahvalni!
LFCS e-knjiga je sada dostupna za kupovinu. Naručite svoj primjerak već danas i započnite svoj put da postanete certificirani Linux sistem administrator!
Product Name | Price | Buy |
---|---|---|
The Linux Foundation’s LFCS Certification Preparation Guide | $19.99 | [Buy Now] |
Na kraju, ali ne i najmanje važno, razmislite o kupovini vaučera za ispit koristeći sljedeće veze kako biste zaradili malu proviziju, što će nam pomoći da ovu knjigu ažuriramo.