Linux und Ich

Blog über Ubuntu, Linux, Android und IT

dd

5. Dezember 2014
von Christoph Langner
5 Kommentare

Dcfldd als Alternative zu Dd mit Fortschrittsanzeige und Hashing on-the-fly

Das gute alte Dd-Kommando ist ein leistungsfähiges Werkzeug zum Erzeugen von Diskimages oder zum Einspielen von Images auf einem neuen Datenträger. Wer eine neue Distribution für den Raspberry Pi ausprobieren, Daten von einer kaputten Festplatte retten oder seinen Rechner von einer Festplatte auf … Weiterlesen

flash-video-download-linux

28. November 2014
von Christoph Langner
15 Kommentare

Mit Linux-Bordwerkzeugen jedes Flash-Video aus dem Netz laden

Zum Download von YouTube-Videos gibt es zahlreiche Browserweiterungen oder Kommandozeilen-Tools wie youtube-dl oder mps-youtube. Besonders youtube-dl hebt sich von den angebotenen Programmen ab, da das Programm zahlreiche andere Video-Portale auch auch Mediatheken wie die der ARD oder des ZDF unterstützt. … Weiterlesen

chromecast-linux

2. November 2014
von Christoph Langner
15 Kommentare

Castnow ist ein Terminal-Client für Chromecast unter Linux und Mac OS X

Mit einem Android-Handy oder -Tablet lässt sich ein Chromecast-Dongle am Fernseher natürlich bequem steuern. Man startet einfach eine Chromecast-fähige App, tippt auf das Chromecast-Icon und nur wenige Augenblicke später erscheinen die gewünschten Inhalte auf dem Fernseher. Nun aber wäre es auch sicherlich … Weiterlesen

cool-retro-term_008

14. September 2014
von Christoph Langner
3 Kommentare

Speicherbelegung eines Dateityps rekursiv in allen Unterordnern ermitteln

Ich stand vorhin vor der Aufgabe herauszufinden, wie viel Speicherplatz sämtliche JPG-Bilder und MOV-Videos in einer weit und tief verzweigten Ordnerstruktur mit unzähligen Dateien ganz unterschiedlichen Typs belegen. Die klassischen Befehle Du, Df und Co. helfen hier auf den ersten Blick nicht direkt weiter, da ich eben rekursiv den Speicherplatz dieser beiden Dateitypen ermitteln möchte.

Die Aufgabe war letztendlich gar nicht so einfach zu lösen: Mit find fische ich mir rekursiv sämtliche Dateien eines Typs aus den Unterverzeichnissen, du ermittelt daraufhin die Dateigröße jeder Datei. Danach schnippel ich mir mit tail -1 die am Anfang stehende Dateigröße aus der Ausgabe und addiere dann mit awk Zeile für Zeile der Ausgabe zusammen. Kommt ihr auf eine bessere, weil schlankere Lösung? Mich würde das mal interessieren.

$ find . -type f -name "*.JPG" -exec du -shc {} + | tail -1 | awk '{print $1}'
9,8G
$ find . -type f -name "*.MOV" -exec du -shc {} + | tail -1 | awk '{print $1}'
15G

Wer solch eine Aufgabe öfters einmal zu bewältigen hat, der kann sich das Kommando beispielsweise als Alias in die .bashrc eintragen, so muss man es nicht immer komplett neu eintippen oder aus der History herausfischen. Alternativ könnt ihr euch aber auch einmal das kleines Perl-Skript duext ansehen. Es rechnet nicht nur die Dateigrößen eines Dateityps zusammen, sondern listet die rekursiv zusammengerechnete Belegung jedes in den Unterverzeichnissen vorkommenden Dateityps inklusive der Anzahl der Datein auf.

## duext herunterladen, umbenennen und ausführbar machen
$ wget https://sites.google.com/site/mailvortex/unix-and-linux/duext/duext.pl.txt
$ mv duext.pl.txt duext
$ chmod +x duext

## duext beispielsweise auf das Homeverzeichnis loslassen
$ ./duext /home/beispiel
soh: 2 files, 7409 bytes
cmeta: 4 files, 52 bytes
png: 12112 files, 791262261 bytes
...
gpg: 3 files, 40 bytes
ots: 1 files, 19030 bytes
odt: 7 files, 226643 bytes
/////// 336 unique file extensions
/////// total 57098 files, 65985706195 bytes

## Nur die Belegung von JPG- und PNG-Dateien ausgeben
$ ./duext /home/beispiel | grep -E 'jpg|png'
png: 12114 files, 791559846 bytes
jpg: 2199 files, 5751992470 bytes
pacman-downgrade

10. September 2014
von Christoph Langner
3 Kommentare

Pakete unter Arch Linux mit Downgrade deaktualisieren

