linux|n00b Linux für Ein- und Umsteiger

21Aug/100

Viele Bilder auf einmal verkleinern

Du möchtest hunderte von Fotos verkleinern, damit du sie zum Beispiel auf eine Homepage laden kannst oder Ähnliches? Verständlich, dass du auf keinen Fall jedes Bild einzeln mit einer Bildbearbeitung öffnen, es auf die gewünschte Größe verkleinern und schließlich speichern möchtest. Das kostet viel Zeit. Zum Glück gibt es GraphicsMagick, welches genau das für dich in einem einzigen Durchlauf (quasi Batch) erledigt.

GraphicsMagick findet seine Abstammung im fast ebenso mächtigen Tool ImageMagick und kann sehr viel mehr als nur Bilder verkleinern, aber beschränken wir uns an dieser Stelle auf das Verkleinern. Ich unterstelle einmal, dass das eines der gängigsten Anwendungsbeispiele sein könnte (zumindest auf mich trifft diese Aussage zu, auf dich vielleicht auch, weil du diesen Artikel ja gerade liest).

Lange Rede, kurzer Sinn - so geht's:

[arvid@C64 ~]$ cd verzeichnis-mit-bildern/
[arvid@C64 verzeichnis-mit-bildern]$ gm mogrify -resize 400x300 *.png

Also ab ins Verzeichnis, in dem sich die zu verkleinernden Fotos befinden und das GraphicsMagick-Utility "mogrify" aufrufen. Als Parameter die Größe angeben und zu guter Letzt ein Suchmuster für die Bilddateien, auf welche der Befehl angewendet werden soll. Das ist auch schon alles. Einfach, oder?

Wenn du ausschließlich Meta-Informationen aus den Bildern entfernen möchtest (z.B. im Foto gespeicherte Kameraeigenschaften), rufe folgenden Befehl auf:

[arvid@C64 verzeichnis-mit-bildern]$ gm mogrify *.png +profile "*"

Du kannst deinen Befehl auch noch wie folgt erweitern/verändern/optimieren:

  • beide Befehle zu einem Befehl zusammenfassen
  • die Resize-Angabe durch einen Prozentwert ersetzen, anstatt eine genaue Auflösung anzugeben
  • ggf. ein anderes Dateiformat angeben (neben PNG auch JPG/JPEG und viele andere)
[arvid@C64 verzeichnis-mit-bildern]$ gm mogrify -resize 50% *.jpg +profile "*"

Wie schon erwähnt, ist GraphicsMagick zu sehr viel mehr in der Lage als das hier. Es gibt tonnenweise andere Befehle und Befehlskombinationen. Hierfür lies dich am besten auf der offiziellen Homepage schlau oder suche nach weiteren Informationsquellen in der Suchmaschine deiner Wahl.

20Aug/100

Windows Ubuntu Installer

Du bist eingefleischter Windows-Benutzer und möchtest mal in die Installation einer Linux-Distribution wie Ubuntu reinschnuppern, möchtest aber deine Windows-Festplatte nicht noch partitionieren oder dergleichen?

Ich empfehle dir Wubi, den Ubuntu Installer for Windows.

Mit Wubi lässt sich Ubuntu von Windows aus installieren. Du lädst dir also eine normale exe-Datei herunter, mit der du eine in Windows übliche Installationsroutine starten kannst (siehe Screenshots auf der Wubi-Seite).

Wenn du die exe-Datei ausführst und statt nach einem konkreten Zielpfad, nach einem Installationslaufwerk gefragt wirst, dann lasse dich davon nicht irritieren: Bei der Installation von Ubuntu wird das Laufwerk nicht gelöscht. Auf dem Ziellaufewrk wird lediglich ein ubuntu-Verzeichnis angelegt. Darin landen alle Dateien, die von Ubuntu benötigt werden, keine Daten deines Systems gehen verloren. Also keine Sorge um dein Windows und deine Daten.

Im Zweifelsfall lasse dich nicht abhalten, ein Backup zu anzufertigen. Aber meines Wissens lässt sich Windows im laufenden Betrieb ohnehin gar nicht so stark schädigen (jedenfalls nicht ohne Weiteres), dass nichts mehr geht.

Ist die Installation abgeschlossen, wirst du gefragt, ob dein Rechner neu gestartet werden soll.  Tue dies und du erhälst beim Hochfahren die Möglichkeit, zwischen deinem Windows und Ubuntu auszuwählen.

