Mustand: sisu ei ole veel tehniliselt ega keeleliselt täielikult kontrollitud ega toimetatud.

Spikrid

Linux/Unix/macOS käsurea kiirõpik

Kõikide osade koondspikrid ühel lehel.

Kõik osade spikrid

See koondvaade on mõeldud kiireks sirvimiseks, printimiseks ja teemade meeldetuletuseks. Iga peatüki lõpus olev kokkuvõte on siin eraldi referentsikujul uuesti koos.

Spikrite indeks

Peatükkide lõpus olevad täisspikrilaadsed kokkuvõtted on nüüd koondatud ka eraldi osa-spikriteks. Nii saab õpikut kasutada korraga kahel viisil: peatüki kaupa õppides ja kiire referentsina tagasi tulles.

Algaja jaoks on kõige rahulikum alustada Osa I ja Osa II spikritest. Edasijõudnumale on sageli kõige kasulikumad Osa IV ja Osa V, sest seal on tihedamad töövood ja käskude ühendamise mustrid.

Osa I: Esimesed sammud

Algaja · 10 peatükki

Siit leiad selle osa spikrid ühel lehel ja PDF-ina.

Osa II: Süsteemi pilt ja haldus

Baas ja süsteemipilt · 9 peatükki

Siit leiad selle osa spikrid ühel lehel ja PDF-ina.

Osa III: Failid, võrk ja süsteemitöö

Praktiline kasutus · 9 peatükki

Siit leiad selle osa spikrid ühel lehel ja PDF-ina.

Osa IV: Tekst, otsing ja automatiseerimine

Töövood · 7 peatükki

Siit leiad selle osa spikrid ühel lehel ja PDF-ina.

Osa V: Arendus ja töövood

Edasijõudnu · 9 peatükki

Siit leiad selle osa spikrid ühel lehel ja PDF-ina.

Lisad

Referents · 6 peatükki

Siit leiad selle osa spikrid ühel lehel ja PDF-ina.

Osa I: Esimesed sammud — täisspikker

Kuidas seda õpikut kasutada

Algaja

Eesmärk

Saa aru, mis on terminal, shell, CLI ja GUI, ning vali rahulik algusrada enne keerulisemaid töövooge.

Põhitee

Põhimõisted

  • CLIkäsurida
  • GUIgraafiline liides
  • terminalaken käsureaks
  • shelltõlgendab käske

Tüüpilised kujud

  • pwdkontrolli asukohta
  • lsvaata sisu
  • man lsloe abi
  • cd ~/tmpmine tmp-kausta; sobib harjutamiseks

Õpitee ja õppetunnid

Algaja

Eesmärk

See peatükk aitab valida, mis järjekorras lugeda. Raamatut saab kasutada ka käsiraamatuna, kuid alguses on lihtsam liikuda kindla õpitee järgi.

Õpiteed

  • Täiesti algajaloe esimesena
  • Süsteemi pildi loominepärast esimest ringi
  • Igapäevane Linuxi ja serveri kasutajakaugühendus ja failid
  • Tekst, filtrid ja automatiseeriminekäsurea jõud
  • Arendaja suundGit, Docker, build
  • Andmeteaduse stardiradafailid, vormingud, SQL

Märgendid ja kontroll

  • vajalikloe nüüd
  • soovitatavhea järgmine
  • hiljemära kiirusta
  • Pärast seda rada oskad …kontrolli edenemist

Terminali esimesed sammud

Algaja

Eesmärk

Vaata kõigepealt rahulikult, kus sa oled, kes sa oled ja mis selles kaustas on; alles siis tee esimene väike muudatus.

Käsud ja esimesed sammud

  • pwdvaata asukohta
  • lsvaata sisu
  • whoamivaata kasutajat
  • datevaata praegust kuupäeva ja aega
  • historyvaata käsuajalugu
  • cd ~/tmpmine tmp-kausta; sobib harjutamiseks
  • mkdir proov && cd proovloo proovikaust

Olulisemad lipud, märgid ja kiirnupud

  • Tablõpeta nimi
  • Ctrl-ckatkesta programmi töö
  • Ctrl-rotsi ajaloost
  • Ctrl-area algus
  • Ctrl-erea lõpp
  • ~/proov %näide viibast ehk promptist

Abi leidmine: man, --help ja info

Algaja

Eesmärk

Kui sa ei mäleta käsu kuju või lippu, vaata kõigepealt käsu enda abi: man, --help, whatis, apropos ja vajadusel info.

Põhikujud

  • man lsloe põhijuhendit
  • grep --helpkiire lippude abi
  • whatis lsüks lause
  • apropos sshotsi teema järgi
  • info coreutils 'ls invocation'GNU sügavam abi

Olulisemad lipud, märgid ja kiirnupud

  • qvälju man-ist
  • /tekstotsi man-ist
  • njärgmine vaste
  • galgusesse
  • Glõppu

Kataloogid ja failid

Algaja

Eesmärk

