UsingPrograms

From HerzbubeWiki
Jump to: navigation, search

Manuell CDs und DVDs brennen

hdiutil

hdiutil ist ein Tool zum Anlegen, manipulieren und brennen von Disk Images. Viele seiner Funktionen können mit "Disk Utility.app" (Festplatten-Dienstprogramm) via GUI genutzt werden. Generell gibt es eine sehr gute man page für hdiutil.

hdiutil makehybrid -default-volume-name xxx -o yyy zzz

--> bastelt ein Hybrid-Image mit Filenamen yyy.iso mit dem Inhalt des Verzeichnis zzz und dem Volume-Titel xxx

hdiutil burn xxx.iso

--> brennt das Image auf Disk

hdiutil burn -list

--> listet die verfügbaren Devices auf (kann evt. als Input für cdrecord verwendet werden)


Umgang mit cdrecord und mkisofs (veraltet)

mkisofs -v -hfs -V "xxx" -R -J -probe yyy >zzz-image

--> bastelt ein HFS Volume Image mit dem Inhalt des Verzeichnis yyy und dem Volume-Titel xxx.

--> unbestätigt, aber evt. wahr: Volume-Titel sollte keine Spaces enthalten

cdrecord -dev=IOCompactDiscServices -v -speed=24 fs=8m -overburn -dao -eject xxx-image

--> IOCompactDiscServices ist das Device, unter dem der Record angesprochen werden kann

--> fs=8m gibt einen unnötig grossen Buffer an - aber man will ja sicher gehen

--> dao = disc at once; macht bei Overburning von grossen Images sicherlich Sinn


eject disk1 --> builtin CDROM eject disk2 --> external CDROM

From fink-users:

  • prepare Joliet compliant iso image from a directory:
mkisofs -J -R -V "name of the CD" -o output_file.iso somedirectory/
  • burn audio CD:
cdrecord dev=IOCompactDiscServices speed=12 -v -audio -pad somelistofrippedaudio(.aiff or .wav)

- to turn burnfree on, you need to add driveropts=burnfree to the cdrecord command

cd /mnt/stuff/Archiv/Warez/Photoshop
cdrecord -dev=IOCompactDiscServices -v -speed=24 fs=8m -dao -eject Photoshop.7.iso


wget

Kommando zum Saugen eines ganzen Verzeichnis-Baums von einer Site wget -rkp -l 0 http://foo.bar/dir1/index.html

Das gleiche, aber mit der Einschränkung nur Zeug unter dir1 zu holen -> für den Fall, dass auf irgendeiner Seite noch ein "klitzekleiner" Link besteht, der in einen anderen Verzeichnisbaum "ausbricht" wget -rkp -np -l 0 http://foo.bar/dir1/index.html

Kommando zum Holen einer einzigen Seite mit allen Prerequisites, auch wenn diese auf anderen Hosts liegen: wget -Hkp http://foo.bar/index.html

-r Rekursiver Download wget -r http://foo.bar/index.html

-H Host-übergreifender Download -L Nur relativen Links folgen (eine Seite könnte ja auch einen absoluten Link auf ein Dokument des gleichen Host enthalten) -np Niemals in der Verzeichnis-Hierarchie weiter als bis zum angegebenen Base-Verzeichnis springen.

-p Prerequisites downloaden, d.h. alles, was zum Ansehen einer Seite wichtig ist (Images, Sounds, Stylesheets)

-l Tiefe (depth). Default = 5. 0 = unendlich Damit wird angegeben, wieviele Hops von der Ursprungs-URL weggegangen werden darf. Mit Tiefe 2 wird 1.html->2.html->3.html weit gesprungen.

-k Links konvertieren für lokales Browsen. Relative Links auf Elemente, die nicht heruntergeladen worden sind, werden ins absolute Format http://... umgewandelt.

-c Mit abgebrochenem Download weitermachen (continue)


CVS

Die Umgebungsvariable CVSROOT sollte gesetzt sein:

export CVSROOT=/Volumes/data/Development/cvsroot

Creating a new CVS repository:

See: file://localhost/data/Infos,%20Manuals,%20Artikel/References/cederqvist-1.11.3.html/cvs_2.html#SEC23

