LFCS #1: Slik bruker du 'sed'-kommando for filmanipulering i Linux
Linux Foundation kunngjorde LFCS (Linux Foundation Certified Sysadmin)-sertifiseringen, et nytt program som tar sikte på å hjelpe enkeltpersoner over hele verden til å bli sertifisert i grunnleggende til middels systemadministrasjonsoppgaver for Linux-systemer.
Dette inkluderer støtte for kjørende systemer og tjenester, sammen med førstehånds feilsøking og analyse, og smart beslutningstaking for å eskalere problemer til ingeniørteam.
Fra den siste revisjonen 11. august 2023 har vi grundig redegjort for domenene og kompetansene, i samsvar med ikrafttredelsesdatoen 11. mai 2023, som offisielt erklært av Linux Foundation.
Serien får tittelen Forberedelse for LFCS (Linux Foundation Certified Sysadmin) delene 1 til 33 og dekker følgende emner:
- Part 1
Hvordan bruke 'Sed'-kommandoen til å manipulere filer i Linux
- Part 2
-
Hvordan installere og bruke Vi/Vim i Linux
- Part 3
Hvordan komprimere filer og kataloger og finne filer i Linux
- Part 4
Partisjonere lagringsenheter, formatere filsystemer og konfigurere swap-partisjon
- Part 5
Monter/avmonter lokale og nettverksfilsystemer (Samba og NFS) i Linux
- Part 6
Sette sammen partisjoner som RAID-enheter – Opprette og administrere systemsikkerhetskopier
- Part 7
Administrere systemoppstartsprosesser og -tjenester (SysVinit, Systemd og Upstart
- Part 8
Hvordan administrere brukere og grupper, filtillatelser og Sudo-tilgang
- Part 9
Linux Package Management med Yum, RPM, Apt, Dpkg, Aptitude og Zypper
- Part 10
Lære grunnleggende Shell-skripting og feilsøking av filsystem
- Part 11
Hvordan administrere og opprette LVM ved å bruke vgcreate-, lvcreate- og lvextend-kommandoer
- Part 12
-
Hvordan utforske Linux med installert hjelpedokumentasjon og verktøy
- Part 13
Hvordan konfigurere og feilsøke Grand Unified Bootloader (GRUB)
- Part 14
Overvåk Linux-prosesser ressursbruk og angi prosessgrenser på en per-bruker-basis
- Part 15
Hvordan stille inn eller endre kjernekjøringsparametere i Linux-systemer
- Part 16
Implementering av obligatorisk tilgangskontroll med SELinux eller AppArmor i Linux
- Part 17
Hvordan angi tilgangskontrolllister (ACL) og diskkvoter for brukere og grupper
- Part 18
Installere nettverkstjenester og konfigurere automatisk oppstart ved oppstart
- Part 19
En ultimat guide for å sette opp FTP-server for å tillate anonyme pålogginger
- Part 20
Konfigurer en grunnleggende rekursiv bufring DNS-server og konfigurer soner for domene
- Part 21
Hvordan installere, sikre og ytelsesjustering av MariaDB Database Server
- Part 22
-
Hvordan installere og konfigurere NFS-server for filsystemdeling
- Part 23
Hvordan sette opp Apache med navnebasert virtuell hosting med SSL-sertifikat
- Part 24
Slik konfigurerer du en Iptables-brannmur for å aktivere ekstern tilgang til tjenester i Linux
- Part 25
Hvordan gjøre en Linux om til en ruter for å håndtere trafikk statisk og dynamisk
- Part 26
Hvordan sette opp krypterte filsystemer og bytte ved hjelp av Cryptsetup Tool
- Part 27
Hvordan overvåke systembruk, strømbrudd og feilsøke Linux-servere
- Part 28
Slik konfigurerer du et nettverkslager for å installere eller oppdatere pakker
- Part 29
Hvordan revidere nettverksytelse, sikkerhet og feilsøking
- Part 30
Hvordan installere og administrere virtuelle maskiner og containere
- Part 31
Lær det grunnleggende om Git for å administrere prosjekter effektivt
- Part 32
En nybegynnerveiledning for å konfigurere IPv4- og IPv6-adresser i Linux
- Part 33
En nybegynnerveiledning for å lage nettverksbinding og brobygging i Ubuntu
Dette innlegget er del 1 av en 33-veiledningsserie, som vil dekke de nødvendige domenene og kompetansene som kreves for LFCS-sertifiseringseksamenen. Når det er sagt, fyr opp terminalen din, og la oss starte.
Behandler tekststrømmer i Linux
Linux behandler input til og utdata fra programmer som strømmer (eller sekvenser) av tegn. For å begynne å forstå omdirigering og rør, må vi først forstå de tre viktigste typene I/O (Input and Output)-strømmer, som faktisk er spesielle filer (etter konvensjon i UNIX og Linux, datastrømmer og periferiutstyr, eller enhetsfiler, behandles også som vanlige filer).
Forskjellen mellom >
(omdirigeringsoperatør) og |
(rørledningsoperatør) er at mens den første kobler en kommando med en fil, kobler den sistnevnte utgangen av en kommando med en annen kommando.
command > file
command1 | command2
Siden omdirigeringsoperatøren oppretter eller overskriver filer stille, må vi bruke den med ekstrem forsiktighet, og aldri forveksle den med en pipeline.
En fordel med pipes på Linux- og UNIX-systemer er at det ikke er noen mellomfil involvert i en pipe - stdouten til den første kommandoen skrives ikke til en fil og deretter leses av den andre kommandoen.
For de følgende øvelsesøvelsene vil vi bruke diktet «Et lykkelig barn» (anonym forfatter).
Bruker sed Command
Navnet sed er en forkortelse for stream editor. For de som ikke er kjent med begrepet, brukes en strømredigerer til å utføre grunnleggende teksttransformasjoner på en inputstrøm (en fil eller input fra en pipeline).
Endre små bokstaver til store bokstaver i fil
Den mest grunnleggende (og populære) bruken av sed er erstatning av tegn. Vi vil begynne med å endre hver forekomst av små bokstaver y
til STORE BOKSTAVER Y
og omdirigere utdataene til ahappychild2.txt.
g
-flagget indikerer at sed skal utføre substitusjonen for alle forekomster av term på hver linje i filen. Hvis dette flagget utelates, vil sed kun erstatte den første forekomsten av begrepet på hver linje.
Sed grunnleggende syntaks:
sed ‘s/term/replacement/flag’ file
Vårt eksempel:
sed ‘s/y/Y/g’ ahappychild.txt > ahappychild2.txt
Søk og erstatt Word i fil
Hvis du ønsker å søke etter eller erstatte et spesialtegn (som /
, \
, &
), må du escape det, i termen eller erstatningsstrenger, med skråstrek bakover.
For eksempel vil vi erstatte ordet og med et og-tegnet. Samtidig vil vi erstatte ordet I
med You
når det første er funnet på begynnelsen av en linje.
sed 's/and/\&/g;s/^I/You/g' ahappychild.txt
I kommandoen ovenfor er et ^
(caret-tegn) et velkjent regulært uttrykk som brukes til å representere begynnelsen av en linje.
Som du kan se, kan vi kombinere to eller flere substitusjonskommandoer (og bruke vanlige uttrykk i dem) ved å skille dem med semikolon og omslutte settet i enkle anførselstegn.
Skriv ut valgte linjer fra en fil
En annen bruk av sed er å vise (eller slette) en valgt del av en fil. I det følgende eksempelet vil vi vise de første 5 linjene med /var/log/messages fra 8. juni.
sed -n '/^Jun 8/ p' /var/log/messages | sed -n 1,5p
Merk at som standard skriver sed ut hver linje. Vi kan overstyre denne oppførselen med -n-alternativet og deretter fortelle sed å skrive ut (angitt med p) bare den delen av filen (eller pipen) som samsvarer med mønsteret (8. juni på begynnelsen av linjen i det første tilfellet og linjene 1 til og med 5 i det andre tilfellet).
Til slutt kan det være nyttig når du inspiserer skript eller konfigurasjonsfiler å inspisere selve koden og utelate kommentarer. Følgende sed one-liner sletter (d
) tomme linjer eller de som begynner med #
(tegnet |
indikerer en boolsk ELLER< mellom de to regulære uttrykkene).
sed '/^#\|^$/d' apache2.conf
unik kommando
Uniq-kommandoen lar oss rapportere eller fjerne dupliserte linjer i en fil, og skrive til stdout som standard. Vi må merke oss at uniq ikke oppdager gjentatte linjer med mindre de er tilstøtende.
Derfor brukes uniq ofte sammen med en foregående sortering (som brukes til å sortere linjer med tekstfiler). Som standard tar sort det første feltet (atskilt med mellomrom) som et nøkkelfelt. For å spesifisere et annet nøkkelfelt, må vi bruke -k
-alternativet.
Eksempler på unike kommandoer
Kommandoen du -sch /path/to/directory/* returnerer diskplassbruken per underkataloger og filer i den spesifiserte katalogen i lesbart format (viser også en total per katalog), og ikke bestill utdataene etter størrelse, men etter underkatalog og filnavn.
Vi kan bruke følgende kommando for å sortere etter størrelse.
du -sch /var/* | sort –h
Du kan telle antall hendelser i en logg etter dato ved å be uniq utføre sammenligningen ved å bruke de første 6 tegnene (-w 6)
på hver linje (der datoen er spesifisert), og prefikser hver utgangslinje med antall forekomster (-c
) med følgende kommando.
cat /var/log/mail.log | uniq -c -w 6
Til slutt kan du kombinere sort og uniq (slik de vanligvis er). Vurder følgende fil med en liste over givere, donasjonsdato og beløp. Anta at vi ønsker å vite hvor mange unike givere det er.
Vi vil bruke følgende cat-kommando for å kutte det første feltet (felt er avgrenset med et kolon), sortere etter navn og fjerne dupliserte linjer.
cat sortuniq.txt | cut -d: -f1 | sort | uniq
grep kommando
grep-kommandoen søker i tekstfiler eller (kommandoutdata) etter forekomsten av et spesifisert regulært uttrykk og sender ut en hvilken som helst linje som inneholder samsvar med standardutdata.
Eksempler på Grep-kommandoer
Vis informasjonen fra /etc/passwd for brukeren gacanepa, ignorer store og små bokstaver.
grep -i gacanepa /etc/passwd
Vis alt innholdet i /etc hvis navn begynner med rc etterfulgt av et enkelt tall.
ls -l /etc | grep rc[0-9]
tr Kommandobruk
Tr-kommandoen kan brukes til å oversette (endre) eller slette tegn fra stdin, og skrive resultatet til stdout.
Endre alle små bokstaver til store bokstaver i sortuniq.txt-filen.
cat sortuniq.txt | tr [:lower:] [:upper:]
Klem skilletegnet i utdataene til ls –l til bare ett mellomrom.
ls -l | tr -s ' '
Kutt kommandobruk
Cut-kommandoen trekker ut deler av inndatalinjer (fra stdin eller filer) og viser resultatet på standard utdata, basert på antall byte (-b
alternativ), tegn (-c
), eller felt (-f
).
I dette siste tilfellet (basert på felt), er standard feltseparator en tabulator, men et annet skilletegn kan spesifiseres ved å bruke -d
-alternativet.
Eksempler på kuttekommandoer
Trekk ut brukerkontoene og standardskallene som er tildelt dem fra /etc/passwd (alternativet –d
lar oss spesifisere feltskilletegnet og –f
-bryteren indikerer hvilke felt(er) som skal trekkes ut.
cat /etc/passwd | cut -d: -f1,7
Oppsummert vil vi lage en tekststrøm som består av den første og tredje ikke-tomme filen av utdataene fra siste-kommandoen. Vi vil bruke grep som et første filter for å se etter økter til brukeren gacanepa, og deretter presse skilletegn til bare ett mellomrom (tr -s ' '
).
Deretter trekker vi ut det første og tredje feltet med kutt, og til slutt sorterer vi etter det andre feltet (IP-adresser i dette tilfellet) som viser unike.
last | grep gacanepa | tr -s ' ' | cut -d' ' -f1,3 | sort -k2 | uniq
Kommandoen ovenfor viser hvordan flere kommandoer og rør kan kombineres for å oppnå filtrerte data i henhold til våre ønsker. Kjør den gjerne også etter deler, for å hjelpe deg med å se utdataene som sendes fra en kommando til den neste (dette kan forresten være en flott læringsopplevelse!).
Sammendrag
Selv om dette eksemplet (sammen med resten av eksemplene i den nåværende opplæringen) kanskje ikke virker veldig nyttig ved første øyekast, er de et fint utgangspunkt for å begynne å eksperimentere med kommandoer som brukes til å lage, redigere og manipulere filer fra Linux kommandolinje.
Legg gjerne igjen spørsmål og kommentarer nedenfor - de vil bli satt stor pris på!
LFCS eBook er tilgjengelig for kjøp nå. Bestill ditt eksemplar i dag og start reisen din til å bli en sertifisert Linux-systemadministrator!
Product Name | Price | Buy |
---|---|---|
The Linux Foundation’s LFCS Certification Preparation Guide | $19.99 | [Buy Now] |
Sist, men ikke minst, bør du vurdere å kjøpe eksamenskupongen din ved å bruke følgende lenker for å tjene oss en liten provisjon, som vil hjelpe oss å holde denne boken oppdatert.