Spiele mit Ubuntu so viel herum, wie du zu tun gedenkst. Wirst du dessen irgendwann überdrüssig, so kannst du von Windows aus wieder ganz einfach Ubuntu deinstallieren via Systemsteuerung > Software. Dort suchst du nach Ubuntu (oder Wubi, bin grad unschlüssig, was dort steht, habe Wubi das letzte mal vor gefühlten 5 Jahren eingesetzt) und betätigst Ändern/Entfernen.

15Aug/100

Übersicht behalten mit Virtual Desktop

Solltest du noch keine Bekanntschaft mit dem Virtual Desktop, also known as "Arbeitsflächenumschalter", gemacht haben, dann empfehle ich dir, dich mit selbigem vertraut zu machen.

Virtual Desktops gehören auf jeden Fall zu denen Dingen, die ich vor meinem Umstieg auf Linux immer an Windows XP vermisst habe, ohne dass ich damals überhaupt wusste, dass es sie gibt und ich sie eigentlich brauche. Seit ich den "Arbeitsflächenumschalter" kenne und nutze, möchte ich ihn auch auf keinen Fall mehr missen. Er sorgt bei richtigem Umgang für ein Mehr an Übersichtlichkeit bei vielen offenen Programmen.

So simpel und (für manch einen sogar) unbedeutend dieses Feature auch sein mag: Für mich sind Virtual Desktops definitiv ein Highlight im täglichen Umgang mit Linux.

Danke, liebe Tux-Welt für diese hervorragende Funktionalität!

<OFF-TOPIC>
Und mal ehrlich, Apple macht mit seinem Mac OS zwar schon verdammt viel verdammt richtig, aber wer die Spaces kennt, wird mir vielleicht zustimmen: Linux macht das irgendwie besser.
Denn mit den Spaces unter Mac OS hatte ich tatsächlich schon häufiger Probleme (insbesondere beim Wechseln von einem zum anderen Space).

Aber welches Betriebssystem diese oder jene Sache besser oder schlechter macht, gehört wohl in eine andere Geschichte...
Ist ja auch ein Stück weit Geschmackssache. ;-)
</OFF-TOPIC>

13Aug/100

SVN für eigenen Bedarf einrichten

SVN? Wofür?

Nicht nur für die Bewältigung größerer Aufgaben im Team, sondern auch für eigenes, lokales Arbeiten kann es manchmal sinnvoll sein, Dateien und Verzeichnisse zu versionieren.

Das trifft so ungefähr auf jede selbstständige Arbeit zu, bei der man Ergebnisse produziert, diese hin und wieder oder sogar stetig überarbeitet und für die man in der Lage sein möchte, den Entwicklungsprozess zu rekonstruieren und im Bedarfsfall Änderungen rückgängig zu machen. Das können z.B. Studienarbeiten, Programmierprojekte, aber auch gestalterische Tätigkeiten bei der Bildbearbeitung oder dergleichen sein.

Vor diesem Hintergrund möchte ich erläutern, wie man ein eigenes Subversion-Repository aufsetzt, mit dem Dateien unter Versionskontrolle gestellt werden können.

Vermerk zum Thema Sicherheit

Ich möchte ausdrücklich darauf hinweisen, dass die von mir geschilderte Vorgehensweise nur für den Gebrauch an einem Single-User-System geeignet ist, bei dem auf das SVN-Repository nicht über das Netzwerk zugegriffen werden soll. Ich belasse es bei Standard-Belegungen in den config-Files und Authentifizierungen lasse ich außen vor.

Mit anderen Worten gilt für diese Anleitung: Sicherheit weicht dem Komfort.

Warum? Ich hege derzeit kein Interesse, meine eigenen Entwicklungsarbeiten und meine Erzeugnisse für's Studium der Öffentlichkeit zugänglich zu machen. Deshalb beschränke ich mich beim Einrichten auf den Betrieb an einem lokalen System, auf das ohnehin nur ich Zugriff habe.

1. Installation

Zunächst solltest du SVN installieren (Paketname "subversion"). Zur Installation werden diverse Dienstprogramme mitgeliefert, von denen du auf jeden Fall auch svnadmin brauchen wirst. Im Terminal kannst du zum Beispiel mit den Befehlen