Arch Linux ist bekanntlicherweise eine Rolling-Release-Distribution. Bei jedem pacman -Syu wird das gesamte System auf den laufenden Stand gebracht. Vom Kernel, bis hin zu Gimp oder LibreOffice. Nun kann es durchaus aber einmal passieren, dass man sich dabei ein faules Ei einfängt. Das geschieht äußerst selten, aber es ist auch kein Ding der Unmöglichkeit. Vielleicht wurde beim Erstellen des Pakets geschludert, vielleicht fängt man sich einen Upstream-Bug ein. Es gilt daher möglichst einfach die alte Version des betroffenen Pakets wiederherzustellen.

Wer nicht gerade mit pacman -Sc oder pacman -Scc den Pacman-Cache ins Nirvana geschickt hat, der hat diverse ältere Version zahlreicher Pakete auf der Festplatte liegen. Diese schlummern dort vor sich hin, bis man tatsächlich einmal den Cache mit den besagten Befehlen leert. Dieser Cache kommt nun sehr gelegen, wenn man eine ältere Paketversion wiederherstellen möchte. Besonders einfach gelingt dies, wenn man sich das praktische Bash-Skript downgrade aus dem AUR holt.

$ pacaur -S downgrade
...
$ downgrade wine-compholio
Available packages:

1) wine-compholio-1.7.26-1-x86_64.pkg.tar.xz (local)
2) wine-compholio-1.7.25-1-x86_64.pkg.tar.xz (local)
3) wine-compholio-1.7.24-1-x86_64.pkg.tar.xz (local)
4) wine-compholio-1.7.23-1-x86_64.pkg.tar.xz (local)

select a package by number: 3

Lade Pakete ...
Warnung: Downgrade des Paketes wine-compholio (1.7.26-1 => 1.7.24-1)
Löse Abhängigkeiten auf...
Suche nach Zwischenkonflikten...

Pakete (1): wine-compholio-1.7.24-1

Gesamtgröße der zu installierenden Pakete: 296,01 MiB
Größendifferenz der Aktualisierung: -0,92 MiB
...
$ pacman -Qs wine-compholio
local/wine-compholio 1.7.24-1
WINE patched with Microsoft Silverlight and Netflix compatibility.

Führt man es mit dem Namen eines Pakets als Option aus, bietet es sämtlich im Cache vorgefundenen Paketversionen an. Wählt einfach die entsprechende Nummer aus und lasst dann Downgrade das “Update” einspielen. Am Ende stellt euch Downgrade noch die Frage add <paketname> to IgnorePkg, über die ihr das Paket vor weiteren Aktualisierungen schützen könnt. So bleibt die gezielt installierte Paket-Version bei zukünftigen Updates erhalten.

terminal

9. September 2014
von Christoph Langner
2 Kommentare

Das cool-old-term wird zum cool-retro-term

Knackscharfe Bildschirme, Displays ohne Flimmern und Rauschen, Millionen von brillanten Farben? Das ist doch sowas von heute, wer gerne mal einen Blick ins Gestern wirft, der sollte sich daher einmal das Cool-Old-Term ansehen. Eine vollwertige Terminal-Applikation, die den Look&Feel alter Rechner nachstellt. Ganz neu ist die Terminal-App nicht, sie macht vor einigen Wochen die Runde durch zahlreiche Blogs.

Inzwischen firmiert das Terminal jedoch nicht mehr unter seinem bisherigen Namen, mit Cool-Retro-Term hat es ein neue Bezeichnung und auch ein neues Zuhause auf GitHub bekommen. Wer sich das Terminal schon einmal zum Spaß installiert hatte, der sollte sich daher für weitere Updates die neue Version holen. Arch-Anwender finden sie wie gewohnt im AUR, nun aber unter cool-retro-term-git. Bei der Installation wird automatisch die alte Version deinstalliert.

$ pacaur -S cool-retro-term-git
:: Paket(e) cool-retro-term-git wurde in den Paketquellen nicht gefunden, suche im AUR...
:: Löse Abhängigkeiten auf...
:: Suche nach Zwischenkonflikten...
:: cool-retro-term-git und cool-old-term-git stehen im Konflikt (cool-old-term-git). Entferne cool-old-term-git? [j/N] j

AUR Pakete (1): cool-retro-term-git-letzte

:: Fortfahren mit Installation? [J/n] j
bash-guide

4. August 2014
von Christoph Langner
20 Kommentare

Linktipp: Bash Guide bringt euch die Bash-Shell näher

Ich lese und höre immer wieder den Ärger von Linux-Einsteigern über das Terminal. Viele fühlen sich in DOS-Zeiten zurückgesetzt, fühlen sich von Befehlen überfordert, meinen dass Linux dadurch zu kompliziert sei. Wer jedoch schon länger auf ein Linux setzt, der weiß die Möglichkeiten des Terminals allerdings zu schätzen. Vieles lässt sich im Terminal einfach deutlich effektiver erledigen als mit einer GUI. Nichts desto trotz gibt bei den ersten Schritten im Terminal einige Hürden zu erklimmen, vielleicht helfen dem einen oder anderem ja meine Einsteiger-Tipps und -Tricks für das Linux-Terminal, die ich ich mitsamt einer Reihe von anderen Tipps und Tricks für den Alltag mit Linux vor über 6 Jahren ins Blog gehackt habe.

