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

Kõikide osade koondspikrid ühel lehel.

Kõik osade spikrid

See koondvaade on mõeldud kiireks sirvimiseks, printimiseks ja teemade meeldetuletamiseks. Kõik peatükkide lõpus olevad kokkuvõtted on siin taas ühes kohas.

Spikrite indeks

Peatükkide lõpus olevad täisspikrid on koondatud ka eraldi osaspikriteks. Nii saab õpikut kasutada kahel viisil: peatüki kaupa õppides ja hiljem kiire teatmematerjalina.

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 ajutiste failide kataloogi; 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, koostamine
  • 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 kataloogis 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 ajutiste failide kataloogi; sobib harjutamiseks
  • mkdir proovloo uus kataloog
  • cd proovsisene loodud kataloogi

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

Leia tundmatu käsu tähendus ja oma süsteemis toetatud valikud.

Käsud ja näited

  • man lslehitsetav käsiraamat; alusta jaotistest NAME ja SYNOPSIS
  • ls --helpGNU ls-i kiire abi; macOS-i ls kasutab man-lehte
  • whatis lskäsu ühe rea kirjeldus
  • apropos archiveotsi käsiraamatute kirjeldustest
  • info coreutilsGNU põhikäsud, kui dokumentatsioon on paigaldatud

Märgid ja valikud

  • qvälju man-i lehitsejast
  • /tekstotsi man-lehelt; kinnita Enteriga
  • n / Njärgmine / eelmine otsinguvastus

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 puuduv fail või uuenda ajatempleid
  • cp algne.txt koopia.txttee koopia
  • mv vana.txt uus.txtnimeta ümber
  • mv fail.txt kaust/liiguta kataloogi
  • rm fail.txtkustuta fail
  • rmdir tyhi-kataloogeemalda tühi kataloog

Olulisemad lipud, märgid ja kiirnupud

  • .praegune kataloog
  • ..ülemkataloog
  • ~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

Vali faili pikkuse ja küsimuse järgi: kogu sisu, lehitsemine, algus või lõpp.

Käsud ja näited

  • cat /etc/hostskuva lühikese faili sisu
  • less /etc/serviceslehitse pikemat faili
  • head -n 7 fail.txtnäita esimesed seitse rida
  • tail -n 7 fail.txtnäita viimased seitse rida
  • tail -f app.logoota lisanduvaid ridu; lõpeta Ctrl-c-ga
  • less a.txt b.txtava mitu nimetatud faili

Märgid ja valikud

  • qless: välju
  • /tekstless: otsi edasi
  • n / Nless: järgmine / eelmine vaste
  • 78g / 25%less: rida 78 / veerandi peale
  • g / Gless: algusse / lõppu
  • vless: ava määratud redaktor; pärast väljumist naased
  • :n / :pless: järgmine / eelmine fail

Failide muutmine: nano ja esimene kokkupuude vim-iga

Algaja

Eesmärk

less-iga vaatasid faili; tekstiredaktoriga muudad seda. Alguseks sobib nano, mille klahvijuhis on akna allservas. vi ja vim on klassikalised tekstiredaktorid, kus sisestamine ja käskude…

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
  • --üksinda lõpetab valikute loendi
  • "..."hoia koos; muutujad toimivad
  • '...'täht-tähelt nagu kirjas
  • *failimuster
  • ?üks märk

Tüüpilised kujud

  • head -n 3 fail.txtvalik -n vajab arvväärtust
  • cp 'fail nimi.txt' koopia.txtnimi tühikuga
  • touch -- -algab-kriipsuga.txtära tõlgenda lipuna
  • ls *.txtkõik .txt lõpuga failid
  • ls words.0?.txt0 järel üks märk, mitte tingimata number

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 harjutuskataloogis; 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öökataloog
  • 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"seadistatud sisselogimisshell
  • ps -p $$praegu töötav 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 juurt, oma kodukataloogi ning ajutisi ja süsteemseid katalooge; 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 kataloogi

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

df näitab failisüsteemi vaba ruumi, du loendab valitud failide ja kataloogide kettakasutust.

Käsud ja näited

  • df -h .selle failisüsteemi kasutatud ja vaba maht
  • du -sh .praeguse kataloogipuu kogumaht
  • du -h -d 1 .esimese taseme mahud, ka peidetud kataloogid
  • du -h -d 1 . | sort -hsordi ühikusufiksiga mahud kasvavalt
  • du -ak . | sort -nr | lesskõik kirjed 1024-baidistes ühikutes, suurimad ees

Märgid ja valikud

  • du -sainult kogusumma
  • du -aka üksikfailide mahud
  • du -kühtlane 1024-baidine ühik
  • sort -harvestab ühikusufiksi järku, siis arvväärtust
  • sort -nrarvuliselt kahanev järjestus

