Hier will ich natürlich nicht das wiederholen, was in etlichen Linux Büchern und Web-Hilfeseite steht, sondern einfach mal meine Lieblingskommandos mit ein paar Beispielen auflisten.
df - report file system disk space usage
Es zeigt die verschieden Partionen an, die gemountet sind, und wo sie ins Dateisystem eingehängt sind. Kollegen haben immer darauf bestanden, die Option -h zu benutzen, dann sei es lesbarer. (-h, –human-readable)
Beispiel Linux Mint:
df -h
Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
tmpfs 789M 1,9M 788M 1% /run
efivarfs 28K 19K 4,9K 79% /sys/firmware/efi/efivars
/dev/sda3 468G 33G 412G 8% /
tmpfs 3,9G 0 3,9G 0% /dev/shm
tmpfs 5,0M 12K 5,0M 1% /run/lock
/dev/sda2 512M 6,2M 506M 2% /boot/efi
tmpfs 789M 184K 789M 1% /run/user/1001
tmpfs 789M 192K 789M 1% /run/user/1000
Hier sind 2 Partionen der Systemplatte zu sehen (/dev/sda2 – die Boot Partion, und /dev/sda3 – der Rest der Platte), und viele Partionen, die nur temporäre in der Memory sind.
Beispiel Raspberry:
df -h
Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
udev 3,8G 0 3,8G 0% /dev
tmpfs 806M 5,7M 800M 1% /run
/dev/mmcblk0p2 29G 27G 217M 100% /
tmpfs 4,0G 0 4,0G 0% /dev/shm
tmpfs 5,0M 48K 5,0M 1% /run/lock
/dev/loop3 45M 45M 0 100% /snap/snapd/25205
/dev/loop0 50M 50M 0 100% /snap/core18/2942
/dev/loop1 50M 50M 0 100% /snap/core18/2950
/dev/loop4 611M 611M 0 100% /snap/supertuxkart/649
/dev/loop2 43M 43M 0 100% /snap/snapd/24787
/dev/mmcblk0p1 510M 74M 437M 15% /boot/firmware
tmpfs 806M 192K 806M 1% /run/user/1000
/dev/sda1 938G 324G 567G 37% /media/nfl/65939f49-52e2-431f-bcdb-991147d2aef3
Hier sieht man die Systemplatte, also die micro-SD Karte im Rechner, unter /dev/mmcblk0p{1|2}, und eine externe USB Platte unter /dev/sda1
du - estimate file space usage
Ich benutze es hauptsächlich mit dem Parameter -sk – Summiere die folgenden Files und zeige das Ergebniss in kByte
Beispiel:
du -sk *
685272 Bilder
176 Common
1641088 doc
4 Dokumente
82696 Downloads
4 Musik
4 Öffentlich
3400 out.pdf
8 out.txt
764 Schreibtisch
0 thunderbird
4 Videos
4 Vorlagen
out.* sind Files, der Rest sind Directories, und der angezeigte Wert ist die Summe aller Files in diesem Directory. Nützlich, um den Füllstand eines Directories zu ermitteln.
tr - translate or delete characters
Das verwende ich allerdings überwiegen nur, um aus mehreren Leerzeilen eine einzige Leerzeile zu mache, um dann besser mit sed Gruppen bilden zu können. Aber wie obiger Text zeigt, man kann einiges damit machen! Mein Beispiel: obiges df Kommando bildet schöne Blöcke, um das Ganze besser lesbar zu machen. Die nötigen, verschieden lange Abstände füllt es einfach mit Leerzeichen auf. Will ich aber mit sed bestimmte Spalten heraussuchen, könnte ich anfangen zu zählen, wo mein gesuchter Text steht – oder besser gruppieren, und EIN Leerzeichen als Trenner zu nehmen.
df -h | tr -s ' ' ' '
Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
/dev/root 117G 105G 7,7G 94% /
devtmpfs 1,6G 0 1,6G 0% /dev
tmpfs 1,9G 0 1,9G 0% /dev/shm
tmpfs 749M 1,3M 748M 1% /run
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
/dev/mmcblk0p1 253M 31M 222M 13% /boot
tmpfs 375M 24K 375M 1% /run/user/1000
/dev/sda1 440G 319G 99G 77% /media/nfl/d10f29c6-d70e-4d8a-9b9a-dcebaf9baae3
//Fritz-nas/fritz.nas 469G 55G 415G 12% /mnt/z_nas
sed – stream editor for filtering and transforming text
Dieses ist ein sehr mächtiges Kommando – ich beschreibe natürlich nur eine Möglichkeit, wie ich es oft verwende. Machen wir einfach mal an obigem Beispiel weiter. Ich will eine Liste aller physikalischen Größen:
df -h |tr -s ' ' ' '|sed -e 's/\(.*\) \(.*\) \(.*\)/\2/'
Eingehängt
94%
0%
0%
1%
1%
13%
1%
77%
12%
Alles verstanden? Hier habe ich die Möglichkeiten von regulären Ausdrücken ausgenutzt. Also:
s – substitude – danach kommt ein Delimiter für den Beginn, derselbe in der Mitte für den Suchteil, und am Ende die Markierung für das Ende. Dieser Delimiter kann ein beliebiges Zeichen sein, meist nimmt man eben / dafür. Dieser Delimiter darf natürlich nicht im restlichen Text vorkommen, sonst kommt sed ja durcheinander. Das gilt insbesondere, wenn man Direktory Strings bearbeiten will.
Als nächstest bilde ich 3 Gruppen. Ein Gruppe wird mit () eingeschlossen, die Klammern muss man aber maskieren, also \( \). Der Punkt steht dann für ein beliebiges Zeichen, der Stern für beliebig oft dieses Zeichens. Die 3 Gruppen werden also durch das Leerzeichen getrennt.
Nach dem 2 Delimiter kommt nun das gewünsche Resulat – \2 heist, nehme die 2. Gruppe!
Verstanden?
Will ich aber das Prozentzeichen nicht in der Ausgabe drin haben, mache ich folgendes
df -h | tr -s ' ' ' '|sed -e 's/\(.*\) \(.*\)% \(.*\)/\2/'
Verw
94
0
0
1
1
13
1
77
12
Fortsetzung folgt! Ich will noch diese Zahlen zusammenziehen! Dazu gibt es bc – der Linux Taschenrechner!