Alle Beiträge von Michael Kofler

Linux-Kommandoreferenz in der 5. Auflage erschienen

Meine Linux-Kommandoreferenz ist soeben in der fünften Auflage erschienen:

544 Seiten, Hard-Cover
Preis: Euro 24,90 (in D inkl. MWSt.)

Dieses Buch enthält den Linux-Grundwortschatz für das Arbeiten im Terminal – über 500 Kommandos samt Optionen, Erläuterungen und Beispielen. Außerdem umfasst das Buch eine Referenz der wichtigsten Konfigurationsdateien sowie eine Zusammenstellung wichtiger Tastenkürzel.

In dieser Auflage habe ich wieder einige neue Kommandos aufgenommen: acme.sh, aws, boltctl, etherwake, fwupdmgr, gdebi, kbdrate, nft, rdfind, ubuntu-security-status, wakeonlan und wol. Außerdem habe ich die Beschreibung vieler Kommandos aktualisiert und mit zusätzlichen Beispielen versehen, unter anderem bei adduser, certbot, chcon, chsh, cryptsetup, diff, dmesg, dnf, du, find, firewallcmd, flatpak, git, grep, iptables, mysqldump, sudo, sysctl, wsl und zypper.

PS: Von allen meinen Büchern gibt es keines, das ich so oft selbst öffne (wenn auch in der Regel nur die PDF-Version auf meinem Computer). Trotz der Arbeit an fünf Auflagen und der regelmäßigen Anwendung vieler Kommandos scheitere ich daran, mir all die Kommando- und Optionsnamen dauerhaft auswendig zu merken. Sie sehen also: Dieses Buch habe ich nicht nur für Sie geschrieben, sondern auch für mich selbst :-)

Fedora 33

In Fedora 33 gibt es abseits der üblichen Versions-Updates drei vier grundlegende Neuerungen:

  • Als minimaler Texteditor ist nano vorinstalliert, nicht vim. Persönlich empfinde ich das als großen Fortschritt. Alle vi-Freunde müssen eben dnf install vim ausführen (so wie ich nach jeder Linux-Installation dnf/apt install joe ausführe, damit mir der Mini-Emacs jmacs zur Verfügung steht).
  • Das Defaultdateisystem für die Desktop-Version von Fedora lautet nun btrfs und nicht mehr ext4. (Details dazu folgen gleich.)

  • Als lokaler DNS-Client kommt systemd-resolved zum Einsatz.

  • Update 29.10.2020: Standardmäßig wird weder eine Swap-Datei noch eine Swap-Partition eingerichtet. Stattdessen werden bei Bedarf Datenblöcke komprimiert in ein ZRAM-Device ausgelagert.

Überraschenderweise wird Fedora in diesem Fall seiner Vorreiterrolle nur teilweise gerecht. (open)SUSE verwendet btrfs schon seit Jahren standardmäßig. systemd-resolved kommt wiederum in Ubuntu schon seit geraumer Zeit zum Einsatz (wenn ich mich recht erinnere, seit Version 18.04).

Fedora 33 weiterlesen

Kotlin-Buch erschienen

Mit der neuen Programmiersprache Kotlin ist der Firma JetBrains ein Geniestreich gelungen: Die Sprache vereint eine moderne Syntax mit JVM-Kompatibilität. Kotlin-Code kann deswegen überall dort ausgeführt werden, wo die Java Virtual Machine zur Verfügung steht. (JVM 8 ist vollkommen ausreichend!) Kotlin-Programme können sämtliche Java-Bibliotheken verwenden, wenn es nicht schon neue, für Kotlin optimierte Frameworks gibt.

Kurzum: Ohne die Kompatibilität zum Java-Universum zu verlieren, können Sie eine Programmiersprache nutzen, die keine Wünsche offen lässt:

  • Elegante Bearbeitung von Aufzählungen mit Lambda-Ausdrücken
  • Datenklassen, Computed Properties, Property Delegation
  • Nachträgliche Erweiterung von Klassen durch Extensions
  • Design eigener Type-safe Builder mit Receiver-Funktionen
  • Operator Overloading
  • Effiziente asynchrone Programmierung mit Koroutinen

Google hat deswegen für die App-Programmierung das Motto Kotlin first ausgerufen. Aber auch im Backend gewinnt Kotlin an Bedeutung, weil die Sprache eine schrittweise Modernisierung von über viele Jahre gewachsenem Code erlaubt.

In meinem neuen Buch »Kotlin. Das umfassende Handbuch« bringe ich meine Begeisterung für Kotlin zum Ausdruck. Ich erläutere Ihnen die Syntax (die in vielen Details überraschend anders ist als in Java), zeige Ihnen elementare Programmiertechniken (Koroutinen, I/O, Datenbankzugriff) und gehe auf zwei Kernanwendungsbereiche ein: auf die App-Entwicklung inklusive Jetpack Compose und auf die Backend-Programmierung mit Ktor und Exposed. Das alles wird durch viele Beispiele aufgelockert.