Õ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
  • 644omanik rw, teised r
  • 755omanik rwx, teised rx

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 python3näita käsu lahendust, ka alias või sisekäsk
  • 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, sisekäsk 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 projekti sõ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-rida
  • bash -n skript.shkontrolli süntaksit ilma käivitamata
  • 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 lockedandmebaasi hoiab teine toiming; põhjus sõltub programmist

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

  • curl -Iküsi HTTP-päised HEAD-päringuga
  • curl -Ljärgi HTTP ümbersuunamisi
  • 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 kataloog
  • 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://artifical.eu/linux/data/generated-words.txtlaadi fail
  • curl -fLO https://artifical.eu/linux/data/generated-words.txtjärgi suunamisi, HTTP-vea korral ebaõnnestu

Olulisemad lipud, märgid ja kiirnupud

  • cp -Rkopeeri kataloog
  • scp -rsaada kataloog
  • rsync -arekursiivselt, säilitades tavalised Unixi metaandmed
  • rsync -nproovi enne
  • curl -Ljärgi suunamist
  • curl -Osalvesta URL-i lõpuosa nimega

Kauglogimine ja SSH

Praktiline kasutus

Eesmärk

tee SSH korduvkasutatavaks: kontrolli olemasolevaid võtmeid, lisa avalik võti serverisse, kasuta failis ~/.ssh/config määratud aliast ja macOS-is Apple'i võtmehoidjat

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
  • /usr/bin/ssh-add --apple-use-keychain ~/.ssh/id_ed25519macOS: salvesta võtmefraas võtmehoidjasse
  • ssh-copy-id -i ~/.ssh/id_ed25519.pub kasutaja@server.example.orglisa avalik võti serverisse
  • ssh opik-serverkasuta seadistusfaili aliast
  • 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
  • UseKeychainvõtmefraas macOS-i võtmehoidjas
  • 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 -fsSL 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 URL-i lõpuosa nimega
  • wget -cjätka tõmmet
  • lynx -dumptekstvaade
  • lynx -listonlyainult lingid

Arhiivid ja pakkimine

Praktiline kasutus

Eesmärk

arhiiv koondab failid; tihendamine võib mahtu vähendada, kuid juba pakitud sisu puhul mitte tingimata

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 -rpaki kataloog ZIP-arhiivi
  • unzip -lvaata zip sisu

Tervete kataloogipuude haldus ja jagamine

Praktiline kasutus

Eesmärk

terve projekti või kataloogipuu 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/rsync-allikas: kataloogi sisu
  • projektrsync-allikas: kataloog ise
  • rsync -nproovi enne
  • cp -asäilita metaandmed

Protsessid, tööd ja signaalid

Praktiline kasutus

Eesmärk

erista protsessi, shelli tööd ja signaali: vaata, millised protsessid töötavad, peata vajadusel ning jätka pikka tööd taustal

Põhikujud

  • ps aux | grep pythonotsi protsess
  • ps aux | sort -nrk 3 | headsuur CPU kasutus selles hetkepildis
  • ps aux | sort -nrk 4 | headsuur mälukasutus
  • 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

Kontrolli teenuse olekut ja seejärel sama teenuse logi. systemctl/journalctl vajavad systemd-ga Linuxit.

Käsud ja näited

  • systemctl status sshteenuse seis ja hiljutised teated; nimi võib olla sshd
  • journalctl -u ssh -n 50selle teenuse viimased 50 kirjet
  • journalctl -u ssh --since todaytänased teenusekirjed
  • journalctl -u ssh -fjälgi juurde tulevaid kirjeid
  • tail -n 20 app.logtavalise logifaili lõpp, ka ilma systemd-ta
  • tail -f app.logjälgi faili; Ctrl-c lõpetab jälgimise

Püsivad terminalisessioonid: tmux ja screen

Praktiline kasutus

Eesmärk

Säilita interaktiivne serverisessioon ka SSH-ühenduse katkemisel.

Käsud ja näited

  • tmux new -s katseloo nimega sessioon
  • tmux lsloetle sessioonid välisest shellist
  • tmux attach -t katseühendu olemasoleva sessiooniga
  • screen -S katsealternatiiv: loo screeni sessioon
  • screen -r katsetaasühendu eraldatud screeniga

Märgid ja valikud

  • Ctrl-b, siis dtmux: eraldu, töö jätkub
  • Ctrl-a, siis dscreen: eraldu, töö jätkub
  • exitlõpeta praeguse akna shell

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 -N -L 127.0.0.1:8888:localhost:8888 kasutaja@servertunnel juba töötava serveriteenuseni
  • 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

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

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

Git, GitHub ja töövoog

Edasijõudnu

Eesmärk

Git hoiab muutuste ajalugu; erista tööpuud, vaheala ja versioonikirjet ning vaata muudatused enne üle.