Etwas aktueller und umfangreicher könnte in Zukunft der The Bash Guide werden. Noch ist die unter der CC-BY-SA lizenzierte und über GitHub koordinierte Bash-Dokumentation lediglich auf Englisch und auch bei weitem noch nicht vollständig, doch die ersten zwei Kapitel machen schon einmal einen sehr guten Eindruck. Weitere neun Kapitel von Shell-Variablen, über das Bash-Prompt, bis hin zu externen Bash-Tools stehen bereits auf der To-Do-Liste. Wenn ihr euch in den nächsten Monaten ein wenig tiefer in die Funktionen der Bash einarbeiten wollt, dann solltest ihr daher dem Bash Guide noch einmal einen Besuch abstatten, eventuell ist die Doku bis dahin ein wenig umfangreicher geworden.

mosh-icon

19. April 2014
von Christoph Langner
3 Kommentare

Mosh als SSH-Ergänzung für wacklige UMTS- oder LTE-Datenverbindungen

Wer mal “schnell” während einer Zugfahrt versucht hat etwas mittels einer mobilen UMTS- oder LTE-Datenverbindung und SSH auf einem Server zu managen, der wird meist nach zahlreichen Versuchen gefrustet aufgegeben haben. Erst wenn der Zug vor einem Bahnhof langsam durch die … Weiterlesen

terminal-bash-completion

31. März 2014
von Christoph Langner
15 Kommentare

Die Suche in der Bash History mit der BASH History Suggest Box aufbohren

Arbeitet man im Terminal, dann kommt es oft vor, dass man Befehle wiederholen oder nur leicht abändern möchte. Dazu kann man die Bash History mit den Taste [Hoch]/[Runter] Befehl für Befehl durchscrollen und per [Links]/[Rechts] den Cursor bewegen, um das gewählte Kommando zu ändern. Die Bash History lässt sich aber auch durchsuchen, dazu drückt man einfach [Strg]+[r] und tippt drauf los. Wiederholt man nun [Strg]+[r] kommt man zum nächsten passenden Treffer der Suche usw. Gespeichert werden diese Daten in den ~/.bash_history, die man sich auch mit dem folgenden Befehl ausgeben lassen kann.

$ history
   1  locate terminal | grep svg
   2  xdg-mime query default inode/directory
   3  joe /etc/gnome/defaults.list
   4  ...

Nun ist die History und deren Suchfunktion in der Bash schon relativ gut, andere Shells wie etwa die Z-Shell aka zsh (Wikipedia) machen es aber noch einmal deutlich besser. Marcel von zInformatik oder Kushellig haben die wichtigsten Funktionen der zsh in meinen Augen recht gut zusammengefasst. Allerdings sind eben die meisten Linux-User mit der Bash unterwegs, und gerade daher lohnt es sich einmal auf die BASH History Suggest Box zu schauen.

# BASH History Suggest Box unter Ubuntu installieren
$ sudo add-apt-repository ppa:ultradvorka/ppa
$ sudo apt-get update
$ sudo apt-get install hh

# BASH History Suggest Box unter Arch Linux installieren
$ pacaur -S hh

Die BASH History Suggest Box könnt ihr über die oben stehenden Befehle installieren. Für Ubuntu-User bietet der Autor selber ein PPA mit nur diesem Programm an, Arch-Linux-User werden wie so gut wie immer im AUR fündig. Für andere Distributionen wie etwa Debian oder Linux Mint findet ihr auf der eingangs verlinkten Github-Seite des Projektes Installationshinweise. Nach der Installation lässt sich die BASH History Suggest Box dann mit hh aufrufen, es macht wohl allerdings mehr Sinn sie fest im System zu veranken, der Befehl…

$ hh --show-configuration >> ~/.bashrc

…schreibt die Konfiguration für die BASH History Suggest Box direkt in eure ~/.bashrc, so dass ihr wie gewohnt den Bash-Verlauf mit der Tastenkombination [Strg]+[r] durchsuchen könnt. Allerdings bietet die BASH History Suggest Box deutlich mehr Funktionen wie die herkömmliche Bash History. Sie zeigt nicht nur Befehl auf Befehl an, sondern listet gleich alle Befehle auf, die ihr in der letzten Zeit eingegeben habt.

Die BASH History Suggest Box zeigt alle Befehle der Bash-History in einer GUI an.

Mit der BASH History Suggest Box lässt sich die Bash-History deutlich einfacher durchsuchen.

Durch diese Liste scrollt ihr nun wie gewohnt mit [Hoch]/[Runter]. Mit [Links]/[Rechts] oder [Tab] übernimmt ihr den aktuell ausgewählten Befehl in die Shell, wo ihr ihn wie gewohnt bearbeiten könnt. Gebt ihr Text ein, dann filtert die BASH History Suggest Box umgehend Befehle mit diesem Text heraus, auch durch diese reduzierte Liste kann man wieder bequem scrollen. Soll einer der Befehle gar nicht mehr in der Shell-History auftauchen, dann könnt ihr ihn mit [Entf] rauskicken.

(Via Raschix)