[arvid@C64 ~]$ which svn
/usr/bin/svn
[arvid@C64 ~]$ which svnadmin
/usr/bin/svnadmin

prüfen, ob die Installation erfolgreich war. Aber ich denke, da sollte es keine Probleme gegeben haben. Beide Befehle erzeugen im Übrigen lediglich eine kleine Ausgabe der Installationspfade für svn und svnadmin. Letzteres ist jenes Dienstprogramm, welches zum Konfigurieren des SVN-Repositories benötigt wird.

2. Vorüberlegungen

Bevor du loslegst, solltest du dir Gedanken darüber machen, wo du das SVN-Repository erstellen möchtest und vor Allem, wie du deine Verzeichnisstruktur organisieren möchtest. Einen kleinen Denkanstoß soll dir diesbezüglich der Abschnitt "Planung der Organisation Ihres Projektarchivs" aus dem SVN-Book bescheren.

Ich habe mich für folgendes Verzeichnislayout entschieden:

.
├── trunk
│   ├── devel
│   │   ├── meinprojekt
│   │   ├── nocheinrojekt
│   │   └── usw
│   ├── kreatief
│   │   ├── fotobearbeitung
│   │   ├── icons
│   │   └── usw
│   └── studium
│       └── usw
├── tags
└── branches

Unterhalb von trunk/ habe ich Verzeichnisse als Kategorien angelegt (devel/ für Develeopment bzw. Programmierung, kreatief/ für gestalterische Schaffensprozesse etc.). In die jeweiligen Kategorien pflege ich einzelne Projekte ein. Das kannst du allerdings vollkommen individuell halten, es gibt keine Vorschriften für die Ordnerstrukturen. Du kannst auch ganz auf die Einteilung in trunk, tags und branches sowie auf die Kategorien verzichten und zum Beispiel nur dein/e Projekt/e ins SVN-Repository stecken:

.
├── meinprojekt
├── nocheinrojekt
├── fotobearbeitung
├── icons
└── usw

Wie gesagt - das liegt ganz bei dir.

3. Verzeichnisstruktur anlegen

Um das Verzeichnislayout zu übernehmen, lege einfach ein paar Ordner in tmp/ an, wir werden sie in Kürze ins Repository übernehmen und dann wieder löschen.

[arvid@C64 ~]$ cd /tmp/
[arvid@C64 tmp]$ mkdir tmpsvn
[arvid@C64 tmp]$ mkdir tmpsvn/{trunk,tags,branches}
[arvid@C64 tmp]$ mkdir tmpsvn/trunk/{devel,kreatief,studium}

Die Projektverzeichnisse innerhalb der Kategorieverzeichnisse (wie zum Beispiel meinprojekt/ aus obiger Ordnerstruktur) lege ich nicht an, da das keine neuen Projekte sind, sondern welche, die bereits woanders gespeichert sind (das sind also schon bestehende Projekte, wir werden uns weiter unten darum kümmern). An dieser Stelle sollen uns die Kategorien genügen.

4. Repository anlegen und Struktur übernehmen

Auf ein Verzeichnis deiner Wahl erzeugst du nun mit svnadmin und dem Unterbefehl create ein neues SVN-Repository. Ich habe mich für ein Verzeichnis auf meiner externen USB-Festplatte entschieden:

[arvid@C64 tmp]$ svnadmin create /media/AUSSENPLADDE/SVN-REPO

Das Verzeichnis SVN-REPO/ wird automatisch angelegt und mit einigen notwendigen Ordnern und Dateien befüllt, die du auf keinen Fall löschen oder bearbeiten solltest (es sei denn, du weißt genau, was du tust). Jetzt kannst du die Verzeichnisstruktur übernehmen, die du eben noch unter tmp/ angelegt hast:

[arvid@C64 tmp]$ svn import tmpsvn file:///media/AUSSENPLADDE/SVN-REPO/ -m "initiales Verzeichnislayout für das SVN-Repository angelegt"
Hinzufügen     tmpsvn/trunk
Hinzufügen     tmpsvn/trunk/devel
Hinzufügen     tmpsvn/trunk/kreatief
Hinzufügen     tmpsvn/trunk/studium
Hinzufügen     tmpsvn/branches
Hinzufügen     tmpsvn/tags

Revision 1 übertragen.
[arvid@C64 tmp]$ rm -r tmpsvn/