Põhikujud

  • git statusvaata seis
  • git diffmuutused tööpuus
  • git diff --cachedmuutused vahealal
  • git add fail.txtlisa vahealale
  • git commit -m '...'loo versioonikirje
  • git switch -c parandusloo haru
  • git pull --ff-onlyuuenda puhtalt
  • git push -u origin parandussaada haru
  • git restore --staged fail.txteemalda vahealalt

Olulisemad lipud, märgid ja kiirnupud

  • HEADpraegune tipp
  • mainpõhirida
  • originkaugrepo
  • vahealajärgmise versioonikirje sisu

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

Konteinerkuju (image) on käivitusmall; konteiner võib töötada või olla peatatud. Konteineri eemaldamisel kaob selle kirjutatav kiht, mitte seotud hostifailid ega püsivad andmeköited.

Põhikäsud

  • docker --versionkontrolli olemasolu
  • docker run --rm alpine echo tereohutu esimene käivitus
  • docker build -t rakendus .koosta konteinerkuju
  • docker run --rm rakenduskäivita konteiner
  • 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 ja eemalda konteinerid ning võrk

Olulisemad lipud, märgid ja kiirnupud

  • imagekonteinerkuju ehk käivitusmall
  • konteinerkäivitatud või peatatud eksemplar
  • Dockerfilekonteinerkuju retsept
  • compose.yamlmitu teenust
  • volumepüsiv andmeköide
  • registrykonteinerkujude hoidla
  • --rmkustuta lühikatse konteiner pärast lõppu
  • -p 127.0.0.1:8000:8000docker run: avalda port ainult oma arvutile
  • --mount type=bind,src="$PWD",dst=/appjaga praegune kataloog konteinerisse
  • -w /appmäära konteineri töökataloog
  • docker compose down -vpeatab ja kustutab ka andmeköited

IDE-d ja arenduskeskkonnad

Edasijõudnu

Eesmärk

heas arenduskeskkonnas osutavad terminal, Git, tõlgendaja ja vajaduse korral konteiner samale projektile.

Kontrollid ja valikud

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

Olulised mõisted

  • tõlgendajakoodi tegelik 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

Erista lähtekoodi, koostatud väljundit ja selle käivitajat. Vali üks paigaldatud tööriistaga keel.

Käsud ja näited

  • sh hello.shtõlgenda POSIX-shelliskript
  • python3 hello.pykäivita Pythoni lähtefail
  • cc hello.c -o hello-ckompileeri C lähtefail käivitatavaks failiks
  • ./hello-ckäivita äsja koostatud C programm
  • c++ hello.cpp -o hello-cppkompileeri C++
  • go build -o hello-go hello.gokoosta Go binaarfail
  • cargo runRust: koosta ja käivita Cargo projekt
  • javac Hello.javaJava: loo baitkoodifail Hello.class
  • java Hellokäivita klass JVM-is, ilma .class-laiendita

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

Kontrolli tulemust, mitte ainult käsu edukat käivitumist.

Harjutuse kontroll

  • ls kaustkas liigutatud fail on õiges kohas?
  • cat proov.txtkas vana ja lisatud rida on mõlemad alles?
  • sort loomad.txt | uniq -ckaks kassi, üks koer
  • python -m pip --versionkas aktiivne Python kasutab projekti .venv-i?

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, koostamine
  • Loogikatorud ja vead
  • Protsessidtööd ja signaalid

Lisa C: sõnastik ja terminoloogia

Referents

Eesmärk

leia mõiste tähendus ning tunne ära ingliskeelne vaste dokumentatsioonis

Põhimõisted

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

Lisa D: edasised võimalused ja lugejate soovid

Referents

Eesmärk

vali jätkuteema päris ülesande järgi ja saada konkreetne soovitus

Tugevad järgmised teemad

  • R ja märkmikud (notebook)analüü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 alustamisjuhendid shelli, SSH, Giti, 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

Hoia üks baasprofiil oma shellile ja lisa ainult vajalikke aliaseid või funktsioone.

Käsud ja näited

  • ps -p $kontrolli praegu töötavat shelli
  • cp -i ~/.zshrc ~/.zshrc.varutee olemasolevast failist varu; ära kirjuta varu pimesi üle
  • zsh -n ~/.zshrckontrolli zsh süntaksit ilma käivitamata
  • bash -n ~/.bashrckontrolli Bashi süntaksit ilma käivitamata
  • source ~/.zshrckäivita muudetud zsh seadistus praeguses shellis
  • zsh -fava zsh kasutaja rc-faile lugemata
  • bash --noprofile --norcava Bash profiile lugemata

Märgid ja valikud

  • ~/.zshrcinteraktiivse zsh seadistus
  • ~/.bashrcinteraktiivse mitte-login Bashi seadistus
  • ~/.bash_profilelogin-Bash; võib laadida .bashrc
  • PATHprogrammide otsinguteed; järjekord loeb