Adding a new directory tree to CVS

cvs import -m "Initial import comment" target/directory/in/repository foobar start

See: file://localhost/data/Infos,%20Manuals,%20Artikel/References/cederqvist-1.11.3.html/cvs_3.html#SEC40

Tags

Tags are "artificial" revisions of a file. A normal revision may go up from 1.20 to 1.21 automatically after a file is committed. If you tag a file then you mark a given revision of a file with, without committing the file.

To assign tag to a file: cvs tag foobar.c To view all tags on a file: cvs status -v foobar.c To assign tag to all files in a directory and its subdirs: cvs tag . To checkout all files for tag : cvs checkout -r .

To assign tag to files only that already contain tag : cvs tag -r . To assign tag to revisions of files no later than : cvs tag -D . In addition to the last 2 commands: option -f specifies to tag the most recent revision of a file in the repository, instead of ignoring the file, if -r or -D don't produce a match.

See: file://localhost/data/Infos,%20Manuals,%20Artikel/References/cederqvist-1.11.3.html/cvs_4.html#SEC53

Steps to take before checking in to CVS

  1. Optionally: make clean to prevent binaries and other stuff from getting into CVS
  2. cvs add
  3. cvs remove
  4. cvs commit on project's top level


ImageMagick

  • Bilder konvertieren:
for i in *bmp; do
  convert -size 1024x768 "$i" -resize 1280x1024 -quality 90 "$i.jpg";mv *jpg ../jpg
done
  • Bilder skalieren (das Ratio wird beibehalten, falls die neue Grösse nicht passt, wählt convert selbst eine passende Grösse, die dem ursprünglichen Ratio am nächsten kommt):
for i in *jpg; do
  convert -sample 1600x1200 "$i" "new-$i"
done
  • Grösse bestimmen:
identify x.jpg

Weitere Infos: die ImageMagick Homepage hat Links zu verschiedenen Artikeln, z.B. http://www-106.ibm.com/developerworks/library/l-graf/?ca=dnt-428


rsync

Ein rsync Server verwendet Port 873

Beispiel für einen Aufruf auf der Kommandozeile:

rsync -e ssh -avz patrick@osgiliath:/var/backups ~/Desktop/backups
  • -e = shell, die verwendet werden soll
  • -a = archive (oder --archive), Kurzform fuer "recursive and preserve almost everything"
  • -v = verbose (oder --verbose)
  • -z = compress (oder --compress)
  • -n = simulation (oder --dry-run)
  • -q = quiet (oder --quiet)
  • Trailing Slash bei einem Verzeichnis = nur den Inhalt des Verzeichnisses
  • Kein Trailing Slash = das Verzeichnis selbst, inkl. alle Subverzeichnisse


Bei Verwendung in cron:

  • Option -v durch -q ersetzen
  • sowie rsync muss als Daemon auf der Remote Maschine laufen, wenn keine ssh Verbindungs-Optionen (= Passwort) in einem File gespeichert werden sollen.
  • der rsync Daemon muss das gewünschte Verzeichnis als Modul mit anonymous Zugriff exportieren, wenn keine rsync Verbindungs-Optionen (= Passwort) in einem File gespeichert werden sollen

Der crontab Eintrag kann z.B. so aussehen:

0 20,21,22,23,0 * * *  rsync -aqz osgiliath::backup ~/Desktop/backup

Wenn rsync als Daemon auf der Remote Maschine läuft, koennen folgende Kommandos nützlich sein:

  • Alle verfügbaren Module abrufen
rsync patrick@osgiliath::
  • Den Inhalt eines bestimmten Moduls auflisten
 rsync patrick@osgiliath::backup


Toolset für Sound-Verarbeitung

Tools installieren

Homebrew tools

Install via Homebrew:

  • libogg, libogg-shlibs
  • libvorbis0, libvorbis0-shlibs
  • lame, lame-dev, lame-shlibs
  • libmad, libmad-shlibs, madplay
  • flac-nox, flac-nox-bin, flac-nox-shlibs
  • libsndfile1, libsndfile1-dev, libsndfile1-shlibs
  • mppdec
  • ffmpeg. Note that several additional non-standard codecs can be installed - run brew info ffmpeg for information, and/or visit the FFmpeg wiki. I typically run brew install ffmpeg --with-fdk-aac --with-libmodplug --with-libvorbis --with-libvpx --with-openh264 --with-opus --with-theora --with-tools --with-two-lame --with-x265


