Linux und Ich

Blog über Ubuntu, Linux, Android und IT

cool-retro-term_008

14. September 2014
von Christoph
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
gnome-shell-virtualbox

31. März 2014
von Christoph
2 Kommentare

VirtualBox-VMs über die GNOME-Shell aufrufen (GNOME 3.8 und neuer)

Vor fast zwei Jahren haben ich schon einmal darüber geschrieben, dass man mit der Shell-Erweiterung VirtualBox Vm Search Provider in VirtualBox erzeugte virtuelle Maschinen aus der GNOME-Shell heraus aufrufen kann. Mit Hilfe der Extension muss man zum Starten einer VM einfach auf die Windows/Super-Taste drücken, einen Teil des Names der gewünschten VM eingeben, diese mit [Runter] auswählen und per [Return] starten — die eigentliche VirtualBox-Anwendung kann geschlossen bleiben.

Der VirtualBox Vm Search Provider funktioniert jetzt wieder mit aktuellen GNOME-Versionen.

Leider gab die Shell-Erweiterung recht schnell ihren Geist auf. Ich meine, dass sie bereits mit einem Update auf GNOME 3.6 ihren Dienst quittierte und danach lange nicht aktualisiert wurde. Nun aber — gut schon seit zwei Monaten — funktioniert sie aber auch wieder mit GNOME 3.8 und neuer. Wer VirtualBox auf seinem Rechner hat und die GNOME Shell nutzt, der muss nur die Erweiterung aktivieren. Die VM sollten dann umgehend in der Aktivitäten-Übersicht erscheinen.

terminal-bash-completion

31. März 2014
von Christoph
12 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)

terminal-bropages

22. März 2014
von Christoph
4 Kommentare

Bropages und commandlinefu.com liefern Beispiele zu Terminalbefehlen… auch aus dem Terminal heraus

Von manpages haben mich Sicherheit auch Linux-Neulinge schon etwas gehört, aber bropages? Was ist das? Bropages — Fans von How I met your mother dürften die Anspielung erkennen — ist ein relativ neues Projekt, das zu Befehlen keine super-ausführlichen Erklärungen geben … Weiterlesen

bashmount-icon

14. März 2014
von Christoph
2 Kommentare

bashmount erleichtert das Mounten von USB-Sticks und CD/DVDs vom Terminal aus

Mit dem Raspberry Pi kommt das gute alte Terminal und Terminal-Tools ja wieder “mehr” in Mode. Auch wenn LXDE recht ordentlich auf dem Raspbi läuft: Verzichtet man auf eine graphische Umgebung, dann läuft es noch eine ganze Nummer runder. Allerdings gibt es ein paar Dinge, die mit einer graphischen Umgebung einfach besser klappen. Darunter fällt unter anderem das Mounten von USB-Sticks und optischen Medien. Als kleinen Tipp möchte ich euch generell für Linuxe ohne graphische Umgebung bashmount empfehlen. Das simple Skript schaut sich nach den Device-IDs von entfernbaren Datenträgern um, und bietet an diese zu mounten oder auch wieder auszuhängen.

USB-Sticks und optische Medien bequem per bashmount vom Terminal aus einbinden.

Arch Linux User können bashmount bequem — für den Raspberry Pi gibt es auch ein vorgefertigtes Arch-Linux-Build für die ARM-CPU — und unkompliziert aus dem AUR installieren. Auf anderen Distributionen (zumindest bei Debian und Ubuntu) muss man wohl aktuell das Skript noch von Hand aufs System schaufeln. Die Installationshinweise dafür findet ihr in der INSTALL-Datei des Projekts.

Erweiterte Filterregeln in den Einstellungen von Gmail setzen

19. März 2013
von Christoph
1 Kommentar

Erweiterte Filterregeln in den Einstellungen von Gmail setzen

Ich hab mich gerade mächtig gewundert, dass man innerhalb von Gmail nur sehr eingeschränkte Filterregeln erstellen kann. Die GUI bietet von Haus aus nur “Von”, “An”, “Betreff” oder “Enthält die Wörter” bzw. “Enthält nicht”. Etwas mager für meinen Geschmack, wenn man nach Einträgen im Header oder oder anderen Kriterien filtern möchte. Etwas versteckt gibt es jedoch durchaus leistungsfähige Filter-Möglichkeiten, man muss sie nur finden.

Weiterlesen