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

Peatüki vaade

Linux/Unix/macOS käsurea kiirõpik

Praegu loed peatükki Lisa B: spikrite register, mis kuulub osasse Lisad.

Lisa B: spikrite register

Kiirviited tööülesande järgi. Failinimed ja serveriaadressid asenda oma töö omadega; tähenduse ja ohutuse kohta loe vastavat peatükki.

Failid

  • pwd kus ma olen
  • ls -la mida siin näha on
  • ls -lt | head vaata, mis viimati muutus
  • du -ak . | sort -nr | less leia suurimad failid ja kaustad
  • du -k -d 1 . | sort -nr võrdle alamkatalooge, ka peidetuid (Linux/macOS)
  • cp kopeeri
  • mv liiguta või nimeta ümber
  • rm fail kustuta fail prügikastita; kontrolli enne sihti
  • rmdir kaust kustuta tühi kataloog
  • rm -r kaust kustuta kataloog koos sisuga
  • mkdir -p ~/tmp/proov loo puuduva teega harjutuskataloog; olemasolev sisu säilib
  • sha256sum fail arvuta faili räsi
  • find . -name 'muster' otsi faile
  • find . -type f -size +100M otsi suuri faile
  • find . -type f -mtime -7 otsi hiljuti muudetud faile

Tekst

  • cat kuva fail
  • less sirvi faili
  • less sees 78g mine reale 78
  • less-is 25% liigu failis 25% kaugusele
  • tail -f logi.txt jälgi kasvavat logi
  • tail -n 50 logi.txt | less sirvi viimaseid logiridu
  • grep otsi
  • grep -R 'muster' . otsi rekursiivselt tervest puust
  • sort sorteeri
  • uniq -c loenda kõrvutised võrdsed read
  • seq -w 0 99 | pr -5 -t pane numbrid mitmesse veergu
  • seq -w 0 9999 | pr -8 -t -l 1250 tee üks pr loogiline leht

Õigused

  • ls -l vaata õigusi
  • chmod +x fail tee käivitatavaks
  • chown kasutaja:grupp fail muuda omanikku

Võrk

  • ssh host logi sisse
  • scp fail host:/tee/ kopeeri üle võrgu
  • rsync -av allikas/ host:/siht/ sünkroniseeri

Arendus

  • git status
  • git diff
  • git diff --cached
  • git add
  • git commit
  • python3 -m venv .venv
  • python3 -u skript.py näita Pythoni väljundit kohe
  • cat > skript.sh <<'EOF' loo skript mitmerealise sisendi abil
  • cc hello.c -o hello-c kompileeri C programm
  • go build -o hello-go hello.go koosta Go binaarfail
  • cargo run koosta ja käivita Rusti projekt
  • javac Hello.java kompileeri Java klass
  • docker run --rm image käsk
  • docker run --rm -it -v "$PWD":/app -w /app python:3.13-slim bash ava projekt konteineris
  • docker build -t nimi . koosta konteinerkuju (image)
  • docker compose up --build käivita mitme teenuse arenduskomplekt
  • docker compose logs -f app jälgi teenuse logisid
  • docker compose exec app bash sisene töötavasse teenusesse
  • column -s, -t < fail.csv | less -S kuva lihtne CSV tabelina
  • python3 -m json.tool fail.json | less vaata JSON-i loetavalt
  • jq '.voti' fail.json vali JSON-ist välju
  • xmllint --format fail.xml | less vorminda XML loetavaks
  • sqlite3 andmed.db '.tables' kuva SQLite tabelid
  • sqlite3 andmed.db 'select * from tabel limit 5;' kuva paar esimest rida
  • sqlite3 andmed.db 'select a.name, b.score from b join a on a.id=b.a_id;' tee lihtne JOIN

Git: visuaalne spikker

Git-spikker: käsud töövoo järgi
Git-spikker: käsud töövoo järgi

Kaart paigutab käsud töövoogu. Üksikasjad ja katsetatav näide on Giti peatükis.

Ettevaatust: git clean -fd kustutab jälgimata faile, commit --amend kirjutab viimase kirje ümber. Pildil lühendatud -m vajab sõnumit, näiteks git commit -m 'Paranda juhend'. Enne muutmist vaata git status ja git diff --cached.

Repo algus

  • git init loo uus repo praeguses kataloogis
  • git clone URL too olemasolev repo oma arvutisse
  • git config user.name "Nimi" seadista selle repo versioonikirjete autorinimi
  • git config user.email "nimi@example.com" seadista selle repo autori e-post; --global muudaks kasutaja vaikeseadet kõigis repodes
  • git remote -v näita kaugrepo aadresse

Harud

  • git branch näita kohalikke harusid
  • git switch main liigu põhiharule
  • git switch -c parandus loo uus haru ja liigu sinna
  • git branch -d parandus kustuta ühendatud kohalik haru
  • git branch -D parandus kustuta haru jõuga; kasuta ainult siis, kui oled kindel