sox

Download von http://www.sourceforge.net/projects/sox

Entpacken in /usr/local/src, danach wie gewohnt configure, make, make install.

Besonderheiten: damit die von fink bereit gestellten Libraries gefunden werden, müssen dem configure Script einige Compiler-Optionen mitgegeben werden:

./configure CPPFLAGS="-I/sw/include" LDFLAGS="-L/sw/lib"


mac (Monkey's Audio Compressor)

Download von http://www.sourceforge.net/projects/mac

Entpacken in /usr/local/src, danach wie gewohnt configure, make, make install

Besonderheiten: Zumindest die Version mac-3.99-u4-b5 hat einen Linker-Fehler mit gcc 4. Ein Tracker-Item (http://sourceforge.net/tracker/index.php?func=detail&aid=1377803&group_id=123827&atid=699624) weist darauf hin, dass das Problem dadurch umgangen werden kann, dass beim Linken gcc statt g++ verwendet wird. Auf meiner Maschine führt dieser Workaround zu anderen Linker-Fehlern, denen nicht beizukommen war. Auf der fink-users Mailing Liste (http://www.mail-archive.com/fink-users@lists.sourceforge.net/msg21840.html) war dann der endgültige Hinweis mit MACOSX_DEPLOYMENT_TARGET zu finden.

MACOSX_DEPLOYMENT_TARGET=10.3
./configure --prefix=/usr/local
make
make install
unset MACOSX_DEPLOYMENT_TARGET


shntool

Download von http://www.etree.org/shnutils/shntool/

Entpacken in /usr/local/src, danach wie gewohnt configure, make, make install

Hinweis: Dieses Tool muss als letztes der Serie installiert werden, da es eigentlich nur ein Front-End ist und deshalb davon abhängt, was bereits alles vorhanden ist.


Anwendungsfälle

CD Image im .ape Format in Tracks aufsplitten

Im folgenden Beispiel liegen die Track-Informationen in einem .cue File vor. Es wäre aber auch möglich, die Split-Punkte auf der Kommandozeile anzugeben.

shntool split -f CDImage.ape.cue CDImage.ape


Batch-Umwandlung von .wav Files in .mp3

for i in 01 02 03 04 05 06 07 08 09 10; do lame --preset extreme track$i.wav $i.mp3; done


Konvertierung mit ffmpeg

Folgendes Kommando konvertiert Sound Files, wobei das Input/Output Format anhand der File Extension (.wav, .mp3, etc.) erkannt wird:

ffmpeg -i <input file> <output file>


Konvertierung mit flac

Folgendes Kommando konvertiert eine .flac Datei in eine .aiff Datei, wobei der Name des Output Files explizit angegeben wird und das Format implizit aus der File Extension abgeleitet wird:

flac --decode --output-name=<output file>.aiff <input file>

Folgendes Kommando konvertiert mehrere Dateien von .flac in .wav

flac --decode *.flac

Ditto, aber das Ausgabe Format explizit als .aiff festlegen:

flac --decode --force-aiff *.flac


Spaceward Ho!

Special ship designs with the following Tech combinations:

  • WE 12, WA 15, SC 15, TE 1, MI 0
  • WE 11, WA 12, SC 12, TE 1, MI 0


Convert .001/.002 etc. to .bin/.cue

On some file sharing sites you may encounter archives (often .rar archives) that contain a lot of small files with extensions .001/.002 etc. These files are chunks of binary data that can be re-assembled into a set of .bin/.cue files like this:

  • Install 7-Zip
  • Extract the archive
  • Right-click on the .001 file
  • Select "Extract to here" from the context menu

The resulting .bin/.cue files will be placed in the current folder.


Convert .bin/.cue to .iso

Install bchunk via Homebrew/MacPorts/whatever, then run this command line:

bchunk foo.bin foo.cue foo.iso