Failitöö põhiharjumus on: kontrolli asukohta, tee üks väike muudatus, vaata tulemus üle ja kustuta alles pärast teadlikku pausi.

Põhikujud

  • pwdkontrolli asukohta
  • lsvaata sisu
  • mkdir -p ~/tmp/faili-naitedloo terve puuduv tee
  • cd ~/tmp/faili-naitedmine harjutama
  • touch fail.txtloo fail
  • cp algne.txt koopia.txttee koopia
  • mv vana.txt uus.txtnimeta ümber
  • mv fail.txt kaust/liiguta kausta
  • rm fail.txtkustuta fail
  • rmdir tyhi-kataloogeemalda tühi kataloog
  • find . -name '*.txt'otsi ohutult
  • shasum -a 256 a.txt b.txtvõrdle sisu macOS-is

Olulisemad lipud, märgid ja kiirnupud

  • .see kaust
  • ..ülemine kaust
  • ~kodukataloog
  • ls -aka peidetud
  • ls -Apeidetud ilma . ja .. kirjeteta
  • ls -ladetailne vaade
  • "fail nimi.txt"nimi tühikuga
  • rm -rrekursiivne kustutus

Teksti vaatamine ja liikumine

Algaja

Eesmärk

lühikese faili jaoks kasuta cat; pika faili sirvimiseks ja otsimiseks kasuta less; faili alguse vaatamiseks kasuta head

Põhikujud

  • less fail.txtava lehitseja
  • head -n 7 fail.txtesimesed read
  • tail -n 7 fail.txtviimased read
  • tail -f app.logjälgi logi
  • less *mitu faili korraga
  • catnäita faili
  • seqnumbrijada
  • touchloo või aja tempel

`less`-i klahvid

  • qvälju
  • /tekstotsi edasi
  • njärgmine vaste
  • Neelmine vaste
  • vava redaktoris
  • :n / :pjärgmine/eelmine fail

Failide muutmine: nano ja esimene kokkupuude vim-iga

Algaja

Eesmärk

less aitab faili sisu enne muutmist mugavalt üle vaadata; nano on alguses kõige lihtsam tekstiredaktor; vim ja vi on sama pere klassikalised tekstiredaktorid

Põhikujud

  • less fail.txtvaata faili sisu mugavalt
  • nano fail.txtlihtne tekstiredaktor
  • vim fail.txtklassikaline redaktor
  • vi fail.txtsama pere variant
  • command -v nanokontrolli olemasolu

`vi`/`vim` minispikker

  • Escvälju sisestusest
  • :qvälju
  • :q!välju salvestamata
  • :wqsalvesta ja välju

Käskude kuju ja argumentide loogika

Algaja

Eesmärk

Õpi ühe näite pealt eristama käsku, lippu ja argumenti; siis ei tundu uus käsk iga kord täiesti uus keel.

Üks näide

  • ls -la /etcterve kuju
  • lskäsk
  • -lalipud
  • /etcargument
  • cp vana.txt uus.txtkaks argumenti

Olulised märgid

  • -lühike lipp
  • --pikk lipp või stop
  • "..."hoia koos; muutujad toimivad
  • '...'täht-tähelt nagu kirjas
  • *failimuster
  • ?üks märk

Tüüpilised kujud

  • grep -n 'root' fail.txtlipp + muster + fail
  • cp 'fail nimi.txt' koopia.txtnimi tühikuga
  • rm -- --algab-kriipsuga.txtära tõlgenda lipuna
  • ls *.txtkõik .txt lõpuga failid
  • ls words.0?.txtüks märk keskel

Sisend, väljund, torud ja suunamine

Algaja

Eesmärk

Ühenda käske nii, et ühe väljund saab järgmise sisendiks, või saada väljund faili; vea- ja tavaväljundit tasub mõelda eraldi.

Põhikäsud

  • echoprindi tekst
  • printfvorminda tekst
  • catnäita faili
  • teeekraan ja fail
  • wcloe kokku

Olulisemad lipud, märgid ja kiirnupud

  • >stdout faili
  • >>lisa stdout faili lõppu juurde
  • |anna edasi järgmisele
  • ;käivita lihtsalt järjest
  • &&tee edasi edu korral
  • ||tee edasi vea korral
  • 2>stderr eraldi faili
  • 2>&1stderr samasse kohta
  • /dev/nullmust auk väljundile

Tüüpilised kujud

  • käsk > valjund.txtstdout faili
  • käsk >> logi.txtlisa stdout faili lõppu juurde
  • käsk 2> vead.txtstderr eraldi
  • käsk > valjund.txt 2> vead.txteralda mõlemad
  • käsk 2> /dev/nullpeida veateated
  • cat fail.txt | wc -ltoru loendusse
  • käsk ; järgminejärgmine alati
  • käsk && järgminejärgmine ainult edul
  • käsk || varuplaanvaruplaan vea korral
  • käsk > koik.txt 2>&1stdout ja stderr koos

Esimene tervikharjutus: 30 minutit

Algaja

Eesmärk

kontrolli alguskohta; tööta eraldi harjutuskaustas; lisa faili read väikeste sammudena

