NOC online · 24/7Longview, TX · +1 323 412 0665
KinetikatechServers · Security · Websites
FI

Linux-komennot ja komentotulkkitaidot

awk: kun sarakkeista tulee ohjelmia

awk on se mitä tavoitat, kun sarakkeista tulee työyksikkö: nginx-käyttölokit, /etc/passwd, df-tuloste, kaikki, mikä elää kentissä. Se on täydellinen kieli (muuttujat, taulukot, aritmetiikka, kuvio-toimintasäännöt) pukeutuu yksivuoriseen vaatteisiin, mikä on juuri oikea naamio hirsirikostutkimukselle. Rehellinen raja: kaikki, mitä awk tekee mukavasti, on yksilinjaista, ja kaikki, joka tarvitsee lohkosivun, on Python-skripti, joka ei ole vielä hyväksynyt itseään.

Keskeiset kohdat

  • Kenttien jakaminen on ydintemppu: awk -F: '$3 >= 1000 {print $1}' /etc/passwd listaa todelliset käyttäjät ja -F'[,|]' käsittelee monimerkkiset erottimet, kun leikkaus on jo luovuttanut.
  • Laske assosiatiivisilla taulukoilla: awk '{count[$1]++} END {for (c in count) print count[c], c}' /var/log/secure muuttaa minkä tahansa lokin taajuustaulukoksi yhdellä rivillä.
  • NR ja NF vastaavat tiedoston kysymyksiin: 'NR==1' on otsikkorivi, '{print NF}' laskee sarakkeet riviä kohden, ja NR:n vertaaminen toisen tiedoston tallennettuihin arvoihin löytää kaksoiskappaleita ja aukkoja.
  • Match plus -ote on päivittäinen leipä: awk '/ 500 / {print $7, $9}' access.log hakee virhesivut URL-osoitteineen, ja OFS:n avulla voit tulostaa $0 uudelleen yhden kentän muokkaamisen jälkeen kirjoittamatta riviä itse.
  • BEGIN- ja END-lohkoissa aggregaattityö elää: BEGIN asettaa erottimet, keskisäännöt suoritetaan riviä kohden, END tulostaa summat; kolme lohkoa luetaan hyvin, viisi on naamioitunut käsikirjoitus.
  • Lainaus on shell-yksirivisten todellinen vihollinen: lainaa ohjelmaa yhdellä lainauksella, sen sisällä kaksoislainauskirjaimia ja muista, että 7 dollaria kaksoislainausmerkkijonon sisällä ei koskaan saavuta awk-arvoa.
  • Numeerinen työ saa LC_ALL=C: paikallinen pilkku numeroissa ja parittomat lajittelut kääntävät vertailut ja lajittelevat sivuttain, ja maa-asetuksen kiinnittäminen on yksi rivi, joka säästää iltapäivän.
  • Tunne katto: lainausmerkit CSV:ssä, sisäkkäisissä JSON-muodoissa tai tilalliset moniriviset muodot menevät Pythoniin; awk on skalpelli ja pysyy sellaisena.

Kenttämuistiinpano

Awk yksilinjainen, joka summai dollarisarakkeet lokista kielipilkuilla, tuotti numeroita, joita kukaan ei kyseenalaistanut ennen kuin kirjanpito avasi raportin. LC_ALL=C muutti aliaskirjastoomme sillä viikolla ja jäi sinne.

Usein kysytyt kysymykset

awk tai leikkaus pylvästöihin?

leikkaus yhdelle kiinteälle erottimelle ja tavalliselle sarakeluettelolle; awk, kun ehdot, säännöllinen lauseke, aritmetiikka tai aggregaatit tulevat näkyviin, jolloin leikkaus on joka tapauksessa poissa syvyydestään.

Kuinka lasken sarakkeen summan tai keskiarvon?

Aggregate in END: awk '{s += $5} END {print s, s/NR}' lisää ja laskee keskiarvon kentän viisi rivien yli; poista tuhansien erottimet ensin, jos kieliasetus laittaa pilkkuja numeroihin.

Miksi awk one-linerini käyttäytyy eri tavalla macOS:ssä?

macOS toimittaa POSIX awk:n ilman GNU-laajennuksia, kuten -i inplace tai gensub; Linuxissa ajettavat skriptit voivat epäonnistua siellä hiljaa, joten pidä yksilinjaiset POSIX-muotoiset tai kanna gawk mukanasi.

Voiko awk jäsentää JSONia?

Ei mielekästä: JSONilla ei ole sarakerakennetta, jota awk ymmärtää ja regex-hakkerointi katkeaa sisäkkäisissä objekteissa. Käytä jq:ta, joka on awk:n muoto JSONille, tai Pythonin json-moduulia, kun työ kasvaa.

Näin Kinetikatech auttaa: linux-komennot ja komentotulkkitaidot

Rehellisesti sanottuna useimmat tiimit päätyvät meille yritettyään ensin itse: Komennot ja komentosarjatavat, jotka ratkaisevat, käyttääkö järjestelmänvalvoja palvelinta vai taisteleeko sitä vastaan: etsi, muunna, siirrä ja valvo tekstiä ja prosesseja työkaluilla, jotka ovat jokaisessa perusasennuksessa. Palvelumme Linux-palvelinten tietoturva ja Palvelinten ylläpito on olemassa, jotta sinun ei tarvitse tutustua linux-komennot ja komentotulkkitaidot:hen kantapään kautta; me hoidamme käyttöönoton, valvonnan ja kolmen aikaan yöllä tulevat yllätykset.

Puhu insinöörin kanssa

Ongelma palvelimella? Sivusto hakkeroitu? Lataus hidasta?

Kriittiset ongelmat ratkaistaan 30 minuutissa — ympäri vuorokauden, seitsemänä päivänä viikossa.

Pyydä hätätukea support@kinetikatech.com