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

Peatüki vaade

Linux/Unix/macOS käsurea kiirõpik

Praegu loed peatükki Kettaruum ja süsteemi maht, mis kuulub osasse Osa II: Süsteemi pilt ja haldus.

Kettaruum ja süsteemi maht

Loogika

Algajal tuleb väga kiiresti ette küsimus:

  • kuhu ruum kadus
  • kui suur mingi kaust on
  • kas kettal on üldse veel vaba ruumi

Siin on oluline eristada kahte eri vaadet:

  • faili- või kettasüsteemi üldseis
  • konkreetse kausta või puu suurus

df ja du lahendavad need kaks eri küsimust.

Kiirülevaade

Erista kaht küsimust: kas failisüsteemis on ruumi ja mis konkreetse kausta sees ruumi võtab.

Käsk või töövoogMilleksMida tavaliselt näed
df -hvaata failisüsteemide mahtutabel kogu-, kasutatud ja vaba ruumiga
du -sh .mõõda praegust kausta kokkuüks kokkuvõtlik rida
du -a .mõõda kõik kirjedpikk nimekiri failidest ja kaustadest
sorttõsta suuremad ettesamad read uues järjekorras
lesslehitse pikka nimekirjarahulik lehitsetav vaade

Tüüpilised algaja vead

  • arvatakse, et df ja du annavad sama vastuse
  • vaadatakse ainult kogumahtu, mitte seda, milline kaust ruumi võtab
  • unustatakse peidetud kaustad nagu .git, .venv või .cache

Kiirspikker

  • df -h näitab failisüsteemide kasutust
  • df -h . näitab selle koha failisüsteemi, kus sa parajasti oled
  • du -sh . näitab praeguse kausta kogusuurust
  • du -sh * näitab alamkaustade ja failide suurusi
  • du -sh * | sort -h sorteerib inimloetavad mahud väiksemast suuremani
  • du -a . | sort -nr | less näitab suurimaid kirjeid detailsemalt

Käivita need käsud


df -h
df -h .
du -sh .
du -sh * 2>/dev/null
du -sh * 2>/dev/null | sort -h

Kui tahad detailsemalt näha, kuhu ruum kaob:


du -a . 2>/dev/null | sort -nr | less

Kui tahad vaadata oma kodukataloogi tüüpilisi “ruumisööjaid”, siis proovi:


cd "$HOME"
du -sh Downloads Documents Desktop 2>/dev/null

df: kui palju ruumi failisüsteemil on

df vastab küsimusele:

“Kui täis see kettasüsteem või mount point on?”

Näide:


df -h

Lipp -h tähendab inimesele loetavat vormi, näiteks:

  • K
  • M
  • G
  • T

Kui tahad teada, millisel failisüsteemil praegune töökaust asub:


df -h .

See on hea nipp, sest mitme mount point'i puhul ei huvita sind alati kogu masin, vaid just see failisüsteem, mille peal su töökaust asub.

du: kui suur see kaust ise on

du vastab küsimusele:

“Kui palju ruumi see kaust või failipuu kasutab?”

Näited:


du -sh .
du -sh *

Siin tähendab:

  • -s summary ehk kogu kokkuvõte
  • -h inimesele loetav suurus

See kombinatsioon on üks praktilisemaid ruumikontrolle kogu käsureal.

Kui tahad ainult ühte kogusummat, siis sobib hästi:


du -sh .

Kui tahad näha ka faili- ja alamkaustade taset detailsemalt, siis:


du -a .

Siin tähendab:

  • -a näita mitte ainult kaustu, vaid ka üksikfaile

Just see teeb du-st väga praktilise veaotsingutööriista siis, kui ruum on “kuskile ära kadunud”.

df ja du ei vasta samale küsimusele

Oluline vahe:

  • df räägib failisüsteemi tasemest
  • du räägib faili või kausta tasemest

Näiteks:

  • df -h võib näidata, et kettal on alles ainult 5% vaba ruumi
  • du -sh Downloads võib näidata, et suure osa sellest võtab Downloads

Kõige tavalisem töövoog