Olulised märgid

  • >kirjuta üle
  • >>lisa faili lõppu juurde
  • Ctrl-ckatkesta programmi töö
  • manvaata abi

Lühike töövoog

  • pwd && lskontrolli alguskohta
  • mkdir proov && cd proovloo töökaust
  • echo tere > sonad.txttee esimene rida
  • echo maailm >> sonad.txtlisa järgmine rida
  • cat sonad.txt && wc -l sonad.txtkontrolli tulemust
  • cp sonad.txt koopia.txttee koopia

Osa II: Süsteemi pilt ja haldus — täisspikker

Linux, Unix, GNU, macOS, Windows ja shellid

Baas ja süsteemipilt

Eesmärk

erista süsteemi, shelli ja käsureatööriistu; sama terminaliaken ei tähenda veel, et Linux, macOS ja Windows käituksid ühtemoodi

Kontrollkäsud

  • uname -asüsteemi ja kerneli rida
  • echo "$SHELL"praegune shell
  • ps -p $$käivitud shelliprotsess
  • command -v lskust käsk leitakse
  • sw_versmacOS-i versioon
  • wsl -l -vWSL-i jaotused

Olulised mõisted

  • Linuxkernel ehk tuum
  • GNUpaljud põhikäsud
  • shelltõlgendab käske
  • WSLLinux Windowsis
  • BSDmacOS-i tööriistapere
  • PowerShellWindowsi käsukeskkond

Failisüsteemi kaart

Baas ja süsteemipilt

Eesmärk

õpi eristama süsteemi juuri, oma kodukataloogi ja ajutisi ning süsteemseid kaustu; siis on lihtsam aru saada, kus tohid rahulikult katsetada

Põhikujud

  • pwdkontrolli asukohta
  • echo "$HOME"vaata oma kodu
  • cd /mine juurkataloogi
  • cd ~mine kodukataloogi
  • ls /etc | headpiilu seadistusi
  • ls -ld /tmpvaata ajutist kausta

Olulised teed

  • /kogu failipuu juur
  • ~sinu kodukataloog
  • /etcsüsteemi seadistused
  • /varlogid ja muutuv sisu
  • /tmpajutiste failide koht
  • /Users / /homekasutajate kodud

Kettaruum ja süsteemi maht

Baas ja süsteemipilt

Eesmärk

erista kogu failisüsteemi seisu ja ühe konkreetse kausta mahtu; df ja du vastavad eri küsimustele

Põhikujud

  • df -hkõigi failisüsteemide maht
  • df -h .siinse failisüsteemi maht
  • du -sh .praeguse kausta summa
  • du -sh * 2> /dev/nullalamkirjed ilma vigadeta
  • du -sh * 2> /dev/null | sort -halamkirjed inimloetava mahu järgi
  • du -a . 2> /dev/null | sort -nr | lesssuurimad kirjed detailsemalt

Olulised võtmed ja vood

  • -hinimloetavad ühikud
  • -sainult kokkuvõte
  • -anäita ka üksikuid kirjeid
  • 2> /dev/nullpeida ligipääsuvead
  • | sort -hsordi inimloetavad mahud väiksemast suuremani
  • | sort -nr | lesssuurimad ette

Õigused, omanikud ja täitmisbitid

Baas ja süsteemipilt

Eesmärk

loe õiguste rida, mõista rwx tähendust ja erista faili käivitatavust kataloogi läbikäigust

Põhikujud

  • ls -l fail.txtloe õiguste rida
  • chmod u+x skript.shanna omanikule täitmine
  • chmod 644 naide.txtsea tekstifaili õigused
  • chmod 755 skript.shsea käivitatava õigused
  • sudo chown kasutaja:grupp fail.txtmuuda omanikku

Olulised õigusekujud

  • rloe sisu
  • wmuuda sisu
  • xkäivita või sisene
  • dtegu on kataloogiga
  • 644tüüpiline tekstifail
  • 755tüüpiline käivitatav

Kasutajad, grupid ja sudo

Baas ja süsteemipilt

Eesmärk

õpi nägema, millise kasutajana sa töötad, millistes gruppides oled ja millal on sudo päriselt vajalik

Põhikujud

  • whoamikontrolli kasutajat
  • idloe grupid välja
  • groupsvaata grupinimesid
  • sudo -lvaata sudo õigusi
  • sudo apt updateüks kõrgem käsk
  • su - kasutajavaheta kasutajat

Olulised märgid ja rollid

  • $tavaline kasutaja
  • %teine levinud tavaviip
  • #root või kõrgemad õigused
  • rootadministraatori kasutaja
  • sudo -iava kõrgem shell
  • sudo käskeelista ühte käsku

Muutujad, keskkond, PATH ja aliased

Baas ja süsteemipilt

Eesmärk

erista shellimuutujat, keskkonnamuutujat, käsuotsingu teed ja aliast; PATH-i järjekord otsustab, milline väline käsk esimesena leitakse.

