Beetaversioon: sisu on enamasti terviklik ja avalikuks katsetamiseks valmis, kuid vajab veel tehnilist, keelelist ja kasutatavuse kontrolli.

Spikrid

Linux/Unix/macOS käsurea kiirõpik

Siin on koos osa Osa IV: Tekst, otsing ja automatiseerimine spikrid.

Osa IV: Tekst, otsing ja automatiseerimine — täisspikker

Selle osa spikrid on siin koos ühel lehel. Neid saab kasutada kordamiseks, kiireks viitamiseks ja eraldi PDF-ina printimiseks.

Teksti otsimine: grep ja sugulased

Töövood

Eesmärk

Vali tekstist sobivad read; erista täpset teksti regulaaravaldisest.

Otsingukuju ja tulemus

  • grep 'kass' loomad.txtka pikema sõna sees; väljastab terve rea
  • grep -in 'kass' loomad.txteira tähesuurust, lisa reanumbrid
  • grep -x 'kass' loomad.txtainult tervenisti sobiv rida
  • grep -v '^#' seadistus.confjäta välja # märgiga algavad read
  • grep -F '.json' nimed.txtpunkt tähendab päris punkti, mitte suvalist märki
  • grep -rn 'TODO' .otsi failipuust koos failinimede ja reanumbritega
  • grep -c 'kass' loomad.txtloenda vastega ridu, mitte kõiki esinemisi

grep-i tulemuskoodid

  • 0vähemalt üks vaste
  • 1vasteid pole, mitte tingimata viga
  • 2tavaliselt viga; loe veateadet

Teksti teisendamine: tr, cut, paste, column, strings

Töövood

Eesmärk

need väikesed filtrid muudavad tekstivoo kuju kiiresti: märgid, väljad, veerud ja tabelid ilma eraldi skriptita

Põhikujud

  • echo 'tere maailm' | tr '[:lower:]' '[:upper:]'muuda suurtäheks
  • echo 'a,b,c' | tr ',' '\n'tee ridadeks
  • cut -d ':' -f 1 andmed.txtvõta esimene väli
  • cut -d ':' -f 1,3 andmed.txtvõta mitu välja
  • printf 'nimi vanus\nMari 20\n' | column -tjoonda tabel
  • strings /bin/ls | head -n 20loe binaarist tekst
  • pastekleebi veerge

Olulisemad lipud, märgid ja kiirnupud

  • [:lower:]väiketähed
  • [:upper:]suurtähed
  • cut -dvali eraldaja
  • cut -fvali väljad
  • column -tjoonda tabel
  • stringstekstijupid

Vood ja tabelid: sort, uniq, wc, pr, join

Töövood

Eesmärk

tüüpiline töövoog on: sorteeri read, koonda kordused ja loe tulemused kokku

Põhikujud

  • sort viljad.txtsordi read
  • sort viljad.txt | uniqeemalda kordused
  • sort viljad.txt | uniq -cloe kordused
  • wc -l data/sample-text.txtloe read
  • wc -w data/sample-text.txtloe sõnad
  • join nimed.txt linnad.txtühenda võtme järgi
  • prjaga veergudeks

Olulisemad lipud, märgid ja kiirnupud

  • sort -nnumbrid
  • sort -rtagurpidi
  • uniq -cloenda kordused
  • wc -lridade arv
  • wc -wsõnade arv
  • pr -2kaks veergu

sed, awk ja perl praktiliselt

Töövood

Eesmärk

kasuta sed lihtsaks asenduseks, awk väljade jaoks ja perl siis, kui vajad tugevamat regulaaravaldiste loogikat

Põhikujud

  • echo 'kass koer kass' | sed 's/kass/rebane/'asenda esimene
  • echo 'kass koer kass' | sed 's/kass/rebane/g'asenda kõik
  • printf 'Mari:20\nJaan:21\n' | awk -F: '{print $1}'võta esimene väli
  • printf 'Mari:20\nJaan:21\n' | awk -F: '{print $1, $2}'võta kaks välja
  • echo 'kass koer kass' | perl -pe 's/kass/rebane/g'asenda Perliga
  • printf 'Mari\nJaan\n' | perl -ne 'print if /Ja/'filtreeri Perliga

Olulisemad lipud, märgid ja kiirnupud

  • s/vana/uus/üks asendus
  • /gkõik vasted
  • -F:koolon väljade vahel
  • $1esimene väli
  • $2teine väli
  • -pe / -neread läbi

`find` ja `xargs` ohutumalt

Töövood

Eesmärk

otsi failid find-iga ja anna need ohutult edasi järgmisele käsule, isegi siis, kui nimedes on tühikuid

Põhikujud

  • find . -type f -name '*.txt'otsi failid
  • find . -type f -name '*.txt' -print0 | xargs -0 wc -lloe read ohutult
  • find . -type f -name '*.log' -exec ls -lh {} +käivita otse
  • find data -type f -name '*.txt' -print0 | while IFS= read -r -d '' fail; do head -n 1 "$fail"; donetöötle ükshaaval

Olulisemad lipud, märgid ja kiirnupud

  • -type ffind: ainult tavafailid
  • -name '*.txt'nime järgi
  • -print0find: failinimede vahel nullmärk
  • xargs -0xargs: eralda argumendid nullmärgiga
  • -exec käsk {} +käivita otse
  • read -r -d ''Bash/zsh: loe nullmärgini, säilita kaldkriipsud

Esimene shelliskript

Töövood

Eesmärk

esimese shelliskripti tuum on viis asja: shebang, käivitatavus, argumendid, lihtne tingimus ja lõpetuskood

Põhikujud

  • chmod +x tervita.shtee käivitatavaks
  • ./tervita.sh Mari Jaankäivita argumentidega
  • ./tervita.shnäe veajuhtumit
  • echo $?vaata lõpetuskoodi
  • bash skript.shkäivita Bashiga
  • sh skript.shkäivita sh-ga
  • ./skript.shkasuta shebang-rida

Olulisemad lipud, märgid ja kiirnupud

  • #!/usr/bin/env bashvali Bash
  • $1esimene argument
  • "$@"kõik argumendid
  • if ... fitingimus
  • for ... donekordus
  • exit 0 / exit 1edu või viga

`cron` ja ajastatud tööd

Töövood

Eesmärk

Ajasta läbiproovitud käsk; kasuta täisteid ja talleta väljund logisse.

Käsud ja näited

  • crontab -lvaata praeguse kasutaja ajastusi
  • crontab -emuuda tabelit, säilitades muud tööd
  • /bin/date >> "$HOME"/cron-naide.log 2>&1testi ajastatavat käsku käsitsi
  • tail -n 5 "$HOME"/cron-naide.logkontrolli, kas töö lisab kirjeid

Märgid ja valikud

  • */15 * * * *minutitel 0, 15, 30 ja 45
  • 0 8 * * 1-5tööpäeviti kell 08.00 süsteemi ajavööndis
  • crontab failasendab kogu kasutaja ajastustabeli
  • crontab -reemaldab kogu kasutaja ajastustabeli