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.
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
- Terminali esimesed sammudalusta siit
- Abi leidmineotsi tuge
- Kataloogid ja failidtee muudatusi
- Teksti vaatamineloe rahulikult
Põhimõisted
CLIkäsuridaGUIgraafiline liidesterminalaken käsureaksshelltõlgendab käske
Tüüpilised kujud
pwdkontrolli asukohtalsvaata sisuman lsloe abicd ~/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
Soovitatud järjestused
- Terminali esimesed sammud → Abi leidmine → Kataloogid ja failid → Teksti vaatamine ja liikuminealgaja põhirada
- Failide muutmine → Käskude kuju → Torud ja suunamine → Esimene tervikharjutusseo alus tervikuks
- Failisüsteemi kaart → Kettaruum → Õigused → Võrgu põhitööriistadehita süsteemi pilt
- grep → Teksti teisendamine → sort, uniq, wc → Kompileerimine ja käivitaminefiltrid ja arendus
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 asukohtalsvaata sisuwhoamivaata kasutajatdatevaata praegust kuupäeva ja aegahistoryvaata käsuajalugucd ~/tmpmine ajutiste failide kataloogi; sobib harjutamiseksmkdir proovloo uus kataloogcd proovsisene loodud kataloogi
Olulisemad lipud, märgid ja kiirnupud
Tablõpeta nimiCtrl-ckatkesta programmi tööCtrl-rotsi ajaloostCtrl-area algusCtrl-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 SYNOPSISls --helpGNU ls-i kiire abi; macOS-i ls kasutab man-lehtewhatis lskäsu ühe rea kirjeldusapropos archiveotsi käsiraamatute kirjeldustestinfo coreutilsGNU põhikäsud, kui dokumentatsioon on paigaldatud
Märgid ja valikud
qvälju man-i lehitsejast/tekstotsi man-lehelt; kinnita Enterigan / 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 asukohtalsvaata sisumkdir -p ~/tmp/faili-naitedloo terve puuduv teecd ~/tmp/faili-naitedmine harjutamatouch fail.txtloo puuduv fail või uuenda ajatempleidcp algne.txt koopia.txttee koopiamv vana.txt uus.txtnimeta ümbermv fail.txt kaust/liiguta kataloogirm fail.txtkustuta failrmdir tyhi-kataloogeemalda tühi kataloog
Olulisemad lipud, märgid ja kiirnupud
.praegune kataloog..ülemkataloog~kodukataloogls -aka peidetudls -Apeidetud ilma.ja..kirjetetals -ladetailne vaade"fail nimi.txt"nimi tühikugarm -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 sisuless /etc/serviceslehitse pikemat failihead -n 7 fail.txtnäita esimesed seitse ridatail -n 7 fail.txtnäita viimased seitse ridatail -f app.logoota lisanduvaid ridu; lõpeta Ctrl-c-galess a.txt b.txtava mitu nimetatud faili
Märgid ja valikud
qless: välju/tekstless: otsi edasin / Nless: järgmine / eelmine vaste78g / 25%less: rida 78 / veerandi pealeg / Gless: algusse / lõppuvless: 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 mugavaltnano fail.txtlihtne tekstiredaktorvim fail.txtklassikaline redaktorvi fail.txtsama pere variantcommand -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 kujulskäsk-lalipud/etcargumentcp 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äärtustcp 'fail nimi.txt' koopia.txtnimi tühikugatouch -- -algab-kriipsuga.txtära tõlgenda lipunals *.txtkõik .txt lõpuga failidls 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 tekstprintfvorminda tekstcatnäita failiteeekraan ja failwcloe 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 korral2>stderr eraldi faili2>&1stderr samasse kohta/dev/nullmust auk väljundile
Tüüpilised kujud
käsk > valjund.txtstdout failikäsk >> logi.txtlisa stdout faili lõppu juurdekäsk 2> vead.txtstderr eraldikäsk > valjund.txt 2> vead.txteralda mõlemadkäsk 2> /dev/nullpeida veateatedcat fail.txt | wc -ltoru loendussekäsk ; järgminejärgmine alatikäsk && järgminejärgmine ainult edulkäsk || varuplaanvaruplaan vea korralkä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 juurdeCtrl-ckatkesta programmi töömanvaata abi
Lühike töövoog
pwd && lskontrolli alguskohtamkdir proov && cd proovloo töökataloogecho tere > sonad.txttee esimene ridaecho maailm >> sonad.txtlisa järgmine ridacat sonad.txt && wc -l sonad.txtkontrolli tulemustcp 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 ridaecho "$SHELL"seadistatud sisselogimisshellps -p $$praegu töötav shelliprotsesscommand -v lskust käsk leitaksesw_versmacOS-i versioonwsl -l -vWSL-i jaotused
Olulised mõisted
Linuxkernel ehk tuumGNUpaljud põhikäsudshelltõlgendab käskeWSLLinux WindowsisBSDmacOS-i tööriistaperePowerShellWindowsi 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 asukohtaecho "$HOME"vaata oma koducd /mine juurkataloogicd ~mine kodukataloogils /etc | headpiilu seadistusils -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 mahtdu -sh .praeguse kataloogipuu kogumahtdu -h -d 1 .esimese taseme mahud, ka peidetud kataloogiddu -h -d 1 . | sort -hsordi ühikusufiksiga mahud kasvavaltdu -ak . | sort -nr | lesskõik kirjed 1024-baidistes ühikutes, suurimad ees
Märgid ja valikud
du -sainult kogusummadu -aka üksikfailide mahuddu -kühtlane 1024-baidine ühiksort -harvestab ühikusufiksi järku, siis arvväärtustsort -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 ridachmod u+x skript.shanna omanikule täitminechmod 644 naide.txtsea tekstifaili õigusedchmod 755 skript.shsea käivitatava õigusedsudo chown kasutaja:grupp fail.txtmuuda omanikku
Olulised õigusekujud
rloe sisuwmuuda sisuxkäivita või sisenedtegu on kataloogiga644omanik rw, teised r755omanik 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 kasutajatidloe grupid väljagroupsvaata grupinimesidsudo -lvaata sudo õigusisudo apt updateüks kõrgem käsksu - kasutajavaheta kasutajat
Olulised märgid ja rollid
$tavaline kasutaja%teine levinud tavaviip#root või kõrgemad õigusedrootadministraatori kasutajasudo -iava kõrgem shellsudo 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 shellisexport DEMO=1anna muutuja edasi käivitatavatele programmideleenv | grep DEMOkontrolli, kas muutuja on keskkonnasecho "$PATH"vaata käskude otsinguteedcommand -v python3näita käsu lahendust, ka alias või sisekäsktype cdvaata käsu liikitype -a grepnäita kõik vastedexport PATH="$HOME/bin:$PATH"pane oma käskude kataloog otsingutee ettealias ll='ls -lah'loo lühinimi sagedasele käsulesource ~/.zshrcloe zsh seadistus uuesti
Olulised mõisted
nimi='Mari'shellimuutujaexport NIMI='Mari'keskkonnamuutujaPATHotsinguteede järjekord$HOME/binoma käskude kohttypealias, 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 Ubuntussudo apt install ripgreppaigalda Debianis või Ubuntussudo dnf install ripgreppaigalda Fedorassudo pacman -S ripgreppaigalda Archisbrew install ripgreppaigalda Homebrew'gapython3 -m pip install requestspaigalda Pythoni pakett aktiivsesse keskkondanpm installpaigalda projekti Node.js sõltuvusedcommand -v rgkontrolli, kas käsk leitakse
Tööriistad ja tasemed
apt,dnf,pacmanLinuxi süsteemipaketidbrewmacOS-i kasutajataseme tööriistadupdatevärskenda nimekirja või retsepteupgradeuuenda paigaldatud paketid--caskHomebrew graafiline rakendusvenvPythoni projekti eraldi keskkondpackage.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 oledls -lahvaata faile, õigusi ja peidetud kirjeidcommand -v rgkas käsk leitaksetype -a rgnäita kõik sama nimega vastedls -l skript.shvaata skripti õigusihead -n 1 skript.shvaata skripti shebang-ridabash -n skript.shkontrolli süntaksit ilma käivitamatagrep --helpkinnita käsu süntaks
Levinud veateated
command not foundkäsk puudub, nimi vale või pole PATH-isNo such file or directorytee, failinimi või asukoht on valePermission deniedõigus ei luba lugeda, kirjutada või käivitadasyntax errorvale shell või vale käsukujupackage not foundpaketinimi või nimekiri on valedatabase 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 veebiteenustping -c 4 example.comkontrolli hosti ICMP vastustip avaata Linuxi liideseidifconfigvaata macOS-i liideseidss -ltnvaata Linuxi kuulavaid TCP-portelsof -iTCP -sTCP:LISTEN -n -Pvaata macOS-i kuulavaid portenc -vz example.com 443kontrolli TCP ühendust porti
Olulised võtmed ja vaated
curl -Iküsi HTTP-päised HEAD-päringugacurl -Ljärgi HTTP ümbersuunamisiLISTENport kuulab127.0.0.1ainult oma masin0.0.0.0kõik IPv4-liidesedip/ssLinuxi tööriistadifconfig/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 koopiacp -R kaust kaust-koopiakopeeri kataloogscp fail.txt kasutaja@server:/tmp/saada serverissersync -avn kaust/ kasutaja@server:/tmp/kaust/kontrolli ennersync -av kaust/ kasutaja@server:/tmp/kaust/sünkrooni sisuwget https://artifical.eu/linux/data/generated-words.txtlaadi failcurl -fLO https://artifical.eu/linux/data/generated-words.txtjärgi suunamisi, HTTP-vea korral ebaõnnestu
Olulisemad lipud, märgid ja kiirnupud
cp -Rkopeeri kataloogscp -rsaada kataloogrsync -arekursiivselt, säilitades tavalised Unixi metaandmedrsync -nproovi ennecurl -Ljärgi suunamistcurl -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 sisselogimistls -la ~/.sshvaata olemasolevaid võtmefailessh-add -lvaata agendis olevaid võtmeidssh-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õtmehoidjassessh-copy-id -i ~/.ssh/id_ed25519.pub kasutaja@server.example.orglisa avalik võti serverissessh opik-serverkasuta seadistusfaili aliastssh -v opik-serverdiagnostika
Olulised failid ja mõisted
id_ed25519privaatvõti; ära jagaid_ed25519.pubavalik võti serverisse~/.ssh/configühenduse alias~/.ssh/authorized_keyslubatud võtmedknown_hostsserverite sõrmejäljedAddKeysToAgentlisa võtmed agentiUseKeychainvõtmefraas macOS-i võtmehoidjasIdentitiesOnly 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-icurl -L -o leht.html https://example.com/salvesta HTMLwget -O leht.html https://example.com/laadi failicurl -fsSL https://example.com/ | lynx -stdin -dumploe tekstinalynx -dump -listonly https://example.com/kogu lingid
Olulisemad lipud, märgid ja kiirnupud
curl -Ivaata päiseidcurl -Ljärgi suunamistcurl -Osalvesta URL-i lõpuosa nimegawget -cjätka tõmmetlynx -dumptekstvaadelynx -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 arhiivtar -tf proov.tarvaata sisutar -czf proov.tar.gz kaust/loo gzip-arhiivtar -xzf proov.tar.gz -C siht/paki lahti sihtkohtazip -r proov.zip kaust/loo zipunzip -l proov.zipvaata zip sisu
Olulisemad lipud, märgid ja kiirnupud
tar -cfloo arhiivtar -tfvaata sisutar -czfgzip-iga kokkutar -xzfpaki gzip lahtizip -rpaki kataloog ZIP-arhiiviunzip -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 koopiarsync -avn projekt/ projekt-varu/kontrolli ennersync -av projekt/ kasutaja@server:/srv/projekt/sünkrooni serverissescp -r projekt kasutaja@server:/tmp/saada kiirelttar -czf projekt.tgz projekt/tee hetkearhiivgitjälgi ajalugu
Olulisemad lipud, märgid ja kiirnupud
projekt/rsync-allikas: kataloogi sisuprojektrsync-allikas: kataloog isersync -nproovi ennecp -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 protsessps aux | sort -nrk 3 | headsuur CPU kasutus selles hetkepildisps aux | sort -nrk 4 | headsuur mälukasutussleep 300 &käivita taustaljobsvaata töidfg %1too töö ettetopjälgi reaalajaskillsaada signaalbgjätka taustal
Olulisemad lipud, märgid ja kiirnupud
Ctrl-ckatkesta programmi tööCtrl-zpeata ajutiselt;fgette,bgtaustale&käivita taustal%1töö numberkill -15viisakas lõppkill -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 sshdjournalctl -u ssh -n 50selle teenuse viimased 50 kirjetjournalctl -u ssh --since todaytänased teenusekirjedjournalctl -u ssh -fjälgi juurde tulevaid kirjeidtail -n 20 app.logtavalise logifaili lõpp, ka ilma systemd-tatail -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 sessioontmux lsloetle sessioonid välisest shellisttmux attach -t katseühendu olemasoleva sessioonigascreen -S katsealternatiiv: loo screeni sessioonscreen -r katsetaasühendu eraldatud screeniga
Märgid ja valikud
Ctrl-b, siis dtmux: eraldu, töö jätkubCtrl-a, siis dscreen: eraldu, töö jätkubexitlõ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 serveriteenusenihttp://localhost:8888ava edasi suunatud teenusssh -X kasutaja@serverproovi lihtsat X11code --remote ssh-remote+server /tee/projektiniIDE üle SSH
Valiku rusikareeglid
veebiliidestavaliselt mugavaimssh -Lport edasissh -XX11 erijuhtRemote 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 reagrep -in 'kass' loomad.txteira tähesuurust, lisa reanumbridgrep -x 'kass' loomad.txtainult tervenisti sobiv ridagrep -v '^#' seadistus.confjäta välja # märgiga algavad readgrep -F '.json' nimed.txtpunkt tähendab päris punkti, mitte suvalist märkigrep -rn 'TODO' .otsi failipuust koos failinimede ja reanumbritegagrep -c 'kass' loomad.txtloenda vastega ridu, mitte kõiki esinemisi
grep-i tulemuskoodid
0vähemalt üks vaste1vasteid pole, mitte tingimata viga2tavaliselt 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äheksecho 'a,b,c' | tr ',' '\n'tee ridadekscut -d ':' -f 1 andmed.txtvõta esimene välicut -d ':' -f 1,3 andmed.txtvõta mitu väljaprintf 'nimi vanus\nMari 20\n' | column -tjoonda tabelstrings /bin/ls | head -n 20loe binaarist tekstpastekleebi veerge
Olulisemad lipud, märgid ja kiirnupud
[:lower:]väiketähed[:upper:]suurtähedcut -dvali eraldajacut -fvali väljadcolumn -tjoonda tabelstringstekstijupid
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 readsort viljad.txt | uniqeemalda kordusedsort viljad.txt | uniq -cloe kordusedwc -l data/sample-text.txtloe readwc -w data/sample-text.txtloe sõnadjoin nimed.txt linnad.txtühenda võtme järgiprjaga veergudeks
Olulisemad lipud, märgid ja kiirnupud
sort -nnumbridsort -rtagurpidiuniq -cloenda kordusedwc -lridade arvwc -wsõnade arvpr -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 esimeneecho 'kass koer kass' | sed 's/kass/rebane/g'asenda kõikprintf 'Mari:20\nJaan:21\n' | awk -F: '{print $1}'võta esimene väliprintf 'Mari:20\nJaan:21\n' | awk -F: '{print $1, $2}'võta kaks väljaecho 'kass koer kass' | perl -pe 's/kass/rebane/g'asenda Perligaprintf '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 failidfind . -type f -name '*.txt' -print0 | xargs -0 wc -lloe read ohutultfind . -type f -name '*.log' -exec ls -lh {} +käivita otsefind 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ärkxargs -0xargs: eralda argumendid nullmärgiga-exec käsk {} +käivita otseread -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 veajuhtumitecho $?vaata lõpetuskoodibash skript.shkäivita Bashigash skript.shkäivita sh-ga./skript.shkasuta shebang-rida
Olulisemad lipud, märgid ja kiirnupud
#!/usr/bin/env bashvali Bash$1esimene argument"$@"kõik argumendidif ... fitingimusfor ... donekordusexit 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 ajastusicrontab -emuuda tabelit, säilitades muud tööd/bin/date >> "$HOME"/cron-naide.log 2>&1testi ajastatavat käsku käsitsitail -n 5 "$HOME"/cron-naide.logkontrolli, kas töö lisab kirjeid
Märgid ja valikud
*/15 * * * *minutitel 0, 15, 30 ja 450 8 * * 1-5tööpäeviti kell 08.00 süsteemi ajavööndiscrontab failasendab kogu kasutaja ajastustabelicrontab -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 seisgit diffmuutused tööpuusgit diff --cachedmuutused vahealalgit add fail.txtlisa vahealalegit commit -m '...'loo versioonikirjegit switch -c parandusloo harugit pull --ff-onlyuuenda puhtaltgit push -u origin parandussaada harugit restore --staged fail.txteemalda vahealalt
Olulisemad lipud, märgid ja kiirnupud
HEADpraegune tippmainpõhiridaoriginkaugrepovahealajä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 keskkondsource .venv/bin/activateaktiveeri shellispython -m pip install -U pipuuenda pippython -m pip install requestspaigalda pakettpython -m pip listvaata pakkecommand -v pythonkontrolli tõlgenditdeactivatevälju keskkonnast
Olulised märgid
(.venv)aktiivne keskkond.venv/projekti seespython -m pipkindlam kuipipDockerterve 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 olemasoludocker run --rm alpine echo tereohutu esimene käivitusdocker build -t rakendus .koosta konteinerkujudocker run --rm rakenduskäivita konteinerdocker pstöötavad konteineriddocker logs -f nimijälgi logidocker exec -it nimi shsisene töötavasse konteinerissedocker compose up -dteenused taustaledocker compose downpeata ja eemalda konteinerid ning võrk
Olulisemad lipud, märgid ja kiirnupud
imagekonteinerkuju ehk käivitusmallkonteinerkäivitatud või peatatud eksemplarDockerfilekonteinerkuju retseptcompose.yamlmitu teenustvolumepüsiv andmeköideregistrykonteinerkujude 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öökataloogdocker 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 Pythonitpython3 -m pip --versionkontrolli pip-igit --versionkontrolli Gitidocker --versionkontrolli Dockeritnode --versionkontrolli Node'inpm --versionkontrolli npm-i
Olulised mõisted
tõlgendajakoodi tegelik käivitajasisseehitatud terminalsama projektivaadeRemote SSHtööta kaugmasinasdevcontainerIDE 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
fail -> head/less -> column/jq -> sqlite3 -> python3alusta väikese vaatusega- Pythoni
venvprojekti töölaud - CSV, JSON ja XMLandmete kuju
- SQLite ja Pythonesimene andmebaas
- Teksti teisendamineväiksed filtrid
- Vood ja tabelidkoondamine
Põhiteljed
programmeeriminekorduv töö loogikaksSQLküsi ja seo andmeidvormingudCSV, JSON, XMLstatistikaanna 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 algustcolumn -s, -t < fail.csvjoonda lihtne CSVcut -d, -f1 fail.csvvõta üks veergpython3 -m json.tool fail.jsonvorminda JSONjq '.students[].name' fail.jsonvali JSON väljuxmllint --format fail.xmlvorminda XML
Olulised mõisted
CSVlihtne tabelJSONobjektide puuXMLmärgendipuujqJSON 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 failsqlite3 andmed.db '.tables'vaata tabeleidsqlite3 andmed.db '.schema'vaata struktuurisqlite3 andmed.db 'select * from students limit 5;'piilu ridusqlite3 andmed.db 'select city, count(*) from students group by city;'koonda readsqlite3 andmed.db 'select s.name, r.score from results r join students s on s.id = r.student_id;'ühenda tabelidpython3 naide.pykasuta Pythonist
Olulised mõisted
primary keyrea unikaalne idforeign keyviide teise tabelisseJOINseo tabelidGROUP 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-shelliskriptpython3 hello.pykäivita Pythoni lähtefailcc hello.c -o hello-ckompileeri C lähtefail käivitatavaks failiks./hello-ckäivita äsja koostatud C programmc++ hello.cpp -o hello-cppkompileeri C++go build -o hello-go hello.gokoosta Go binaarfailcargo runRust: koosta ja käivita Cargo projektjavac Hello.javaJava: loo baitkoodifail Hello.classjava 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 PDFxelatex tere.texparem Unicode tugilatexmk -pdf tere.texkorda vajalikud käigudlatexmk -xelatex tere.texxelatex automaatseltls tere.*vaata abifaileopen 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 koerpython -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 vaataTekstloe ja filtreeriVõrkühendu ja kopeeriArendusGit, Docker, koostamineLoogikatorud ja veadProtsessidtöö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äsuridaGUIgraafiline liidesviipehkpromptootab sisestustshelltõlgendab käskelippkäsu valikrepoGiti 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
Rja märkmikud (notebook)analüüsi järgmine asteGitjärgmine asteharud ja konfliktid- Shelliskriptid IIveakindlam loogika
- Statistika sildandmetöö mõtteviis
systemdtimeridajastus 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 shellicp -i ~/.zshrc ~/.zshrc.varutee olemasolevast failist varu; ära kirjuta varu pimesi ülezsh -n ~/.zshrckontrolli zsh süntaksit ilma käivitamatabash -n ~/.bashrckontrolli Bashi süntaksit ilma käivitamatasource ~/.zshrckäivita muudetud zsh seadistus praeguses shelliszsh -fava zsh kasutaja rc-faile lugematabash --noprofile --norcava Bash profiile lugemata
Märgid ja valikud
~/.zshrcinteraktiivse zsh seadistus~/.bashrcinteraktiivse mitte-login Bashi seadistus~/.bash_profilelogin-Bash; võib laadida .bashrcPATHprogrammide otsinguteed; järjekord loeb