Põhikujud

  • nimi='Mari'; echo "$nimi"shellimuutuja kehtib selles shellis
  • export DEMO=1anna muutuja edasi käivitatavatele programmidele
  • env | grep DEMOkontrolli, kas muutuja on keskkonnas
  • echo "$PATH"vaata käskude otsinguteed
  • command -v python3leia esimene väline vaste
  • type cdvaata käsu liiki
  • type -a grepnäita kõik vasted
  • export PATH="$HOME/bin:$PATH"pane oma käskude kataloog otsingutee ette
  • alias ll='ls -lah'loo lühinimi sagedasele käsule
  • source ~/.zshrcloe zsh seadistus uuesti

Olulised mõisted

  • nimi='Mari'shellimuutuja
  • export NIMI='Mari'keskkonnamuutuja
  • PATHotsinguteede järjekord
  • $HOME/binoma käskude koht
  • typealias, builtin või programm
  • ~/.zshrczsh seadistusfail
  • ~/.bashrcbash seadistusfail

Paketihaldus: apt, dnf, pacman, brew

Baas ja süsteemipilt

Eesmärk

vali õige tase: süsteemi paketihaldur tööriistadele, keele paketihaldur teekidele ja projektisõltuvused võimalusel projekti sisse

Põhikujud

  • apt search ripgrepotsi Debianis või Ubuntus
  • sudo apt install ripgreppaigalda Debianis või Ubuntus
  • sudo dnf install ripgreppaigalda Fedoras
  • sudo pacman -S ripgreppaigalda Archis
  • brew install ripgreppaigalda Homebrew'ga
  • python3 -m pip install requestspaigalda Pythoni pakett aktiivsesse keskkonda
  • npm installpaigalda projekti Node.js sõltuvused
  • command -v rgkontrolli, kas käsk leitakse

Tööriistad ja tasemed

  • apt, dnf, pacmanLinuxi süsteemipaketid
  • brewmacOS-i kasutajataseme tööriistad
  • updatevärskenda nimekirja või retsepte
  • upgradeuuenda paigaldatud paketid
  • --caskHomebrew graafiline rakendus
  • venvPythoni projekti eraldi keskkond
  • package.jsonNode.js projekti sõltuvused

Lihtne veaotsing käsureal

Baas ja süsteemipilt

Eesmärk

kitsenda viga enne parandamist: täpne veateade, asukoht, olemasolu, käsu leitavus, õigused ja shelli/süntaksi kontroll

Kontrollrada

  • pwdkontrolli, kus oled
  • ls -lahvaata faile, õigusi ja peidetud kirjeid
  • command -v rgkas käsk leitakse
  • type -a rgnäita kõik sama nimega vasted
  • ls -l skript.shvaata skripti õigusi
  • head -n 1 skript.shvaata skripti shebang'i
  • bash skript.shkäivita teadlikult Bashiga
  • grep --helpkinnita käsu süntaks

Levinud veateated

  • command not foundkäsk puudub, nimi vale või pole PATH-is
  • No such file or directorytee, failinimi või asukoht on vale
  • Permission deniedõigus ei luba lugeda, kirjutada või käivitada
  • syntax errorvale shell või vale käsukuju
  • package not foundpaketinimi või nimekiri on vale
  • database is lockedteine paketihaldur töötab

Võrgu põhitööriistad

Baas ja süsteemipilt

Eesmärk

erista nelja küsimust: kas host vastab, kas veeb vastab, millised liidesed on ja kas kohalik teenus kuulab porti

Kontrollrada

  • curl -I https://example.com/kontrolli veebiteenust
  • ping -c 4 example.comkontrolli hosti ICMP vastust
  • ip avaata Linuxi liideseid
  • ifconfigvaata macOS-i liideseid
  • ss -ltnvaata Linuxi kuulavaid TCP-porte
  • lsof -iTCP -sTCP:LISTEN -n -Pvaata macOS-i kuulavaid porte
  • nc -vz example.com 443kontrolli TCP ühendust porti

Olulised võtmed ja vaated

  • -Iküsi ainult HTTP päised
  • -Ljärgi HTTP suunamisi
  • LISTENport kuulab
  • 127.0.0.1ainult oma masin
  • 0.0.0.0kõik IPv4 liidesed
  • ip/ssLinuxi tööriistad
  • ifconfig/lsofmacOS-i põhivariandid

Osa III: Failid, võrk ja süsteemitöö — täisspikker

Failide kopeerimine ja sünkroonimine

Praktiline kasutus

Eesmärk

vali tööriist allika järgi: cp samas masinas, scp üle SSH, rsync korduvaks sünkroonimiseks ja curl/wget veebist toomiseks

Põhikujud

  • cp fail.txt koopia.txttee koopia
  • cp -R kaust kaust-koopiakopeeri kaust
  • scp fail.txt kasutaja@server:/tmp/saada serverisse
  • rsync -avn kaust/ kasutaja@server:/tmp/kaust/kontrolli enne
  • rsync -av kaust/ kasutaja@server:/tmp/kaust/sünkrooni sisu
  • wget https://example.com/arhiiv.tar.gzlaadi fail
  • curl -L -O https://example.com/arhiiv.tar.gzjärgi ja salvesta