Kaugrepo

  • git fetch origin too serverist värske info, kuid ära ühenda seda praegusesse harusse
  • git pull --ff-only uuenda kohalik haru ainult siis, kui seda saab teha edasinihkena
  • git push -u origin parandus saada uus haru kaugreposse ja seo see ülesvoolu haruga
  • git push saada juba seotud haru uued versioonikirjed kaugreposse
  • git remote prune origin eemalda kohalikud viited kaugrepo harudele, mida serveris enam pole

Ühendamine ja korrastamine

  • git merge haru ühenda teine haru praegusesse harusse
  • git rebase origin/main tõsta oma praeguse haru versioonikirjed värske põhiharu lõppu
  • git merge --abort katkesta pooleliolev ühendamine
  • git rebase --abort katkesta pooleliolev rebase
  • git rebase --continue jätka rebase'i pärast konflikti lahendamist

Ajalugu ja ülevaatus

  • git log --oneline näita ajalugu lühidalt
  • git log --graph --decorate --all -n 20 näita harude ja siltide paiknemist
  • git show HEAD näita viimast versioonikirjet
  • git diff HEAD võrdle tööpuud viimase versioonikirjega
  • git blame fail näita, millisest versioonikirjest faili read pärinevad

Taaste ja tühistamine

  • git restore fail taasta tööfail vaheala sisust; salvestamata muudatus kaob
  • git restore --staged fail eemalda fail vahealalt, kuid jäta faili sisu alles
  • git revert COMMIT loo uus versioonikirje, mis võtab vana muudatuse tagasi
  • git reflog näita, kus HEAD hiljuti käis
  • git restore --source=COMMIT -- fail taasta tööfail nimetatud versioonikirjest; vaheala ei muutu

Ajutine töö

  • git stash push -m 'kirjeldus' pane jälgitud failide töö kõrvale; -u kaasab ka jälgimata failid
  • git stash list näita kõrvale pandud töid
  • git stash show vaata kõrvale pandud töö kokkuvõtet
  • git stash pop too töö tagasi; eduka rakendamise järel eemalda sahtlist, konflikti korral säilita
  • git stash apply too töö tagasi, kuid jäta see sahtlisse alles

Andme- ja arendusprojektides kasulik

  • git lfs install lülita Git LFS kasutaja jaoks sisse
  • git lfs track '*.psd' määra tulevastele PSD-failidele LFS-reegel; salvesta ka loodud .gitattributes, varasem ajalugu ei teisendu
  • git check-ignore -v fail kontrolli, milline .gitignore reegel faili peidab
  • git diff -- . ':(exclude)*.ipynb' võrdle tööpuu muudatusi, jättes märkmikufailid kõrvale
  • git grep 'muster' otsi jälgitud failidest kiiresti

Käsud, mida ei tasu paanikas käivitada

  • git reset --hard viskab tööpuu ja vaheala muudatused ära
  • git clean -fd kustutab jälgimata failid ja kataloogid
  • git push --force-with-lease kirjutab kaugrepo haru ajalugu ümber
  • git branch -D haru kustutab kohaliku haru ka siis, kui Git peab seda ühendamata tööks

Kui plaanid kasutada mõnda neist käskudest, tee enne git status, loe väljund läbi ja salvesta vajadusel töö koopia eraldi kataloogi.

Loogika

  • käsk1 ; käsk2 käivita käsud järjest
  • | suuna väljund edasi
  • > kirjuta väljund faili; vana sisu kirjutatakse üle
  • >> lisa faili lõppu juurde; ära kirjuta üle
  • 2> kirjuta vead eraldi faili
  • > fail 2>&1 kirjuta nii väljund kui vead samasse faili
  • tee fail näita ekraanil ja kirjuta faili
  • && jätka ainult edu korral
  • || jätka vea korral
  • echo $? kuva eelmise käsu lõpetuskood
  • set -o pipefail ära peida toru sees tekkinud vigu
  • type nimi vaata, kas nimi on alias, sisekäsk või programm
  • command -v nimi vaata, mida shell käivitaks

Protsessid

  • käsk & saada töö taustale
  • ps aux vaata protsesse
  • top või htop jälgi protsesse
  • kill PID lõpeta protsess
  • kill %1 lõpeta shelli töö numbri järgi
  • jobs näita shelli töid
  • Ctrl-c katkesta programmi töö
  • Ctrl-z peata programm ajutiselt
  • bg %1 jätka tööd 1 taustal
  • fg %2 too töö 2 ette
  • wait oota taustatöö lõppemist
  • nohup käsk > fail 2>&1 & jäta töö sessioonist vähem sõltuvaks
  • disown %1 eemalda töö shelli tööde nimekirjast
  • ps aux | sort -nrk 3 | head vaata suurima protsessorikasutusega protsesse
  • ps aux | sort -nrk 4 | head vaata suurima mälukasutusega protsesse

Ajalugu

  • history kuva käsuajalugu
  • history | tail -n 20 kuva viimased ajalookirjed hiljem, kui torud on juba selged
  • alias h='history | tail -n 20' tee ajaloo lühikäsk
  • !! korda eelmist käsku hiljem, kui ajaloo-otseteed on juba tuttavad
  • !n korda ajaloo kirjet numbri järgi
  • !sona korda viimast sobivat käsku

Peatüki täisspikker

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