Optimaliser diskplassen din: df og du kommandoer i Linux

Kommandoene df og du er uunnværlige verktøy i Bash-skallet, som brukes i Linux, macOS og andre Unix-baserte operativsystemer, for å holde oversikt over diskplassbruken. Ved hjelp av disse kommandoene kan du raskt identifisere hva som opptar lagringskapasiteten på systemet ditt.

Oversikt over total, tilgjengelig og brukt diskplass

Bash-miljøet tilbyr to praktiske kommandoer for å analysere diskplass. df (forkortelse for diskfilsystemer) gir deg innsikt i tilgjengelig og brukt diskplass, mens du (forkortelse for diskbruk) hjelper deg med å finne ut hva som faktisk bruker opp den brukte plassen.

For å starte, skriv kommandoen df i et Bash-terminalvindu og trykk enter. Du vil da se en omfattende liste med informasjon, som kan se litt overveldende ut ved første øyekast, men som er lett å forstå. Hvis du kjører df uten spesifikke alternativer, får du en oversikt over tilgjengelig og brukt plass for alle monterte filsystemer.

df

Hver linje i outputen er organisert i seks kolonner, som presenterer følgende informasjon:

Filsystem Navnet på filsystemet.
1K-blokker Antallet 1K-blokker som er tilgjengelig på dette filsystemet.
Brukt Antallet 1K-blokker som er i bruk på dette filsystemet.
Tilgjengelig Antallet 1K-blokker som er ledig på dette filsystemet.
Bruk% Prosentandelen av brukt plass på dette filsystemet.
Fil Filsystemnavnet, hvis angitt som parameter i kommandoen.
Montert på Monteringspunktet for filsystemet.

Du kan forandre visningen av 1K-blokkene til mer forståelige enheter ved å bruke -B (blokkstørrelse) alternativet. For å benytte dette, skriv df, et mellomrom, deretter -B og en bokstav fra listen K, M, G, T, P, E, Z eller Y. Disse representerer henholdsvis kilo, mega, giga, tera, peta, exa, zeta og yotta fra multiplum av 1024-skalaen.

For eksempel, hvis du ønsker å se diskbruken i megabyte, skriver du følgende kommando. Legg merke til at det ikke er noe mellomrom mellom B og M.

df -BM

Alternativet -h (menneskeleselig) instruerer df til å bruke den mest passende enheten for hvert filsystems størrelse. Du vil da se filsystemer listet med størrelser i gigabyte, megabyte eller til og med kilobyte.

df -h

Dersom du trenger å se informasjonen i form av antall inoder, kan du bruke -i (inoder) alternativet. En inode er en datastruktur som brukes i Linux filsystemer for å beskrive filer og metadata om dem. På Linux inneholder en inode informasjon som filnavn, endringsdato, plassering på harddisken og mer, for hver fil og katalog. Dette er kanskje ikke relevant for alle, men systemadministratorer har ofte behov for denne informasjonen.

df -i

Med mindre du spesifiserer noe annet, vil df gi deg informasjon om alle monterte filsystemer. Dette kan resultere i en lang og uoversiktlig output. For eksempel er oppføringene for /dev/loop pseudo-filsystemer som lar deg montere en fil som om den var en partisjon. Hvis du benytter deg av Ubuntus snap-metode for å installere applikasjoner, vil du sannsynligvis se mange slike oppføringer. Siden de i realiteten ikke er filsystemer vil den tilgjengelige plassen på disse alltid være 0, og derfor ikke nødvendig å se på.

Vi kan instruere df til å ekskludere filsystemer av en viss type. For å gjøre dette må vi vite hvilken filsystemtype vi ønsker å ekskludere. Alternativet -T (utskriftstype) gir oss denne informasjonen, ved å inkludere filsystemtypen i outputen.

df -T

Oppføringene /dev/loop er alle av typen squashfs. Vi kan ekskludere disse ved å bruke følgende kommando:

df -x squashfs

Dette gir oss en mer oversiktlig output. For å få en total oversikt, kan vi legge til alternativet --total.

df -x squashfs --total

På samme måte kan vi be df om kun å inkludere filsystemer av en bestemt type, ved hjelp av alternativet -t (type).

df -t ext4

Hvis vi ønsker å se størrelsene for et spesifikt sett med filsystemer, kan vi spesifisere disse med navn. Stasjonsnavn i Linux er alfabetiske. Den første stasjonen heter /dev/sda, den andre /dev/sdb og så videre. Partisjoner er nummerert, så /dev/sda1 er den første partisjonen på stasjonen /dev/sda. Vi ber df returnere informasjon om et bestemt filsystem ved å sende inn filsystemets navn som en kommandoparameter. La oss ta en titt på den første partisjonen på den første harddisken.

df /dev/sda1

Legg merke til at du kan bruke jokertegn i filsystemnavnet, der * representerer en sekvens av tegn og ? representerer et enkelt tegn. For å se alle partisjonene på den første stasjonen, kan du for eksempel bruke:

df /dev/sda*

Vi kan også be df om å rapportere om et sett med spesifiserte filsystemer. Her ber vi om størrelsene på filsystemene /dev og /run, og inkluderer en totalsum.

df -h --total /dev /run

For ytterligere å tilpasse utdataen, kan vi definere hvilke kolonner som skal inkluderes. Dette gjøres ved å bruke --output-alternativet etterfulgt av en kommaseparert liste over de ønskede kolonnenavnene. Husk at det ikke skal være mellomrom i den kommaseparerte listen.

kilde Navnet på filsystemet.
fstype Type filsystem.
itotal Størrelsen på filsystemet i inoder.
iused Plassen som brukes i filsystemet i inoder.
iavail Den tilgjengelige plassen i filsystemet i inoder.
ipcent Prosentandelen av brukt plass i filsystemet i inoder.
størrelse Størrelsen på filsystemet, standard i 1K blokker.
brukt Plassen som brukes i filsystemet, standard i 1K blokker.
tilgjengelig Den tilgjengelige plassen i filsystemet, standard i 1K blokker.
pcent Prosentandelen av brukt plass i filsystemet, standard i 1K blokker.
fil Filsystemnavnet hvis angitt på kommandolinjen.
target Monteringspunktet for filsystemet.

La oss be df om å rapportere om den første partisjonen på den første stasjonen, med lesbare tall, og kolonnene source, fstype, size, used, avail og pcent:

df -h /dev/sda1 --output=source,fstype,size,used,avail,pcent

Lange kommandoer er perfekte for å bli gjort om til aliaser. Vi kan opprette et alias dfc (for df custom) ved å skrive følgende og trykke Enter:

alias dfc="df -h /dev/sda1 --output=source,fstype,size,used,avail,pcent"

Når du skriver dfc og trykker Enter vil du se samme resultat som om du hadde skrevet inn den lange kommandoen. For å gjøre dette aliaset permanent, kan du legge det til i .bashrc– eller .bash_aliases-filen din.

Vi har nå sett på hvordan vi kan avgrense output fra df slik at informasjonen den presenterer er skreddersydd dine behov. Hvis du ønsker å ta den motsatte tilnærmingen og få df til å vise all informasjonen, kan du benytte -a (alle) alternativet i kombinasjon med --output-alternativet som vist under. -a (alle) vil tvinge df til å inkludere hvert filsystem, og bruk av --output uten en kommaseparert liste av kolonner får df til å inkludere hver kolonne.

df -a --output

Ved å pipe utdataen fra df gjennom less-kommandoen får du en praktisk måte å se hvor omfattende outputen kan bli.

df -a --output | less

Finne ut hva som tar opp den brukte diskplassen

La oss grave litt dypere for å finne ut hva som opptar plassen på denne PCen. Vi begynner med en av df-kommandoene vi har brukt tidligere:

df -h -t ext4

Vi ser her at 78% av diskplassen er brukt på den første partisjonen på den første harddisken. Vi kan bruke du-kommandoen for å finne ut hvilke mapper som inneholder mest data. Hvis vi kjører du uten noen alternativer vil vi få en liste over alle kataloger og underkataloger i den katalogen kommandoen ble startet fra. Hvis du gjør dette fra hjemmemappen din vil listen bli veldig lang.

du

Output formatet er veldig enkelt. Hver linje viser størrelsen og navnet på en katalog. Standard enheten for størrelsen er 1K-blokker. For å tvinge du til å bruke en annen blokkstørrelse, kan du bruke -B (blokkstørrelse) alternativet. For å bruke dette alternativet skriver du du, et mellomrom, så -B, og en bokstav fra listen K, M, G, T, P, E, Z eller Y, som vi gjorde for df. For å bruke 1M blokker, bruk følgende kommando:

du -BM

Akkurat som df har også du et lesbart alternativ, -h, som bruker den passende blokkstørrelsen basert på størrelsen for hver katalog.

du -h

Alternativet -s (oppsummere) gir en total størrelse for hver katalog, uten å vise underkataloger. Følgende kommando ber du returnere informasjon i oppsummeringsformat, i lesbare tall, for alle kataloger:

du -h -s *

under gjeldende arbeidskatalog.

du -sm Pictures/* | sort -nr

Bildemappen inneholder definitivt mest data. Vi kan be du sortere mapper i størrelse, fra størst til minst.

Ved å begrense informasjonen som returneres av df og du er det enkelt å finne ut hvor mye diskplass som er i bruk, og å lokalisere hva som bruker opp denne plassen. Du kan deretter ta en informert beslutning om å flytte noen data til annet lagringsmedium, legge til en ekstra harddisk i maskinen, eller slette overflødig data. Disse kommandoene har mange alternativer. Vi har beskrevet de mest brukte her, men du kan se en fullstendig liste over alternativer for df kommandoen og for du kommandoen på Linux sine man-sider.