Olulisemad lipud, märgid ja kiirnupud

  • cp -Rkopeeri kaust
  • scp -rsaada kaust
  • rsync -asäilita struktuur
  • rsync -nproovi enne
  • curl -Ljärgi suunamist
  • curl -Osalvesta nimega

Kauglogimine ja SSH

Praktiline kasutus

Eesmärk

tee SSH korduvkasutatavaks: kontrolli olemasolevaid võtmeid, lisa avalik võti serverisse, kasuta ~/.ssh/config alias't ja macOS-is Keychaini

Põhirada

  • ssh kasutaja@server.example.orgproovi tavalist sisselogimist
  • ls -la ~/.sshvaata olemasolevaid võtmefaile
  • ssh-add -lvaata agendis olevaid võtmeid
  • ssh-keygen -t ed25519 -C 'kasutaja@arvuti'loo võti ainult vajadusel
  • ssh-add --apple-use-keychain ~/.ssh/id_ed25519macOS: salvesta paroolifraas Keychaini
  • ssh-copy-id -i ~/.ssh/id_ed25519.pub kasutaja@server.example.orglisa avalik võti serverisse
  • ssh opik-serverkasuta config-alias't
  • ssh -v opik-serverdiagnostika

Olulised failid ja mõisted

  • id_ed25519privaatvõti; ära jaga
  • id_ed25519.pubavalik võti serverisse
  • ~/.ssh/configühenduse alias
  • ~/.ssh/authorized_keyslubatud võtmed
  • known_hostsserverite sõrmejäljed
  • AddKeysToAgentlisa võtmed agenti
  • UseKeychainmacOS paroolifraasi hoidmine
  • IdentitiesOnly yeskasuta nimetatud võtit

Veebist sisu toomine ja tekstivaade: curl, wget, lynx

Praktiline kasutus

Eesmärk

vali curl ühe vastuse või päiste jaoks, wget allalaadimise jaoks ja lynx HTML-i rahulikuks tekstivaateks

Põhikujud

  • curl -I https://example.com/kontrolli URL-i
  • curl -L -o leht.html https://example.com/salvesta HTML
  • wget -O leht.html https://example.com/laadi faili
  • curl -sL https://example.com/ | lynx -stdin -dumploe tekstina
  • lynx -dump -listonly https://example.com/kogu lingid

Olulisemad lipud, märgid ja kiirnupud

  • curl -Ivaata päiseid
  • curl -Ljärgi suunamist
  • curl -Osalvesta nimega
  • wget -cjätka tõmmet
  • lynx -dumptekstvaade
  • lynx -listonlyainult lingid

Arhiivid ja pakkimine

Praktiline kasutus

Eesmärk

arhiiv koondab faili- või kaustapuu üheks tervikuks ja pakkimine teeb selle terviku väiksemaks või lihtsamini jagatavaks

Põhikujud

  • tar -cf proov.tar kaust/loo arhiiv
  • tar -tf proov.tarvaata sisu
  • tar -czf proov.tar.gz kaust/loo gzip-arhiiv
  • tar -xzf proov.tar.gz -C siht/paki lahti sihtkohta
  • zip -r proov.zip kaust/loo zip
  • unzip -l proov.zipvaata zip sisu

Olulisemad lipud, märgid ja kiirnupud

  • tar -cfloo arhiiv
  • tar -tfvaata sisu
  • tar -czfgzip-iga kokku
  • tar -xzfpaki gzip lahti
  • zip -rzip kaust
  • unzip -lvaata zip sisu

Tervete kataloogipuude haldus ja jagamine

Praktiline kasutus

Eesmärk

terve projekti või kaustapuu puhul vali tööriist selle järgi, kas tahad koopiat, korduvat sünkroonimist, arhiivi või versiooniajalugu

Põhikujud

  • cp -R projekt projekt-koopiatee kohalik koopia
  • rsync -avn projekt/ projekt-varu/kontrolli enne
  • rsync -av projekt/ kasutaja@server:/srv/projekt/sünkrooni serverisse
  • scp -r projekt kasutaja@server:/tmp/saada kiirelt
  • tar -czf projekt.tgz projekt/tee hetkearhiiv
  • gitjälgi ajalugu

Olulisemad lipud, märgid ja kiirnupud

  • projekt/sisu sees
  • projektkaust tervikuna
  • rsync -nproovi enne
  • cp -asäilita metaandmed

Protsessid, tööd ja signaalid

Praktiline kasutus

Eesmärk

erista protsessi, shelli tööd ja signaali: vaata, mis jookseb, peata vajadusel ja too pikk töö taustale

Põhikujud

  • ps aux | grep pythonotsi protsess
  • ps aux | sort -nrk 3 | headCPU sööjad
  • ps aux | sort -nrk 4 | headmälusööjad
  • sleep 300 &käivita taustal
  • jobsvaata töid
  • fg %1too töö ette
  • topjälgi reaalajas
  • killsaada signaal
  • bgjätka taustal