Mit Kotlin macht Programmieren wieder Spaß — sogar dann, wenn Sie im Java-Universum gefangen sind ;-)

Mehr Details zum Buch samt einer PDF mit Vorwort und Inhaltsverzeichnis finden Sie hier:

kofler.info/buecher/kotlin

KVM-Host mit Ubuntu einrichten

Ca. alle vier Jahre wiederholt sich das gleiche Spiel: Ich bestelle einen neuen Root-Server, installiere dort die aktuelle Version von Ubuntu Server LTS und richte das Virtualisierungssystem KVM ein. Sobald dieses läuft, migriere ich meine virtuellen Maschinen, zu denen unter anderem der Server für kofler.info zählt, auf den neuen Host. Die Down-Time beträgt in der Regel weniger als eine Stunde und ergibt sich durch den Zeitraum für die Aktualisierung der DNS-Einträge.

Mit dem Betrieb eines eigenen Virtualisierungssystem entspreche ich nicht ganz dem Cloud-Zeitgeist. Natürlich gibt es unzählige Hoster (an erster Stelle natürlich Amazon), die mir virtuelle Maschinen für den Betrieb von Linux-Installationen anbieten. Die Verwendung eines »echten« (sprich: altmodischen) Root-Servers kann allerdings eine Menge Geld sparen, bringt mehr Flexibilität mit sich und hält mein KVM-Know-how einigermaßen aktuell :-)

Dieser Artikel fasst die wichtigsten Details zur Konfiguration des KVM-Hosts (Ubuntu) sowie von virtuellen Maschinen (Ubuntu sowie RHEL/CentOS/Oracle) zusammen. Beachten Sie, dass einige Details der Netzwerkkonfiguration providerspezifisch sind und für Hetzner gelten.

KVM-Host mit Ubuntu einrichten weiterlesen

VSCode und SSH

Wenn Sie einmal an die Vorzüge von VSCode zu schätzen gelernt haben, möchten Sie diese auch dann nutzen, wenn Sie remote via SSH einen Server administrieren oder Code verfassen. VSCode läuft aber nur im Grafikmodus und kann daher nicht direkt in typischen Server-Installationen ausgeführt werden. Hier schlägt die Stunde von Editoren, die wie Vi oder Emacs im Textmodus laufen und daher auch in einer SSH-Session funktionieren …

Ich will Sie hier aber nicht von den Vorteilen alter Text-Modus-Editoren überzeugen, sondern Ihnen stattdessen die ausgesprochen praktische VSCode-Erweiterung Remote SSH vorstellen: Damit läuft VSCode weiterhin auf Ihrem lokalen Rechner. Via SSH können Sie nun die Dateien eines Remote-Verzeichnisses auflisten, bearbeiten, verändern und speichern — ganz so, als würden Sie lokale Dateien bearbeiten.

VSCode und SSH weiterlesen

SwiftUI

Im Frühjahr 2019 stellte Apple SwiftUI vor. Das ist eine neue Bibliothek, um grafische Benutzeroberflächen durch Swift-Code zusammenzusetzen. SwiftUI spart Millionen Maus- oder Trackpad-Bewegungen, die beim bisherigen Verfahren auf der Basis von UIKit erforderlich waren.

Mittlerweile ist SwiftUI einigermaßen praxistauglich. Zeit also, einen Blick auf neue Denkweisen und Paradigmen zu werfen! (Der präsentierte Code und die Screenshots beziehen sich auf Xcode 12 mit Swift 5.3.)

SwiftUI weiterlesen

Swift 5.3

Zusammen mit Xcode 12 hat Apple im September 2020 auch Swift 5.3 freigegeben. Die neueste Swift-Version zeichnet sich durch viele Verbesserungen »unter der Haube« aus (höhere Kompiliergeschwindigkeit, klarere Fehlermeldungen, bessere Einrückungen im Editor); neue Sprach-Features sind dagegen kaum zu finden. Dafür gibt es aber interessante Neuerungen im Swift-Umfeld, beispielsweise:

  • eine Windows-Version (die ich nicht getestet habe)
  • die neue Standardbibliothek »Swift System«, die vor allem für Linux-Entwickler interessant ist
  • die neue Bibliothek »Swift Atomics« für atomare Operationen in asynchronem Code
  • Verbesserungen beim Paketmanager

Ich beschränke mich im Folgenden auf die interessantesten neuen Features, die für die alltägliche Programmierung relevant sind.

Swift 5.3 weiterlesen

Kali Linux unter Windows (WSL2) im Grafikmodus

Kali Linux kann schon seit geraumer Zeit mittels WSL unter Windows ausgeführt werden. Ganz neu ist die Möglichkeit, Kali Linux in Kombination mit WSL2 auch im Grafikmodus zu nutzen. Das dazu erforderliche Paket kali-win-kex (Kex steht für Kali Desktop Experience) setzt dabei auf das bewährte Protokoll VNC.

Kali Linux unter Windows (WSL2) im Grafikmodus weiterlesen