Damit hast du bereits die allererste Revision erzeugt, als Kommentar (Parameter -m = message) hast du einen kurzen Text angegeben, der das Ganze beschreibt. Im Anschluss löscht du das temporär angelegte Verzeichnis tmpsvn/.

5. Repository auschecken

Wechsle in dein Home-Verzeichnis oder in ein anderes, wenn du deine Projektdaten nicht im Home-Verzeichnis haben möchtest und führe dann den SVN Checkout-Befehl aus:

[arvid@C64 tmp]$ cd ~
[arvid@C64 ~]$ svn co file:///media/AUSSENPLADDE/SVN-REPO/trunk/devel
Ausgecheckt, Revision 1.

Also ich beschränke mich demnach nur auf das Auschecken der Kategorie "devel" für meine Development-Projekte. Du solltest devel durch deine Kategorie oder den Namen deines Projektes austauschen, ggf. auch trunk/ weglassen (je nachdem, für welches Verzeichnislayout du dich entschieden hast). In deinem Homeverzeichnis wird nun devel/ angelegt, dort hinein kopieren wir gleich unsere Projekte aus den alten Devel-Verzeichnissen, in denen es noch keine Verionskontrolle gab.

6. Projektdaten kopieren und dem Repository hinzufügen

Wie ich schon geschrieben habe, möchte ich kein neues Projekt beginnen, sondern ein bestehendes ins SVN-Repository übertragen. Wenn du das genauso machen möchtest, dann kopiere einfach deinen Projektordner aus dem alten devel-Verzeichnis ins neue, welches wir gerade eben ausgecheckt haben.

[arvid@C64 ~]$ cp -R altes_devel_ohne_svn/meinprojekt/ devel/

Damit befindet sich meinprojekt/ jetzt unter devel/. Ein kurzer Test zeigt, dass der Kopiervorgang geklappt hat, aber dass SVN noch nichts damit anzufangen weiß (beachte das Fragezeichen an erster Stelle der Ausgabe):

[arvid@C64 ~]$ svn status devel/
?       devel/meinprojekt

Du musst also noch SVN mitteilen, dass da etwas Neues ist, was du gerne dem SVN-Repository hinzufügen möchtest:

[arvid@C64 ~]$ cd devel
[arvid@C64 devel]$ svn add meinprojekt/
A         meinprojekt
A         meinprojekt/public
A         meinprojekt/public/index.php
A         meinprojekt/public/js
A         meinprojekt/public/js/swfobject-2.2.js
A         meinprojekt/public/js/common.js
A         meinprojekt/public/js/jquery-1.4.min.js
A         meinprojekt/public/js/common.functions.js
A         meinprojekt/public/js/admin
       <..... usw. .....>

Es folgen je nach Projektgröße einige oder viele Dateien mit dem Präfix A, welcher nichts anderes bedeuted als "Added", also dem SVN hinzugefügt (aber noch nicht dem Repository!). Was nun noch fehlt, ist das Einchecken, auch Commit genannt:

[arvid@C64 devel]$ svn ci -m "meinprojekt ins Repository eingepflegt"
Hinzufügen     meinprojekt
Hinzufügen     meinprojekt/application
Hinzufügen     meinprojekt/application/Bootstrap.php
Hinzufügen     meinprojekt/application/configs
Hinzufügen     meinprojekt/application/configs/application.ini
Hinzufügen     meinprojekt/application/configs/preferences.ini
Hinzufügen     meinprojekt/application/controllers
       <..... usw. .....>
Hinzufügen     meinprojekt/public/js/swfobject-2.2.js
Übertrage Daten .........................................
Revision 2 übertragen.

Erst der Check-In-Befehl überträgt die Dateien zum Repository. Wieder hast du mit dem Parameter -m einen Kommentar angegeben. Und wieder folgt eine Liste mit all den Dateien, die du eben noch dem SVN bekannt gemacht hast. Durch das Einchecken hast du die nächste Revision erzeugt.

7. Prüfen

Du kannst nun testen, ob das Schiff wirklich sicher den Hafen erreicht hat, indem du dir einfach den SVN-Log ansiehst. Hierfür mache zuerst ein Update, anschließend lasse dir die Logs anzeigen:

[arvid@C64 devel]$ svn up
Revision 2.
[arvid@C64 devel]$ svn log
------------------------------------------------------------------------
r2 | arvid | 2010-07-20 10:44:53 +0200 (Di, 20. Jul 2010) | 1 Zeile

meinprojekt ins Repository eingepflegt
------------------------------------------------------------------------
r1 | arvid | 2010-07-20 10:07:16 +0200 (Di, 20. Jul 2010) | 1 Zeile

initiales Verzeichnislayout für das SVN-Repository angelegt
------------------------------------------------------------------------

Du siehst mit dem Log-Befehl die letzten Revisionen (neueste immer oben) inklusive der Kommentare. Offenbar verlief alles nach Plan.

8. Zusammenfassung

Die eigentliche "Magie" des Ganzen liegt in den Abschnitten 3 und 4, in denen gezeigt wird, wie du Verzeichnisstrukturen anlegst und diese in das neu erzeugte Repository übernimmst.

Alles andere danach sollte dir eventuell bereits vertraut sein, wenn du ein geübter SVN-User bist. Die Abschnitte 5 bis 7 lassen sich auch mit beliebigen Frontend-SVN-Clients erledigen, wie zum Beispiel mit einem im Nautilus integrierten SVN-Client.

Weitere Infos

Sieh dir die folgenden Seiten an, denen ich ebenfalls einige Informationen entnommen habe. Vielleicht helfen sie dir noch ein bisschen mehr für's Verständnis:

svnadmin create D:\repository\myproject
12Aug/100

SVN-Integration in den Nautilus

Im Windows-Bereich ist man sich mit ToroiseSVN seit jeher eine nahtlose Einbindung von Subversion in den Win-Explorer gewohnt.
Im Linux-Bereich muss man zumeist auf andere Tools zurückgreifen (die nicht im Dateiexplorer eingebunden werden) oder via Terminal mit dem svn-Kommando arbeiten.

Schritt 1: GnubVersion

Screenshot: GnubVersion ohne SVN Diff (Quelle: GnubVersion Projektseite)

Screenshot: GnubVersion ohne SVN Diff (Quelle: GnubVersion Projektseite)

Wer eine TortoiseSVN-ähnliche Lösung für Linux sucht und bislang noch nichts für seinen Gnome-Desktop gefunden hat, dem sei zunächst GnubVersion empfohlen. Ähnlich wie TortoiseSVN in den Windows-Dateiexplorer integriert sich GnubVersion nach dessen Installation in den Nautilus.

Also, erster Schritt: GnubVersion installieren.

Allerdings ist GnubVersion bei Weitem nicht so funktionsumfangreich wie das Windows-Pendant. Viele Funktionen sind im Grunde auch gar nicht nötig und das Wesentliche beherrscht GnubVersion ja auch, aber eine Sache fehlt: der SVN-Diff.

Schritt 2: Meld und die Nautilus-Aktionen

Um diesen Verlust auszugleichen, habe ich mir etwas Abhilfe verschafft. Folgendes wird dafür benötigt:

  • das Tool Meld (wenn ich mich recht entsinne, habe ich mir auch andere Diff-Betrachter angesehen, aber dieser gefiel mir am besten)
  • die Nautilus-Aktionen
  • und ein Skript, welches SVN mit Meld und den Nautilus-Aktionen verbinden soll (siehe Schritt 3)

Das sind die Zutaten - Wollen wir sie mal miteinander vermischen...

Die Nautilus-Aktionen lassen sich zum Beipiel in yum (dem Fedora-Paketmanager) unter dem Paketnamen "nautilus-actions" schnell finden und installieren. Das Gleiche gilt für Meld, der Paketname lautet schlicht und ergreifend "meld".

Schritt 3: Skript für Nautilus-Aktionen erstellen

Sind beide Tools installiert, folgt der spannende Teil: das Sktipt. Dieses ist zwar vergleichsweise simpel, dafür aber sehr nützlich. Zunächst der Inhalt des Skripts, eine kurze Erläuterung folgt darunter:

#!/bin/bash

# --------------------------------------------------------------------------
# Benutzung des Skripts prüfen

