LFCS #1: Kuinka käyttää "sed"-komentoa tiedostojen käsittelyyn Linuxissa


Linux Foundation julkisti LFCS (Linux Foundation Certified Sysadmin) -sertifioinnin, uuden ohjelman, jonka tavoitteena on auttaa ihmisiä kaikkialla maailmassa saamaan sertifioinnin perus- ja keskitason järjestelmänhallintatehtävissä Linux-järjestelmissä.

Tämä sisältää käynnissä olevien järjestelmien ja palveluiden tukemisen, ensikäden vianetsinnän ja analyysin sekä älykkään päätöksenteon ongelmien eskaloimiseksi suunnittelutiimeille.

Viimeisimmästä, 11. elokuuta 2023 tehdystä versiosta lähtien olemme ottaneet huomioon verkkotunnukset ja kompetenssit huolellisesti voimaantulopäivämäärän mukaisesti 11. toukokuuta 2023, jonka virallisesti julisti Linux Foundation.

Sarjan nimi on Preparation for the LFCS (Linux Foundation Certified Sysadmin) osien 133 ja se kattaa seuraavat aiheet:

Part 1

Kuinka Sed-komentoa käytetään tiedostojen käsittelyyn Linuxissa

Part 2

Vi/Vimin asentaminen ja käyttö Linuxissa

Part 3

Tiedostojen ja hakemistojen pakkaaminen ja tiedostojen etsiminen Linuxissa

Part 4

Tallennuslaitteiden osiointi, tiedostojärjestelmien muotoilu ja sivutusosion määrittäminen

Part 5

Liitä/irrota paikallis- ja verkkotiedostojärjestelmät (Samba & NFS) Linuxissa

Part 6

Osioiden kokoaminen RAID-laitteiksi – Järjestelmän varmuuskopioiden luominen ja hallinta

Part 7