Olulisemad lipud, märgid ja kiirnupud

  • Ctrl-ckatkesta programmi töö
  • Ctrl-zpeata ajutiselt; fg ette, bg taustale
  • &käivita taustal
  • %1töö number
  • kill -15viisakas lõpp
  • kill -9jõuga lõpp

Logid ja teenused

Praktiline kasutus

Eesmärk

kui teenus ei tööta, alusta kahest küsimusest: kas teenus on üldse aktiivne ja mida logid selle kohta ütlevad

Põhikujud

  • systemctl status sshvaata seisu
  • journalctl -u ssh -n 50loe viimast logi
  • journalctl -u ssh -fjälgi teenust
  • tail -n 50 /var/log/syslogloe faili lõppu
  • tail -f /var/log/syslogjälgi faili
  • tail -n 50 /var/log/syslog | lesssirvi viimaseid ridu

Olulisemad lipud, märgid ja kiirnupud

  • statusteenuse seis
  • -u nimiüks teenus
  • -n 50viimased read
  • -fjälgi reaalajas
  • --since todayainult tänane

Püsivad terminalisessioonid: tmux ja screen

Praktiline kasutus

Eesmärk

kasuta püsivat sessiooni siis, kui SSH võib katkeda või kui pikk töö peab jätkuma ka pärast akna sulgemist

Põhikujud

  • tmux new -s opikloo tmux
  • tmux attach -t opiknaase tmux-i
  • screen -S opikloo screen
  • screen -r opiknaase screeni
  • nohup pikk-kaik > logi 2>&1 &jäta töö käima
  • disownseo shellist lahti

Olulisemad lipud, märgid ja kiirnupud

  • Ctrl-b deraldu tmux-ist
  • Ctrl-a deraldu screenist
  • tmux lssessioonide loend
  • screen -lssessioonide loend

Graafilised rakendused kaugmasinast

Praktiline kasutus

Eesmärk

kaugelt graafika kasutamisel eelista lihtsaimat toimivat teed: veebiliides enne X11-edastust, port forwarding enne toorest kaugtöölauda.

Põhikujud

  • ssh -L 8888:localhost:8888 kasutaja@servertoo veebiliides kohale
  • http://localhost:8888ava edasi suunatud teenus
  • ssh -X kasutaja@serverproovi lihtsat X11
  • code --remote ssh-remote+server /tee/projektiniIDE üle SSH

Valiku rusikareeglid

  • veebiliidestavaliselt mugavaim
  • ssh -Lport edasi
  • ssh -XX11 erijuht
  • Remote SSHarenduseks parem

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

Teksti otsimine: grep ja sugulased

Töövood

Eesmärk

grep valib sisendist välja ainult need read, mis sobivad mustriga; see on filtritööriist, mitte tekstiredaktor

Põhikujud

  • grep 'kass' loomad.txtotsi ühest failist
  • grep -i 'kass' loomad.txtotsi tõstuta
  • grep -n 'koer' loomad.txtnäita reanr
  • grep -r 'TODO' .otsi puust
  • grep -F 'https://example.com' fail.txtotsi täpset sõnet
  • grep -v '^#' seadistus.confjäta kommentaarid välja

Olulisemad lipud, märgid ja kiirnupud

  • -itõstutundetu
  • -nreanumbrid
  • -rrekursiivne
  • -vjäta vasted välja
  • -Ftäpne sõne
  • -Elaiendatud regex

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 fainult failid
  • -name '*.txt'nime järgi
  • -print0ohutu eraldus
  • xargs -0loe ohutult
  • -exec {} +käivita otse
  • read -r -d ''loe nullmärgini

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'i

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

ajastatud töö tähendab, et käsk jookseb kindlal ajal ilma sinu avatud terminalita; tähtsad on ajaväljad, täisrajad ja logifail

Põhikujud

  • crontab -lvaata olemasolevat
  • crontab naide.cronpaigalda fail
  • /bin/date >> "$HOME"/cron-naide.log 2>&1testi käsitsi
  • tail -n 5 "$HOME"/cron-naide.logvaata logi

Olulisemad lipud, märgid ja kiirnupud

  • */15 * * * *iga 15 min
  • >>lisa logisse
  • 2>&1vead samasse
  • $HOMEkasutaja kodu
  • /bin/datetäisrada

Osa V: Arendus ja töövood — täisspikker

Git, GitHub ja töövoog

Edasijõudnu

Eesmärk

Git hoiab muutuste ajalugu; erista tööpuud, stage'i ja commit'i ning vaata diff enne üle.

Põhikujud

  • git statusvaata seis
  • git diffmuutused tööpuus
  • git diff --cachedmuutused stage'is
  • git add fail.txtpane stage'i
  • git commit -m '...'tee commit
  • git switch -c parandusloo haru
  • git pull --ff-onlyuuenda puhtalt
  • git push -u origin parandussaada haru
  • git restore --staged fail.txtvõta stage'ist

