Im Kurztest: PDF Scale 1.4.9, Freeze Frame 0.3, Bash Script Testing Library 1.0.1, Jotasync 0.2.9, Ttcopy 2.2.0
PDF Scale 1.4.9
PDF-Dokumente auf der Shell skalieren
Quelle: https://github.com/tavinus/pdfScale
Lizenz: Freeware
Alternativen: Ghostscript, Image Magick
Mit Ghostscript können Anwender die Größe von PDF-Dokumenten auf der Kommandozeile verändern. Wer sich die zahlreichen Optionen und Parameter von »gs« nicht merken kann oder möchte, der kann entweder einen Alias oder ein kleines Skript schreiben oder zu PDF Scale greifen. Im Hintergrund setzt das in Bash geschriebene Tool auf »basename«, »cat«, »grep«, »bc«, »head« und »gs«. Weitere optionale Werkzeuge sind Image Magick, »pdfinfo« und »mdls« (Mac OS).
Anwender rufen »pdfScale.sh« zusammen mit der Eingabedatei auf. Wenn nicht anders definiert, verwendet das Tool den Skalierungsfaktor 0,95 und speichert das Ergebnis als neue Datei mit dem Zusatz »SCALED«. Andere Größen geben Nutzer hinter »-s« an und achten auf den Punkt als englischen Dezimaltrenner. Die Originalgröße ermittelt das Tool mit externen Werkzeugen. Dabei testet es nacheinander die Kombinationen »cat« und »grep« (funktioniert nur, wenn das PDF eine Media-Box enthält), »pdfinfo«, »imagemagick« oder »mdls« (Mac OS).
Das kleine Skript erfindet das Rad nicht neu, sondern setzt im Hintergrund auf bewährte Shellwerkzeuge. PDF Scale erfordert keine Installation und ist sofort einsatzbereit. Die Bedienung ist sehr intuitiv.
Freeze Frame 0.3
Fotos und Videos organisieren
Quelle: http://ronmevissen.com/freezeframe
Lizenz: GPLv3
Alternativen: Digikam, Gnome Photos
Fast jede Desktopumgebung bringt ihr eigenes Foto-Verwaltungstool mit, auch unter Windows und Mac OS gibt es etliche Programme, die beim Katalogisieren und Archivieren der digitalen Schnappschüsse helfen. Als plattformunabhängige Alternative empfiehlt sich Freeze Frame. Die Java-Software läuft unter Linux, Windows und Mac OS. Sie benötigt Perl 5 und mindestens Java 8, unter Mac OS sogar Java 9.
Beim ersten Aufruf legen Anwender das Verzeichnis für die Bibliothek fest und importieren Bilder respektive Videos. Danach können sie mit den Feinarbeiten beginnen und die Meta-Informationen anpassen. Dazu gehören Erstellungsdatum, Titel oder Kommentare beziehungsweise Stichwörter. Freeze Frame speichert auch Geodaten von Fotos.
Das Programm bietet diverse Filter- und Sortierfunktionen, ordnet chronologisch oder nach Stichworten, findet bestimmte Adressen oder Orte. Zum Nachbearbeiten greift Freeze Frame auf externe Helfer zurück, die Benutzer selbst aussuchen.
Obwohl Freeze Frame offiziell noch in der Betaphase ist, zeigte sich das Tool im Test stabil. Es bietet nützliche Filterfunktionen, muss aber in puncto Geschwindigkeit noch nachlegen.
Bash Script Testing Library 1.0.1
Framework zum Testen von Shellskripten
Quelle: https://github.com/rafritts/BashScriptTestingLibrary
Lizenz: MIT
Alternativen: Bats, Shellcheck
Die Bash Script Testing Library (BSTL) hilft Programmierern dabei, ihre Shellskripte automatisiert zu testen. Ähnlich wie das Java-Testframework Junit durchläuft BSTL alle Funktionen und Prozeduren eines Skripts und prüft diese. Es gibt jeweils zwei mögliche Ergebnisse: Ein Test gelingt oder eben nicht.
BSTL kennt sieben Funktionen zum Prüfen des Codes. »assertEquals« testet beispielsweise, ob eine Variable einen bestimmten Wert hat, und für die umgekehrte Richtung eignet sich »assertNotEquals«. Das Tool bietet außerdem über »assertNull« und »assertNotNull« die Möglichkeit, den Rückgabewert einer Funktion zu bestimmen. Bei »assertTrue« und »assertFalse« können Anwender auch komplexere Ausdrücke als erwartetes Ergebnis angeben.
Alle Testfälle notieren Programmierer ebenfalls in Bash-Syntax. Nach der Shebang-Zeile liest die »source«-Anweisung die Bibliothek auf dem lokalen Rechner sowie die Tests ein. Diese sind als Funktionen implementiert; der Name muss jeweils mit dem Präfix »test« beginnen. Ganz am Ende der Testsuite steht die Funktion »runUnitTests()«. Eine ausführliche Dokumentation fehlt derzeit, aber das Github-Repository zeigt einige Anwendungsbeispiele.
Die Bash Script Testing Library ist ein nützlicher Helfer für Programmierer, die ihre Shellskripte auf Herz und Nieren testen möchten.
Filebydate 1.0.1
Dateien besser organisieren
Quelle: http://trixon.se/projects/java/filebydate
Lizenz: Apache 2.0
Alternativen: Dolphin, Nautilus
Wer viele Dateien nach ihrem Erstellungsdatum sortieren möchte, benötigt entweder etliche Mausklicks in einem Dateimanager oder bastelt eine Lösung auf der Shell. Komfortabler ist das Java-Programm Filebydate, das ein JDK in Version 8 benötigt. Es nimmt ein Start- und ein Zielverzeichnis entgegen und ordnet die Dateien neu an, ohne sie zu verändern. Unter der Haube arbeiten bewährte GNU-Tools Hand in Hand mit der Java-Klasse »SimpleDateFormat«.
Anwender bedienen das Tool entweder im GUI oder per Aufrufparameter auf der Shell. Über diverse Optionen bestimmen sie, ob Filebydate die Daten kopiert oder verschiebt. Außerdem legen sie fest, ob das Tool den Zeitpunkt der Erstellung oder der letzten Änderung zugrunde legt. Bei Bilddateien wertet es auf Wunsch auch die Exif-Daten aus. Weitere Filter definieren, dass sich das Programm nur um bestimmte Dateien kümmert. Wie die Struktur des Zielverzeichnisses aussehen soll, definiert das Datumsmuster (Voreinstellung: »yyy/MM/yyyy-MM-dd«).
Filebydate arbeitet sich durch das Quellverzeichnis und die darunter liegenden Ordner und folgt auch symbolischen Links. Praktisch: Anwender können eine Konfiguration als Profil abspeichern und beim nächsten Start wieder laden. Zum Testen steht der Dry-Run-Modus zur Verfügung, der geplante Änderungen nur anzeigt, aber nicht durchführt.
Filebydate ist äußerst komfortabel und flexibel. Gespeicherte Profile können Benutzer auch direkt auf der Shell aufrufen – das ist ideal zum Inte-grieren in Cronjobs.
Jotasync 0.2.9
Oberfläche und Scheduler für Rsync
Quelle: http://jotasync.trixon.se
Lizenz: Apache 2.0
Alternativen: Rsync, Grsync
Das noch recht junge Projekt vereint eine grafische Rsync-Oberfläche mit einem Terminplaner. Das Java-Programm benötigt neben Java 8 eine Rsync-Installation; unter Windows arbeitet es mit Cwrsync oder Cygwin zusammen. In einer ausführbaren Datei vereinen die Entwickler die Client- und die Serverkomponente. Beim Start bestimmen Anwender, in welchem Modus Jotasync läuft.
Als Client aufgerufen präsentiert das Programm eine Kacheloberfläche. Ein Klick auf eine Kachel konfiguriert jeweils einen Job. Anwender bestimmen für diesen einen Jotasync-Server, der in der Voreinstellung auf Port 1099 lauscht. Eine Authentifizierung ist nicht vorgesehen. Steht die Verbindung, können Nutzer über den Job-Editor neue Tasks einrichten. Jede Aufgabe erhält einen eindeutigen Namen, eine Quelle und ein Zielverzeichnis. Es ist möglich, Rsync-Parameter sowie externe Programme zu hinterlegen, die vor oder nach dem erfolgreichen Abgleichen laufen.
Zum Verwalten mit dem integrierten Scheduler aktivieren Anwender diesen zunächst und fassen dann die einzelnen Aufgaben zu Jobs zusammen; die Reihenfolge ist flexibel. Die Konfiguration des Planers erinnert an Cronjobs. Zum Testen eignet sich der Dry-Run-Modus. Die Jobs haben eine eigene History und ein eigenes Logfile. Auch für sie können Anwender externe Tools einrichten, die davor oder danach laufen.
Jotasync hat noch Kinderkrankheiten: Während im Test das Abgleichen lokaler Verzeichnisse problemlos klappte, gelang das Synchronisieren zwischen entfernten Rechnern nicht.
Ttcopy 2.2.0
Copy & Paste für Terminals
Quelle: https://github.com/greymd/ttcopy
Lizenz: MIT
Alternativen: Netclipboard, Piknik
Eine Zwischenablage über Netzwerk- und Rechnergrenzen hinweg – das bietet die Skriptsammlung Ttcopy. Sie enthält die Tools »ttcopy« und »ttpaste«, die mit der Bash und mit der Zsh funktionieren. Zur Datenübertragung setzen die Skripte auf Curl und für das Verschlüsseln der Inhalte ist Open SSL zuständig.
Benutzer installieren die Ttcopy-Tools auf allen Rechnern, welche die neue Zwischenablage nutzen sollen. Nach dem Entpacken legen sie die Skripte entweder im persönlichen oder in einem systemweiten Verzeichnis ab und passen »PATH« entsprechend an. Beim ersten Aufruf von »ttcopy« oder »ttpaste« geben sie eine frei wählbare ID und ein Kennwort ein; die Zugangsdaten landen in »~/.config/ttcopy/config«. Alternativ setzen sie die beiden Umgebungsvariablen »TTCP_ID« und »TTCP_PASSWORD« selbst.
Um etwas in der Zwischenablage zu speichern, reichen Nutzer es durch eine Pipe zu »ttcopy« weiter. Der einfache Aufruf von »ttpaste« gibt es auf der anderen Seite in der Standardausgabe aus. Wer einen Proxy dazwischenschalten möchte, definiert diesen in »TTCP_PROXY«.
Im Hintergrund schiebt Ttcopy die mit AES-256 verschlüsselten Daten zur Plattform https://transfer.sh. Als Dateiname dient »TTCP_ID«. Damit »ttpaste« den Inhalt findet, landet der Link zur Datei beihttps://cl1p.net, von wo das Skript auf dem Zielsystem die Daten herunterlädt, entschlüsselt und ausgibt.
Die Idee ist gut, allerdings müssen sich Anwender auf die Integrität der externen Dienste verlassen. Versierte Admins laden den Transfer.sh-Code von Github herunter und betreiben ihren eigenen Server.