Järjestelmän käynnistysprosessin ja -palvelujen hallinta (SysVinit, Systemd ja Upstart

Part 8

Käyttäjien ja ryhmien, tiedostojen käyttöoikeuksien ja Sudo Accessin hallinta

Part 9

Linux-pakettien hallinta Yumin, RPM:n, Apt:n, Dpkg:n, Aptituden ja Zypperin avulla

Part 10

Shell-komentosarjan ja tiedostojärjestelmän vianmäärityksen oppiminen

Part 11

LVM:n hallinta ja luominen vgcreate-, lvcreate- ja lvextend-komennoilla

Part 12

Linuxin tutkiminen asennettujen ohjedokumenttien ja työkalujen avulla

Part 13

Grand Unified Bootloaderin (GRUB) määrittäminen ja vianmääritys

Part 14

Tarkkaile Linux-prosessien resurssien käyttöä ja aseta prosessirajoituksia käyttäjäkohtaisesti

Part 15

Kuinka asettaa tai muokata ytimen ajonaikaisia parametreja Linux-järjestelmissä

Part 16

Pakollisen pääsynhallinnan käyttöönotto SELinuxilla tai AppArmorilla Linuxissa

Part 17

Käyttöoikeusluetteloiden (ACL) ja levykiintiöiden asettaminen käyttäjille ja ryhmille

Part 18

Verkkopalvelujen asentaminen ja automaattisen käynnistyksen määrittäminen käynnistyksen yhteydessä

Part 19

Lopullinen opas FTP-palvelimen määrittämiseen anonyymien kirjautumisten sallimiseksi

Part 20

Määritä perusrekursiivisen välimuistin DNS-palvelin ja määritä alueet verkkotunnukselle

Part 21

MariaDB-tietokantapalvelimen asentaminen, suojaus ja suorituskyvyn viritys

Part 22

NFS-palvelimen asentaminen ja määrittäminen tiedostojärjestelmän jakamista varten

Part 23

Kuinka määrittää Apache nimipohjaisella virtuaalipalvelimella SSL-sertifikaatilla

Part 24

Iptables-palomuurin määrittäminen mahdollistamaan palvelujen etäkäyttö Linuxissa

Part 25

Kuinka tehdä Linuxista reititin, joka hallitsee liikennettä staattisesti ja dynaamisesti

Part 26

Salattujen tiedostojärjestelmien määrittäminen ja vaihtaminen Cryptsetup Toolin avulla

Part 27

Kuinka seurata järjestelmän käyttöä, katkoksia ja vianmääritys Linux-palvelimia

Part 28

Verkkovaraston määrittäminen pakettien asentamista tai päivittämistä varten

Part 29

Verkon suorituskyvyn, suojauksen ja vianmäärityksen tarkastaminen

Part 30

Kuinka asentaa ja hallita virtuaalikoneita ja säilöjä

Part 31

Opi Gitin perusteet projektien tehokkaaseen hallintaan

Part 32

Aloittelijan opas IPv4- ja IPv6-osoitteiden määrittämiseen Linuxissa

Part 33

Aloittelijan opas verkkoliitoksen ja siltojen luomiseen Ubuntussa

Tämä viesti on osa 1 33 opetusohjelmasarjasta, joka kattaa LFCS-sertifiointikokeeseen vaadittavat alueet ja kompetenssit. Tästä huolimatta käynnistä terminaalisi ja aloitetaan.

Tekstivirtojen käsittely Linuxissa

Linux käsittelee ohjelmien syötteitä ja tulosteita merkkivirroina (tai -sarjoina). Jotta voisimme ymmärtää uudelleenohjausta ja putkia, meidän on ensin ymmärrettävä kolme tärkeintä I/O-virtatyyppiä (Input and Output), jotka ovat itse asiassa erikoistiedostoja (UNIX- ja Linux-käytännön mukaan tietovirtoja ja oheislaitteita tai laitetiedostoja, käsitellään myös tavallisina tiedostoina).

Ero > (uudelleenohjausoperaattori) ja | (putkioperaattori) välillä on, että kun ensimmäinen yhdistää komennon tiedostoon, jälkimmäinen yhdistää komennon tulosteen toiseen. komento.

command > file
command1 | command2

Koska uudelleenohjausoperaattori luo tai korvaa tiedostoja äänettömästi, meidän on käytettävä sitä äärimmäisen varovaisesti, emmekä koskaan erehdy sitä liukuhihnaan.

Yksi putkien etu Linux- ja UNIX-järjestelmissä on, että putkeen ei liity välitiedostoa – ensimmäisen komennon stdout-koodia ei kirjoiteta tiedostoon, vaan toinen komento lukee sitä.

Seuraavissa harjoitustehtävissä käytämme runoa "Onnellinen lapsi" (anonyymi kirjoittaja).

Käytä sed-komentoa

Nimi sed on lyhenne sanoista stream editor. Niille, jotka eivät tunne termiä, stream-editoria käytetään perustekstimuunnosten tekemiseen syöttövirralle (tiedostolle tai syöttöputkesta).

Vaihda tiedostossa pienet kirjaimet isoiksi kirjaimiksi

Yleisin (ja suosituin) sed:n käyttötapa on merkkien korvaaminen. Aloitamme vaihtamalla kaikki pienten y-kirjainten esiintymät isoilla kirjaimilla Y ja ohjaamalla tulosteen tiedostoon happychild2.txt.

Lippu g osoittaa, että sed:n tulee korvata kaikki termin esiintymät tiedoston jokaisella rivillä. Jos tämä lippu jätetään pois, sed korvaa vain termin ensimmäisen esiintymän kullakin rivillä.

Sedin perussyntaksi:
sed ‘s/term/replacement/flag’ file
Esimerkkimme:
sed ‘s/y/Y/g’ ahappychild.txt > ahappychild2.txt

Etsi ja korvaa Word tiedostossa

Jos haluat etsiä tai korvata erikoismerkin (kuten /, \, &), sinun on vältettävä se termissä. tai korvaavia merkkijonoja taaksepäin vinoviivalla.

Korvaamme esimerkiksi et-merkin sanan ja. Samanaikaisesti korvaamme sanan I sanalla Sinä, kun ensimmäinen löytyy rivin alusta.

sed 's/and/\&/g;s/^I/You/g' ahappychild.txt

Yllä olevassa komennossa ^ (merkki) on hyvin tunnettu säännöllinen lauseke, jota käytetään esittämään rivin alkua.

Kuten näet, voimme yhdistää kaksi tai useampia korvauskomentoja (ja käyttää niiden sisällä säännöllisiä lausekkeita) erottamalla ne puolipisteellä ja sulkemalla joukon yksittäisten lainausmerkkien sisään.

Tulosta valitut rivit tiedostosta

Toinen sed:n käyttötapa on tiedoston valitun osan näyttäminen (tai poistaminen). Seuraavassa esimerkissä näytämme ensimmäiset 5 riviä /var/log/messages 8. kesäkuuta.

sed -n '/^Jun  8/ p' /var/log/messages | sed -n 1,5p

Huomaa, että oletusarvoisesti sed tulostaa jokaisen rivin. Voimme ohittaa tämän toiminnon vaihtoehdolla -n ja sitten käskeä sed tulostamaan (merkitty p) vain sen osan tiedostosta (tai putkesta), joka vastaa kuviota. (8. kesäkuuta rivin alussa ensimmäisessä tapauksessa ja rivit 1–5 toisessa tapauksessa).

Lopuksi voi olla hyödyllistä tarkastaa komentosarjoja tai asetustiedostoja tarkastaa itse koodi ja jättää kommentit pois. Seuraava yksirivinen sed poistaa (d) tyhjät rivit tai ne, jotka alkavat kirjaimella # (merkki | tarkoittaa loogista TAI< kahden säännöllisen lausekkeen välissä).

sed '/^#\|^$/d' apache2.conf

ainutlaatuinen komento

Uniq-komento antaa meille mahdollisuuden raportoida tai poistaa tiedoston päällekkäisiä rivejä kirjoittamalla oletuksena stdoutiin. Huomaa, että uniq ei havaitse toistuvia rivejä, elleivät ne ole vierekkäin.

Näin ollen uniq käytetään yleisesti edeltävän lajittelun kanssa (jolla lajitellaan tekstitiedostojen rivejä). Oletusarvon mukaan lajittelu ottaa ensimmäisen kentän (välilyönnillä erotettuna) avainkenttään. Jos haluat määrittää toisen avainkentän, meidän on käytettävä -k-vaihtoehtoa.

Ainutlaatuiset komentoesimerkit

Komento du -sch /polku/hakemistoon/* palauttaa levytilan käytön määritetyn hakemiston alihakemistojen ja tiedostojen mukaan ihmisen luettavassa muodossa (näyttää myös kokonaismäärän hakemistoa kohti), eikä Järjestä tulosteet koon mukaan, mutta alihakemiston ja tiedostonimen mukaan.

Voimme käyttää seuraavaa komentoa lajitellaksesi koon mukaan.

du -sch /var/* | sort –h

Voit laskea lokin tapahtumien määrän päivämäärän mukaan käskemällä uniq suorittaa vertailun käyttämällä kunkin rivin 6 ensimmäistä merkkiä (-w 6) (jossa päivämäärä on määritetty) ja lisäämällä kunkin tulosrivin etuliitteen esiintymien lukumäärällä (-c) seuraavalla komennolla.

cat /var/log/mail.log | uniq -c -w 6

Lopuksi voit yhdistää lajittelu ja yksilöllinen (kuten ne yleensä ovat). Harkitse seuraavaa tiedostoa, jossa on luettelo lahjoittajista, lahjoituspäivämäärä ja -summa. Oletetaan, että haluamme tietää, kuinka monta ainutlaatuista luovuttajaa on.

Käytämme seuraavaa cat-komentoa ensimmäisen kentän leikkaamiseen (kentät on erotettu kaksoispisteellä), lajitella nimen mukaan ja poistaa päällekkäiset rivit.

cat sortuniq.txt | cut -d: -f1 | sort | uniq

grep komento

Grep-komento etsii tekstitiedostoista tai (komennon tuloste) tietyn säännöllisen lausekkeen esiintymisen ja tulostaa minkä tahansa rivin, joka sisältää vastaavuuden vakiotulosteeseen.

Grep-komentoesimerkkejä

Näytä tiedot tiedostosta /etc/passwd käyttäjälle gacanepa, kirjainkoko huomioimatta.

grep -i gacanepa /etc/passwd

Näytä kaikki tiedoston /etc sisältö, jonka nimi alkaa kirjaimella rc, jota seuraa mikä tahansa yksittäinen numero.

ls -l /etc | grep rc[0-9]

tr Komennon käyttö

tr-komennolla voidaan kääntää (muuttaa) tai poistaa merkkejä stdinistä ja kirjoittaa tulos stdoutiin.

Vaihda kaikki pienet kirjaimet isoiksi sortuniq.txt-tiedostossa.

cat sortuniq.txt | tr [:lower:] [:upper:]

Purista erotin tulosteessa ls –l vain yhteen välilyöntiin.

ls -l | tr -s ' '

Leikkaa komennon käyttö

Leikkaa-komento poimii osia syöttöriveistä (stdinistä tai tiedostoista) ja näyttää tuloksen vakiotulosteessa tavujen (optio -b), merkkien (-c ) perusteella ) tai kentät (-f).

Tässä viimeisessä tapauksessa (kenttien perusteella) oletuskenttien erotin on sarkain, mutta eri erotin voidaan määrittää käyttämällä -d-vaihtoehtoa.

Leikkaa komentoesimerkit

Pura käyttäjätilit ja niille määritetyt oletuskomentotulokset tiedostosta /etc/passwd (vaihtoehto –d antaa meille mahdollisuuden määrittää kentän erottimen ja –f-kytkin osoittaa, mitkä kentät puretaan.

cat /etc/passwd | cut -d: -f1,7

Yhteenvetona luomme tekstivirran, joka koostuu viimeisen komennon tulosteen ensimmäisestä ja kolmannesta ei-tyhjestä tiedostosta. Käytämme grep-suodatinta ensimmäisenä suodattimena tarkistaaksemme käyttäjän gacanepa istunnot ja puristamme sitten erottimet vain yhteen välilyöntiin (tr -s ' ' ' ).

Seuraavaksi poimimme ensimmäisen ja kolmannen kentän leikkauksella ja lajittelemme lopuksi toisen kentän mukaan (tässä tapauksessa IP-osoitteet), joka näyttää yksilöivän.

last | grep gacanepa | tr -s ' ' | cut -d' ' -f1,3 | sort -k2 | uniq

Yllä oleva komento näyttää, kuinka useita komentoja ja putkia voidaan yhdistää, jotta saadaan suodatettua dataa toiveidemme mukaan. Voit myös ajaa sitä osittain, jotta näet tulosteen, joka on liukuhihnassa komennosta toiseen (tämä voi muuten olla loistava oppimiskokemus!).

Yhteenveto

Vaikka tämä esimerkki (muiden nykyisen opetusohjelman esimerkkien kanssa) ei ehkä vaikuta kovin hyödylliseltä ensi silmäyksellä, ne ovat hyvä lähtökohta kokeilla komentoja, joita käytetään tiedostojen luomiseen, muokkaamiseen ja käsittelyyn Linuxista. komentorivi.

Jätä kysymyksesi ja kommenttisi alle – niitä arvostetaan suuresti!

LFCS eBook on nyt ostettavissa. Tilaa kopiosi tänään ja aloita matkasi sertifioiduksi Linux-järjestelmänvalvojaksi!

Product Name Price Buy
The Linux Foundation’s LFCS Certification Preparation Guide $19.99 [Buy Now]

Viimeisenä, mutta ei vähäisimpänä, harkitse koekupongin ostamista seuraavien linkkien avulla ansaitaksesi meille pienen palkkion, joka auttaa meitä pitämään tämän kirjan ajan tasalla.