ADMIN-Tipp: Einzeilerparade

Jede Woche erscheint in unserem Newsletter ein neuer ADMIN-Tipp. Eine Sammlung aller Tipps finden Sie im Archiv der ADMIN-Tipps.

Gerade unter Kommandozeilenjüngern und Skript-Programmierern gelten sie als Ikonen der Effizienz: Einzeiler. Zuweilen führt das Bemühen, möglichst komplexe Funktionen mit lediglich einer Handvoll Zeichen zu steuern, zu eher skurrilen Resultaten, aber einige Shell-Einzeiler sind tatsächlich praktisch. Hier sind unsere Top Ten.

1. Wie schnell ist der Rechner? Der folgende einzeilge Benchmnark berechnet mit Unix-Bordmitteln die ersten 2000 Nachkommastellen von Pi und liefert einen Anhaltswert für die CPU-Performance. Ein betagter 3 GHz-Pentium 4 braucht fast fünf Sekunden, ein durchschnittlicher, ungefähr gleich getakteter Core Duo nur noch etwas mehr als drei:

time echo "scale=2000; 4*a(1)" | bc -l

2. Zeitrechnung. Manchmal will man ein Datum in deutscher Schreibweise ("01.04.2012") in ein Datum des Formates YYYY-MM-DD wandeln, zum Beispiel weil das einfacher zu sortieren ist oder weil eine Datenbank wie MySQL nur dieses Format akzeptiert. Das bewerkstelligt sed mit folgendem Einzeiler:

echo "01.04.2012" | sed 's/\([0-9]\+\)\.\([0-9]\+\)\.\([0-9]\+\)/\3-\2-\1/g'

3. Füllstand. Selbst die größten Platten füllen sich. Brauchte man noch vor einem guten Jahrzehnt ganze Racks für ein paar Terabyte, fasst heute eine einzelne Platte so viele Daten und auch die - man hätte sich das früher kaum vorstellen können - wird voll. Wo ist der Platz hin? Für ein einzelnes Verzeichnis liefert

$ ls --sort=size -lhr

die Antwort.

4. Füllstand II. Will man dagegen den Zweig eines Verzeichnisbaums betrachten, muss man find einspannen, um besonders große Files zu finden:

find . -size +100M -exec ls -lh '{}' \;

5. Füllstand III. Möchte man dagegen alle Dateien des aktuellen Verzeichnisses und seiner Unterverzeichninisse der Größe nach aufsteigend ordnen, hilft:

jcb@hercules:~/DR-5 Video Manuals$ tree -ifs --noreport .|sort -n -k2
.
[ 28647124] ./Part 5 of 5_ Boss DR-5 Video Tutorial.mp4
[ 34302893] ./Part 4 of 5_ Boss DR-5 Video Tutorial.flv
[ 50986604] ./Part 2 of 5_ Boss DR-5 Video Tutorial.flv
[ 52320997] ./Part 3 of 5_ Boss DR-5 Video Tutorial.flv
[ 59273539] ./Part 1 of 5_ Boss DR-5 Video Tutorial.flv

6. Füllstand IV. Wer den Blick gar auf eine ganze Partition richten will, dem liefert der folgende Einzeiler den freien Platz auf der aktuellen Partition plus die zehn vollsten Unterverzeichnisse des aktuellen Verzeichnisses:

jcb@hercules:~$ df -h .; echo; du -m --max-depth=1 . 2>/dev/null | sort -nr | head -10

Dateisystem Größe Benutzt   Verf.  Verw% Eingehängt auf
/dev/sda5      354G    103G    51G   29%   /home

98933  .
52572 ./VirtualBox VMs
17701 ./Musik
8187 ./Arbeitsfläche
6301  ./Data
4670  ./Apps
4406  ./Dokumente
1462  ./Bilder
748  ./Downloads
725  ./.cache

7. Rootrechte. Wer als User root arbeitet weiß, dass er sich doppelt vorsehen muss, weil die weitgehenden Berechtigungen auch zerstörerrische Aktionen erlauben würden. Damit man das nicht aus den Augen verliert, färbt die folgende Zeile, die man in die .bashrc im Heimnatverzeichnis von Root einbauen sollte, den Prompt des Superusers bunt:

PS1='${debian_chroot:+($debian_chroot)}\[\033[0;01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

8. Netzauskunft. Mit welcher IP operiert ein Rechner hinter einem NAS-Gateway in der Außenwelt des Internet? Eine Methode, das herauszufinden, benutzt den Dienst ifconfig.me. Auf der Kommandozeile beispielsweise so:

jcb@hercules:~$ curl ifconfig.me/ip
62.254.175.149

9. Netzauskunft II. Und wie lauten die MAC-Adressen des oder der Ethernet-Interfaces?

jcb@hercules:~$ ip li | grep ether | awk '{print $2}'
f0:de:f1:9d:80:57
38:59:f9:e5:2c:4a

10. Schlüsselfrage.  Ein kleines Lehrstück in einfacher Verschlüsselung mittels tr liefert die folgende Zeile. Nichts für ungut :)

echo qh zvpu nhpu | tr a-mn-z n-za-m
30.05.2012

Ähnliche Artikel

  • ADMIN-Tipp: Überraschendes cd

    Manchmal verbergen sich hinter den unscheinbarsten Dingen, bei denen es keiner erwartet, noch überraschend praktische Tipps. Beispielsweise ist cd sicher eins der häufigsten Shell-Kommandos überhaupt, seine Funktion ist in einem Satz erklärt und damit scheint alles gesagt. Trotzdem kann man hier noch weniger bekannte, nützliche Tricks finden.

  • ADMIN-Tipp: Neue Zeitrechnung

    "Weißt Du wieviel Sternlein stehen, an dem weiten Himmelszelt?" Es sind 2000 mit bloßem Auge sichtbare - unter guten Bedingungen. Wegen der Lichtverschmutzung besonders in Großstädten aber oft nur Hunderte. Gesetzt, man könnte einen pro Sekunde zählen - wie lange bräuchte man? Die Shell weiß es.

  • ADMIN-Tipp: Mehr mit Meta

    Spezielle Tastenkombination, oft mit dem Meta-Key - per Default ist das [Alt] - entlocken der Bash nützliche Funktionen.

  • ADMIN-Tipp: Tipp-Ex für die Shell

    Die Bash kennt einige nette Tricks, die dem Kundigen die Arbeit erleichtern. So vertippt sich auch der größte Guru mal - aber er weiß sich danach elegant zu helfen.

  • ADMIN-Tipp: Passworte prüfen

    Ein schwaches Passwort ist im Handumdrehen geknackt.  Wird es dann womöglich auch noch mehrfach verwendet, stehen dem Angreifer Tür und Tor offen. Deshalb ist es ratsam, sich vorher zu überzeugen, dass das selbstgewählte Passwort einem Hacker mindestens ausreichend Schwierigkeiten macht.

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2020