Archiv des Autors: Stefan Baireuther

Wo befindet sich was?

/bin ausführbare Systemdateien
/boot Kernel und Bootmanager
/dev Geräte
/etc globale Konfigurationsdateien
/home persönliche Verzeichnisse
/lib Systembibliotheken
/media Unterverzeichnisse für Dateiträger
/mnt Unterverzeichnisse für Dateiträger
/opt Software
/proc Infos zu aktiven Prozessen
/sbin Systemdateien
/tmp temporäre Dateien
/usr/bin Programme
/usr/lib Bibliotheken
/var Log-Dateien, Spooler…
/lost+found wiederhergestellte Dateien

Laufwerke finden sich, ja nach Distribution, unter verschiedenen Bezeichnungen. Festplatten sind meist /dev/hda1 oder /dev/sda1. a ist dabei die erste Festplatte und 1 die erste Partition darauf. So wäre /dev/sdb2 die zweite Festplatte und die zweite Partition darauf.
CD- bzw. DVD-Laufwerke sind meist /dev/scd0 oder /dev/sr0. Die 0 bezeichnet das erste Laufwerk, das zweite wäre dann die 1.

umask

umask ergibt die Zugriffsrechte für neue Dateien
Als root kann in der Datei /etc/profile ein umask-Wert eingetragen werden. Der Wert 0077 lässt für neue Dateien nur deren Besitzer zu.

chmod

Zugriffsrechte ändern

chmod +x Datei  macht eine Datei ausführbar

chmod u=rwx, g=rx, o=r Datei  macht die Datei für den Besitzer schreib-, les- und ausführbar, für die Gruppe les- und ausführbar und für alle anderen lesbar

chmod g=rwx tausch/  macht das Verzeichnis tausch für die Gruppe les-, schreib- und ausführbar

chmod 0754 filename  gibt dem Eigentümer alle Rechte, die Gruppe darf lesen und ausführen, alle anderen nur lesen (r = 4, w = 2, x = 1).

Durch die Angabe von „=“ werden die Rechte hart gesetzt: chmod u=rx setzt für den Besitzer „r“ und „x“ und löscht „w“. Die Angabe von „+“ und „-“ hingegen setzt oder löscht einzelne Rechte ohne die anderen zu verändern: chmod u+x setzt für den Benutzer zusätzlich die Berechtigung auszuführen.

find pfad -type f -exec chmod a-x "{}" ";"  ändert nur Dateien, keine Ordner.

Die Werte können auch mit Oktalzahlen angegeben werden.

Disketten kopieren

Diskette in Image-Dateien kopieren: dd if=/dev/fd0 of=floppyimage.img
Eine exakte Kopie der Diskette wird unter floppyimage.img abgelegt.
und wieder zurück: dd if=floppyimage.img of=/dev/fd0

df

zeigt die Belegung aller gemounteten Medien an
df -h .; echo; du -m --max-depth=1 . 2>/dev/null | sort -nr | head -10 zeigt den freien Platz auf der aktuellen Partition plus die zehn vollsten Unterverzeichnisse des aktuellen Verzeichnisses

tar

tar -xzvf Datei.tar.gz entpackt die Datei
tar -czvf backup.tar.gz /home /etc sichert die Verzeichnisse /home und /etc in das Archiv backup Dateibäume in ein Archiv schreiben

Dateien mit Rechten kopieren:
cd quelle tar cf - . | (cd ziel;tar xvf -) 

Kopie über das Netzwerk:
tar -cz * | ssh server "cat - > /backups/backup.tgz" 

Aufteilen auf mehrere Disketten:
tar cMvf /dev/fd0 *  sichert alle Dateien im Verzeichnis auf mehrere Disketten und
tar xMvf /dev/fd0 *  packt diese wieder aus

Archive mit mehr als 1 GB:
tar cvf - quelle | gzip > archiv.tar.gz 
tar xzvf archiv.tar.gz

Parameterübersicht:

-c Ein neues Archiv erzeugen.
-d Dateien im Archiv und im Dateisystem miteinander vergleichen.
-f Archiv in angegebene Datei schreiben. / Daten aus angegebener Datei lesen.
-j Archiv zusätzlich mit bzip2 (de)komprimieren.
-J Archiv zusätzlich mit xz (de)komprimieren.
-k Das Überschreiben existierender Dateien beim Extrahieren aus einem Archiv verhindern.
-p Zugriffsrechte beim Extrahieren erhalten.
-r Dateien an ein bestehendes Archiv anhängen. (nur bei nicht gepackten Archiven!)
-t Inhalt eines Archivs anzeigen.
-u Nur Dateien anhängen, die jünger sind als ihre Archiv-Version.
-v Ausführliche Ausgabe aktivieren. Hierbei ist zu beachten, dass man dies möglichst an den Anfang des Befehls anhängt, wenn mehrere Optionen kombiniert werden. z.B. -cfv würde zu einer Fehlermeldung führen. Korrekt wäre -vcf
-w Jede Aktion bestätigen.
-x Dateien aus einem Archiv extrahieren.
-z Archiv zusätzlich mit gzip (de)komprimieren.
-Z Archiv zusätzlich mit compress (de)komprimieren.
-A Inhalt eines bestehenden Archivs in ein anderes Archiv kopieren.
-M Mehrteiliges Archiv anlegen/anzeigen/extrahieren.
-L Medium wechseln, wenn ZAHL KBytes geschrieben sind.
-W Archiv nach dem Schreiben prüfen.

split

Große Dateien aufteilen: split -b 1440k QuellDatei BasisName
Mit -b gibt man an, dass die Datei nicht zeilenweise sondern byteweise betrachtet werden soll.
1440k bestimmt die Größe der einzelnen aufgeteilten Dateien.
QuellName ist natürlich der Name der aufzuteilenden Datei und
BasisName ist der Name der als ,Basis‘ für die Namen der erzeugten kleineren Dateien verwendet wird. Um eine derart aufgeteilte Datei später wieder zusammenzusetzen verwendet man den ,cat‘ Befehl: cat BasisName* > NamederZieldatei

recode

ändert die Zeichenkodierung des Dateinamens
recode quellcode..zielcode datei
recode ibmpc..lat1 datei konvertiert von DOS nach UNIX
Zeichensätze:

  • ISO-8859-1 ohne Euro
  • ISO-8859-15 mit Euro
  • UTF8 universeller Zeichensatz
  • windows-1252
  • cp1252
  • cp850
  • codepage=850

Der Dateininhalt wird mit iconv konvertiert

tr

Zeichen in Dateien ersetzen

Option Bedeutung
-d Entfernt die Zeichen in Satz1 aus der Zeichenfolge
-s Entfernt mehrfache Vorkommen der Zeichen in Satz1
-c Ersetzt die Zeichen, die nicht in Satz1 vorkommen

Beispiele:
cat file1 | tr altes_Wort neues_Wort > NeueDatei

tr -d ':' < /etc/passwd 
liest /etc/passwd und entfernt aus diesem Zeichenstrom alle Doppelpunkte.

tr -s '\n' 
ersetzt doppelte oder mehrfache Leerzeilen durch eine einzige.

tr "\n" " " < dateiname > neue_datei 
löscht alle Zeilenumbrüche

tr [:lower:] [:upper:]
ersetzt alle Kleinbuchstaben aus der Standardeingabe durch Großbuchstaben und gibt das Ergebnis auf der Standardausgabe aus.

diff

diff datei1 datei2 Vergleichen von zwei Textdateien
sdiff datei1 datei2 Vergleichen von zwei Textdateien nebeneinander
diff -r /verzeichnis1/ /verzeichnis2/ vergleicht zwei Verzeichnisse rekursiv
diff -rq /verzeichnis1/ /verzeichnis2/ vergleicht zwei Verzeichnisse rekursiv und gibt nur die Verzeichnisnamen aus

sed

sed verwendet reguläre Ausdrücke

Suchen und ersetzen von Text in Dateien: sed 's/Suchtext/Ersetztext/g' quelldatei.txt > zieldatei.txt Ist im zu bearbeitenden Text ein Slash / , so muss dieser mit  \/  angegeben werden.
Leerzeichen in Dateinamen in Unterstriche umwandeln: for a in *; do mv "$a" "$(echo $a | sed 's/ /_/g')"; done

grep

