Linux Tipps

Veröffentlicht in: Linux | 0

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!