Olulisemad lipud, märgid ja kiirnupud

  • HEADpraegune tipp
  • mainpõhirida
  • originkaugrepo
  • stagejärgmine commit

Pythoni venv ja eraldatud keskkonnad

Edasijõudnu

Eesmärk

venv hoiab ühe projekti Pythoni paketid eraldi; kõige olulisem on, et terminal, pip ja IDE näeksid sama keskkonda.

Põhikujud

  • python3 -m venv .venvloo keskkond
  • source .venv/bin/activateaktiveeri shellis
  • python -m pip install -U pipuuenda pip
  • python -m pip install requestspaigalda pakett
  • python -m pip listvaata pakke
  • command -v pythonkontrolli tõlgendit
  • deactivatevälju keskkonnast

Olulised märgid

  • (.venv)aktiivne keskkond
  • .venv/projekti sees
  • python -m pipkindlam kui pip
  • Dockerterve keskkond

Dockeri alused

Edasijõudnu

Eesmärk

image on käivitusmall; konteiner on sellest tehtud töötav eksemplar; andmed püsivad ainult hostis, volume'is või Git-repos.

Põhikäsud

  • docker --versionkontrolli olemasolu
  • docker run --rm alpine echo tereohutu esimene käivitus
  • docker build -t rakendus .ehita image
  • docker run --rm rakenduskäivita image
  • docker pstöötavad konteinerid
  • docker logs -f nimijälgi logi
  • docker exec -it nimi shsisene töötavasse konteinerisse
  • docker compose up -dteenused taustale
  • docker compose downpeata komplekt

Olulisemad lipud, märgid ja kiirnupud

  • imagekäivitusmall
  • konteinertöötav eksemplar
  • Dockerfileimage'i retsept
  • compose.yamlmitu teenust
  • volumepüsiv andmesisu
  • registryimage'ite hoidla
  • --rmkustuta lühikatse konteiner pärast lõppu
  • -p 8000:8000seo hosti port konteineri pordiga
  • --mount type=bind,src="$PWD",dst=/appjaga praegune kaust konteinerisse
  • -w /appmäära konteineri töökaust
  • down -vpeatab ja kustutab ka volume'id

IDE-d ja arenduskeskkonnad

Edasijõudnu

Eesmärk

hea arenduskeskkond tähendab, et terminal, Git, interpreter ja vajadusel konteiner osutavad samale projektile, mitte eri maailmadele.

Kontrollid ja valikud

  • python3 --versionkontrolli Pythonit
  • python3 -m pip --versionkontrolli pip-i
  • git --versionkontrolli Git-i
  • docker --versionkontrolli Dockerit
  • node --versionkontrolli Node'i
  • npm --versionkontrolli npm-i

Olulised mõisted

  • interpretertegelik käivitaja
  • sisseehitatud terminalsama projektivaade
  • Remote SSHtööta kaugmasinas
  • devcontainerIDE konteineris

Andmeteaduse eelteadmised käsurea vaates

Edasijõudnu

Eesmärk

andmeteaduse stardis ei piisa ühest tööriistast; vaja on korraga failivormingute tunnetust, SQL-i mõtteviisi, programmeerimist ja statistilist mõtlemist.

Põhikujud

Põhiteljed

  • programmeeriminekorduv töö loogikaks
  • SQLküsi ja seo andmeid
  • vormingudCSV, JSON, XML
  • statistikaanna tähendus

CSV, JSON ja XML käsureal

Edasijõudnu

Eesmärk

vormingu tüüp ütleb, milline tööriist mõistab andmeid kõige loomulikumalt: tabelit, puud või märgendistruktuuri.

Põhikujud

  • head fail.csvvaata CSV algust
  • column -s, -t < fail.csvjoonda lihtne CSV
  • cut -d, -f1 fail.csvvõta üks veerg
  • python3 -m json.tool fail.jsonvorminda JSON
  • jq '.students[].name' fail.jsonvali JSON välju
  • xmllint --format fail.xmlvorminda XML

Olulised mõisted

  • CSVlihtne tabel
  • JSONobjektide puu
  • XMLmärgendipuu
  • jqJSON filtriks

Andmebaasi algus: sqlite ja Python

Edasijõudnu

Eesmärk

SQLite on sild tekstifailide ja päris andmebaasimõtte vahel: failina lihtne, SQL-i mõttes siiski relatsiooniline andmebaas.

Põhikujud

  • sqlite3 andmed.dbava või loo fail
  • sqlite3 andmed.db '.tables'vaata tabeleid
  • sqlite3 andmed.db '.schema'vaata struktuuri
  • sqlite3 andmed.db 'select * from students limit 5;'piilu ridu
  • sqlite3 andmed.db 'select city, count(*) from students group by city;'koonda read
  • sqlite3 andmed.db 'select s.name, r.score from results r join students s on s.id = r.student_id;'ühenda tabelid
  • python3 naide.pykasuta Pythonist