Kui ruum tundub otsas olevat, siis liigu nii:

  1. vaata df -h, kas probleem on päriselt ruumis
  2. mine kausta, kus arvad suure sisu olevat
  3. käivita du -sh *
  4. sorteeri tulemus, et näha suurimaid kohti

Näide:


cd "$HOME"
du -sh * 2>/dev/null | sort -h

Siin tähendab sort -h, et sorditakse inimloetavaid suurusi nagu 12K, 450M ja 3.1G, mitte ainult paljaid numbreid.

Sellest on tihti kohe näha, kas ruumi söövad näiteks:

  • allalaadimised
  • vana projektikaust
  • andmefailid
  • buildi väljundid

Kui sellest ei piisa ja tahad minna sügavamale, siis järgmine väga tavaline päriselu käik on:


du -a . 2>/dev/null | sort -nr | less

Selle loogika on:

  • du -a . käib kogu puu läbi ja annab iga faili või kausta suuruse
  • sort -nr paneb suurimad kirjed ette
  • less lubab tulemust rahulikult sirvida ja otsida

See on üks kõige praktilisemaid “mis siin kõige rohkem ruumi võtab?” käsujadasid kogu Unix-laadses käsureas.

du -a | sort -nr | less päris töös

See kuju väärib eraldi väljaütlemist, sest seda kasutatakse palju rohkem kui alguses arvata võiks.

Näide:


cd "$HOME"
du -a . 2>/dev/null | sort -nr | less

Mida siin vaadata:

  • kõige ülemised read on tavaliselt suurimad ruumisööjad
  • kui näed mõnd kausta, mine sinna sisse ja korda sama käsku kitsamas kohas
  • less sees saad otsida näiteks /Downloads, /node_modules, /.git, /.venv

See on hea iteratiivne tööviis:

  1. alusta suuremast kohast
  2. leia suurim alamkaust või fail
  3. mine sinna sisse
  4. korda sama analüüsi

Inimloetav vs toores numbriline sort

Kõige universaalsem kuju on:


du -a . 2>/dev/null | sort -nr | less

Seda on hea kasutada, sest:

  • sort -n töötab numbrite peal selgelt
  • du annab suurused ühes sisemises ühikus
  • tulemus on hästi võrreldav

Mõnes keskkonnas meeldib inimestele rohkem ka inimloetav kuju:


du -ah . 2>/dev/null | sort -hr | less

Aga see eeldab, et sinu sort toetab -h lippu. Selle õpiku põhikuju on seetõttu pigem du -a . | sort -nr | less.

Peidetud kaustad võivad olla kõige suuremad

Väga sageli söövad ruumi just peidetud kaustad, mida tavaline ls kohe silma ette ei too, näiteks:

  • .git
  • .venv
  • .cache
  • .npm

Peidetud kaustade kaasamiseks kasuta:


du -sh .[!.]* * 2>/dev/null | sort -h

See näitab koos:

  • peidetud kirjed
  • tavalised kirjed

Kui ruum “justkui kadus ära”, siis see on üks esimesi käske, mida tasub proovida.

Ettevaatus

Kõiki suuri käske ei tasu pimesi käivitada suvalises kohas.

Näiteks:


du -sh /

võib olla aeglane ja mitte eriti informatiivne, eriti kui sul ei ole õigusi kõiki kaustu lugeda.

Praktilisem on alustada kitsamalt:

  • du -sh .
  • du -sh *
  • du -sh "$HOME"/*

Kas failide arv ja suurus on sama asi?

Ei ole.

  • üks väga suur fail võib võtta rohkem ruumi kui tuhat väikest
  • samas tuhanded väikesed failid võivad teha töö aeglaseks või segaseks

Kui tahad lisaks suurusele aru saada ka failide hulgast, siis saad vaadata näiteks:


find . -type f | wc -l

See ei mõõda ruumi, aga aitab näha, kas probleem võib olla ka väga suures failide arvus.

Minitest

  1. Uuri välja, kui palju vaba ruumi on failisüsteemil, kus asub sinu praegune töökaust.
  2. Vaata, kui suur on sinu praegune kaust kokku.
  3. Sorteeri praeguse kausta alamkaustad suuruse järgi.
  4. Pane ühe lausega kirja, mis vahe on df -h ja du -sh . vahel.

Peatüki täisspikker

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