Kommandon som `df` och `du` är oumbärliga verktyg för att övervaka diskutrymmesanvändningen i Bash-skalet, vilket är standard i Linux, macOS och många andra Unix-baserade operativsystem. Dessa kommandon ger dig möjligheten att snabbt och enkelt identifiera vad som konsumerar ditt systems lagringsutrymme.
Översikt över Totalt, Tillgängligt och Använt Diskutrymme
I Bash finns det två centrala kommandon för att hantera information om diskutrymme. Kommandot `df` (diskfilsystem), som ibland benämns som ”disk ledigt”, används för att visa tillgängligt och använt diskutrymme. För att analysera vad som faktiskt upptar det använda diskutrymmet, används kommandot `du` (diskanvändning).
För att börja, skriv `df` i en Bash-terminal och tryck på Enter. Du kommer att se en detaljerad utskrift som liknar skärmdumpen nedan. Om du kör `df` utan några ytterligare argument, visas den totala, använda och tillgängliga diskutrymmesinformationen för alla monterade filsystem. Även om det kan verka överväldigande vid första anblicken, är det ganska enkelt att dechiffrera.
df
Varje rad i utskriften är strukturerad i sex distinkta kolumner:
Filsystem: Namnet på det specifika filsystemet.
1K-block: Totalt antal tillgängliga 1K-block i detta filsystem.
Används: Antal 1K-block som för närvarande används.
Tillgängligt: Antal oanvända 1K-block i detta filsystem.
Använd%: Andelen utrymme som används i detta filsystem, uttryckt i procent.
Fil: Filsystemets namn, om det angetts direkt i kommandot.
Monterad på: Monteringspunkten för filsystemet.
Du kan anpassa utskriften genom att använda alternativet `-B` (blockstorlek), vilket låter dig välja en mer användarvänlig enhet. Genom att skriva `df`, ett mellanslag, `-B` och sedan en av bokstäverna K, M, G, T, P, E, Z eller Y, kan du visa storlekarna i kilo-, mega-, giga-, tera-, peta-, exa-, zeta- eller yottabyte (i 1024-skalan).
Exempelvis, för att se diskanvändningen i megabyte, använder du kommandot nedan. Notera att det inte finns något mellanslag mellan `B` och `M`.
df -BM
Alternativet `-h` (human readable) instruerar `df` att välja den mest lämpliga enheten för varje filsystems storlek. I utskriften nedan kan du se att enheter visas i gigabyte, megabyte och till och med kilobyte.
df -h
Om du behöver undersöka informationen i antal inoder, kan du använda alternativet `-i`. En inode är en datastruktur som används av Linux-filsystem för att lagra metadata om filer. Detta inkluderar namn, ändringsdatum och position på hårddisken. Denna information kan vara särskilt användbar för systemadministratörer.
df -i
Som standard ger `df` information om alla monterade filsystem, vilket ibland kan resultera i en rörig utskrift. Exempelvis kan `/dev/loop` -poster representera pseudofilsystem som tillåter att en fil monteras som om den vore en partition. Om du använder Ubuntus snap-metod för att installera applikationer, kan du ha många sådana poster. Då det tillgängliga utrymmet på dessa alltid är 0, kan det vara fördelaktigt att exkludera dem.
Du kan instruera `df` att exkludera filsystem av en specifik typ. För att veta vilken typ av filsystem som ska exkluderas, använd alternativet `-T` (utskriftstyp). Detta alternativ lägger till typen av filsystem i utskriften.
df -T
I exemplet ovan är `/dev/loop` -posterna av typen `squashfs`. För att exkludera dessa kan du använda kommandot:
df -x squashfs
Detta ger en mer lättöverskådlig utskrift. För att få en summering kan du lägga till alternativet `–total`.
df -x squashfs --total
På motsvarande sätt kan du använda alternativet `-t` (typ) för att endast inkludera filsystem av en specifik typ.
df -t ext4
Om du behöver se storleken på en viss uppsättning filsystem kan du ange deras namn. I Linux är enhetsnamnen alfabetiska. Den första enheten heter `/dev/sda`, den andra `/dev/sdb` och så vidare. Partitionerna numreras, så `/dev/sda1` är den första partitionen på enheten `/dev/sda`. Genom att ange filsystemets namn som en parameter till `df`, får du information om det specifika filsystemet. Låt oss till exempel titta på informationen för den första partitionen på den första hårddisken:
df /dev/sda1
Det är även möjligt att använda jokertecken i filsystemets namn, där `*` matchar noll eller flera valfria tecken och `?` matchar ett enskilt tecken. För att till exempel se alla partitioner på den första enheten kan du använda:
df /dev/sda*
Du kan be `df` att rapportera om en uppsättning namngivna filsystem, till exempel filsystemen `/dev` och `/run`, och dessutom få en totalsumma:
df -h --total /dev /run
För ytterligare anpassning kan du styra vilka kolumner som ska inkluderas med hjälp av alternativet `–output` och en kommaseparerad lista med kolumnnamn (utan mellanslag). Följande kolumner finns tillgängliga:
source: Filsystemets namn.
fstype: Typen av filsystem.
itotal: Den totala storleken på filsystemet i inoder.
iused: Det använda utrymmet i filsystemet i inoder.
iavail: Det tillgängliga utrymmet i filsystemet i inoder.
ipcent: Procentandelen använt utrymme i filsystemet i inoder.
size: Den totala storleken på filsystemet (default i 1K-block).
used: Det använda utrymmet i filsystemet (default i 1K-block).
avail: Det tillgängliga utrymmet i filsystemet (default i 1K-block).
pcent: Procentandelen använt utrymme i filsystemet (default i 1K-block).
file: Filsystemets namn om det angetts som kommandoparameter.
target: Monteringspunkten för filsystemet.
Låt oss be `df` att rapportera om den första partitionen på den första enheten med läsbara enheter och med kolumnerna source, fstype, size, used, avail och pcent:
df -h /dev/sda1 --output=source,fstype,size,used,avail,pcent
Långa kommandon som detta kan enkelt omvandlas till alias. Du kan skapa ett alias, exempelvis `dfc` (för `df custom`) genom att skriva:
alias dfc="df -h /dev/sda1 --output=source,fstype,size,used,avail,pcent"
När du nu skriver `dfc` och trycker på Enter, kommer det ha samma effekt som att skriva hela kommandot ovan. För att göra aliaset permanent, lägg till det i din `.bashrc`- eller `.bash_aliases`-fil.
Vi har nu sett hur du kan anpassa utskriften från `df` för att matcha dina specifika behov. Om du vill gå i motsatt riktning och visa all information, kan du använda alternativet `-a` (alla) tillsammans med `–output`-alternativet. Alternativet `-a` instruerar `df` att inkludera alla filsystem, och att inte ge någon kommaseparerad lista med kolumner till `–output` gör att `df` inkluderar varje tillgänglig kolumn.
df -a --output
För att granska den stora mängd utdata som detta kan producera kan du leda utskriften genom kommandot `less`:
df -a --output | less
Identifiera vad som Upptar Diskutrymme
Låt oss undersöka vad som faktiskt tar upp utrymme på din dator. Vi börjar med ett av våra `df`-kommandon.
df -h -t ext4
I exemplet ovan används 78% av diskutrymmet på den första partitionen på den första hårddisken. För att ta reda på vilka mappar som innehåller mest data, kan du använda kommandot `du`. Om du kör `du` utan några ytterligare argument, listas alla kataloger och underkataloger under den aktuella katalogen. Om du gör detta från din hemmapp kan listan vara mycket lång.
du
Utskriften är enkel. Varje rad visar storleken och namnet på en katalog. Som standard visas storleken i 1K-block. För att tvinga `du` att använda en annan blockstorlek, använd alternativet `-B` (blockstorlek). Använd `du`, ett mellanslag och sedan `-B` följt av en bokstav från listan K, M, G, T, P, E, Z och Y, precis som med `df`. För att till exempel använda 1M block:
du -BM
Precis som `df`, har `du` ett ”human readable” alternativ, `-h`, som använder lämpliga blockstorlekar beroende på storleken på varje katalog.
du -h
Alternativet `-s` (sammanfatta) ger en total storlek för varje katalog utan att visa underkatalogerna. Följande kommando ber `du` att returnera information i sammanfattningsformat, i läsbara enheter, för alla kataloger:
du -h -s *
under den aktuella arbetskatalogen.
du -sm Pictures/* | sort -nr
I exemplet ovan innehåller mappen `Pictures` den överlägset största mängden data. Genom att kombinera `du` med kommandot `sort` kan du sortera mapparna efter storlek, från största till minsta.
Genom att förfina informationen som returneras av `df` och `du` blir det lätt att ta reda på hur mycket hårddiskutrymme som används och vad som tar upp detta utrymme. Därefter kan du fatta välgrundade beslut om att flytta data till annan lagring, lägga till ytterligare en hårddisk eller radera överflödig information. Dessa kommandon har många fler alternativ. De mest användbara alternativen har beskrivits här, men du kan hitta en fullständig lista över alternativ för kommandot `df` och kommandot `du`
på Linux man-sidor.