Olulised mõisted

  • primary keyrea unikaalne id
  • foreign keyviide teise tabelisse
  • JOINseo tabelid
  • GROUP BYkoonda read

Kompileerimine ja käivitamine: shell, Python, C, C++, Go, Rust, Java

Edasijõudnu

Eesmärk

mõni fail käivitatakse tõlgendiga otse; mõni fail kompileeritakse kõigepealt teise vormi; mõni tulemus on päris binaar

Põhikäsud

  • goGo tööriist
  • cargoRusti tööriist
  • python3käivita Python
  • cckompileeri C
  • javackompileeri Java
  • javakäivita JVM-is

Tüüpilised kujud

  • chmod +x hello.shõigused
  • python3 hello.pykäivita Python
  • cc hello.c -o hello-ckompileeri C
  • go run hello.goGo tööriist
  • go build -o hello-go hello.goGo tööriist
  • mkdir -p hello-rustloo puuduv rada

LaTeX käsurealt

Edasijõudnu

Eesmärk

LaTeX-i mõte on lihtne: lähtetekst jääb tekstifailiks, aga buildist sünnib väga täpselt juhitav PDF.

Põhikujud

  • pdflatex tere.texkompileeri PDF
  • xelatex tere.texparem Unicode tugi
  • latexmk -pdf tere.texkorda vajalikud käigud
  • latexmk -xelatex tere.texxelatex automaatselt
  • ls tere.*vaata abifaile
  • open tere.pdfava tulemus

Olulised failid

  • .texlähtefail
  • .pdftulemus
  • .auxristviidete abi
  • .logkompileerimislogi

Lisad — täisspikker

Lisa A: kopeeritavad minitestid

Referents

Eesmärk

Siia koondame lühikesed peatükkide kaupa jaotatud copy-paste harjutused.

Põhikujud

  • mkdir -p ~/tmp/test1loo puuduv rada
  • cd ~/tmp/test1vaheta kaust
  • touch a.txt b.txtloo või aja tempel
  • mkdir kaustloo kaust
  • mv b.txt kaust/liiguta/nimeta
  • ls -lapikk + peidetud
  • printfvorminda tekst

Olulisemad lipud, märgid ja kiirnupud

  • |toru edasi
  • >kirjuta üle
  • >>lisa faili lõppu juurde

Lisa B: spikrite register

Referents

Eesmärk

kõige lühemad meelespead teemade kaupa: failid, tekst, võrk, arendus, loogika ja protsessid

Mida siit leiad

  • Failidliigu ja vaata
  • Tekstloe ja filtreeri
  • Võrkühendu ja kopeeri
  • ArendusGit, Docker, build
  • Loogikatorud ja vead
  • Protsessidtööd ja signaalid

Lisa C: sõnastik ja terminoloogia

Referents

Eesmärk

ühtlusta sõnad nagu CLI, GUI, viip, shell, lipp, stdin, stdout ja repo kogu õpiku ulatuses

Põhimõisted

  • CLIkäsurida
  • GUIgraafiline liides
  • viip ehk promptootab sisestust
  • shelltõlgendab käske
  • lippkäsu valik
  • repoGit-i hoidla

Lisa D: edasised võimalused ja lugejate soovid

Referents

Eesmärk

järgmine voor peaks pigem süvendama olemasolevaid tugevaid teemasid kui lisama juhuslikke uusi baaskäske

Tugevad järgmised teemad

  • R ja notebook'idanalüüsi järgmine aste
  • Git järgmine asteharud ja konfliktid
  • Shelliskriptid IIveakindlam loogika
  • Statistika sildandmetöö mõtteviis
  • systemd timeridajastus Linuxis
  • Varukoopiadtaastamine ja kontroll

Lisa E: usaldusväärsed viited ja lisalugemine

Referents

Eesmärk

ametlikud käsiraamatud ja getting started allikad shelli, SSH, Git-i, Dockeri, JSON-i, SQLite'i ja LaTeX-i jaoks

Edasiõppimise teemad

  • Shellid ja põhikäsudbash, zsh, coreutils
  • SSH ja võrkOpenSSH, curl, wget
  • Git ja GitHubdocs ja Pro Git
  • Dockerget started ja compose
  • JSON, CSV, XML, SQLiteametlikud viited
  • LaTeXprojekt ja CTAN

Lisa F: shelli seadistusfailid bash ja zsh jaoks

Referents

Eesmärk

See lisa annab kopeeritavad algusfailid kahe levinud shelli jaoks:

Põhikujud

  • echo "$SHELL"prindi tekst
  • ls -la "$HOME"pikk + peidetud
  • cp ~/.zshrc ~/.zshrc.backupkopeeri
  • cp ~/.bashrc ~/.bashrc.backupkopeeri
  • alias ll='ls -lh'lühinimi
  • alias la='ls -la'lühinimi
  • mvliiguta/nimeta
  • rmkustuta

Olulisemad lipud, märgid ja kiirnupud

  • ;järjest
  • |toru edasi
  • 2>vead faili
  • -hlühike abi
  • &&ainult õnnestumisel