grep -r haus documents/texte/ sucht rekursiv in texte nach dem Wort haus
grep -l -r suchwort /home/stefan/bin/* durchsucht ab dem Verzeichnis /bin/ alle Dateien rekursiv (-r) nach dem Inhalt „Suchwort“ und gibt nur die Dateinamen aus (-l)
grep -i ROot /etc/passwd  sucht nach „root“ ohne Beachtung der Groß- und Kleinschreibung

Weiterlesen

find

find -name Datei sucht nach der Datei

find . -name bild.jpg sucht nach bild.jpg. Der Punkt weist find an, alle Ordner ab dem aktuellen Verzeichnis zu durchsuchen.

find /mnt/cdrom/bilder -name bild.jpg Dieser Befehl durchsucht das Verzeichnis bilder einer nach /mnt/cdrom gemounteten CD.

Weiterlesen

convmv

convmv --upper --notest -r . konvertiert rekursiv alle Dateinamen in Großschreibung
convmv --lower --notest -r . konvertiert rekursiv alle Dateinamen in Kleinschreibung
convmv -f iso-8859-15 -t utf-8 -r . konvertiert rekursiv alle Dateinamen in von iso-8859-15 nach utf-8

cp

cp Quelle Ziel kopiert Dateien
Schalter:

  • -d Links bleiben als Links erhalten
  • -f existierende Zieldateien werden überschrieben
  • -i Nachfrage vor Überschreiben
  • -r Dateien werden rekursiv kopiert
  • -R Ordner werden rekursiv kopiert
  • -u existierende Zieldateien werden überschrieben, wenn Quelldatei neuer ist
  • -p erhält die Dateiattribute

du

schätzt Platzverbrauch von Dateien

  • du -h Anzeige „human-readable“ in Kilo, Mega, Gigabyte
  • du -s ohne Unterverzeichnisse
  • du -c bildet am Ende eine Gesamtsumme
  • du -L folgt symolischen Links
  • du --max-depth=1 -h . | sort -rn | less
    Verzeichnisse mit Platzverbrauch geordnet anzeigen
  • du -Lhd0 <Ordner>
    gibt die Gesamtgröße des Ordners aus, auch wenn dieser ein symbolischer Link ist

ls

ls -lh listet den Inhalt des aktuellen Verzeichnisses auf (wie dir ).

  • -a zeige alle Dateien und Verzeichnisse an; auch die versteckten, deren Namen mit einem Punkt beginnen.
  • -A wie -a, nur ohne die Einträge . und …
  • -B Keine Dateien, die auf ~ enden, anzeigen.
  • -R rekursiv alle Unterverzeichnisse anzeigen.
  • -i zeige auch die Inode-Nummern an.
  • -l langes Format: Es werden neben dem Dateinamen auch Größe, Besitzer, Gruppe und Zugriffsrechte angezeigt.
  • -f wie -l, aber ohne Gruppen-Informationen.
  • -s zeigt nur Dateinamen und Größen in Kilobyte an.
  • –color farbige Ausgabe nur Unterscheidung verschiedener Dateitypen.
  • -F hänge an bestimmte Dateien ein zusätzliches Zeichen an, um auf den Dateityp hinzuweisen (z.B.: / für Verzeichnisse; * für ausführbare Dateien, @ für symbolische Links)
  • –full-time vollständige Zeitangaben ausgeben (nur zusammen mit -l)
  • -n User- und Gruppen-IDs anstelle der Namen ausgeben.
  • -S sortiert der Größe nach

ls -lR | sort +4nr listet Dateien der Größe nach sortiert auf.
ls --sort=size -lhr ergibt die Größe eines einzelnen Verzeichnisses

tail

Die letzten 10 Zeilen einer Datei auf Standardausgabe ausgeben
tail -f datei verfolgt die Änderungen in einer Datei (gut für Log-Files)
tail -n xx datei gibt die letzten xx-Zeilen aus

cat

Dateianzeige ohne Unterbrechungen cat datei*.txt > datei.txt
cat kopiert eine Reihe von als Parameter übergegebenen Dateien in die Standard-Ausgabe. Mit Hilfe einer Umleitung »>« können Sie so mehrere Dateien zusammenkopieren:
Beispiel: cat Teil1 Teil2 Teil3 > Gesamt
Werden gar keine Dateinamen angegeben, so wird die Standard-Eingabe verwendet. Es folgen einige nützliche Optionen:

  • -b In ASCII-Dateien wird jede (nicht-leere) Zeile mit einer Zeilennummer versehen.
  • -n In ASCII-Dateien wird jede Zeile mit einer Zeilennummer versehen.
  • -E Zeige in ASCII-Dateien ein »$«-Zeichen am Ende jeder Zeile an (so können Sie Leerzeichen am Ende einer Zeile erkennen).

Navigation & Pfadangaben

Man kann sehr schnell durch Pfade navigieren, wenn man die Autovervollständigung durch die TAB-Taste nutzt. Es genügt, den Anfang eines Pfades anzugeben und dann vervollständigt die TAB-Taste automatisch. Ebenso kann man sich die History der Shell zunutze machen. Mit der „Pfeil-nach-oben-Taste“ holt man vergangene Befehle wieder. Mit der „Bild-nach-oben-Taste“ holt man vergangene Befehle wieder, von denen man den Anfang wieder getippt hat. (siehe Eingabe-History aktivieren)

Die Angabe von ~ bewirkt den Sprung ins eigene Homeverzeichnis.

Die Angabe eines Punktes symbolisiert das aktuelle Verzeichnis.

Die Angabe von zwei Punkten verweist auf das übergeordnete Verzeichnis.

Video-DVD verkleinern

  1. DVD-Titel mit DVD:RIP auslesen. VOB-Dateien werden erstellt.
  2. Die VOB-Dateien zusammenfügen: cat *.vob > movie.vob
  3. Demultiplexen: tcextract -i movie.vob -t vob -x mpeg2 > movie.m2v und danach: tcextract -i movie.vob -a 0 -x ac3 -t vob > movie.ac3
  4. Verkleinern: tcrequant -i movie.m2v -o shrinked.m2v -f 1.5 1.5 ist der Verkleinerungsfaktor (75%). Der Verkleinerungsfaktor lässt sich wie folgt berechnen: Faktor = (video_size / (4700000000 – audio_size)) * 1.04
  5. Multiplexen: mplex -f 8 -o final.mpg shrinked.m2v movie.ac3
  6. Verzeichnisstruktur ertsellen: dvdauthor -o newdvd final.mpg
  7. IFO-files erstellen: dvdauthor -o newdvd -T
  8. Dateien brennen

Musik-CDs kopieren

Script um Audio-CDs zu kopieren:

#!//bin/bash 
DEV=/dev/sr0
cd /tmp
cdrdao read-toc --fast-toc --device $DEV cd.toc 
cdparanoia -v -d $DEV -Z 1- data.wav 
eject $DEV 
cdrdao write --device $DEV --speed 8 cd.toc 
eject $DEV 
rm data.wav 
rm cd.toc

CDs kopieren

Script um CDs zu kopieren:

 #!//bin/bash 
 mount /dev/dvd 
 mkisofs -r -J -o ~/daten.iso -RJ /media/dvd 
 umount /dev/dvd 
 eject /dev/dvd 
 cdrecord -v speed=6 dev=/dev/dvdram -data ~/daten.iso 
 eject /dev/dvdram 
 rm daten.iso

dvdrip

Installation: sudo apt-get install dvdrip vcdimager cdrdao subtitleripper xcdroast ogmtools xvid4conf
Problem mit rar lösen:

 wget http://www.exit1.org/dvdrip/contrib/rarlnx271.sfx.bin 
 chmod u+x rarlnx271.sfx.bin 
 ./rarlnx271.sfx.bin 
 sudo mv rar /usr/local/bin/rar-2.71 
 sudo mv unrar /usr/local/bin/unrar-2.71 
 rm -rf rar 
 Edit - Edit Preferences - Commands - rar: /usr/local/bin/rar-2.71 

dvdbackup

dvdbackup -i /dev/dvd -M -o ./dvd/ kopiert die ganze DVD auf die Festplatte.

Es wird dabei ein Ordner VIDEO_TS erstellt, der dann mit K3B gebrannt werden kann.

mkisofs

CD-Abbild erstellen: mkisofs -o ~/daten.iso -RJ ~/daten erstellt vom Verzeichnis daten ein ISO-File
mkisofs -o image.iso -J -r -v -V "Test-CD" /pfad/zu/den/daten/
Erlärung der einzelnen Schalter:

  • -o image.iso: die zu erstellende Datei
  • -J: Joliet Erweiterung (für Win)
  • -r: Rockridge Erweiterung (für Unix/Linux)
  • -v: Geschwätzigkeit einstellen
  • -V „Test-CD“: Name der CD der später angezeigt wird
  • /pfad/zu/den/daten/: in diesem Ordner sollten sich die zu brennenden Daten befinden

cdparanoia

Auslesen einer Audio-CD. Die Tracks werden als fortlaufende wav-files im aktuellen Verzeichnis gespeichert.
cdparanoia -d /dev/cdrom -B
Soll nur ein einzelner Track gelesen werden, bspw. Nummer 5 dann folgendes eingeben: cdparanoia -d /dev/cdrom "5"

cdrdao

sudo cdrdao scanbus zeigt alle Laufwerke und deren Adressen an
cdrdao write --device /dev/hdc film.cue brennt ein Image mit dem Namen film.cue + film.bin

uif2iso

Konvertiert uif-Dateien nach iso-Dateien

Installation:

  • Sourcecode herunterladen.
  • uif2iso.zip entpacken
  • installieren mit make / make install

growisofs

Standardtool um DVDs zu brennen
Brennt ein Video-DVD-Image: growisofs -Z /dev/hdd=dvd.iso
oder auch growisofs -Z /dev/hdd /path/, wenn in /path/ die Verzeichnisse AUDIO_TS und VIDEO_TS liegen
growisofs -dvd-compat -Z /dev/dvd=image.iso brennt eine Daten-DVD
growisofs -dvd-compat -Z /dev/dvd -J -r -V "Meine Sicherung" /pfad/zu/den/daten/
Erklärung der einzelnen Schalter:

  • -dvd-compat: garantiert größtmögliche Kompatibilität (closed, fixed,… – wie man es auch nennen mag)
  • -Z /dev/dvd: die Gerätedatei des Brenners
  • -J: Joliet Erweiterung (um sie auch in Windows lesen zu können)
  • -r: Rockrigde Erweiterung (für Unix/Linux)
  • -V: gibt der DVD (und auch CD) einen Namen. Die Anführungszeichen sind wichtig, wenn ein Leerzeichen dabei ist.
  • /pfad/zu/den/daten/: die Daten in diesem Ordner werden gebrannt

cdrecord

Standardtool um CDs zu brennen
Mittlerweile wird cdrecord oft durch wodim ersetzt. Die Syntax sollte analog funktionieren.
cdrecord -dev=/dev/cdwriter datei.iso brennt das ISO-Image auf CD
cdrecord -v speed=8 dev=/dev/hdd -data ~/daten.iso  brennt das Abbild daten.iso auf eine CD
cdrecord dev=/dev/cdrom blank=fast -force löscht eine wiederbeschreibbare CD
cdrecord -atip dev=/dev/cdrom zeigt Informationen über den Rohling an
cdrecord -v speed=2 dev=/dev/cdrom -pad *.wav brennt wav-Dateien auf CD
cdrecord -v -fix dev=/dev/hdd finalisiert eine CD

Gimp

Transparenz
Um den Hintergrund eines Bildes transparent zu machen erstellt man eine zweite Ebene, die transparent sein muss. Mit dem „Zauberstab“ („Zusammenhängenden Bereich“ anwählen) auf den Hintergrund klicken
ctrl-x drücken
ctrl-m
als *.png oder *.gif speichern.

Animationen

  1. Alle Bilder müssen dieselbe Größe haben
  2. Bild2 anwählen (Strg+A) (Strg+C) Bild1 anwählen (Strg+V) es erscheint im Fenster Ebenen, Kanäle,….. eine „schwebende Ebene“. Mit der rechten Maustaste auf die Ebene klicken und Neue Ebene wählen.
  3. Speichern als gif

Bilder drehen

Bild nach EXIF-Informationen drehen: 

  1. exifautotran *.jpg
  2. find . -name "*.JPG" -exec jhead -autorot "{}" ";"

renrot
Mit dem Befehl renrot lassen sich Bilder drehen und nach ihrem Aufnahmedatum umbenennen.  renrot --mtime --name-template="%Y-%m-%d_%Hh%M-%S" --extension JPG

 

 

Animationen

convert -delay 20 *.jpg out.gif erstellt ein animiertes GIF-Bild aus allen JPG-Bildern im Verzeichnis.

mencoder 'mf://*.jpg' -mf type=jpg:fps=4 -ovc copy -oac copy -o output.avi oder mencoder "mf://*.jpg" -mf fps=25 -o output.avi -ovc lavc -lavcopts vcodec=mpeg4 erstellt einen AVI-Film bzw. einen mpeg-Film.

convert -delay 20 *.jpg out.gif erzeugt eine GIF-Animation

convert

Bildtyp umwandeln: 

convert  Infile.jpg Outfile.png
oder als Schleife für viele Bilder:

 for picture in *.gif ; do 
  convert $picture "${picture/.gif}.png" 
done

Bild in Postscript umwandeln

convert <bild.jpg> <bild.ps>

zusätzliche Parameter: convert -page A4+0+0 -monochrome <bild.jpg> <bild.ps>
A4 ist die Seitengröße +0+0 gibt die Position auf dem Blatt an
-monochrome wandelt in ein schwarz-weiß-Bild um.

Bilder zuschneiden

convert Original.jpg -trim Zugeschnitten.jpg entfernt den weißen Rand um Bilder.

Bilder verkleinern

  • convert -scale 100x grossesbild.jpg kleinesbild.jpg
    Ein Bild wird hiermit proportional auf eine Breite von 100 verkleinert. Statt 100x kann man auch eine Prozentzahl angeben:
    convert -scale 20% grossesbild.jpg kleinesbild.jpg
  • Script um alle Bilder in einem Verzeichnis zu verkleinern:
    for file in * ; do convert -scale 100x $file klein_$file; done
    for i in *.jpg; do convert -resize 20% $i ‘basename $i .jpg‘ thumb.jpg; done
  • convert -geometry 1024x1024
  • for i in ‘ls *.jpg‘ ; do convert -geometry 1024x1024 -quality 90 $i xga $i ; done

Animationen

convert -delay 20 *.jpg out.gif erstellt ein animiertes GIF-Bild aus allen JPG-Bildern im Verzeichnis.

mencoder ’mf://*.jpg’ -mf type=jpg:fps=4 -ovc copy -oac copy -o output.avi
oder
mencoder "mf://*.jpg" -mf fps=25 -o output.avi -ovc lavc -lavcopts vcodec=mpeg4
erstellt einen AVI-Film bzw. einen mpeg-Film.

Bildübersicht

convert vid:*.jpg directory.jpg erstellt eine Übrsicht aller jpg-Dateien im Verzeichnis in der Datei directory.jpg

montage *.jpg panorama.jpg erstellt eine Übersicht.

Wasserzeichen in Bilder schreiben

convert -font /usr/X11R6/lib/X11/fonts/truetype/arial.ttf -pointsize 20 -fill gray -draw "text 30,30 ’Copyright by Linux’" <bild.jpg> <bildmitwasserzeichen.jpg>

schreibt den Text ”Copyright by Linux” in das Bild ”bildmitwasserzeichen.jpg”

DPI ändern und auf Monochrome setzen
convert -monochrome -units PixelsPerInch input -resample 300 output

Werte auslesen

identify bild.png liest Inforamtionen aus der Datei bild.png aus

Breite und Höhe werden so ermittelt:

height=$(identify bild.png | cut -d\ -f3 | cut -dx -f1)
width=$(identify bild.png | cut -d\ -f3 | cut -dx -f2)

DPI-Werte setzen

convert input.png -density 300 output.png

identify

 identify Dateiname gibt Informationen über eine Datei (z. B. ein Foto) aus. Mit
 identify -verbose Dateiname werden noch ausführlichere Inforamtionen angezeigt.

screenshot

Erstellen eines Screenshots: import Datei 

Ein Klick in ein Fenster kopiert dieses, oder man zieht einen Rahmen auf.

sleep 15: import -window root screen.png  -> nach 15 Sekunden screenshot

Das Srceenshot-Programm der KDE KSnapshot lässt sich mit der Taste „Druck“ starten.