# Anzahl Parameter prüfen
if [ ! $# -eq 1 ]; then
 echo "svndiff benötigt genau einen Parameter, nämlich den Pfad zur Datei (wobei diese natürlich unter SVN-Kontrolle stehen muss)" | zenity --text-info --title="Fehler" --width=600 --height=400
 exit 1
fi

# --------------------------------------------------------------------------
# Variablen anlegen und Dateien prüfen

# Anzahl Wörter, die durch Slash getrennt sind
WORD_COUNT=`echo ${1} | sed 's/\// /g' | wc -w`
WORD_COUNT_PLUS_1=`expr $WORD_COUNT + 1`

# Pfad und Dateinamen ermitteln
FILE_PATH="`echo ${1} | cut -d/ -f1-${WORD_COUNT}`/"
FILE_NAME=`echo ${1} | cut -d/ -f${WORD_COUNT_PLUS_1}`

# Pfade für die SVN-Dateien zusammenstöpseln
# Vergleichsdatei aus SVN-Repository: <pfad>/.svn/text-base/<file>.svn-base
SVN_BASE_FILE="${FILE_PATH}.svn/text-base/${FILE_NAME}.svn-base"
# geänderte bzw. zu prüfende Datei <pfad><file> (kommt direkt aus dem Aufrufparameter, daher kein Zusammenstöpseln notwendig)
SVN_CHANGED_FILE=$1

# Pfade prüfen
# die SVN-Base-Datei
if [ ! -f $SVN_BASE_FILE ]; then
 echo "Datei existiert nicht: $SVN_BASE_FILE" | zenity --text-info --title="Fehler" --width=600 --height=100
 exit 1
fi
# die Datei
if [ ! -f $SVN_CHANGED_FILE ]; then
 echo "Datei existiert nicht: $SVN_CHANGED_FILE" | zenity --text-info --title="Fehler" --width=600 --height=100
 exit 1
fi

# --------------------------------------------------------------------------
# den eigentlichen Zweck des Skripts erfüllen

# meld (das Diff-Tool) starten
meld $SVN_BASE_FILE $SVN_CHANGED_FILE &

exit 0

Was passiert in dem Skript im Klartext...? Diese Frage möchte ich dir natürlich sofort beantworten.

1. Pfade ermitteln
Für die Verwendung des Skripts wird beim Aufruf ein Parameter benötigt, nämlich der Pfad zur Datei, für die ein SVN-Diff angezeigt werden soll. Die Angabe des Parameters wird im Block nach der ersten Trennlinie geprüft. Im nächsten Abschnitt wird aus dem Parameter der Verzeichnispfad vom Dateinamen getrennt. Daraus wird der Pfad erschlossen, der zur entsprechenden SVN-Base-Datei führt. Nun sind beide Pfade bekannt: Der Pfad zur eigentlichen Datei und der Pfad der zugehörigen SVN-Base.

2. Diff-Tool starten
Im letzten Block unter dem dritten Trennstrich wird das Tool Meld gestartet, dieses erhält als Parameter die Pfade der beiden Dateien. Das ist auch schon alles, was wir an dieser Stelle brauchen.

3. That's it.
Mehr passiert da auch gar nicht...

Screenshot: SVN Diff mit nautilus-actions

Screenshot: SVN Diff mit nautilus-actions

Schritt 4: Skript und Nautilus-Aktionen vermählen

Lege nun eine Textdatei an und speichere den Inhalt des oben abgebildeten Skripts darin. Pfad und Dateiname sind egal, denn Namen sind bekanntlich Schall und Rauch. Lege die Datei z.B. im Home-Verzeichnis unter ./.nautilus-actions/ ab und nenne sie svndiff (meinethalben auch "schall und rauch"). Starte dann das Programm nautilus-actions unter System > Einstellungen > Nautilus-Aktionen und füge diese Datei einfach hinzu.

Und fertig ist unser SVN-Diff.

Schritt 5: Have fun!

Wähle im Nautilus Dateien aus, die sich unter Versionskontrolle mit Subversion befinden und lasse dir via Rechtsklick auf "SVN-Diff" eben selbigen anzeigen.

Screenshot: Meld mit SVN-Diff

Screenshot: Meld mit SVN-Diff

10Aug/100

PDF-Dateien bearbeiten mit PDF Chain

Du hast mehrere PDF-Dateien und möchtest diese zu einer einzigen Datei zusammenführen? Oder du möchtest ein mehrseitiges Dokument aufteilen in viele kleine PDF-Dateien?

Dazu und zu etwas mehr noch ist das Tool PDF Chain (Paketname: pdfchain) in der Lage. Einfach, schlicht und funktionell: Just good.

8Aug/100

LaTeX-Editor Texmaker

Du arbeitest an Dokumentationen für Studium/Schule/Arbeit? Du machst das mit TeX/LaTeX und suchst noch einen guten LaTeX-Editor?

Ich empfehle dir hierfür meinen Lieblings-Editor Texmaker. Im Gegensatz zu einigen anderen LaTeX-Editoren ist dieser sehr einfach bedienbar (keine sprichwörtlichen tausend Knöpfe zum drücken) und beherrscht trotzdem alles Nötige, um mit tex-Dokumenten arbeiten zu können (bis hin zu Autocode-Vervollständigung ist im Grunde alles dabei, siehe auch Feature-Liste auf der Homepage).

Ich mag den Texmaker jedenfalls sehr gerne! Einfache Shortcuts zum "Texen" erleichtern die Arbeit (Taste [F6] zum Erzeugen einer PDF-Datei aus den tex-Sourcen und Taste [F7] zum Ansehen der Datei im System-Standard-PDF-Viewer). Der Texmaker lässt sich -das sei am Rande erwähnt- auf jedem gängigen Betriebssystem installieren.

5Aug/100

Viele Dateien auf einmal umbenennen mit pyRenamer

Hunderte von Dateien, die du umbenennen möchtest? Aber um Gottes Willen nicht einzeln, sondern in einer Art Batch-Verarbeitung?

Kein Problem! Nimm einfach den pyRenamer. Mit diesem Tool ist das gleichzeitige Umbenennen vieler Dateien möglich. Die Bedienung ist im Übrigen sehr einfach, deshalb schreibe ich dazu mal nichts weiter.

Zwei kleine Anwendungsbeispiele

Fotos von deiner Foto-Kamera kopiert, aber dir gefallen die automatisch gesetzten Dateinamen wie "p4200019.jpg" einfach nicht.
Du wünscht dir stattdessen Bezeichnungen wie "urlaub-ruegen-2010-001", "urlaub-ruegen-2010-002" etc. oder statt einer Durchnummerierung gar zufällige Zahlen.

Oder aber du bist Programmierer und in deinem Projekt gilt es, eine Vielzahl von Log-Dateien zur automatisierten Verarbeitung umzubenennen, weil der Log-Analyzer ein bestimmtes Dateinamenformat ewartet (warum auch immer er das sollte... aber das ist ja nur ein Beispiel)?

Der pyRenamer macht's möglich.

4Aug/100

Reihenfolge der Konten in Thunderbird ändern

Wenn du Thunderbird benutzt und mehrere eMail-Konten dein Eigen nennst, dann könnte es vielleicht auch sein, dass jene Konten im Donnervogel in einer nicht gewünschten Reihenfolge angezeigt werden. Es gibt einen Weg, die Reihenfolge zu ändern. Diesen möchte ich dir aufzeigen:

Erster Anlaufpunkt für dich sollte diese Seite sein: http://kb.mozillazine.org/Account_order. Dort wird dir eine Thunderbird-Extension offenbart, die deinen Wunsch zu erfüllen in der Lage sein soll.
Ich habe die Extension nicht ausprobiert, sondern mich für die zweite Variante entschieden, von der auf der Seite die Rede ist: das Anpassen der Datei prefs.js. Ohne an dieser Stelle große Worte darüber zu verlieren, was genau an prefs.js editiert werden muss, verweise ich dich lieber mal an eine bessere Informationsquelle.

Lies dir dieses Forumsthema durch: http://forums.mozillazine.org/viewtopic.php?t=56225. Solltest du dabei auf Probleme stoßen, könnte dir jenes Thema helfen: http://forums.mozillazine.org/viewtopic.php?p=544764.

Die Datei prefs.js -solltest du keinen Schimmer haben, wo sie ist- befindet sich im Verzeichnis des verwendeten Thunderbird-Profils. Unter Linux war das bei mir zum Beispiel:

/home/arvid/.thunderbird/<profilname>/prefs.js

Wenn du den Profilnamen nicht selbst schon längst in Eigenarbeit umbenannt hast oder Ähnliches, dann sieht der Name des Verzeichnisses <profilname> ungefähr so aus:
d6yv24g1.default
Also: <kauderwelsch-ähnliche-profilbezeichnung>.default, wobei der erste Teil von Nutzer zu Nutzer stark variieren kann.

Einfach mal schauen, welche Zeichenkombination für das Verzeichnis deines Thunderbird-Profils zutrifft.

Öffne die Datei prefs.js ganz easy-peasy mit einem Texteditor deiner Wahl und bearbeite sie nach Belieben. Achtung, dabei nichts kaputt machen. Lege besser noch eine Sicherheitskopie an, wenn du dir unschlüssig bist, was du da genau tust!

2Aug/100

Verzeichnisübersicht mit tree

Übersicht eines Verzeichnisbaumes gefällig? Erlabe dich an den Ergüssen des Befehles tree:

[arvid@C64 ~]$ tree -d

Eine Beispielausgabe könnte wie folgt aussehen, wobei der Punkt (".") für das Verzeichnis steht, aus welchem heraus der tree-Befehl ausgeführt wird (in diesem Falle das Home-Verzeichnis des Users arvid):

.
├── verzeichnis
│   ├── unterverzeichnis
│   │   ├── unterunterverzeichnis
│   │   ├── noch eins
│   │   └── das dritte unterunterdingens
│   ├── wieder ein unterverzeichnis
│   │   ├── jetzt wirds langsam bunt
│   │   ├── ich denke
│   │   └── du hast spätestens
│   └── an dieser stelle
│       └── begriffen
├── was der befehl tree
└── macht

Ist dir die Ausgabe zu groß, kannst du sie einschränken durch den Parameter -L.

[arvid@C64 ~]$ tree -d -L 2

Hierbei käme zum Beispiel jene Ausgabe raus:

.
├── verzeichnis
│   ├── unterverzeichnis
│   ├── wieder ein unterverzeichnis
│   └── an dieser stelle
├── was der befehl tree
└── macht

Der Parameter -d sorgt im Übrigen dafür, dass ausschließlich Verzeichnisse im Baum ausgegeben werden, Dateien werden ignoriert. Ohne Angabe von -d würden also auch Dateien angezeigt werden.
Der Parameter -L mit dem folgenden Wert 2 beschränkt den Verzeichnisparser auf die Tiefe 2 (L steht hier für Level). Also Unterverzeichnisse werden nur dann in die Ausgabe eingeschlossen, wenn sie bis zu 2 Verzeichnisebenen tiefer liegen als das Wurzelverzeichnis, von dem aus "gezählt" wird (im Beispiel ist es das Home-Verzeichnis).

Von der Usage-Hilfe kannst du dich mit weiteren Möglichkeiten für Parametereingaben berieseln lassen:

[arvid@C64 ~]$ tree --help
1Aug/100

Umstieg auf Linux

Du benutzt ein Betriebssystem, welches fern den unixoiden Systemen ist? Du möchtest dich aber an einer Linux-Distribution ausprobieren und vllt. sogar ernsthaft dahin umsteigen? Und das Einzige, was dir noch fehlt, sind ein Ansatz, die Bezugsquellen und ein Schuss Motivation, um das Ganze auch wirklich durchziehen zu können?

Dann können dir möglicherweise diese Artikel helfen, die ich seinerzeit als Co-Autor für den Einsteiger-Blog verfasst habe:

Ergänzend dazu findest du hier noch Folgendes:

1Aug/100

Mögen die Spiele beginnen.

Und schon befindet sich der Blog in seinen Startlöchern.

Ich freue mich darauf, diese Webseite als persönliches Linux-"Logbuch" zu nutzen. Ich werde an dieser Stelle meine Linux-Erfahrungen (alle möglichen und unmöglichen Probleme, Lösungen, Erkenntnisse und sonstige Informationen, mit denen ich in Kontakt gerate) protokollieren. In erster Linie mache ich das für mich selbst, damit ich eine Art Nachschlagewerk habe, um gleiche Fragestellungen zu einem späteren Zeitpunkt schnell lösen zu können.

Hiermit sei aber auch dir -egal, ob du erfahrener oder unerfahrener Linux-User bist- dieses Wissen zur Verfügung gestellt. Ich hoffe, du wirst einen gewissen Nutzen daran finden können. Ich freue mich selbstredend über jegliche Art von freundlichem Feedback!

In diesem Sinne - Viel Spaß beim Lesen, vielen Dank für's Antworten.