#!code_source [utf8] #!code_target [utf8] !code [utf8] !language [german] !docinfo [author] Stefan Baireuther & Michael Petri #!docinfo [domain_name] Stefan Baireuther & Michael Petri !docinfo [webmastername] Stefan Baireuther & Michael Petri !docinfo [webmasterurl] http://baireuther.de !docinfo [date] (!today) !docinfo [title] Handbuch !docinfo [program] Linux !docinfo [authoricon] tux.gif !table_alignment [center] !use_chapter_images [all] !use_justification [all] !use_about_udo [all] !use_style_book [all] !use_auto_toptocs [htmll] !use_auto_subtocs [html] !use_auto_subsubtocs [html] !use_auto_subsubsubtocs [html] !use_nodes_inside_index [all] !use_alias_inside_index [all] !use_label_inside_index [all] #!html_ignore_8bit utf-8 !html_frames_layout !html_transparent_buttons !html_propfont_name Arial !html_monofont_name courier !html_frames_position left !html_frames_width 180 !html_linkcolor black !html_frames_linkcolor black !html_alinkcolor black !html_frames_alinkcolor red !html_vlinkcolor black !html_frames_vlinkcolor black #!tex_209 !rtf_keep_tables on !raw [tex] \usepackage[a4paper,left=1.9cm, right=2.1cm, top=2.0cm, bottom=2.3cm]{geometry} !raw [tex] \usepackage[colorlinks,pdfpagelabels,pdfstartview = FitH,bookmarksopen = false,bookmarksnumbered = true,linkcolor = black,plainpages = false,hypertexnames = false,citecolor = black,pdftex] {hyperref} !begin_document !maketitle !raw [html]
!ifdest [html,tex] !hline !tableofcontents !endif #------------------------------------------------------------------------------------------------------------------------------- !node Einleitung Dieses Linuxhandbuch ist unsere persönliche Übersicht über Linux. (!nl) Sie beruht auf unserer Erfahrung mit SuSE 9.0-10.0, Knoppix, kubuntu. und Debian. (!nl) Unsere ersten Versuche mit Linux haben wir mit Knoppix, dann mit SuSE 9.0 gemacht. Nach SuSE 10.0 sind wir zu ubuntu bzw. kubuntu gewechselt und sind mittlerweile bei Debian (LMDE) angelangt. (!nl) Außerdem ist nach wie vor die System-Rescue-CD ein unentbehrliches Hilfsmittel für (fast) alle Probleme. Alle Befehle, die uns im Laufe der Zeit begegnen, werden hier festgehalten. Wir übernehmen keinerlei Verantwortung für Vollständigkeit oder Richtigkeit der hier aufgeführten Befehlsbeispiele. !smallskip (!url [Stefan Baireuther] [http://baireuther.de]) & Michael Petri !medskip Dieses Dokument wurde mit UDO6 (Quelltext, HTML, ASCII und RTF) und (!TeX) (PDF) erstellt. !bigskip !ifndest [html] Onlineversion und Download unter: http://lhb.baireuther.de !endif #------------------------------------------------------------------------------------------------------------------------------- !node Hilfe !subnode help (!T) (--)help (!t) gibt eine kurze Anleitung zum aus !subnode man # !ignore_links Gibt die Anleitung (Manualpage) von Programmen und von Konfigurationsdateien aus: (!nl) (!T) man (!t) (!nl) (!T) man (!t) (!nl) Suche mit (!T) / (!t), weitersuchen mit (!T) n (!t), Beenden mit (!T) q (!t) !subnode info Kurzinfo zu einem Befehl (!T) info (!t) mit beenden !subnode whatis Kurzinfo zu einem Befehl (!T) whatis (!t) !subnode apropos Hilfe zu einem Schlüsselwort suchen, das selbst kein Befehl ist. (!nl) (!T) apropos (!t) #------------------------------------------------------------------------------------------------------------------------------- !node Dateien & Verzeichnisse !subnode Verzeichnisse !subsubnode pwd gibt den aktuellen Pfad aus !subsubnode cd (!T) cd (!t) führt ins Home-Verzeichnis (!nl) (!T) cd ~ (!t) wechselt ins Home von User (!nl) (!T) cd - (!t) oder (!T) cd .. (!t) wechselt ein Verzeichnis zurück !subsubnode mkdir (!T) mkdir (!t) legt einen Ordner mit an. (!nl) (!T) mkdir -p /home/ich/oben/mitte/unten (!t) legt Verzeichnisse samt Unterverzeichnissen an. !subsubnode rmdir (!T) rmdir (!t) das Verzeichnis wird gelöscht !subsubnode dircmp Vergleichen zweier Verzeichnisse !subsubnode basename liefert den letzten Ordner des Pfades (siehe auch dirname) !subsubnode dirname liefert den Pfad bis zum letzten Ordner des angegebenen Pfades (siehe auch basename) !subnode Navigation & Pfadangaben Man kan 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 holt man vergangene Befehle wieder. Mit der holt man vergangene Befehle wieder, von denen man den Anfang wieder getippt hat. (siehe Eingabe-History aktivieren) !subsubnode !~ # !ignore_links !alias home Die Angabe von !~ bewirkt den Sprung ins eigene Homeverzeichnis. !subsubnode . # !ignore_links Die Angabe eines Punktes symbolisiert das aktuelle Verzeichnis. !subsubnode .. # !ignore_links Die Angabe von zwei Punkten verweist auf das übergeordnete Verzeichnis. !subnode Ausgabe !subsubnode cat Dateianzeige ohne Unterbrechungen (!T) cat datei*.txt > datei.txt (!t) (!nl) cat kopiert eine Reihe von als Parameter übergegebenen Dateien in die Standard-Ausgabe. Mit Hilfe einer Umleitung »>« können Sie so mehrere Dateien zusammenkopieren: (!nl) (!nl) Beispiel: (!T) cat Teil1 Teil2 Teil3 > Gesamt (!t) (!nl) (!nl) Werden gar keine Dateinamen angegeben, so wird die Standard-Eingabe verwendet. Es folgen einige nützliche Optionen: !bi !short !item -b In ASCII-Dateien wird jede (nicht-leere) Zeile mit einer Zeilennummer versehen. !item -n In ASCII-Dateien wird jede Zeile mit einer Zeilennummer versehen. !item -E Zeige in ASCII-Dateien ein »$«-Zeichen am Ende jeder Zeile an (so können Sie Leerzeichen am Ende einer Zeile erkennen). !ei !subsubnode less (!T) less (!t) zeigt den Inhalt einer Datei an (Beenden mit (!T) q (!t) ) !subsubnode zless (!T) zless (!t) zeigt den Inhalt eines Archivs an (Beenden mit (!T) q (!t) ) !subsubnode more (!T) more (!t) Seitenweise Textausgabe !subsubnode head (!T) head (!t) gibt die erste Zeile aus !subsubnode tail Die letzten 10 Zeilen einer Datei auf Standardausgabe ausgeben (!nl) (!T) tail -f (!t) verfolgt die Änderungen in einer Datei (gut für Log-Files) (!T) tail -n xx (!t) gibt die letzten xx-Zeilen aus !subsubnode nl Datei mit Zeilennummern ausgeben: (!T) nl (!t) !subsubnode watch (!T) watch cat (!t) überwacht eine Datei und zeigt die Veränderungen an. !subnode Auflisten & Analysieren !subsubnode ls (!T) ls -lh (!t) listet den Inhalt des aktuellen Verzeichnisses auf (wie (!T) dir (!t) ). !bi !short !item -a zeige alle Dateien und Verzeichnisse an; auch die versteckten, deren Namen mit einem Punkt beginnen. !item -A wie -a, nur ohne die Einträge . und ... !item -B Keine Dateien, die auf !~ enden, anzeigen. !item -R rekursiv alle Unterverzeichnisse anzeigen. !item -i zeige auch die Inode-Nummern an. !item -l langes Format: Es werden neben dem Dateinamen auch Größe, Besitzer, Gruppe und Zugriffsrechte angezeigt. !item -f wie -l, aber ohne Gruppen-Informationen. !item -s zeigt nur Dateinamen und Größen in Kilobyte an. !item (--)color farbige Ausgabe nur Unterscheidung verschiedener Dateitypen. !item -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) !item (--)full-time vollständige Zeitangaben ausgeben (nur zusammen mit -l) !item -n User- und Gruppen-IDs anstelle der Namen ausgeben. !item -S sortiert der Größe nach !ei (!T) ls -lR | sort +4nr (!t) listet Dateien der Größe nach sortiert auf. !subsubnode lsattr (!T) lsattr (!t) zeigt Dateiattribute an !subsubnode file (!T) file (!t) gibt den Dateityp an !subsubnode type (!T) type (!t) gibt den Speicherort des Befehls aus !subsubnode test Mit test ausdruck bzw. [ ausdruck ] kann man eine Bedingung prüfen und den Exit-Status true oder false erhalten. !bi !item (!T) -f file (!t) file ist eine Datei !item (!T) -d file (!t) .... ein Verzeichnis !item (!T) -r file (!t) .... lesbar !item (!T) -w file (!t) .... schreibbar !item (!T) -x file (!t) .... ausführbar !item (!T) -s file (!t) .... nicht leer !item (!T) -z string (!t) Zeichenkette ist leer !item (!T) -n string (!t) .... nicht leer !item (!T) string1 = string2 (!t) Zeichenketten sind gleich !item (!T) string2 != string2 (!t) .... ungleich !item (!T) n1 -eq n2 (!t) Zahlen sind gleich !item (!T) n1 -ne n2 (!t) .... ungleich !item (!T) n1 -lt n2 (-le, -gt, -ge) (!t) Zahl 1 ist kleiner (kleiner oder gleich, grösser, grösser oder gleich) Zahl 2 !item (!T) ( ausdruck ) (!t) Klammerung von Teilausdrücken !item (!T) ! ausdruck (!t) Negation !item (!T) -a (!t) AND !item (!T) -o (!t) OR !ei (!T) test -f (!t) prüft, ob eine Datei vorhanden ist. (!nl) (!T) test -f && echo "gefunden" (!t) (!T) test -f || echo "Nicht gefunden" (!t) !subsubnode wc zählt Wörter in Dateien !subsubnode sum !alias MD5 ermittelt die MD5-Checksumme von Dateien (!nl) (!T) sum (!t) oder auch (!T) md5sum (!t) !subsubnode du schätzt Platzverbrauch von Dateien !bi !short !item (!T) du -h (!t) Anzeige "human-readable" in Kilo, Mega, Gigabyte !item (!T) du -s (!t) ohne Unterverzeichnisse !item (!T) du (--)max-depth=1 -m ~ | sort -rn | less (!t) Verzeichnisse mit Platzverbrauch geordnet anzeigen !ei !subnode Kopieren, Umbenennen und Löschen !alias kopieren !alias umbenennen !alias löschen !subsubnode cp (!T) cp (!t) kopiert Dateien (!nl) Schalter: !bi !short !item -d Links bleiben als Links erhalten !item -f existierende Zieldateien werden überschrieben !item -i Nachfrage vor Überschreiben !item -r Dateien werden rekursiv kopiert !item -R Ordner werden rekursiv kopiert !item -u existierende Zieldateien werden überschrieben, wenn Quelldatei neuer ist !item -p erhält die Dateiattribute !ei !subsubnode mv (!T) mv (!t) verschiebt Dateien (!nl) !subsubnode mmv (!T) mmv -v "*.htm" "#1.html" (!t) bennet alle Dateien mit der Endung htm in die Endung html um. !subsubnode ln (!T) ln (!t) erstellt einen harten Link (der Link entspricht der Zieldatei. Achtung: wird der Link mit (!T) rm (!t) gelöscht, so wird auch die Datei gelöscht!) (!nl) (!T) ln -s (!t) erstellt einen Soft-Link !subsubnode rm (!T) rm (!t) löscht die Datei (!nl) (!T) rm -r /pfad/ (!t) rekursives Löschen. Achtung: (!B) sehr gefährlich! (!b) !subsubnode rename Dateien umbenennen (!nl) (!T) rename (!t) !subsubnode convmv (!T) convmv (--)upper (--)notest -r . (!t) konvertiert rekursiv alle Dateinamen in Großschreibung (!nl) (!T) convmv (--)lower (--)notest -r . (!t) konvertiert rekursiv alle Dateinamen in Kleinschreibung (!nl) (!T) convmv -f iso-8859-15 -t utf-8 -r . (!t) konvertiert rekursiv alle Dateinamen in von iso-8859-15 nach utf-8 (!nl) !subsubnode iconv Konvertiert den (!B) Inhalt (!b) einer ASCII-Datei. (!nl) (!nl) Eine DOS-Datei in eine UTF-8-Datei umwandeln: (!nl) (!T) iconv -f CP1250 -t UTF-8 -o out.txt input.txt (!t) (!nl) (!nl) (Konvertieren des Dateinamens mit recode) !subsubnode basename (!T) basename (!t) liefert den Dateinamen ohne Pfad und ohne Dateiendung. !subnode Suchen !subsubnode find (!T) find -name (!t) sucht nach der Datei (!nl) (!T) find . -name bild.jpg (!t) sucht nach bild.jpg. Der Punkt weist find an, alle Ordner ab dem aktuellen Verzeichnis zu durchsuchen. (!nl) (!T) find /mnt/cdrom/bilder -name bild.jpg (!t) Dieser Befehl durchsucht das Verzeichnis bilder einer nach /mnt/cdrom gemounteten CD. (!nl) (!nl) Weiß man nicht mehr, ob die Datei groß oder kleingeschrieben war hilft iname: (!T) find . -iname holmes.jpg (!t) (!nl) (!nl) Mit Wildcards: (!T) find . -name "blo*" (!t) (!nl) (!nl) Große Dateien: (!T) find . -size +1000k (!t) zeigt alles an, was größer als 1000 KB ist. Lässt man das Pluszeichen weg, sucht find nach Dateien mit genau der angegebenen Größe, mit einem Minuszeichen (zum Beispiel -50k) setzt man einen Maximalwert. (!nl) (!nl) Zeit: -mtime ("modification time"=Änderungszeit). (!T) find . -mtime 0 (!t) präsentiert alles, was sich in den letzten 24 Stunden geändert hat, (!T) -mtime 2 (!t) die geänderten Dateien der letzten zwei Tage. (!nl) (!nl) (!T) find . -mmin -5 (!t) findet alle Dateien, die in den letzten 5 Minuten geändert wurden. (!nl) (!nl) Nur Verzeichnisse oder nur Dateien anzeigen? Mit -type beschränkt man die Suche auf bestimmte Typen: (!T) find . -type d (!t) für Verzeichnisse ("directory"), f für Dateien ("file") oder l für symbolische Links. (!nl) (!nl) (!T) find . -name "*.txt" -exec less "{}" ";" (!t) über gibt alle gefundenen Dateien an less zur Anzeige (!nl) (!nl) (!T) find -name "*.jpeg" -print0 -exec cp \{\} /home/stefan/temp/ \;(!t) sucht alle Dateien mit der Endung jpeg und kopiert diese in das Verzeichnis temp (!nl) (!nl) (!T) find -name ".*" -exec rm -rf {} \; (!t) löscht rekursiv alle versteckten Dateien - (!B) Achtung: Dieser Befehl ist sehr gefährlich, die Dateien können nicht wiedergeholt werden! (!b) !subsubnode locate sucht indizierte Dateien (sehr schnell - aber erst nach Indizierung) (!nl) Update der Datenbank mit (!T) updatedb (!t) !subsubnode grep (!T) grep -r haus documents/texte/ (!t) sucht rekursiv in texte nach dem Wort haus (!nl) (!T) grep -l -r suchwort /home/stefan/bin/* (!t) durchsucht ab dem Verzeichnis /bin/ alle Dateien rekursiv (-r) nach dem Inhalt "Suchwort" und gibt nur die Dateinamen aus (-l) (!nl) (!T) grep -i ROot /etc/passwd (!t) sucht nach "root" ohne Beachtung der Groß- und Kleinschreibung !begin_table Suchmuster !! Passt auf Tiger !! Die Zeichenkette Tiger ^Tiger !! Tiger am Zeilenanfang. Tiger$ !! Tiger am Zeilenende. ^Tiger$ !! Tiger ist das einzige Wort auf der Zeile. [tT]iger !! tiger oder Tiger. T[aeiou]ger !! 5 Zeichen, davon 4 wie angegeben. Das zweite Zeichen ist ein beliebiger Vokal. T[^aeiou]ger !! 5 Zeichen, davon 4 wie angegeben. Das zweite Zeichen ist jedes Zeichen außer einem Vokal. ^...$ !! Jede Zeile, die genau drei Zeichen enthält. ^\. !! Jede Zeile, die mit einem Punkt beginnt. Der \ maskiert wie gewohnt. ^[^.] !! Jede Zeile, die nicht mit einem Punkt beginnt. Tiger.* !! Tiger, gefolgt von einer auch leeren beliebigen Zeichenfolge: Tiger, Tigerin, Tigerhöhle... [A-Z][A-Z]* !! Ein oder mehrere Großbuchstaben [A-Z].* !! Ein Großbuchstabe, gefolgt von einer auch leeren, beliebigen Zeichenfolge. [A-Z]* !! Eine auch leere Folge von Großbuchstaben. !end_table !subsubnode which (!T) which (!t) sucht den vollständigen Pfad zu einem Befehl !subsubnode whereis (!T) whereis (!t) sucht alle zum Befehl gehörenden Dateien (Pfad, Quelldatei und man-Datei) !subsubnode ldd Mit ldd kann man nach benötigten Libraries suchen: (!T) ldd /usr/bin/mc (!t) zeigt alle von Midnight Commander benötigten Libraries an. !subsubnode sed Suchen und ersetzen von Text in Dateien: (!T) sed 's/Suchtext/Ersetztext/g' quelldatei.txt > zieldatei.txt (!t) Ist im zu bearbeitenden Text ein Slash (!T) / (!t) , so muss dieser mit (!T) \/ (!t) angegeben werden. (!nl) Leerzeichen in Dateinamen in Unterstriche umwandeln: (!nl) (!T) for a in *; do mv "$a" "$(echo $a | sed 's/ /_/g')"; done (!t) !subnode Vergleichen, Aufteilen und Sortieren & Co !subsubnode diff (!T) diff (!t) Vergleichen von zwei Textdateien (!nl) (!T) sdiff (!t) Vergleichen von zwei Textdateien nebeneinander !subsubnode comm (!T) comm (!t) Vergleichen sortierter Textdateien !subsubnode cmp (!T) cmp (!t) Vergleichen von zwei Dateien !subsubnode join (!T) join (!t) Zusammenführen von zwei Dateien !subsubnode sort (!T) sort (!t) sortiert die Zeilen der Datei1 in Datei2 !subsubnode fold (!T) fold (--)width=72 -s Datei (!t) bricht alle Zeilen der Datei nach spätestens 72 Zeichen an einem Leerzeichen um. Ohne -s wird immer bei genau 72 Zeichen umbrochen. !subsubnode tr Zeichen in Dateien ersetzen !begin_table 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 !end_table Beispiele: (!nl) (!T) cat file1 | tr altes_Wort neues_Wort > NeueDatei (!t) (!nl) (!nl) (!T) tr -d ':' neue_datei (!t) (!nl) löscht alle Zeilenumbrüche !subsubnode expand (!T) expand (!t) Tabulatoren in Leerzeichen verwandeln !subsubnode recode ändert die Zeichenkodierung des Dateinamens (!T) recode quellcode..zielcode (!t) (!nl) (!T) recode ibmpc..lat1 (!t) konvertiert von DOS nach UNIX (!nl) (!U) Zeichensätze: (!u) (!nl) !bi !short !item ISO-8859-1 ohne Euro !item ISO-8859-15 mit Euro !item UTF8 universeller Zeichensatz !item windows-1252 !item cp1252 !item cp850 !item codepage=850 !ei (!nl) (!nl) (Konvertieren des Dateininhalts mit iconv) !subsubnode uniq Identische, aufeinanderfolgende Zeilen nur ein mal ausgeben. !subsubnode cut Herausschneiden von Spalten oder Feldern aus einer Datei. !subsubnode split Große Dateien aufteilen: (!T) split -b 1440k QuellDatei BasisName (!t) (!nl) Mit -b gibt man an, dass die Datei nicht zeilenweise sondern byteweise betrachtet werden soll. (!nl) 1440k bestimmt die Größe der einzelnen aufgeteilten Dateien. (!nl) QuellName ist natürlich der Name der aufzuteilenden Datei und (!nl) 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: (!T)cat BasisName* > NamederZieldatei(!t) !subnode Archive !subsubnode zip !alias unzip (!T) zip archiv.zip dateien (!t) packt Dateien in ein Archiv. Mit (!T) -r (!t) wird rekursiv gepackt. (!nl) (!T) unzip archiv.zip (!t) entpackt wieder. !subsubnode gzip (!T) gzip *.txt (!t) (!nl) entpacken: (!T) gunzip (!t) oder (!T) gzip -d *.tar.gz (!t) !subsubnode bzip (!T) tar -xjvf (!t) entpackt die Datei !subsubnode tar (!T) tar -xzvf (!t) entpackt die Datei (!nl) (!T) tar -czvf /home /etc (!t) sichert die Verzeichnisse /home und /etc in das Archiv backup Dateibäume in ein Archiv schreiben (!nl) (!nl) (!U) Dateien mit Rechten kopieren (!u) (!nl) (!T) cd (!nl) tar cf - . | (cd ;tar xvf -) (!t) (!nl) (!nl) (!U) Kopie über das Netzwerk: (!u) (!nl) (!T) tar -cz * | ssh server "cat - > /backups/backup.tgz" (!t) (!nl) (!nl) (!U) Aufteilen auf mehrere Disketten: (!u) (!nl) (!T) tar cMvf /dev/fd0 * (!t) sichert alle Dateien im Verzeichnis auf mehrere Disketten (!nl) (!T) tar xMvf /dev/fd0 * (!t) packt diese wieder aus (!nl) (!nl) siehe auch: Archive mit mehr als 1 GB !subsubnode unzip mehrere Dateien entpackt man mit (!T) unzip "*.zip" (!t) !subsubnode cabextract (!T) cabextract (!t) entpackt Windowsprogramme !subsubnode Archive mit mehr als 1 GB (!T) tar cvf - | gzip > (!t) (!nl) (!T) tar xzvf (!t) !subnode Dateirechte (!T)-rwxrwxrwx (!nl) ~\_/\_/\_/ (!nl) ~ u ~g ~o (!nl) u=user g=group o=others (!t) (!nl) r: read (!nl) w: write (!nl) x: execute (!nl) s: Setuid-Bit (an Position 3); Setgid-Bit (an Position sechs) (!nl) t: Sticky-Bit (an Position 9) (!nl) !bi !short !item Lesen (!nl) Der Benutzer darf aus der Datei lesen oder, im Falle eines Verzeichnisses, seinen Inhalt auslesen, allerdings keine Dateirechte dieser Dateien erfahren. Dieses Recht wird oft durch den Buchstaben "r" für englisch read ("lesen") dargestellt und daher auch R-Bit genannt. !item Schreiben (!nl) Der Benutzer darf in die Datei schreiben bzw. Dateien und Unterverzeichnisse in dem Verzeichnis erstellen, bearbeiten, umbenennen, löschen und deren Dateirechte verändern. Dieses Recht wird oft durch den Buchstaben "w" für englisch write ("schreiben") dargestellt und daher auch W-Bit genannt. !item Ausführen (!nl) Der Benutzer darf die Datei als Programm ausführen bzw. in das Verzeichnis wechseln und dort Dateien oder Unterverzeichnise erreichen. Ohne das Lesen-Recht darf der Verzeichnisinhalt jedoch nicht ausgelesen werden. Dieses Recht wird oft durch den Buchstaben "x" für englisch execute ("ausführen") dargestellt und daher auch X-Bit genannt. !item Setuid (!nl) Wird eine Datei, die das Setuid-Bit gesetzt hat, ausgeführt, dann wird der Prozess mit der effektiven User ID des Dateieigentümers laufen. !item Setgid (!nl) Wird eine Datei, die das Setgid-Bit gesetzt hat, ausgeführt, dann wird der dadurch erzeugte Prozess mit der effektiven Group ID der Inhabergruppe der Datei laufen. !item Sticky bit (!nl) Wird eine Datei, die das Sticky Bit gesetzt hat, ausgeführt, wird der Programmcode nach Ausführen im Arbeitsspeicher gehalten. Mehr Verwendung findet das Bit allerdings bei temporären Verzeichnissen, wo Benutzer nicht Dateien von anderen Benutzern löschen können. !ei (!nl) (!nl) (!U) an der ersten Stelle steht: (!u) !bi !short !item - Datei !item d Directory !item c Special Device Charakter !item b Block device !item s Socket !item p Pipe !item l Link !ei !alias Oktalzahlen Oktalwerte von rwx: (!nl) Read = 4 (!nl) Write = 2 (!nl) Execute = 1 (!nl) (!nl) Die Werte werden jeweils addiert. !subsubnode chmod Zugriffsrechte ändern (!nl) (!T) chmod +x (!t) macht eine Datei ausführbar (!nl) (!T) chmod u=rwx, g=rx, o=r (!t) 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 (!nl) (!T) chmod g=+rwx tausch/ (!t) macht das Verzeichnis tausch für die Gruppe les-, schreib- und ausführbar (!nl) (!T) chmod 7 5 1 (!t) gibt dem Eigentümer alle Rechte, die Gruppe darf lesen und ausführen, alle anderen nur lesen (!nl) (!T) find -type f -exec chmod a-x "{}" ";" (!t) ändert nur Dateien, keine Ordner. (!nl) (!nl) Die Werte können auch mit Oktalzahlen angegeben werden. !subsubnode chown Besitzer ändern (!T) chown : (!t) (!nl) (!T) chown -R /pfad/ (!t) ändert rekursiv die Besitzrechte !subsubnode chgrp (!T) chgrp -hR gruppeneu /gruppe (!t) ändert die Gruppe gruppe in gruppeneu !subsubnode chattr ändert Dateiattribute !subsubnode touch Datei erstellen - Attribute setzen (!nl) (!T) touch datei.txt (!t) erstellt eine leere Textdatei. !subsubnode umask (!T) umask (!t) ergibt die Zugriffsrechte für neue Dateien (!nl) 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. !subnode Daten-Backup !alias backintime Mit dem Programm BackInTime lassen sich sehr komfortabel Datenbackups machen. (!nl) Um dies jedoch zeitgesteuert zu machen ist folgendes notwendig: (!nl) Mit dem Programm Anacron lassen sich Aktionen ausführen, auch wenn der rechner zum Ausführungszeitpunkt ausgeschaltet war. Dann holt Anacron dies nach dem nächsten Start nach. Da Anacron das Programm als Root ausführt,[1] muss BiT im folgenden Beispiel über "Systemwerkzeuge -> Back in Time (root)" aufgerufen und konfiguriert werden. Ohne Root-Rechte gemachte Einstellungen werden von Anacron nicht umgesetzt! Um Anacron auch ohne Root-Rechte zu nutzen, siehe die Links unter: Cron. Zunächst wird über "Systemwerkzeuge -> Back in Time (root)" die gewünschte Sicherung eingestellt, "Zeitplan" bleibt deaktiviert. Anschließend muss ein Startskript für Anacron in einem der Verzeichnisse /etc/cron.daily/ (für tägliche Sicherung), /etc/cron.weekly/ (wöchentliche Sicherung) oder /etc/cron.monthly/ (monatliche Sicherung) angelegt werden. Es wird also beispielsweise die Datei /etc/cron.daily/1backintime in einem Editor mit Root-Rechten erstellt und mit folgendem Inhalt gefüllt: !begin_verbatim #!/bin/bash export HOME=/root backintime -b > /dev/null 2>&1 !end_verbatim Die im Namen vorangestellte Ziffer "1" ist fakultativ: Sie rückt das Skript an die Spitze der von Anacron sequenziell abzuarbeitenden Aufgaben, so dass das Backup nicht durch langwierige Prozesse verzögert werden kann. Die Datei wird gespeichert und schließlich ausführbar gemacht:[7] !begin_verbatim sudo chmod +x /etc/cron.daily/1backintime !end_verbatim Im Beispiel sollte Back in Time nun täglich mit Anacron ausgeführt werden. Ein Eintrag in der Crontab oder eine Einstellung bei "Zeitplan" ist nicht mehr nötig. #------------------------------------------------------------------------------------------------------------------------------- !node Postscript & PDF !alias Postscript !alias PDF !subnode GhostScript !alias gs Konvertieren von PostScript und PDF-Dokumenten (!nl) (!U) GhostScript-Devices (!u) !begin_verbatim MS-DOS displays (note: not usable with Desqview/X): MS-DOS EGA and VGA: ega EGA (640x350, 16-color) vga VGA (640x480, 16-color) MS-DOS SuperVGA: * ali SuperVGA using Avance Logic Inc. chipset, 256-color modes * atiw ATI Wonder SuperVGA, 256-color modes * cirr SuperVGA using Cirrus Logic CL-GD54XX chips, 256-color modes * s3vga SuperVGA using S3 86C911 chip (e.g., Diamond Stealth board) svga16 Generic SuperVGA in 800x600, 16-color mode * tseng SuperVGA using Tseng Labs ET3000/4000 chips, 256-color modes * tvga SuperVGA using Trident chipset, 256-color modes ****** NOTE: The vesa device does not work with the Watcom (32-bit MS-DOS) ****** compiler or executable. vesa SuperVGA with VESA standard API driver Other displays: MS Windows: mswindll Microsoft Windows 3.1 DLL [MS Windows only] mswinprn Microsoft Windows 3.0, 3.1 DDB printer [MS Windows only] mswinpr2 Microsoft Windows 3.0, 3.1 DIB printer [MS Windows only] OS/2: * os2pm OS/2 Presentation Manager [OS/2 only] * os2dll OS/2 DLL bitmap [OS/2 only] * os2prn OS/2 printer [OS/2 only] Unix and VMS: ****** NOTE: For direct frame buffer addressing under SCO Unix or Xenix, ****** edit the definition of EGAVGA below. * lvga256 Linux vgalib, 256-color VGA modes [Linux only] + vgalib Linux vgalib, 16-color VGA modes [Linux only] x11 X Windows version 11, release >=4 [Unix and VMS only] x11alpha X Windows masquerading as a device with alpha capability x11cmyk X Windows masquerading as a 1-bit-per-plane CMYK device x11cmyk2 X Windows as a 2-bit-per-plane CMYK device x11cmyk4 X Windows as a 4-bit-per-plane CMYK device x11cmyk8 X Windows as an 8-bit-per-plane CMYK device x11gray2 X Windows as a 2-bit gray-scale device x11gray4 X Windows as a 4-bit gray-scale device x11mono X Windows masquerading as a black-and-white device x11rg16x X Windows with G5/B5/R6 pixel layout for testing. x11rg32x X Windows with G11/B10/R11 pixel layout for testing. Printers: + atx23 Practical Automation ATX-23 label printer + atx24 Practical Automation ATX-24 label printer + atx38 Practical Automation ATX-38 label printer + deskjet H-P DeskJet and DeskJet Plus djet500 H-P DeskJet 500; use -r600 for DJ 600 series + fs600 Kyocera FS-600 (600 dpi) + laserjet H-P LaserJet + ljet2p H-P LaserJet IId/IIp/III* with TIFF compression + ljet3 H-P LaserJet III* with Delta Row compression + ljet3d H-P LaserJet IIID with duplex capability + ljet4 H-P LaserJet 4 (defaults to 600 dpi) + ljet4d H-P LaserJet 4 (defaults to 600 dpi) with duplex + ljetplus H-P LaserJet Plus lj5mono H-P LaserJet 5 & 6 family (PCL XL), bitmap: see below for restrictions & advice lj5gray H-P LaserJet 5 & 6 family, gray-scale bitmap; see below for restrictions & advice * lp2563 H-P 2563B line printer * oce9050 OCE 9050 printe (pxlmono) H-P black-and-white PCL XL printers (LaserJet 5 and 6 family) (pxlcolor) H-P color PCL XL printers (e.g. Color LaserJet 4500) Fax file format: ****** NOTE: all of these drivers normally adjust the page size to match ****** one of the three CCITT standard sizes (U.S. letter with A4 width, ****** A4, or B4). To suppress this, use -dAdjustWidth=0. faxg3 Group 3 fax, with EOLs but no header or EOD faxg32d Group 3 2-D fax, with EOLs but no header or EOD faxg4 Group 4 fax, with EOLs but no header or EOD tiffcrle TIFF "CCITT RLE 1-dim" (= Group 3 fax with no EOLs) tiffg3 TIFF Group 3 fax (with EOLs) tiffg32d TIFF Group 3 2-D fax tiffg4 TIFF Group 4 fax High-level (vector) file formats epswrite EPS output (like PostScript Distillery) pdfwrite PDF output (like Adobe Acrobat Distiller) pswrite PostScript output (like PostScript Distillery) pxlmono Black-and-white PCL XL pxlcolor Color PCL XL Other raster file formats and devices bit Plain bits, monochrome bitrgb Plain bits, RGB bitcmyk Plain bits, CMYK bmpmono Monochrome MS Windows .BMP file format bmpgray 8-bit gray .BMP file format bmpsep1 Separated 1-bit CMYK .BMP file format, primarily for testing bmpsep8 Separated 8-bit CMYK .BMP file format, primarily for testing bmp16 4-bit (EGA/VGA) .BMP file format bmp256 8-bit (256-color) .BMP file format bmp16m 24-bit .BMP file format bmp32b 32-bit pseudo-.BMP file format cgmmono Monochrome (black-and-white) CGM (--) LOW LEVEL OUTPUT ONLY cgm8 8-bit (256-color) CGM(--)DITTO cgm24 24-bit color CGM(--)DITTO jpeg JPEG format, RGB output jpeggray JPEG format, gray output miff24 ImageMagick MIFF format, 24-bit direct color, RLE compressed pcxmono PCX file format, monochrome (1-bit black and white) pcxgray PCX file format, 8-bit gray scale pcx16 PCX file format, 4-bit planar (EGA/VGA) color pcx256 PCX file format, 8-bit chunky color pcx24b PCX file format, 24-bit color (3 8-bit planes) pcxcmyk PCX file format, 4-bit chunky CMYK color pbm Portable Bitmap (plain format) pbmraw Portable Bitmap (raw format) pgm Portable Graymap (plain format) pgmraw Portable Graymap (raw format) pgnm Portable Graymap (plain format), optimizing to PBM if possible pgnmraw Portable Graymap (raw format), optimizing to PBM if possible pnm Portable Pixmap (plain format) (RGB), optimizing to PGM or PBM if possible pnmraw Portable Pixmap (raw format) (RGB), optimizing to PGM or PBM if possible ppm Portable Pixmap (plain format) (RGB) ppmraw Portable Pixmap (raw format) (RGB) pkm Portable inKmap (plain format) (4-bit CMYK => RGB) pkmraw Portable inKmap (raw format) (4-bit CMYK => RGB) pksm Portable Separated map (plain format) (4-bit CMYK => 4 pages) pksmraw Portable Separated map (raw format) (4-bit CMYK => 4 pages) * plan9bm Plan 9 bitmap format pngmono Monochrome Portable Network Graphics (PNG) pnggray 8-bit gray Portable Network Graphics (PNG) png16 4-bit color Portable Network Graphics (PNG) png256 8-bit color Portable Network Graphics (PNG) png16m 24-bit color Portable Network Graphics (PNG) psmono PostScript (Level 1) monochrome image psgray PostScript (Level 1) 8-bit gray image psrgb PostScript (Level 2) 24-bit color image tiff12nc TIFF 12-bit RGB, no compression tiff24nc TIFF 24-bit RGB, no compression (NeXT standard format) tifflzw TIFF LZW (tag = 5) (monochrome) tiffpack TIFF PackBits (tag = 32773) (monochrome) !end_verbatim !subnode a2pdf Umwandeln von Text in PostScript !subnode pdf2ps Umwandeln von PDF in PostScript !subnode pdf2jpg Folgendes Skript konvertiert PDF-Dokumente in JPG-Dateien, wobei die Auflösung der JPG-Datei frei gewählt werden kann. Standard ist 300 dpi. (!nl) (!nl) !begin_verbatim #!/bin/bash #pdf2jpg - konvertiert PDF/PS-Dateien nach JPG # function err_text { while [ $# -gt 0 ] ; do echo "$1" 1>&2 # Ausgabe auf stderr shift done echo "`basename $0` [-r resolution] [-o outfile] infile[.pdf|.ps]" 1>&2 // # Ausgabe auf stderr exit 1 } # Sortieren der Parameter set--`getopt "r:o:" "$@"` || err_text # Startwerte definieren outres=300 # Parameter abfragen while : ; do case "$1" in -r) shift; outres=$1;; -o) shift; outfile=$1;; --) break;; esac shift [ $# -eq 0 ] && break # Fehler in den angegebenen Parametern done shift [ $# -lt 1 ] && err_text # kein Dateiname wurde übergeben while [ $# -ge 1 ] ; do if [ -f "$1" ] ; then gs -sDEVICE=jpeg -sOutputFile="${outfile:-`basename "$1"`}_%03d.jpg" // -r$outres -dNOPAUSE -dBATCH "$1" else err_text "`basename $0` - Datei '$1' existiert nicht" fi shift done !end_verbatim !subnode pdf2bmp Folgendes Skript konvertiert PDF-Dokumente in BMP-Dateien, wobei die Auflösung der BMP-Datei frei gewählt werden kann. Standard ist 300 dpi. (!nl) (!nl) !begin_verbatim #!/bin/bash #pdf2bmp - konvertiert PDF/PS-Dateien nach BMP # function err_text { while [ $# -gt 0 ] ; do echo "$1" 1>&2 # Ausgabe auf stderr shift done echo "`basename $0` [-r resolution] [-o outfile] infile[.pdf|.ps]" 1>&2 // # Ausgabe auf stderr exit 1 } # Sortieren der Parameter set--`getopt "r:o:" "$@"` || err_text # Startwerte definieren outres=300 # Parameter abfragen while : ; do case "$1" in -r) shift; outres=$1;; -o) shift; outfile=$1;; --) break;; esac shift [ $# -eq 0 ] && break # Fehler in den angegebenen Parametern done shift [ $# -lt 1 ] && err_text # kein Dateiname wurde übergeben while [ $# -ge 1 ] ; do if [ -f "$1" ] ; then gs -sDEVICE=bmp16m -sOutputFile="${outfile:-`basename "$1"`}_%03d.bmp" -r$outres // -dNOPAUSE -dBATCH "$1" else err_text "`basename $0` - Datei '$1' existiert nicht" fi shift done !end_verbatim !subnode html2ps Umwandeln von HTML in PostScript !subnode dvips DVI-Dateien in PostScript umwandeln !subnode ps2pdf Umwandeln von PostScript in PDF (!nl) Beispiele: !bi !short !item Optimieren, für schnelle Anzeige: (!T) ps2pdf -dOptimize=true datei.ps (!t) !item Schriften einbinden: (!T) ps2pdf -dEmbedAllFonts=true datei.ps (!t) !item Komprimieren: (!T) ps2pdf -dUseFlatCompression=true datei.ps (!t) !item Auflösung: (!T) ps2pdf -dPDFSETTINGS=/printer datei.ps (!t) Parameter (schlecht -> gut): /screen /ebook /printer /prepress !ei !subnode ps2ascii Umwandeln von PostScript in ASCII !subnode psutils Manipulation von PostScript-Dateien !subnode pdftk Manipulation von PDF-Dateien (!nl) Beispiele: Mehrere PDFs verschmelzen: (!T) pdftk eins.pdf zwei.pdf drei.pdf cat output einszweidrei.pdf (!t) Einzelne Seiten von PDFs in ein neues PDF extrahieren: (!T) pdftk A=eins.pdf B=zwei.pdf cat A1-7 B1-5 A8 output kombiniert.pdf (!t) Ein mehrseitiges PDF in Einzelseiten zerlegen: (!T) pdftk beispiel.pdf burst (!t) !subnode psnup (!T) psnup -2 eingabe-ps ausgabe.ps (!t) fasst zwei Seiten auf einer zusammen. (!nl) (!T) psnup -4 eingabe-ps ausgabe.ps (!t) fasst vier Seiten auf einer zusammen. !subnode psresize (!T) psresize -Pa4 -pa5 eingabe.ps ausgabe.ps (!t) verkleinert ein A4-Blatt auf A5. !subnode psselect (!T) psselect -e eingabe.ps ausgabe.ps (!t) schreibt alle geraden Seiten in eine neue Datei. (!nl) Mit (!T) -o (!t) werden die ungeraden Seiten gespeichert. (!nl) Für die Seiten 1 und 3-5 gibt man (!T) psselect -p1.3-5 eingabe.ps ausgabe.ps (!t) an. (!nl) Die Umgekehrte Reihenfolge erhält man mit (!T) -r (!t) !subnode psbook Sortiert Seiten für den Büchlein-Druck (!nl) Parameter: !bi !short !item (!T) -q (!t) unterdrückt die Ausgabe von Seitennummern !item (!T) -s (!t) Anzahl der Seiten, bis ein neues Büchlein beginnt !ei !subnode geschützte PDF In der Datei (!T) /usr/share/ghostscript/*/lib/gs_pdfwr.ps (!t) oder auch (!nl) (!T) /usr/share/gs-esp/8.15/lib/gs_pdfwr.ps (!t) steht gegen Ende folgender Eintrag: (!nl) (!T) % Patch 'where' so that the distiller operators are only visible (!nl) % if the pdfwrite device is the current one. (!nl) { currentdevice .devicename /pdfwrite eq { (!nl) .where (!t) (!nl) (!nl) Dieser muss in (!T) { currentdevice .devicename /pdfwritexyz eq { (!t) abgeändert werden. Danach ist es möglich mit ps2pdf geschützte Dateien umzuwandeln. !subnode Adobe Reader Fehler Das Programm erkundigt sich beim Start nach der Datei: "libgzkembedmoz" Abhilfe: In den Einstellungen von acroread den Ordner (!T) /usr/lib/firefox (!t) angeben. #------------------------------------------------------------------------------------------------------------------------------- !node Drucken !subnode lpr (!T) lpr (!t) druckt einen Text bzw. Datei (Postscript) direkt aus !subnode lpadmin (!U) Drucker von Hand einer PPD-Datei zuweisen: (!u) !bi !short !item USB-Port des Druckers ermitteln: (!T) lpinfo -v (!t) !item PPD-Datei dem Drucker zuweisen: (!T) lpadmin -p -E -v -P (!t) (!nl) z.B. (!T) lpadmin -p DCP7010 -E -v usb://Brother/DCP-7010 -P // /usr/share/cups/model/brdcp7010_cups.ppd (!t) !ei !subnode lpinfo Hardware/Netzwerk-Ports der Druckers ermitteln: (!T) lpinfo -v (!t) !subnode lpc (!T) lpc (!t) startet die Druckerstatusabfrage (!nl) status: gibt den Druckstatus aus (!nl) help: gibt Befehlsliste aus (!nl) exit: verlässt die Druckerabfrage !subnode lprm löscht alle Druckaufträge !subnode klpq (!T) klpq (!t) Klpq reicht beim Start die Datei automatisch an den Line Printer Daemon weiter und öffnet ein Fenster, in dem alle aktuellen Druckaufträge aufgeführt sind. In diesem Fenster kann man Druckaufträge löschen oder ihre Reihenfolge verändern: Sehr praktisch, falls einmal etwas Falsches gedruckt wird. !subnode kprinter (!T) kprinter (!t) druckt eine Datei (!nl) (!T) kprinter *.pdf (!t) druckt alle PDF-Dateien im aktuellen Verzeichnis (!nl) (!T) -Pname (!t) wählt Drucker mit dem Namen "name" aus (!nl) (!T) (--)nodialog (!t) Direktdruck ohne Druckdialog !subnode lppasswd Mit (!T) lppasswd -g sys -a root (!t) wird ein spezielles Passwort für die Druckereinstellungen vergeben. !subnode CUPS !subsubnode CUPS-PDF Einstellungen ändern: Die Datei (!T) /etc/cups/cups-pdf.conf (!t) enhält alle Einstellungen, die für den PDF-Druck verantwortlich sind. (!nl) Unter LinuxMint befindet sich diese Datei unter (!T) /usr/share/linuxmint/adjustments/cups-pdf (!t) !subsubnode CUPS-Server einrichten !alias CUPS-Server CUPS kann sehr komfortabel über die HTML-Schnittstelle (!T) http://localhost:631/admin (!t) konfiguriert werden. Alle Einstellungen werden in der Konfiguratinsdatei (!T) /etc/cups/cupsd.conf (!t) gespeichert. (!nl) (!nl) Damit der CUPS-Server auf Anfragen reagiert, müssen die entsprechenden Schnittstellen (normalerweise auf Port 631) freigeschalten werden. Standardmäßig wird nur auf lokale Anfragen reagiert: (!nl) (!nl) (!T) Listen localhost:631 (!t) (!nl) (!nl) Sollen auch andere Rechner aus dem Netzwerk zugriff haben, so muss unter Listen die IP-Adresse der entsprechenden Netzwerkkarte eingetragen werden. Wenn die entsprechende IP-Adresse des Servers (!T) 192.168.1.50 (!t) lautet, so muß folgender Eintrag ergänzt werden: (!nl) (!nl) (!T) Listen 192.168.1.50:631 (!t) (!nl) (!nl) Jetzt müssen noch die einzelnen Clients freigeschalten werden. Dies geschieht unter (!T) (!t): !begin_verbatim # Restrict access to the server... Order allow,deny Allow localhost Allow @LOCAL Allow 192.168.1.* !end_verbatim In diesem Beispiel wurden zusätzlich alle Rechner im Netzwerk (!T) 192.168.1.* (!t) freigeschalten. (!nl) (!nl) !subsubnode CUPS-Client einrichten !alias CUPS-Client Ein CUPS-Client kann auf zwei unterschiedliche Arten konfiguriert werden. (!nl) (!nl) (!B) Cups-Server des eingenen Rechners wird verwendet und Netzwerkdrucker werden eingebunden. (!b) (!nl) (!nl) In diesem Fall wird der gewünschte Netzwerkdrucker in der Druckerkonfiguration über Hinzufügen -> Drucker/Klasse hinzufügen -> CUPS-Server (IPP/HTTP) auf Fremdrechner -> hinzugefügt. Hierzu muss der entsprechnede Treiber (PPD-Datei) auf dem Client installiert sein. (!nl) (!nl) (!B) Direkter Zugriff auf den CUPS-Server (!b) (!nl) (!nl) In der Datei (!T) /etc/cups/client.conf (!t) kann ein Serfer angegeben werden, an den alle lokalen Anfragen weitergeleitet werden. Der Eintrag (!T) ServerName 192.168.1.50 (!t) leitet alle Anfragen auf den Rechner 192.168.1.50 weiter. Wird dieser Rechner nicht gefunden, so folgt (nach dem Timeout und einer Fehlermeldung) die Weiterleitung an den lokalen CUPS-Server des Client-Rechners. Bei dieser Konfiguration müssen die Drucker des Servers lokal nicht erneut installiert werden, da die Anfragen ja direkt auf den entsprechenden Server weitergeleitet werden, sondern erscheinen direkt auf dem Client-Rechner. !subnode Druck umleiten Wenn man einen Druckauftrag in eine PDF-Datei an einen bestimmten Ort oder auf einen FTP-Server umleiten will, bietet sich folgendes Script an, das in kprinter mit (!T) /usr/bin/printtotausch.sh %psl %in (!t) aufgerufen wird: !begin_verbatim #! /bin/bash outfile=/tmp/Druck_`users`_`date +%d_%m_%Y`_um_`date +%H_%M_%S`.pdf ps2pdf -sPAPERSIZE=$1 $2 "$outfile" ncftpput 192.168.178.1 "$outfile" !end_verbatim #------------------------------------------------------------------------------------------------------------------------------- !node Benutzer & Gruppen !subnode adduser (!T) adduser (!t) legt einen Benutzer inklusive kompletter Verzeichnisstruktur an !subnode useradd (!T) useradd -m (!t) legt einen Benutzer an !subnode passwd (!T) passwd (!t) ändert ein Passwort (!nl) siehe auch: neues Rootpasswort !subnode chage (!T) chage (!t) Haltbarkeit des Passworts !subnode userdel löscht einen Benutzer (!T) userdel -r (!t) löscht auch das Home-Verzeichnis !subnode deluser löscht einen Benutzer (!T) deluser (--)remove-home (!t) mit seinem Home-Verzeichnis (!nl) (!T) deluser mike sudo (!t) löscht den Benutzer mike aus der Gruppe sudo !subnode usermod Änderung der Benutzereigenschaften. (!nl) Mit (!T) usermod -L (!t) kann der Zugang gesperrt werden. (!nl) (!T) usermod -U (!t) hebt die Sperre wieder auf. !subnode groupadd legt ein neue Gruppe an !subnode groupdel Löscht eine Gruppe !subnode groupmod Gruppenname oder ID ändern !subnode addgroup (!T) addgroup (!t) fügt einen Benutzer einer Gruppe zu !subnode id (!T) id (!t) gibt die Gruppenzugehörigkeit aus (!nl) (!T) id -Gn (!t) gibt nur die Namen der Gruppen aus !subnode groups (!T) groups (!t) Ausgeben der Gruppenzugehörigkeit eines Benutzers. !subnode finger (!T) finger -l (!t) Infos über eingeloggte User !subnode who (!T) who (!t) ermittelt wer angemeldet ist !subnode w (!T) w (!t) ermittelt wer angemeldet ist und gibt die jeweils gestarteten Prozesse aus !subnode whoami !alias logname oder auch (!T) logname (!t) gibt den Anmeldenamen an !subnode last gibt die Liste der zuletzt eingeloggten User aus !subnode lastlog gibt die Liste aller User mit letzem Einlogdatum aus !subnode exit !alias logout Beenden (auch (!T) (!t) oder (!T) logout (!t) ) !subnode Voreinstellungen für neue Benutzer !alias Voreinstellungen In (!T) /etc/skel/ (!t) stehen alle Ordner, die für einen neuen Benutzer angelegt werden sollen !subnode neues Rootpasswort !alias Rootpasswort !be !short !item System von einer Linux-Boot-CD starten !item Root-Partition mounten !item /etc/passwd auf der Zielfestplatte mit vim öffnen !item Zeile (!T) root:x:0:0:root:/root:/bin/bash (!t) ersetzen durch (!T) root::0:0:root:/root:/bin/bash (!t) !item Rechner neu starten !item Root ohne Passwort einloggen !item neues Passwort mit passwd setzen !ee !be !short !item In grub als Bootoption (!T) init=/bin/bash (!t) eingeben !item (!T) mount -no remount,rw / (!t) !item (!T) passwd root (!t) !item (!T) sync (!t) !item (!T) mount -no remount,ro / (!t) !item (!T) reboot (!t) !ee #------------------------------------------------------------------------------------------------------------------------------- !node Prozessverwaltung !subnode Auflisten und Beenden !subsubnode ps Prozessanzeige !bi !short !item (!T) ps -x (!t) alle eigenen Prozesse !item (!T) ps -ax (!t) alle Prozesse !item (!T) ps -aux (!t) alle Prozesse mit Userangabe !item (!T) ps -ef (!t) alle Prozesse in einer Tabelle !ei !subsubnode pgrep (!T) pgrep (!t) gibt die ID eines Programms aus !subsubnode pstree zeigt Prozesse und deren Zugehörigkeiten in einer Baumstruktur an !subsubnode top Auflistung aller Prozesse in Echtzeit incl. Prozessorauslastung etc. !subsubnode lsof (!T) lsof | less (!t) Anzeige, welche Prozesse auf welche Dateien zugreifen. (!nl) (!T) lsof /dev/hdc (!t) zeigt, welche Prozesse auf das CD-Laufwerk zugreifen (!nl) (!T) lsof +D /home/user/Verzeichnis (!t) zeigt, welche Dateien im Verzeichnis geöffnet sind (!nl) (!T) lsof -i -P (!t) zeigt alle Internetverbidnungen an !subsubnode fuser zeigt alle Prozesse an, die auf den unter mountpunkt eingehängen Datenträger zugreifen (!nl) (!T) fuser -v (!t) !subsubnode time Zeitmessung von Prozessen !subsubnode timeout (!T) timeout 60 (!t) lässt einen Befehl für 60 Sekunden lang ausführen und beendet ihn dann. !subsubnode kill !alias pkill !alias xkill (!T) kill PID (!t) löscht Prozess mit PID-Nummer (!nl) (!T) kill -l PID (!t) löscht hängende Prozesse (!nl) (!T) kill -9 PID (!t) löscht den Prozess auf jeden Fall (!nl) (!T) pkill (!t) beendet ein Programm (!nl) (!T) xkill (!t) beendet das Fenster, auf das nach der Eingabe des Befehls geklickt wird. !subsubnode killall (!T) killall (!t) löscht alle Prozesse, die zu gehören !subnode Hintergrundprozesse & Zeitsteuerung !subsubnode & # !ignore_links wird das (!T) & (!t) an einen Befehl angehängt, so wird dieser im Hintergrund gestartet !subsubnode jobs zeigt alle Hintergrundprozesse an !subsubnode bg Job in den Hintergrund stellen !subsubnode fg Job in den Vordergrund holen !subsubnode Prozesse beenden - unterbrechen (!T)+c(!t) beendet den laufenden Prozess (!nl) (!T)+z(!t) unterbricht den laufenden Prozess !subsubnode cron Zeitsteuerung (Einträge in /etc/crontab) (!nl) !bi !short !item (!T) crontab -l (!t) zeigt alle Jobs !item (!T) crontab -r (!t) löscht alle Crontabs !item (!T) crontab -e (!t) öffnet einen Editor !item Format: Minuten Stunden Tage Monate Wochentage Befehl (ein * gilt für jeweils alle) !item Beispiele: !bi !short !item Kommando jede Minute ausführen: * * * * * Befehl !item Jeden Tag um 22.00 h ausführen: 0 22 * * * Befehl !item Jeden Sa. um 22:00 h ausführen: 0 22 * * 6 Befehl !item Befehl alle 5 min ausführen: */5 * * * * Befehl !item Befehl alle 2 Stunden ausführen: 00 */2 * * * Befehle !ei !item Man kann auch einen Alias eintragen: (!nl) @reboot einmalig nach dem booten (!nl) @yearly einmal im Jahr - "0 0 1 1 *" (!nl) @monthly einmal im Monat - "0 0 1 * *" (!nl) @weekly einmal in der Woche - "0 0 * * 0" (!nl) @daily einmal am Tag - "0 0 * * *" (!nl) @hourly einmal in der Stunde - "0 * * * *" (!nl) Diese Aliase ersetzen die Zeitangaben in den ersten 5 Feldern! !item kcron bietet eine gute grafische Oberfläche !ei !subsubnode at (!T) at 15:14 (!t) öffnet den Editor um den Befehl einzugeben, der um 15:14 Uhr ausgeführt wird. Der Editor wird mit beendet. (!T) echo "play /pfad/zu/musik.mp3" | at 7:00 24.12.2004 (!t) spielt Musik um 7.00 Uhr ab. (!nl) (!T) echo "halt" | at 17:00 (!t) (als root) fährt den Rechner um 17.00 Uhr herunter. (!nl) Mit (!T) atq (!t) werden alle anstehenden at-Kommandos aufgerufen. !subsubnode anacron Wie cron, aber es werden Prozesse nachgeholt, falls der Rechner aus war. !subsubnode nohup Prozesse nach Sitzungsende weiterlaufen lassen. !subsubnode sleep (!T) sleep x (!t) wartet x Sekunden !subnode Programme als anderer Benutzer ausführen !subsubnode su als Superuser (root) anmelden. Das Admin-Passwort wird abgefragt. Mit (!T) exit (!t) wieder beenden. !subsubnode gksu (!T) gksu (!t) startet ein Programm z.B. in der Eingabemaske (Alt-F2) mit Superuserrechten !subsubnode sudo Ein Befehl wird als root ausgeführt: (!T) sudo (!t) (!nl) (!nl) Unter ubuntu ist es üblich alle administrativen Aufgaben mittels sudo vorzunehmen (da der Benutzer Root standardmäßig nicht exisitert). (!nl) (!nl) (!U) Programme immer mit superuser-Rechten starten. (!u) (!nl) Eintrag in /etc/sudoers: (!nl) !begin_verbatim User_Alias NAME=stefan Cmnd_Alias BACKUP=/usr/bin/multicd NAME ALL = BACKUP !end_verbatim (!B) Achtung: Die Dateien (!T) /etc/sudoers (!t) stets mit visudo editieren (!b) (!nl) (!nl) (!U) Beispieldatei: (!u) !begin_verbatim # /etc/sudoers # This file MUST be edited with the 'visudo' command as root. # See the man page for details on how to write a sudoers file. Defaults env_reset # Host alias specification # User alias specification # Cmnd alias specification Cmnd_Alias ISOFILM = /bin/mkdir /media/ISO-Film, /bin/rm -r /media/ISO-Film Cmnd_Alias ISOFILE = /bin/mkdir /media/ISO-File, /bin/rm -r /media/ISO-File Cmnd_Alias BURN = /usr/bin/cdrecord, /usr/bin/cdrdao # User privilege specification root ALL=(ALL) ALL petri ALL=(ALL) ALL petri ALL=NOPASSWD: /bin/mount,/bin/umount,ISOFILM,ISOFILE !end_verbatim !subnode Prioritäten ändern !subsubnode nice Einen Prozess mit anderer Priorität laufen lassen. !subsubnode renice Die Priorität eines laufenden Prozesses ändern. !subnode Dienste starten (!T) /etc/init.d/samba start | stop | restart (!t) (!nl) cups, network, nfs, squid... !subnode strace (!T) strace (!t) verfolgt Systemcalls und Signale eines Prozesses #------------------------------------------------------------------------------------------------------------------------------- !node Dateisysteme !subnode Wo befindet sich was? !begin_table l|l !hline /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 !hline !end_table !subnode fstab In der Datei /etc/fstab stehen die Zuordnungen zwischen Dateisystemen und deren Mountpunkten. Diese Dateisysteme können beim Systemstart automatisch gemountet werden. Die Spalten enthalten folgende Meldungen: (!nl) Gerätedatei - Mountpoint - Dateisystemtyp - Mount-Optionen - dump-Infos - fsck-Infos (!nl) (!nl) (!U) Mount-Optionen:(!u) !begin_table l|l !hline async !! asynchroner Dateizugriff atime !! ändern des Datums beim letzten Zugriff auto !! automatisches Mounten mit -a möglich defaults !! Standardeinstellungen (rw, suid, dev, exec, auto, nouser, async) dev !! zeichen- und blockorientierte Geräte exec !! ermöglicht Ausführung von Dateien noatime !! keine Datumsaktualisierung noauto !! kein automatisches Mounten mit -a möglich nosuid !! s-Bit hat keine Wirkung nouser !! normale User dürfen nicht mounten remount !! erneutes Einhängen möglich ro !! read-only rw !! read-write suid !! s-Bit kann verwendet werden sync !! synchroner Zugriff users !! jeder darf dieses System mounten user !! der am Desktop angemeldete user darf mounten !hline !end_table (!U) dump/pass:(!u) (!nl) "Dump" legt fest, ob die Partition von dem Backupprogramm Dump gesichert werden soll. "Pass" legt fest, ob und in welcher Reihenfolge die Partitionen auf Fehler überprüft werden sollen. Bei der Root-Partition sollte 1 stehen, bei allen anderen zu überprüfenden Partitionen eine 2. Wenn hier eine 0 eingetragen wird, wird die Platte nicht geprüft. Diese werden dann gleichzeitig getestet (evtl. hier nach physikalischen Festplatten trennen). (!nl) (!nl) (!U) Beispiel einer fstab: (!u) !begin_verbatim # proc /proc proc defaults 0 0 ## Festplatte 1 /dev/hda /dev/hda1 none swap sw 0 0 /dev/hda2 / ext3 defaults 0 1 /dev/hda3 /mnt/hda3 ext3 defaults 0 2 ## Festplatte 2 /dev/hdb /dev/hdb1 /mnt/hdb1 ext3 defaults 0 2 /dev/hdb2 /mnt/hdb2 ext3 defaults 0 2 /dev/hdb3 /mnt/hdb3 ext3 defaults 0 2 ## CD-Laufwerke /dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/hdd /media/cdrom1 udf,iso9660 user,noauto 0 0 ## Diskette /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0 ## USB-Einbindung mit DevMode 0666 none /proc/bus/usb usbfs auto,devmode=0666 0 0 !end_verbatim Mit (!T)mount -a(!t) wird die fstab wieder neu eingelesen. !subnode Einhängen !subsubnode mount !alias ISO-Datei hängt ein Laufwerk in das System ein !bi !short !item (!T) mount (!t) gibt alle eingehängten Datenträger an !item CD-ROM: (!T) mount -t iso9660 -o ro /dev/hdc /mnt/cdrom (!t) !item Diskette: (!T) mount -t auto -o ro /dev/fd0 /mnt/floppy (!t) !item Netzwerk: (!T) mount 196.168.0.2:/home /mnt/home/(!t) !item ISO-Abbild einbinden: (!T) mount -t iso9660 -o loop cdrom.iso /mnt/tmp (!t) !item Eine Partition ist nur lesbar und nicht schreibbar (ro) gemountet. Soll sie nun doch schreibbar sein gibt man als root folgendes ein: (!T) mount /dev/hda1 -o remount,rw (!t) !ei !subsubnode umount (!T) umount /media/cdrom (!t) hängt das Laufwerk aus. Bei Hängern hilft (!T) umount -l /media/cdrom (!t) !subsubnode sync gepufferte Daten auf die Festplatte/Diskette schreiben (bevor man einen Datenträger aushängt) !subsubnode swap !alias swapon !alias swapoff Auslagerungsdatei, deren Größe der doppelte Arbeitsspeicher, aber max. 512MB sein sollte. (!nl) (!nl) (!T) swapon (!t) und (!T) swapoff (!t) (!nl) swap-Partition an/ausschalten (!nl) (!nl) -a alle Swap-Partitionen aus der fstab (!nl) -s Auslastung der Swap-Partitionen anzeigen !subsubnode ISO-Abbild einbinden (!B) in der fstab: (!b) (!nl) (!T) Dateiname.iso /mnt/image1 iso9660 ro,loop,auto 0 0 (!t) (!nl) (!nl) (!B) als Konsolenbefehl: (!b) (!nl) (!T) mount -t iso9660 -o loop Dateiname.iso /mnt/tmp (!t) !subnode Partitionieren, Formatieren und Kopieren !subsubnode fdisk Plattengröße anzeigen (!nl) (!T) fdisk -l /dev/hda (!t) !subsubnode sfdisk ??? siehe fdisk !subsubnode parted Anlegen, vergrößern, verkleinern und verschieben von Partitionen (!nl) Einfacher geht das mit der grafischen Oberfläche von qtparted (System-Rescue-CD oder Knoppix) !subsubnode mkdosfs MSDOS-Dateisystem erzeugen (z.B. ein FAT32-System auf einem USB-Stick) (!nl) !subsubnode mkfs Einrichten von Dateisystemen (!nl) (!T) mke2fs (!t) ext2- oder ext3-Dateisystem einrichten (!nl) (!T) mkreiserfs (!t) Reiser-Dateisystem einrichten (!nl) (!T) mkswap (!t) Swap-Dateisystem einrichten. ( (!T) swapon - swapoff (!t) ) (!nl) Leichter geht das mit der grafischen Oberfläche von qtparted (System-Rescue-CD oder Knoppix) (!T) mkdosfs -F 32 -v /dev/sda1 (!t) !subsubnode dd !subsubsubnode Bootsektor (MBR) sichern (!T) dd if=/dev/hda of=hda.mbr bs=512 count=1 (!t) (!nl) (!T) dd if=hda.mbr of=/dev/hda count=1 (!t) (!nl) (!B) Achtung: ein falscher Syntax beim Wiederherstellen kann den Inhalt der gesamten Festplatte löschen! (!b) !subsubsubnode CD sichern (!T) dd if=/dev/cdrom of=cd.iso (!t) !subsubsubnode Festplatte sicher löschen Folgendes Skript löscht die Daten auf einer Festplatte unwiederruflich. (!B) (!nl) Achtung: Es gibt keine Möglihckeit so gelöschte Daten wieder herzustellen! (!b) (!nl) (!nl) (!T) device=/dev/sda (!t) (!nl) (!T) dd if=/dev/zero of=$device bs=10240 conv=noerror (!t) (!nl) (!T) dd if=/dev/urandom of=$device bs=10240 conv=noerror (!t) (!nl) (!T) dd if=/dev/zero of=$device bs=10240 conv=noerror (!t) (!nl) (!T) cat $device | strings (!t) (!nl) (!nl) Im ersten Schritt wird das zu löschende Device angegeben (z.B. /dev/sda). In den nächsten drei Schritten wird das gesamte Device zunächst mit Nullen, dann mit Zufallszahlen und anschließend wieder mit Nullen beschrieben. Im letzten Schritt wird das gesamte Device nach einer Zeichenkette durchsucht. Wenn alles funktioniert hat darf dieser Aufruf keinerlei Ausgaben produzieren. !subsubsubnode Festplatte kopieren (!T) dd if=/dev/hda of=/dev/hdc (!t) !subsubsubnode CD in ISO-Image kopieren (!T) dd if=/dev/cdrom of=./pfad/zum/iso.image (!t) -> siehe auch mkisofs !subsubsubnode Gesamte Platte sichern (!T) dd if=/dev/hda bs=1024 | gzip -c | split -b 700m - backup_ (!t) liest die ganze Platte (hda) ein, komprimiert und teilt in Dateien zu 700 MB auf. (!nl) Zurückschreiben geht mit (!T) cat backup_* | gzip -d | dd of=/dev/hda bs=1024 (!t) (!nl) Der Bootblock wird so gesichert: (!T) dd if=/dev/hda of=/dev/fd0/bootblock bs=521 count=1 (!t) (!nl) Und zurück: (!T) dd if=/dev/fd0/bootblock of=/dev/hda bs=521 count=1 (!t) !subsubsubnode Löschen einer Platte (!T) dd if=/dev/zero of=/dev/hda (!t) !subsubsubnode dd_rescue !alias ddrescue dd_rescue dient zur Datenrettung. Es bricht nicht ab wie dd. !be !short !item Daten auslesen: (!nl) (!T) ddrescue -n /dev/sda1 /mnt/backup/image.iso logdatei.log (!t) !item Defekte Blöcke werden nochmals getestet: (!nl) (!T) ddrescue -RT /dev/sda1 /mnt/backup/image.iso logdatei.log (!t) !ee !subsubnode MBR erstellen !alias MBR Einen neuen MasterBootRecord (MBR) erstellt man mit (!T) install-mbr /dev/sda (!t) !subsubnode partimage (!T) partimage -z1 -b -d save /dev/hda1 /mnt/home/image.img.gz (!t) sichert hda1 nach . (!nl) (!T) partimage restore /dev/hda1 /mnt/home/image.img.gz (!t) stellt die Sicherung wieder her. (!nl) Für die Wiederherstellung des Master Boot Record (MBR) schreibt man (!nl) (!T) partimage restmbr /mnt/home/image.img.gz (!t) (!nl) Das Programm partimage kann aber auch einfach so gestartet werden. (!nl) (!nl) (!U) Beispielskript zur automatischen Erstellung eines Backups (!u) (z.B. von der System-Rescue-CD aus) (!nl) (!nl) !begin_verbatim #! /bin/bash # Startwerte setzen src_part=hda2 # Partition, die gesichert werden soll dst_part=hdb3 # Partition, auf die das Backup geschrieben werden soll path="backup/sysbackup" # in diesen Pfad auf der Zielpartition (dst_part) wird das Backup geschrieben # Zielpartition mounten mkdir /mnt/$dst_part mount /dev/$dst_part /mnt/$dst_part echo Wait for /dev/$dst_part to be mounted ... while [ ! -d "/mnt/$dst_part/$path" ]; do sleep 1 done # Backup starten datum=`date +%y%m%d` partimage -z1 (--)volume 2085888 -b -f3 save /dev/$src_part /mnt/$dst_part/$path/sysbackup_$datum # Zielpartition unmounten echo Wait for /dev/$dst_part be unmounted ... while [ -d "/mnt/$dst_part/$path" ]; do umount /dev/$dst_part sleep 1 done rm -rf /mnt/$dst_part # System neu starten echo Restarting system ... reboot !end_verbatim !subsubnode Bootfähigen USB-Stick erstellen !be !short !item USB-Stick mounten (!nl) (!T) mount /dev/sda1 /media/usbstick (!t) !item System auf USB-Stick kopieren (z. B. Feather-Linux) !item USB-Stick unmounten (!nl) (!T) umount /dev/sda1 (!t) !item Bootloader installieren (!nl) (!T) syslinux /dev/sda1 (!t) !ee !subsubsubnode mehrere Systeme auf einen Stick !be !short !item ISOs auf Stick kopieren, !item Jeweils die kernel/initrds aus den ISOs in /boot auf den Stick packen (evtl. umbenennen) !item passenden booteintrag in /boot/grub/menu.lst erzeugen (fromiso=/iso-pfad-und-name als boot-Parameter angeben) !item grub installieren !ee !subnode Verschlüsseltes Dateisystem (encfs) !alias encfs !alias fuse !alias fusermount Einbindung eines verschlüsselten Dateisystems mit Hilfe von (!T) encfs (!t). (!nl) (!B) Voraussetzungen: (!b) Kernelmodul (!T) fuse (!t) muß vorhanden sein. Alle Benutzer, die (!T) encfs (!t) benutzen sollen müssen der Gruppe (!T) fuse (!t) zugeordnet werden! !begin_verbatim apt-get install encfs !end_verbatim Es wird die Gruppe fuse angelegt, dann den eigenen User in /etc/group dort mit aufnehmen. Anschließend zwei Ordner erstellen. In den versteckten Ordner werden die Dateien verschlüsselt abgespeichert und über den nicht versteckten Ordner kann man darauf zugreifen: !begin_verbatim mkdir /home/user/.secure mkdir /home/user/secure !end_verbatim Filesystem einhängen mit: !begin_verbatim encfs -raw /home/user/.secure /home/user/secure !end_verbatim Beim ersten Start mit Enter die Standard-Konfiguration wählen. (!nl) Filesystem aushängen mit: !begin_verbatim fusermount -u /home/user/secure !end_verbatim (!B) Skript (!T) mountsafe (!t) zum automatischen mounten/unmounten des Dateisystems (!b) (!nl) Skript starten über: !begin_verbatim mountsafe /home/user/.secure /home/user/secure !end_verbatim Und jetzt das Skript: !begin_verbatim #!/bin/sh # Mounts/unmounts encFS path # Source (encFS encrypted path) SRC=$1 # Destination (mount point for encrypted path) DST=$2 if [ "$(cat /proc/mounts | grep encfs | grep $DST)" != "" ]; then $(kdialog --title "encFS: unmount $DST..." --warningyesno "encFS: should $DST be unmounted?") if [ $? == 0 ] then fusermount -u $DST & else konqueror $DST & fi else kdialog --title "encFS: Enter passphase..." --password "Enter passphrase for [$DST]" | encfs $SRC $DST && konqueror $DST fi !end_verbatim !subnode Prüfen & Reparieren !subsubnode fsck überprüft und repariert das Filesystem !subsubnode badblocks Physikalische Überprüfung des Datenträgers !subsubnode /dev/null reparieren !bi !short !item System von Linux-Boot-CD booten !item entsprechnede Festplatte mounten (z.B. nach /mnt/hda1) !item rm /mnt/hda1/dev/null !item mknod /mnt/hda1/dev/null c 1 3 !item Rechner neu starten !ei !subsubnode Daten retten !subsubsubnode testdisk mit (!T) testdisk (!t) von z.B. der System-Rescue-CD lassen sich zerstörte Partitionsbelegungen wiederherstellen. !subsubsubnode photorec Daten von der Digitalkamera retten !subsubsubnode foremost Gelöschte Daten wiederherstellen !subsubsubnode magicrescue Gelöschte Daten wiederherstellen !subsubnode df zeigt die Belegung aller gemounteten Medien an !subnode Disketten !subsubnode fdformat (!T) fdformat /dev/fd0 (!t) formatiert die Diskette !subsubnode Disketten kopieren Diskette in Image-Dateien kopieren: (!T) dd if=/dev/fd0 of= (!t) Eine exakte Kopie der Diskette wird unter abgelegt. (!nl) (!nl) und wieder zurück: (!T) dd if=floppyimage of=/dev/fd0 (!t) !subsubnode Floppy mounten !alias udisks (!T) udisks (--)mount /dev/fd0 (!t) #------------------------------------------------------------------------------------------------------------------------------- !node Netzwerk !subnode IP-Adressen Intranet: !bi !short !item 10.0.0.0 - 10.255.255.255 (A-Netz) !item 169.254.0.0 - 169.254.255.255 (Automatic Private IP Adressing) !item 172.16.0.0 - 172.31.255.255 (B-Netz) !item 192.168.0.0 - 192.168.255.255 (C-Netz) !ei !subnode Nameserver-Konfiguration (!T) cat /etc/resolv.conf (!t) !subnode Anzeige erreichbarer WLAN-Netze !(T) iwlist scan !(t) !subnode Netzwerk einrichten !subsubnode Einrichtung Client !bi !short !item nis und nfs müssen installiert werden. !item in /etc/passwd muss der installierende user gelöscht werden, da sonst die ID-Nummer nicht mit dem Server übereinstimmt !item in der fstab muss das neue home-Verzeichnis auf dem Server eingetragen werden: (!T) 192.168.0.1:/home /home nfs defaults 0 0 (!t) !item an die Datei /etc/passwd muss (!T) +:::::: (!t) angehängt werden !item an die Datei /etc/group muss (!T) +::: (!t) angehängt werden !item an die Datei /etc/shadow muss (!T) +:::::::: (!t) angehängt werden !item an die Datei /etc/gshadow muss (!T) +::: (!t) angehängt werden !item wenn kein Nameserver gefunden wird fehlt in der Datei /etc/resolv.conf der Eintrag (!T) nameserver 192.178.168.1 (!t) !ei !subsubnode /etc/hosts !alias hosts In dieser Datei können IP-Adressen die entsprechnenden Rechnernamen zugeordnet werden: (!nl) (!T) 192.168.1.50 Arbeitszimmer.tuxnet Arbeitszimmer (!t) (!nl) (!nl) Ebenso können Server gesperrt werden: (!T) (!nl) 127.0.0.1 ads.server.com (!t) !subsubnode /etc/network/interfaces !alias interfaces (!B) statische Netzwerkadresse einrichten (!b) !begin_verbatim # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug eth0 iface eth0 inet static address 192.168.1.50 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 !end_verbatim (!B) dynamische Netzwerkadresse einrichten (!b) !begin_verbatim # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug eth0 iface eth0 inet dhcp !end_verbatim !subsubnode dhclient Startet einen DHCP-Client und somit die Konfiguration eine lokalen Netzwerkkarte durch einen DHCP-Server. (!nl) (!nl) (!T) dhclient (!t) als root ausführen !subsubnode ifconfig eigene IP ermitteln: (!T) ifconfig (!t) (!nl) IP-Konfiguration: (!T) ifconfig ethXX NeueIPAdresse Netzmaske (!t) (nur als root). (!nl) Als ethXX gibt man dabei das Interface an, für das die Änderung durchgeführt werden soll. Meist ist das also eth0. (!nl) Deaktivieren mit (!T) ifconfig eth0 down (!t) (siehe auch ifdown) (!nl) Aktivieren mit (!T) ifconfig eth0 up (!t) (siehe auch ifup) !subsubnode ifup Netzwerkverbindung aufbauen !subsubnode ifdown Netzwerkverbindung beenden !subsubnode route (!U) Routing ändern (!u) (!nl) (!nl) (!T) route add 192.168.1.1 eth0 (!t) !subsubnode DNS-Server !alias resolv.conf In der Datei (!T) /etc/resolv.conf (!t) sind die DNS-Server eingetragen. (!nl) Freie (ungefilterte) DNS-Server sind: !bi !short !item 85.214.73.63 (anonymisierungsdienst.foebud.org) !item 204.152.184.76 (f.6to4-servers.net, ISC, USA) !item 2001:4f8:0:2::14 (f.6to4-servers.net, IPv6, ISC) !item 194.150.168.168 (dns.as250.net; anycast DNS!) !item 213.73.91.35 (dnscache.berlin.ccc.de) !item 80.237.196.2 !item 194.95.202.198 !ei (Quelle: http://www.ccc.de/censorship/dns-howto/index.xml#how-tos ) !subsubnode Gerätenamen der Netzwerkschnittstelle ändern !alias Netzwerkschnittstelle !alias ip Die Gerätenamen der Netzwerkschnittstellen können geändert werden. Hierzu benötigt man den Befehl ip aus dem Paket iproute2: (!nl) (!T) ip link set name (!t) (!nl) (!nl) Typische Namen für Netzwerkschnittstellen: eth0, eth1, eth2, ... !subnode Netzwerk neu starten (!T)/etc/init.de/networking restart (!t) !subnode rdate !alias Timeserver !alias Uhrzeit synchronisieren Uhrzeit mit Zeitserver synchronisieren (!nl) (!T) rdate -s timeserver (!t) (!nl) (!nl) (!U) Deutsche Timeserver (!u) !bi !short !item ptbtime1.ptb.de !item ptbtime2.ptb.de !item ntp1.t-online.de !item ntp0.fau.de !item ntps1-0.cs.tu-berlin.de !item ntps1-1.cs.tu-berlin.de !item rustime01.rus.uni-stuttgart.de !item de.pool.ntp.org !ei !subnode Prüfen, Analysieren und Informationen !subsubnode ping (!T) ping (!t) prüft, ob ein Rechner erreichbar ist (!nl) (!T) ping www.heise.de (!t) testet eine Verbindung zu www.heise.de. (!nl) Abbruch mit !subsubnode hostname liefert den Rechnername !subsubnode host IP bzw. Name suchen (!nl) (!T) host 62.245.157.216 (!t) sucht Domain !subsubnode dig IP bzw. Name suchen: (!T) dig host.name.com any (!t) !subsubnode traceroute (!T) traceroute (!t) zeigt den Weg durchs Netz zur angegebenen Adresse. (!nl) unter Suse gibt es statt traceroute mtr !subsubnode mtr (!T) mtr (!t) zeigt den Weg durchs Netz zur angegebenen Adresse !subsubnode nslookup (!T) nslookup www.heise.de (!t) liest die IP aus DNS-Server aus !subsubnode nmap (!T) nmap adresse.com (!t) führt einen Portscan durch (Achtung: nur bei eigenen Servern machen!) (!T) nmap 192.168.178.* (!t) listet alle Rechner im heimischen Netzwerk auf !subsubnode netstat (!T) netstat -at (!t) welche Verbindungen sind ins Netz? Ausführlich: (!T) netstat -pa (!t) (!nl) oder (!T) netstat -tulpan (!t) (!T) netstat -t -c (!t) gibt fortlaufende Meldungen aus. !subsubnode nethogs (!T) sudo nethogs (!t) zeigt an welche Prozesse wie viele Daten übertragen !subsubnode tcpdump (!T) tcpdump port 80 (!t) protokolliert alles, was über den http-Port geht (!nl) (!T) tcpdump host 192.168.0.1 (!t) überwacht einen bestimmten Rechner !subsubnode whois (!T) whois www.heise.de (!t) Sucht die Registrierungsdaten einer Domain !subsubnode MAC-Adressen ermitteln (arp) !alias arp Mit (!T) arp (!t) lassen sich Rechnernamen und MAC-Adressen ermitteln. !subnode Dateitransfer / Synchronisieren !subsubnode ftp Zugriff auf einen ftp-Server !subsubnode ncftp Hochladen von Dateien: (!nl) (!T) ncftpput -u server -p passwort anmeldename Zielverzeichnis Quelldatei (!t) !subsubnode wget Spiegelung von Servern !bi !short !item (!T) wget -r -p -k (!t) lädt rekursiv eine Webseite herunter und konvertiert die Links in lokale Links. !item (!T) wget -r -p -k -E (!t) lädt rekursiv eine Webseite herunter, benennt die Endungen in html um und konvertiert die Links in lokale Links. !item (!T) wget -r -A pdf (!t) lädt alle PDF-Dateien einer Webseite herunter. !item (!T) wget -r -l2 -np (!t) rekusiv, zwei Ebenen wechselt nicht in übergeordnete Ebene !item (!T) wget -r p -l3 (--)user-agent="Andererbrowser/6.0" http://www.irgend-eine-seite.de (!t) lädt bis zum 3. Level, getarnt als ein anderer Browser, Webseiten herunter !item Linkliste checken: (!T) wget -nv (--)spider (--)force-html -i .opera/opera6.html (!t) (200 bedeutet OK - ohne -nv gibt es ausführliche Infos ) !ei !subsubnode fish Login auf einem entfernten Rechner im konqueror: (!T) fish://name@rechner (!t) !subsubnode scp (!T) scp user@192.168.1.162:/home/user/datei.tar . (!t) kopiert die Datei datei.tar über das Netzwerk auf das lokale Verzeichnis !subsubnode webdav !alias cadaver WebDAV (Web-based Distributed Authoring and Versioning) ist ein offener Standard zur Bereitstellung von Dateien im Internet. !bi !short !item GMX im Konqueror: (!T) webdav: webdav://mediacenter.gmx.net (!t) oder in der Konsole: (!T) cadaver http://mediacenter.gmx.net (!t) !item Strato im Konqueror (!T) webdav: webdav://webdav.strato.de/ (!t) oder in der Konsole: (!T) cadaver http://webdav.strato.de/ (!t) !ei WebDAV mounten: (!T) sudo mount.davfs http://127.0.0.1:2000/X /media/tausch/ (!t) !subsubnode rsync rsync synchronisiert immer nur in einer Richtung. Für einen gegenseitigen Abgleich müssen also zwei Aufrufe erfolgen: !bi !short !item (!T) rsync /verzeichnis1/* /verzeichnis2/ (!t) (!nl) !item (!T) rsync /verzeichnis2/* /verzeichnis1/ (!t) (!nl) !ei (!T) rsync -au /verzeichnis1/* /verzeichnis2/ (!t) Synchronisation mit Atttributerhaltung, rekursiv und Update (!nl) (!T) rsync -aeu ssh name@rechner /verzeichnis/ (!t) !subsubnode unison Synchronisation mit GUI Aufruf: (!T) unison [profil] (!t) Synchronisation ohne Beachtung der Berechtigungen: (!T) unison [profil] -perms 0 (!t) !subsubnode sitecopy Mit sitecopy können Websites mit lokalen Verzeichnissen synchronisiert werden. !be !item !item Installation (!nl) Zuerst muss die zentrale Konfigurationsdatei ( (!T) touch .sitecopyrc; chmod 600 .sitecopyrc (!t) ) sowie ein Verzeichnis für den Versions-Tracker ( (!T) mkdir -m 700 .sitecopy (!t) ) im Home-Verzeichnis angelegt werden. !item Konfiguration (!nl) Die Konfigurationsdatei besteht aus einer oder mehreren Sektionen (eine pro Website) mit folgender Syntax: !begin_verbatim site beispiel ~~~~~~~~~~~~~~~~ # Projektname server ftp.beispielseite.ch ~~ # Der FTP Server für Up- und Downloads username webmaster ~~~~~~~~~~~ # Username für FTP Zugriff password soginet ~~~~~~~~~~~~~ # Passwort für FTP Zugriff local !~/public_html/beispiel/ ~# Lokales Verzeichnis remote ~/html/ ~~~~~~~~~~~~~~~ # Entferntes Verzeichnis (auf dem FTP Server) # "!~/" steht hier für das login Verzeichnis des FTP Servers. site beispiel2 # Projektname einer weiteren Webseite [...] !end_verbatim Es gibt noch eine Vielzahl weiterer Optionen, z. B. für den Umgang mit Links, Exclude-/Include-Filter, Proxys, usw. Diese sind auf der manpage (man sitecopy) detailliert beschrieben. !item Erster Aufruf (!nl) Es gibt drei mögliche Situationen vor dem ersten Aufruf von Sitecopy; für jede muss individuell vorgegangen werden: !bi !short !item Remote- und lokale Dateien sind synchron. (!nl) Aufruf von (!T) sitecopy (--)catchup beispiel (!t) , um das Programm zu initialisieren. !item Keine lokale Kopie vorhanden. (!nl) Aufruf von (!T) sitecopy (--)synchronize beispiel (!t) , um eine lokale Kopie zu erstellen. !item Keine Kopie auf dem FTP Server vorhanden. (!nl) Aufruf von (!T) sitecopy (--)init beispiel (!t) . Die lokalen Dateien werden dann beim nächsten Aufruf hochgeladen. !ei !item Tägliche Benutzung (!nl) Nachdem das Programm nun betriebsbereit ist, kann es sehr einfach benutzt werden. Ein Aufruf von (!T) sitecopy (--)update beispiel (!t) lädt alle modifizierten oder neuen Dateien, inklusive Unterverzeichnissen, auf den FTP und löscht auch alle Dateien, die lokal entfernt wurden. Wenn mehrere Sites in der Konfigurationsdatei definiert sind, können diese mit sitecopy (--)update beispiel beispiel2 in einem Rutsch synchronisiert werden. (!nl) (!T) sitecopy -u -a (!t) aktualisiert alle Sites, die in der Datei .sitecopyrc stehen. !ee !subnode NFS !subsubnode NFS-Server !alias /etc/exports !alias exports (!B) /etc/hosts (!b) !begin_verbatim 127.0.0.1 localhost 127.0.1.1 Arbeitszimmer.TuxNet Arbeitszimmer 192.168.1.51 Laptop.TuxNet Laptop !end_verbatim (!B) /etc/exports (!b) !begin_verbatim # Der Ordner /exportdir wird mit den Schreibrechten (rw) synchron exportiert. # Der Rechner Laptop kann darauf zugreifen. /exportdir Laptop(rw,sync) # Der Ordner /exportdir wird mit den Schreibrechten (rw) synchron exportiert. # Der Rechner Laptop kann darauf zugreifen. # Es werden stets die Rechte des User mit der UID 1001 und der GID 100 vergeben. /exportdir Laptop(rw,sync,all_squash,anonuid=1001,anongid=100,no_subtree_check) !end_verbatim (!B) Server neu starten (!b) !begin_verbatim /etc/init.d/nfs-common restart /etc/init.d/nfs-kernel-server restart !end_verbatim (!B) exportierte Verzeichnisse kontrollieren (!b) (!nl) (!nl) Die exportiereten Verzeichznisse können mit (!nl) (!T) showmount -e (!t) (!nl) kontrolliert werden. !subsubnode NFS-Client (!B) /etc/hosts (!b) !begin_verbatim 127.0.0.1 localhost 127.0.1.1 laptop.TuxNet laptop 192.168.1.50 Arbeitszimmer.TuxNet arbeitszimmer !end_verbatim (!B) /etc/fstab (!b) !begin_verbatim Arbeitszimmer:/home/petri/Documents /home/arbeitszimmer nfs user,noauto,rw 0 0 !end_verbatim Die fstab mit (!T) mount -a (!t) neu einlesen. (!nl) (!nl) -> Mountbefehl auf dem (KDE-)Desktop anlegen "/neu Erstellen/Verknüpfung zu Gerät/NFS" !subsubnode showmount Der Befehl (!T) showmount (!t) zeigt alle NFS-Netzwerkfreigaben an. (!nl) (!nl) (!B) Anzeige der Freigaben (!b) (!nl) (!T) showmount -e (!t) (!nl) (!nl) (!B) Anzeige der gemounteten Freigaben (!b) (!nl) (!T) showmount (!t) (!nl) (!nl) !subsubnode NFS von Hand starten (!U) Vorraussetzungen bei NFS von Hand: (!u) (!nl) (!nl) Die Datei /etc/exports wurde bereits editiert und die zu exportierenden Verzeichnisse freigegeben. (!nl) (!nl) Portmapper starten (!nl) (!T) /etc/init.d/portmap start (!t) (!nl) (!nl) Nun den Mount-Daemon starten. Nun werden die exportierten Verzeichnisse ("shares") für die anderen sichtbar. (!nl) (!T) rpc.mountd (!t) (!nl) (!nl) Starten des NFS-Daemon für den eigentlichen Filezugriff (!nl) (!T) rpc.nfsd (!t) (!nl) (!nl) Mit rpcinfo kann jederzeit die Verfügbarekit der NFS-Dienste überprüft werden: (!nl) (!T) rpcinfo -p server (!t) !subnode ssh Login auf einem entfernten Rechner: (!nl) (!T) ssh -l (!t) oder (!T) ssh name@rechner (!t) (!nl) (!T) ssh -X user@rechner (!t) mit X-Oberfläche einloggen (!nl) (!T) ssh -XC user@rechner (!t) mit X-Oberfläche und Kompression einloggen (!nl) (!T) ssh user@rechner -X (!t) startet ein Programm auf dem entfernten Rechner und leitet die X-Ausgabe auf den lokalen Rechner um. (!nl) (!nl) Wenn der gespeicherte Fingerabdruck des anzumeldenden Rechners nicht mehr stimmt (neue Hardware oder Neuinstallation) muss die Datei known_hosts bearbeitet werden und der betreffende Rechner gelöscht werden. !subsubnode openssh konfigurieren !alias openssh Zur Konfiguration von openssh gibt es folgende Dateien: !bi short !item /home/user/.ssh/config (!nl) Konfigurationsdatei des ssh-Clients für den entsprechenden User. !item /etc/ssh/ssh_config (!nl) Konfigurationsdatei des ssh-Clients für alle User. !item /etc/ssh/sshd_config (!nl) globale Konfigurationsdatei des ssh-Servers !ei (!U) Server (!u) (!nl) /etc/ssh/sshd_config anpassen (!nl) (!T)/etc/init.d/ssh restart (!t) (!nl) (!nl) Öffentlicher Teil des User-Keyfile (siehe Client einrichten) hinzufügen: (!nl) (!T) cat id_dsa.pub >> ~/.ssh/authorized_keys (!t) (!nl) Die Datei "authorized_keys" muss die Dateirechte 600 haben!) (!nl) (!nl) (!U) Client (!u) (!nl) /etc/ssh/ssh_config anpassen (!nl) /home/user/.ssh/config anpassen (!nl) Keypaar (id_rsa und id_rsa.pub) mit (!T) ssh-keygen -b 2048 -t rsa (!t) generieren und öffentlichen Key id_rsa.pub auf den Server kopieren und dort der authorized_keys hinzufügen (s.o.) (!nl) (!nl) (!B) Achtung: (!b) Der Login über Publickey ist nur möglich, wenn das Home-Verzeichnis des Users die Rechte 700 hat! !subsubsubnode config !alias /home/user/.ssh/config /home/user/.ssh/config !begin_verbatim # Bezeichnung des Zielrechners Host Zielrechner # Zielrechner Hostname 192.168.1.50 # Username auf Zielrechner User petri # immer eine X11-Verbindung aufbauen ForwardX11 yes # Kompression aktivieren Compression yes # Port für Verbindung Port 22 !end_verbatim !subsubsubnode ssh_config !alias /etc/ssh/ssh_config /etc/ssh/ssh_config !begin_verbatim # This is the ssh client system-wide configuration file. See # ssh_config(5) for more information. This file provides defaults for # users, and the values can be changed in per-user configuration files # or on the command line. # Configuration data is parsed as follows: # 1. command line options # 2. user-specific file # 3. system-wide file # Any configuration value is only changed the first time it is set. # Thus, host-specific definitions should be at the beginning of the # configuration file, and defaults at the end. # Site-wide defaults for some commonly used options. For a comprehensive # list of available options, their meanings and defaults, please see the # ssh_config(5) man page. Host * # ForwardAgent no # ForwardX11 no # ForwardX11Trusted yes # RhostsRSAAuthentication no # RSAAuthentication yes # PasswordAuthentication yes # HostbasedAuthentication no # BatchMode no # CheckHostIP yes # AddressFamily any # ConnectTimeout 0 # StrictHostKeyChecking ask # IdentityFile ~/.ssh/identity # IdentityFile ~/.ssh/id_rsa # IdentityFile ~/.ssh/id_dsa # Port 22 # Protocol 2,1 # Cipher 3des # Ciphers aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc # EscapeChar ~ # Tunnel no # TunnelDevice any:any # PermitLocalCommand no SendEnv LANG LC_* HashKnownHosts yes GSSAPIAuthentication yes GSSAPIDelegateCredentials no !end_verbatim !subsubsubnode sshd_config !alias /etc/ssh/sshd_config /etc/ssh/sshd_config !begin_verbatim # Package generated configuration file # See the sshd(8) manpage for details # What ports, IPs and protocols we listen for Port 22 # Use these options to restrict which interfaces/protocols sshd will bind to #ListenAddress :: #ListenAddress 0.0.0.0 Protocol 2 # HostKeys for protocol version 2 HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key #Privilege Separation is turned on for security UsePrivilegeSeparation yes # Lifetime and size of ephemeral version 1 server key KeyRegenerationInterval 3600 ServerKeyBits 768 # Logging SyslogFacility AUTH LogLevel INFO # Authentication: LoginGraceTime 120 PermitRootLogin no StrictModes yes RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys # Don't read the user's ~/.rhosts and ~/.shosts files IgnoreRhosts yes # For this to work you will also need host keys in /etc/ssh_known_hosts RhostsRSAAuthentication no # similar for protocol version 2 HostbasedAuthentication no # Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication #IgnoreUserKnownHosts yes # To enable empty passwords, change to yes (NOT RECOMMENDED) PermitEmptyPasswords no # Change to yes to enable challenge-response passwords (beware issues with # some PAM modules and threads) ChallengeResponseAuthentication no # Change to no to disable tunnelled clear text passwords PasswordAuthentication no # Kerberos options #KerberosAuthentication no #KerberosGetAFSToken no #KerberosOrLocalPasswd yes #KerberosTicketCleanup yes # GSSAPI options #GSSAPIAuthentication no #GSSAPICleanupCredentials yes X11Forwarding yes X11DisplayOffset 10 PrintMotd no PrintLastLog yes TCPKeepAlive yes #UseLogin no #MaxStartups 10:30:60 #Banner /etc/issue.net # Allow client to pass locale environment variables AcceptEnv LANG LC_* Subsystem sftp /usr/lib/openssh/sftp-server UsePAM yes #ForceCommand ssh-login !end_verbatim !subnode dyndns Zuordnung eines Domainnamens an eine dynamische IP-Adresse. Anmeldung bei: (!url [http://www.dyndns.com] [http://www.dyndns.com]) (!T) /etc/init.d/ddclient (!t) startet den Dyndns-Client !subnode Fernwartung Um auf einen entfernten PC zuzugreifen, der hinter einer Firewall (Router) sitzt, verwendet man am besten "Reverse-VNC". Das bedeutet, dass der Hilfesuchende einen VNC-Server startet und man selbst per Client und Portforwarding im eigenen Router auf den Rechner zugreift. Das ganze geht so: (!nl) Der Hilfesuchende muss einen VNC-Server starten. Dies geht unter Windows/Mac am besten mit einem kleinen Programm, das man sich unter (!T) http://www.heise.de/netze/tools/fernwartung (!t) erzeugen lassen kann. Es ist dazu notwendig am eigenen Router eine dyndns-Adresse zu haben. Als Port gibt man am besten 55000 an. Unter Linux genügt es, wenn der Hilfesuchende mit (!T) sudo apt-get install x11vnc (!t) den VNC-Server installiert und dann mit (!T) x11vnc -connect dyndns.example.com:55000 (!t) startet. Selbst startet man den Viewer mit (!T) vncviewer -listen 49500 (!t) (Die Zahl 49500 ergibt sich aus der Differenz von 55000 und 5500, was die Voreinstellung ist.) in der Konsole. Will man auf einen Windows/Mac-Rechner zugreifen, muss man unter (!T) http://www.realvnc.com/cgi-bin/download.cgi (!t) oder (!nl) (!url [./vnc-E4_5-x86_linux_viewer] [hier]) RealVNC herunterladen, ausführbar machen und dann mit (!T) ./vnc-E4_5-x86_linux_viewer -listen 55000 -Protocol3.3 (!t) starten. Es ist wichtig, dass man zuerst bei sich im Router Portforwarding für Port 55000 anschaltet und dann erst der Server beim Hilfesuchenden gestartet wird. Außerdem sollte man für Windows/Mac das Serverprogramm von heise.de nicht per E-Mail verschicken, sondern zum Download anbieten, da es meist als Virus erkannt und vom E-Mail-Provider gelöscht wird. Hier nun das Ganze noch einmal schrittweise: (!nl) !be !item Zugriff auf Windows/Mac !be !short !item Der Helfer muss eine feste IP oder einen dyndns-Adresse und diese im Router eingetragen haben. !item Der Helfer startet in seinem Router Portforwarding für Port 55000. !item Der Helfer startet den VNC-Viewer mit (!T) ./vnc-E4_5-x86_linux_viewer -listen 55000 -Protocol3.3 (!t) Das Programm kann (!url [hier] [./vnc-E4_5-x86_linux_viewer]) heruntergeladen werden. !item Dem Hilfesuchenden lässt man das Programm zur Fernwartung, das man sich unter (!nl) (!T) http://www.heise.de/netze/tools/fernwartung (!t) erzeugen lassen kann, zukommen und der Hilfesuchende startet das Programm. Schon hat man Zugriff auf den PC. !ee !smallskip !item Zugriff auf Linux !be !short !item Der Helfer muss eine feste IP oder einen dyndns-Adresse und diese im Router eingetragen haben. !item Der Helfer startet in seinem Router Portforwarding für Port 55000. !item Der Helfer startet den VNC-Viewer mit (!T) vncviewer -listen 49500 (!t) (evtl. muss hierzu das Paket xtightvncviewer installiert werden) !item Der Hilfesuchende startet in der Konsole das Fernwartungsprogramm mit (!T) x11vnc -connect adresse.dyndns.org:55000 (!t) . Evtl. muss das Paket x11vnc installiert werden. !ee !ee !subnode nis (!T)/etc/init.d/nis restart (!t) startet den NIS neu (nach Anlegen von neuen Usern) !subsubnode nisdomainname (!T) nisdomainname (!t) zeigt den Domainnamen an !subnode samba (!T) /etc/init.d/samba restart (!t) startet den Samba-Server neu (!nl) Alle Einstellungen befinden sich in /etc/samba/ !subsubnode Benutzer anlegen !alias smbpasswd (!T) smbpasswd -a (!t) legt Benutzer an (!nl) (!T) smbpasswd -x (!t) löscht den User in Samba !subsubnode /etc/samba/smbusers !alias smpusers Weist den Linux-Benutzern Alias-Namen zu, die für den Login verwendet werden können: (!nl) (!T) Petri = Winuser (!t) meldet den Windows-User "Winuser" als Linux-User "Petri" an. !subsubnode /etc/samba/smb.conf !begin_verbatim [global] workgroup = tuxnet printcap cache time = 750 cups options = raw printer admin = @ntadmin, root, administrator username map = /etc/samba/smbusers map to guest = Bad User include = /etc/samba/dhcp.conf logon path = \\%L\profiles\.msprofile logon home = \\%L\%U\.9xprofile logon drive = P: restrict anonymous = yes domain master = yes preferred master = yes max protocol = NT ldap ssl = No server signing = Auto ldap idmap suffix = ou=Idmap ldap machine suffix = ou=Computers ldap suffix = dc=example,dc=com printer name = hplaserjet5l hosts allow = 192.168. add machine script = /usr/sbin/useradd -c Machine -d /var/lib/nobody -s /bin/false %m$ domain logons = yes os level = 65 security = user encrypt passwords = yes passdb backend = smbpasswd [documents] comment = /home/petri/Documents path = /home/petri/Documents read only = no inherit acls = yes veto files = /aquota.user/groups/shares/ valid users = petri guest ok = no [ext] comment = /home/ext path = /home/ext read only = no inherit acls = yes veto files = /aquota.user/groups/shares/ valid users = petri guest ok = no [pdf] comment = PDF creator path = /var/tmp printable = yes print command = /usr/bin/smbprngenpdf -J '%J' -c %c -s %s -u '%u' -z %z create mask = 0600 [printers] comment = All Printers path = /var/tmp printable = yes create mask = 0600 !end_verbatim !subsubnode Windows-Freigabe mounten (!B) von Hand (!b) (!nl) Paket "samba-client" installieren (!nl) (!T) mkdir (!t) (!nl) (!T) mount -t smbfs -o username=,password=,gid=users,fmask=0664,dmask=0775 //// (!t) (!nl) (!nl) (!B) automatisch beim Start (!b) (!nl) Zeile in /etc/fstab einfügen: (!nl) (!T)/// / smbfs auto,gid=users,fmask=0664,dmask=0775, // iocharset=iso8859-15,code=850,credentials=/etc/ 0 0 (!t) (!nl) (!T)/etc/: (!nl) username = (!nl) password = (!nl) chmod 600 /etc/(!t) (!nl) (!nl) (!B) Windows-Freigabe mounten per GUI (Samba, LISa) (!b) (!nl) Pakete "kdenetwork3-lisa", "kdenetwork3-lan", "kdebase3-samba", "samba-client" installieren (!nl) Kontrollzentrum/Internet & Netzwerk/Netzwerk-Browser starten (!nl) Windows-Ressourcen und LISa-Dämon konfigurieren (!nl) (!T) su (!nl) rclisa start (!nl) insserv lisa (!t) !subnode sendemail Kommandozeilenprogramm um E-Mails zu versenden: (!nl) (!T) sendEmail -f absender@anbieter.de -t empfaenger -u Betreff -o message-file=Mailtextdatei -s mailserver -xu anmeldename -xp passwort (!t) !subnode TightVNC (!T) apt-get install tightvncserver xtightvncviewer (!t) (!nl) (!nl) (!U) Server (!u) (!nl) einen VNC-Server auf Display 5 starten: (!nl) (!T) vncserver :5 (!t) (!nl) (!nl) beim ersten Start (des jew. Users) wird ein Passwort für den Login gesetzt (!nl) (!nl) einen VNC-Server auf Display 5 beenden: (!nl) (!T) vncserver -kill :5 (!t) (!nl) (!nl) (!U) Client (!u) (!nl) Mit einem VNC-Server auf Display 5 (mit hoher Kompression) verbinden: (!nl) (!T) vncviewer -bgr233 -compresslevel 9 -depth 8 -quality 0 server.domain:5 (!t) !subnode dansguardian Internetfilter für Kinder mit Dansguardian !be !short !item Installiere folgende Pakete: (!T) sudo apt-get install dansguardian squid iptables (!t) (!nl) !item Konfiguration des Squid: (!T) /etc/squid/squid.conf (!t) !bi !short !item aktivieren der Apache log emulation (zur Zugriffsüberwachung): (!T) emulate_httpd_log on(!t) !item setze den Hostnamen: (!T) visible_hostname localhost (!t) !item ändere die Zeile (!T) http_port 3128 (!t) folgendermaßen: (!T) http_port 3128 transparent (!t) !ei !item Konfiguration des Dansguardian: (!T) /etc/dansguardian/dansguardian.conf (!t) !bi !short !item UNCONFIGURED auskommentieren: # UNCONFIGURED !ei !item In der Datei: (!T) /etc/dansguardian/dansguardianf1.conf (!t) !bi !short !item setze naughtynesslimit = 130 !ei !item Starten der Dienste: !bi !short !item /etc/init.d/squid start !item /etc/init.d/dansguardian start !ei !item iptables setzen: (!T) iptables -t nat -A OUTPUT -p tcp -m owner ! (--)uid-owner proxy (--)dport 80 -j REDIRECT (--)to-port 8080 (!t) !item Erstelle die Datei (!T) /etc/init.d/transparentproxy (!t), die folgende Zeile enthält: (!T) iptables -t nat -A OUTPUT -p tcp -m owner ! (--)uid-owner proxy (--)dport 80 -j REDIRECT (--)to-port 8080 (!t) !item mache die Datei ausführbar mit (!T) chmod a+x /etc/init.d/transparentproxy (!t) !item erstelle startup Links: (!T) update-rc.d transparentproxy defaults (!t) !item Dansguardian schreibt ausführliche Logdateien in /var/log/dansguardian/access.log !item Squid-Cache leeren: !begin_verbatim sudo /etc/init.d/squid stop sudo rm -rf /var/spool/squid/* sudo squid -z sudo /etc/init.d/squid start !end_verbatim !ee !subsubnode Schalter für Dansguardian Um dansguardian mit root-Rechten ab- und anzuschalten hilft folgender Workaround: (!nl) !be !short !item Kopiere die Datei /etc/dansguardian/lists/exceptioniplist in eine neue Datei /etc/dansguardian/lists/exceptioniplist.aus !item Kopiere die Datei /etc/dansguardian/lists/exceptioniplist in eine neue Datei /etc/dansguardian/lists/exceptioniplist.ein !item In der Datei /etc/dansguardian/lists/exceptioniplist.aus muss die eigene Rechneradresse als Ausnahme enthalten sein. !item Batchfile mit folgendem Inhalt erstellen: !begin_verbatim # Internetfilter einschalten if [ $1 = on ] then echo sudo cp /etc/dansguardian/lists/exceptioniplist.ein /etc/dansguardian/lists/exceptioniplist sudo /etc/init.d/dansguardian stop sudo /etc/init.d/dansguardian start echo echo Der Filter ist jetzt eingeschaltet. echo exit 0 fi # Internetfilter ausschalten if [ $1 = off ] then echo sudo cp /etc/dansguardian/lists/exceptioniplist.aus /etc/dansguardian/lists/exceptioniplist sudo /etc/init.d/dansguardian stop sudo /etc/init.d/dansguardian start echo echo Der Filter ist jetzt ausgeschaltet. echo Einschalten nicht vergessen. echo exit 0 !end_verbatim !ee #------------------------------------------------------------------------------------------------------------------------------- !subnode Dropbox Dropbox bietet einen kostenlosen Cloud-Speicher von 2 GB an (!url [http://www.dropbox.com/] [http://www.dropbox.com/]). Damit die dort gespeicherten Daten auch wirklich sicher sind, gibt es unter Linux die einfache Möglichkeit die Dateien über encfs zu verschlüsseln: !bi !short !item Im Dropbox-Ordner mit encfs einen verschlüsselten Ordner anlegen: !bi !short !item Ordner für verschlüsselte Daten im Dropbox-Verzeichnis anlegen: (!nl) (!T) mkdir /home/user/Dokumente/Dropbox/privat_enc (!t) !item Ordner für unverschlüsselte Daten außerhalb von Dropboc anlegen: (!nl) (!T) mkdir /home/user/Dokumente/privat_dec (!t) !item Verschlüsseltes Verzeichnis erstmals verschlüsseln: (!nl) (!T) encfs /home/user/Dokumente/Dropbox/privat_enc /home/user/Dokumente/privat_dec (!t) (!nl) Enter drücken (Standard) (!nl) Kennwort eingeben, bestätigen !ei !item Dieser Ordner kann nun beim Start der grafischen Oberfläche über ein Skript automatisch gemountet werden: (!nl) Entweder mit folgendem Einzeiler: (!nl) (!T) echo "Passwort" | encfs -S /home/user/Dokumente/Dropbox/privat_enc /home/user/Dokumente/privat_dec (!t) (!nl) oder mit diesem Script: !begin_verbatim #! /bin/bash src=~/Oeffentlich/Dropbox/.Dokumente_encfs dest=~/.crypt/Dropbox_Dokumente [ -d "$dest" ] || mkdir "$dest" encfs --extpass='cat ~/.crypt/encfspasswd' "$src" "$dest" !end_verbatim Hierbei muss beachtet werden, dass der Zielordner (!T) dest (!t) (also der Ordner mit den entschlüsselten Daten) (!B) auf keinen Fall (!b) im Dropbox-Ordner liegen darf, da sonst die Daten unverschlüsselt an Dropbox übertragen werden! (!nl) (!nl) Nachteil des automatischen Einbindens ist, dass das Passwort für den Dropbox-Zugang unverschlüsselt in der Datei (!T) encfspasswd (!t) vorliegen muss. Daher sollte sich diese Datei wiederum auf einem verschlüsselten Laufwerk liegen. (!nl) (!nl) !item Weitere Möglichkeiten der Einbindung mit Passworteingabe: (!nl) - Skript mit einer Passwortabfrage z. B. über kdialog eingesetzen. (!nl) - Der Einsatz des Programms (!T) cryptkeeper (!t) (Auch hierbei aufpassen, dass der Ordner mit den entschlüsselten Daten auf keinen Fall im Dropbox-Ordner liegen darf! !ei !node System !subnode Runlevel 0 abschalten (!nl) 1 root (!nl) 2 Multiuser (!nl) 3 Netzwerk (!nl) 4 - (!nl) 5 Grafische Oberfläche (!nl) 6 reboot !subsubnode shutdown (!T) shutdown -h -t 10 now (!t) fährt den Rechner in 10 Minuten herunter (!nl) (!T) shutdown -hP 23:00 Achtung!!! (!t) fährt den Rechner um 23.00 Uhr mit einer Meldung herunter !subsubnode reboot Neustart des Computers !subsubnode poweroff Schaltet den Rechner aus !subsubnode halt Alle Prozesse beenden. !subsubnode init in einen Runlevel wechseln: (!T) init 5 (!t) (!nl) 0 abschalten (!nl) 1 root (!nl) 2 Multiuser (!nl) 3 Netzwerk (!nl) 4 - (!nl) 5 Grafische Oberfläche (!nl) 6 reboot !subnode X-Server !bi !short !item X-Server starten: /etc/init.d/kdm start !item X-Server stoppen: /etc/init.d/kdm stop !item X-Server neu starten: /etc/init.d/kdm restart !ei Wird anstatt KDM (KDE-Display Manager) GDM (Gnome-Display-Manager) verwendet, so muss "kdm" durch "gdm" ersetzt werden. !subsubnode startx eine weitere grafische Oberfläche starten: (!T) startx (--) :1 (!t) !subsubnode Verbindung zum X-Server für root erlauben Root darf normaler weise nicht auf die X-Oberflächen zugreifen. Um dies zu ändern sind folgende Schritte nötig: !bi !short !item Der User, dem die X-Session gehört muss root für Zugriffe vom gleichen Rechner aus freischlaten: (!nl) !bi !short !item temporär: (!T) xhost local:root (!t) eingeben !item permanent: (!T) export XAUTHORITY=/home/petri/.Xauthority (!t) in die Datei "/root/.bashrc" oder "/etc/profile" eintragen. !item root kann sich die X-Authority auch holen: (!nl) (!T) xauth -f /root/.Xauthority merge /home/petri/.Xauthority (!t) !ei !item Als root die Variable Display setzen: (!T) export DISPLAY=:0.0 (!t) !ei !subsubnode X-Display umleiten Arbeiten an einem Terminal (alter PC) (!nl) Terminal: (!T) altpc$ xhost +neuerpc (!t) neuerpc ist entweder dessen Name oder IP des neuen PCs; wenn 192.168.5.2 die IP des neuen PCs ist, geben wir ein: (!T) altpc$ xhost +192.168.5.2 (!t) (!nl) (!nl) Dieser Befehl weist den Xserver auf alterpc an, auch Anforderungen von neuerpc zu bearbeiten.(Da es sich hier um eine potentielle Sicherheitslücke handelt, sollte der Befehl nach Abbruch der Verbindung wieder rückgängig gemacht werden - mit xhost - wird der Xserver angewiesen, keine externen Anforderungen mehr anzunehmen). (!nl) (!nl) Nun loggt man sich über ssh auf dem anderen Rechner ein: (!T) altpc$ ssh user@neuerpc (!t) (!nl) (!nl) Nachdem der Passworteingabe gibt man auf der Konsole von neuerpc diesen Befehl ein: (!T) neuerpc$ export DISPLAY=192.168.5.1:0.0 (!t) (!nl) (!nl) Statt 192.168.5.1 gibt man natürlich die IP des alten PCs ein. Damit hat man dem neuen PC mitgeteilt, dass er Ausgaben an den alten PC schicken soll. (!nl) (!nl) Start von z.B. OpenOffice: (!T) neuerpc$ soffice (!t) (!nl) (!nl) Sollte es wider Erwarten nicht funktionieren, kann es daran liegen, dass auf dem Xserver die Displayumleitung aus Sicherheitsgründen defaultmäßig gesperrt ist. Diese Sperre kann man ausser Kraft setzen, wenn man X wie folgt startet: (!T) alterpc$ startx -listen_tcp (!t) !subsubnode xrandr (!T) xrandr (!t) gibt alle möglichen Bildschirmauflösungen aus (!nl) Umstellen der Bildschirmauflösung: (!nl) (!T) xrandr -s 4 (!t) (640x480 Pixel) (!nl) (!T) xrandr -s 0 (!t) (original) !subsubnode X Error: BadDevice, invalid or uninitialized input device Folgende Fehlermeldung der Konsole beim Start von Programmen: (!nl) (!T) X Error: BadDevice, invalid or uninitialized input device 168 (!nl) Major opcode: 148 (!nl) Minor opcode: 3 (!nl) Resource id: 0x0 (!nl) Failed to open device (!nl) X Error: BadDevice, invalid or uninitialized input device 168 (!nl) Major opcode: 148 (!nl) Minor opcode: 3 (!nl) Resource id: 0x0 (!nl) Failed to open device (!t) (!nl) (!nl) wird behoben durch Modifikation der xorg.conf in /etc/X11: (!nl) Die nachstehenden Zeilen müssen wie angegeben auskommentiert werden (zur Sicherheit bitte immer eine Kopie der xorg.conf anlegen): !begin_verbatim # Section "InputDevice" # Driver "wacom" # Identifier "stylus" # Option "Device" "/dev/wacom" # Change to # # /dev/input/event # # for USB # Option "Type" "stylus" # Option "ForceDevice" "ISDV4" # Tablet PC ONLY #EndSection #Section "InputDevice" # Driver "wacom" # Identifier "eraser" # Option "Device" "/dev/wacom" # Change to # # /dev/input/event # # for USB # Option "Type" "eraser" # Option "ForceDevice" "ISDV4" # Tablet PC ONLY #EndSection #Section "InputDevice" # Driver "wacom" # Identifier "cursor" # Option "Device" "/dev/wacom" # Change to # # /dev/input/event # # for USB # Option "Type" "cursor" # Option "ForceDevice" "ISDV4" # Tablet PC ONLY #EndSection Section "ServerLayout" Identifier "Default Layout" Screen "Default Screen" InputDevice "Generic Keyboard" InputDevice "Configured Mouse" # InputDevice "stylus" "SendCoreEvents" # InputDevice "cursor" "SendCoreEvents" # InputDevice "eraser" "SendCoreEvents" EndSection !end_verbatim !subsubnode Einstellungen für ViaChrome Grafikchips Die ViaChrome Grafikchips werden nur sehr schlecht unterstützt. Mit nachfolgender xorg.conf bekommt man unter ubuntu ein sinnvolles Bild zustande: !begin_verbatim Section "InputDevice" Identifier "Generic Keyboard" Driver "kbd" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "de" Option "XkbVariant" "nodeadkeys" EndSection Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" EndSection Section "InputDevice" Identifier "Synaptics Touchpad" Driver "synaptics" Option "SendCoreEvents" "true" Option "Device" "/dev/psaux" Option "Protocol" "auto-dev" Option "HorizEdgeScroll" "0" EndSection Section "Device" Identifier "Via Chrome9 HC IGP" Driver "vesa" BusID "PCI:1:0:0" VideoRam 128 Option "UseFBDev" "true" EndSection Section "Monitor" Identifier "Generic Monitor" Option "DPMS" HorizSync 28-64 VertRefresh 43-60 EndSection Section "Screen" Identifier "Default Screen" Device "Via Chrome9 HC IGP" Monitor "Generic Monitor" DefaultDepth 24 SubSection "Display" Depth 1 Modes "1280x800" "1280x768" "1200x800" "1152x864" "1152x768" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 4 Modes "1280x800" "1280x768" "1200x800" "1152x864" "1152x768" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 8 Modes "1280x800" "1280x768" "1200x800" "1152x864" "1152x768" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 15 Modes "1280x800" "1280x768" "1200x800" "1152x864" "1152x768" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 16 Modes "1280x800" "1280x768" "1200x800" "1152x864" "1152x768" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 24 Modes "1280x800" "1280x768" "1200x800" "1152x864" "1152x768" "1024x768" "800x600" "640x480" EndSubSection EndSection Section "ServerLayout" Identifier "Default Layout" Screen "Default Screen" InputDevice "Synaptics Touchpad" EndSection Section "DRI" Mode 0666 EndSection !end_verbatim !subnode Tastaturlayout Mit (!T) setxkbmap -layout de (!t) lässt sich das Tastaturlayout vorübergehend auch deutsch umstellen (!nl) Mit dem Befehl (!T) xmodmap -e "clear Lock" (!t) lässt sich die CAPS-Lock-Taste abschalten (verübergehend) Für Systeme ohne grafische Oberfläche geht dies mit (!T) loadkeys de (!t) !subnode Systeminformationen !subsubnode uptime gibt die Zeit an seit der das System angeschaltet ist !subsubnode procinfo Systeminformationen: !bi !short !item Kernel !item Prozessoren !item Rechnername !item Speicherauslastung !item Systemzeiten !item IRQs !ei !subsubnode uname Systeminformationen (!T) uname -a (!t) (!nl) Kernel-Version (!T) uname -r (!t) !subsubnode dmesg !alias Systemmeldungen Ausgabe der Systemmeldungen (!nl) (!T) dmesg | less (!t) (!nl) (!nl) Meldungen zur Netzwerkkarte: (!nl) (!T) dmesg | grep eth (!t) !subnode Hardware !subsubnode Hardwareinformationen !subsubsubnode hwinfo Hardwareinformationen (nur als root) z.B. (!T)hwinfo (--)cpu(!t) (!nl) Schalter: all, bios, block, bluetooth, braille, bridge, camera, cdrom, chipcard, cpu, disk, dsl, dvb, floppy, framebuffer, gfxcard, hub, ide, isapnp, isdn, joystick, keyboard, memory, modem, monitor, mouse, netcard, network, partition, pci, pcmcia, pcmcia-ctrl, pppoe, printer, scanner, scsi, smp, sound, storage-ctrl, sys, tape, tv, usb, usb-ctrl, vbe, wlan, zip (!nl) (!nl) (!T) hwinfo (--)short (!t) gibt eine Kurzübersicht aus (!nl) !subsubsubnode lshw (!T) sudo lshw -html > ~/System.html (!t) ergibt ausführliche Hardwareinformationen als HTML-Seite !subsubsubnode PC-Informationen (!T) sudo dmidecode -s system-manufacturer (!t) #Hersteller (!nl) (!T) sudo dmidecode -s system-product-name (!t) #Produkt (!nl) (!T) sudo dmidecode -s system-version (!t) #Version (!nl) (!T) sudo dmidecode | grep -A3 'BIOS Information' (!t) Modell, Hersteller und BIOS Version¶ !subsubsubnode OpenGL (!T) glxinfo | grep 'OpenGL version string' (!t) Unter Umständen muss vorher das Paket mesa-utils installiert werden. !subsubsubnode Geladene Kernelmodule (!T) lsmod (!t) !subsubsubnode lspci PCI-Geräte anzeigen (!nl) (!T) lspci -vvv (!t) gibt ganz genaue Infos aus !subsubsubnode lshw Gibt Informationen über die Hardware aus. !subsubsubnode lsusb USB-Geräte anzeigen (!nl) (!T) lsusb -vvv (!t) gibt ganz genaue Infos aus !subsubsubnode cpuinfo (!T) cat /proc/cpuinfo (!nl) sudo dmidecode | sed -n '/^Processor Information/,/^$/p' (!t) !subsubsubnode meminfo (!T) cat /proc/meminfo (!t) gibt Informationen über den Speicher aus !subsubsubnode free Wie viel RAM ist frei? (!T) free -s1 -m (!t) -s1 aktualisiert pro Sekunde; -m gibt Megabyte an !subsubsubnode lsb_release (!T) lsb_release -a (!t) gibt Informationen über das installierte Linuxsystem aus !subsubnode USB (UDEV) konfigurieren !alias USB-Benutzerrechte !alias UDEV (!B) Erstellen von UDEV-Regeln (!b) (!nl) Für jedes USB-Gerät kann in "/etc/udev/rules.d" (linux Mint: "/lib/udev/rules.d") eine Regel definiert werden, wie dieses Gerät zu behandeln ist. Die Dateien werden in lexikalischer Reihenfolge abgearbeitet, weshalb die selber erstellten Regeln am Ende eingefügt werden sollten (z.B. z98_xxxxxxx.rules). Zunächst muss definiert werden, anhand welcher (bis zu fünf) SYSFS-Eigenschaften das Gerät identifiziert werden soll. Diese Informationen erhält man z. B. mit folgenden Programmen (meist als Root auszuführen): !bi !short !item (!T) lsusb (!t) !item (!T) lsusb -v (!t) !item (!T) udevinfo -a -p /block/sda (!t) (für Informationen zu /dev/sda) !ei Die wichtigsten eigenschaften sind: !bi !short !item idVendor !item idProduct !item serial !ei Somit kann z. B. definiert werden, dass die Regel nur für die Hardware mit einer bestimmten Seriennummer oder auch für alle Komponenten eines Herstellers verwendet wird. (!nl) (!nl) (!B) Aufbau einer Regel (!b) !bi !short !item BUS=="usb" definiert, dass es sich um ein USB-Gerät handelt !item Die Hardare kann mit bis zu fünf SYSFS{}-Abfragen identifiziert werden. !item NAME definiert den Namen, den später die Gerätedatei in /dev bekommt. Der Zähler für die Unterdevices (z. B. Partitionen) wird mit %n angegeben. SYMLINK anstatt NAME generiert einen Link auf den tatsächlichen Namen des Gerätes (wenn z.B. Programme standardmäßig /dev/sda suchen) !item OWNER, GROUP definieren den Benutzer und die Gruppe der Gerätedatei !item MODE definiert die Dateirechte der Gerätedatei !item RUN+ startet ein Skript, sobald die Hardware erkannt wurde !ei Hier ein Beispiel für eine Regel zur Einbindung einer USB-Festplatte mit automatischem Start eines Backup-Skriptes: !begin_verbatim BUS=="usb",SYSFS{idVendor}=="0c0b",SYSFS{idProduct}=="b136",SYSFS{serial}=="00000000000DFABBW", NAME="TrekStor_HD-Drive%n",OWNER="petri",GROUP="backup",MODE="660",RUN+="/home/petri/bin/TrekstorHD-backup" !end_verbatim Eine ausführliche Anleitung gibt es hier: (!url [http://wiki.ubuntuusers.de/udev] [http://wiki.ubuntuusers.de/udev]) !subsubsubnode Installation Brother-Multifunktionsgeräte (Ubuntu) siehe auch (!url [http://wiki.ubuntu-forum.de/index.php/Brother_DCP-340CW] [http://wiki.ubuntu-forum.de/index.php/Brother_DCP-340CW]) !bi !short !item csh installieren !item lpr-Treiber installieren !item cups-wrapper-Treiber installieren !ei (!U) Falls ein integrierter Scanner installiert werden soll (!u) (siehe hierzu auch USB-Scanner): !bi !short !item Scanner-Treiber installieren !item fstab abpassen: (!T) none /proc/bus/usb usbfs auto,devmode=0666 0 0 (!t) !item USB-Bus neu starten: (!nl) !begin_verbatim sudo umount /proc/bus/usb sudo mount /proc/bus/usb mknod -m 666 /dev/usbscanner c 180 48 !end_verbatim !item UDEV-Regel erstellen: (!nl) (!T) sudo vim /etc/udev/rules.d/10-local.rules (!t) !begin_verbatim SUBSYSTEM!="usb_device", ACTION!="add", GOTO="_end" #for brother SYSFS{idVendor}=="04f9", MODE="666", GROUP="scanner" LABEL=" end" !end_verbatim !item UDEV-System neu starten: (!T) sudo /etc/init.d/udev restart (!t) !ei Drucker von Hand einer PPD-Datei zuweisen -> siehe lpadmin !subsubsubnode USB-Scanner im Ordner (!T) /etc/udev/rules.d/ (!t) eine Datei (z. B. z80_brother.rules) erstellen und folgende Zeile hinzufügen: (!nl) (!T) BUS=="usb", SYSFS{idVendor}=="04f9", GROUP="scanner", MODE="660" (!t) (!nl) Alle User, die auf den Scanner zugreifen sollen, müssen der Gruppe "scanner" hinzugefügt werden. Achtung: Bei Multifunktionsgeräten auch der User "lpr", damit der Drucker funktioniert. !subsubsubnode Garmin-GPS-Gerät To keep the OS from loading the (frequently dysfunctional) kernel garmin_gps module, edit (!nl) (!T) /etc/modprobe.d/blacklist (!t) and add the lines (!nl) (!nl) (!T) # stop garmin_gps serial from loading for USB garmin devices (!t) (!nl) (!T) blacklist garmin_gps (!t) (!nl) (!nl) To allow the USB devices to be read and written by a non-priveleged user, create a named (!nl) (!T) /etc/udev/rules.d/51-garmin.rules (!t) with the following contents (!nl) (!T) # allow Garmin USB devices read and written by a non-privileged users (!nl) SUBSYSTEM!="usb", GOTO="garmin_rules_end" (!nl) ACTION!="add", GOTO="garmin_rules_end" (!nl) ATTRS{idVendor}=="091e", ATTRS{idProduct}=="0003", MODE="0660", GROUP="plugdev" (!nl) LABEL="garmin_rules_end" (!t) (!nl) (!nl) Alle Benutzer, die auf das Gerät zugreifen wollen, müssen der Gruppe (!T) plugdev (!t) zugeordnet werden. !subsubnode Festplatte !subsubsubnode hdparm (!T) hdparm /dev/hda (!t) gibt aus, in welchem Modus die Platte am ersten Controller läuft (!nl) (!T) hdparm -d1 /dev/hda (!t) aktiviert den DMA-Modus (!nl) (!T) hdparm -Tt /dev/hda (!t) testet die Geschwindigkeit des Laufwerks !subsubsubnode tune2fs !alias Journal erstellen !alias dir_index Dateisystemparameter von ext2/ext3-Dateisystemen editieren. (!nl) (!B) Nach Änderungen am Dateisystem muss stets (!T) e2fsck -f (!t) aufgerufen werden! (!b) !bi !short !item (!T) tune2fs -j (!t) aktiviert auf einem ext2-Dateisystem ein Journal (wie vom ext3-Dateisystem her bekannt) und macht somit aus dem ext2-Dateisystem praktisch ein ext3-Dateisystem. !item (!T) tune2fs -c 100 -i 180 (!t) setzt das Intervall, in dem das Dateisystem überprüft wird (sofern in der fstab aktiviert). (!T) -c 100 (!t) bedeutet nach 100 Mount-Vorgängen und (!T) -i 180 (!t) nach einem halben Jahr. Die Standardeinstellungen sind nämlich für Rechner, die oft neu gestartet werden, viel zu eng ausgelegt. !item (!T) tune2fs -o acl (!t) Bestimmt Mountoptionen die immer verwendet werden (auch wenn dies bein Mounten anders angegeben wird). (!T) -o acl (!t) sorgt z.B. dafür, dass das Dateisystem immer mit Unterstützung der Access Control List gemountet wird. !item (!T) tune2fs -L (!t) setzt den Namen des Dateisystems auf . Dieser kann z.B. in der fstab verwendet werden. !item (!T) tune2fs -l /dev/xxx (!t) zeigt die im Superblock gespeicherten Einstellungen des Dateisystems xxx an. !item (!T) tune2fs -O dir_index (!t) speichert Dateinamen eines Verzeichnisses in einer Baumstruktur ab und beschleunigt somit die Performence auf großen Laufwerken deutlich. Anschließend kann die bestehende Dateistruktur mit (!T) e2fsck -fD (!t) auf dir_index umgestellt werden. Andernfalls wirkt sich die Option nur auf neue Dateien aus. !ei !subsubsubnode e2fsck !alias Superblock ext2/ext3-Dateisysteme überprüfen !bi !short !item (!T) e2fsck -f /dev/xxx (!t) erzwingt einen Dateisystemtest auf dem Dateisystem /dev/xxx !item (!T) e2fsck -b (!t) Falls der Superblock defekt ist, kann der Ersatz-Superblock im Block verwendet werden. Diese kann mit (!T) mke2fs -n (!t) ermittelt werden. !item (!T) e2fsck -fD /dev/xxx (!t) stellt bereits existierende Dateien auf (!T) dir_index (!t) um. Zuvor muss diese Option mit (!T) tune2fs (!t) aktiviert werden. Weiterhin werden beim Aufruf dieser Option ungültige Einträge aus den Verzeichnisdateien gelöscht (die Namen gelöschter Dateien bleiben dort nämlich gespeichert) und die Baumstruktur der Dateinamen wird neu aufgebaut. Dies bringt deutliche Geschwindigkeitsvorteile bei Verzeichnisoperationen. !ei !subsubsubnode mke2fs ext2/ext3-Dateisysteme erstellen (mke2fs muss bei Datenrettungsversuchen stets mit den selben Parametern wie bei der Erstellung des Dateisystems aufgerufen werden - defaultmäßig werden Partitionen jedoch ohne zusätzliche Parameter formatiert). !bi !short !item (!T) mke2fs -n (!t) ermittelt die Blocknummern der Superblöcke. !item (!T) mke2fs -S (!t) (!B) - wenn keine Dateien auf der Festplatte mehr gefunden werden - (!b) schreibt die Superblöcke und die Blockgruppendeskriptoren neu, Directories, Inode- und Bitmap-Tabellen bleiben erhalten. Ein anschlißender e2fsck-Lauf kann unter Umständen dann alle Dateien wieder herstellen. Wenn dies nicht mehr funktioniert, dann können die Dateien nur noch einzeln von Hand mit einem Low-level-Datenrettungstool (z.B. dd_rescue) rekonstruiert werden. !ei !subsubnode Treiber !subsubsubnode ndiswrapper Mit dem ndiswrapper lassen sich z.B. nicht unterstützte Netzwerk(Wlan)-Karten mittels Windows-Treiber einbinden. (!nl) Anleitung: !be !short !item ndiswrapper installieren !item Windows-Treiber installieren: (!T) ndiswrapper -i w70n51.inf (!t) (inf-Datei des Treibers, von der Original-CD!) !item (!T) modprobe ndiswrapper (!t) lädt den Treiber !item mit (!T) ndiswrapper -cat /proc/meminfol (!t) und (!T) ndiswrapper -v (!t) testen !item (!T) dmesg (!t) gibt die Kernel-Meldungen aus !item mit (!T) ndiswrapper -m (!t) wird der Treiber immer beim booten geladen !item Konfiguration: !bi !short !item (!T)iwconfig wlan0 mode managed(!t) !item (!T)iwconfig wlan0 key restricted s:12345(!t) !item (!T)iwconfig wlan0 essid "Netzwerkname"(!t) !item (!T)ifconfig wlan0 up(!t) !item (!T)dhclient(!t) !ei !item WPA-Verschlüsselung !bi !short !item Schlüssel erzeugen (!T) wpa_passphrase xxxnonamexxx 1234567890123456 (!t) xxxnonamexxx ist der Name meines Funknetzwerks und 123456.... der WPA-Schlüssel, den mir der Router ausgibt (!nl) Als Ergebnis erhalten wir: !begin_verbatim network={ ssid="xxxnonamexxx" #psk="1234567890123456" psk=2f609a18e74b80d1db89403988258fe7d21430c0ccb1cdd8f81d2380d1ab2885 } !end_verbatim Für uns ist der psk-Wert der gewünschte Wert, den wir gleich im Anschluss weiter verarbeiten. !item wpa_supplicant im Verzeichnis /etc/wpa_supplicant/ wird die Datei wpa_supplicant.conf angelegt und folgender Inhalt eingefügt: !begin_verbatim ctrl_interface=/var/run/wpa_supplicant ap_scan=2 network={ ssid="xxxnonamexxx" scan_ssid=1 proto=WPA key_mgmt=WPA-PSK pairwise=TKIP psk=2f609a18e74b80d1db89403988258fe7d21430c0ccb1cdd8f81d2380d1ab2885 } !end_verbatim !item interfaces Im Verzeichnis /etc/network/ die Datei interfaces wie folgt anpassen (kompletter Inhalt): !begin_verbatim auto lo iface lo inet loopback iface wlan0 inet dhcp pre-up wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf -Bw post-down killall -q wpa_supplicant auto wlan0 !end_verbatim !ei !ee !subsubsubnode Cyberjack Damit ein User auf das Cyberjack Pinpad von (!url [http://www.reiner-sct.com] [http://www.reiner-sct.com]) zugreifen kann wird vom Installationspaket eine UDV-Regel angelegt. Dem lesegerät wird jedoch die Gruppe "pcscd" zugeordnet und nicht wie in der Anleitung steht "cyberjack". Daher muss der User der Gruppe "pcscd" zugeordnet werden!. !subsubnode MEDION LIFE P89626 !alias NAS-Server !ssh Internetseiten zur Konfiguration (!url [http://www.mikrocontroller.net/articles/P89626] [http://www.mikrocontroller.net/articles/P89626]) !ssh Pfade auf dem NAS-Server (!T) init.d: /usr/local/zy-pkgs/etc/init.d/ (!nl) exports: /etc (!nl) Benutzerdateien: /i-data/6764ac2f/ (!t) !ssh Firmwaredownload (!url [ftp://nas-download:sEhtalr@download.medion.de/firmware] [ftp://nas-download:sEhtalr@download.medion.de/firmware]) !ssh Telnet-Zugang !bi !short !item Über HTML als admin einloggen (!nl) (!T) http://192.168.x.x/r34814,/adv,/loginwrap.html (!t) !item Telnet per URL starten (!nl) (!T) http://192.168.x.x/r34814,/adv,/cgi-bin/remote_help-cgi?type=backdoor (!t) !item Login über telnet (!nl) (!T) telnet 192.168.x.x (!nl) login: root (!nl) passwort: (!t) (!nl) !ei !ssh Für das Starten von Telnet sind diese Dateien zuständig: (!T) /usr/local/apache/cgi-bin/remote_help-cgi (!nl) /usr/local/btn/open_back_door.sh (!t) !ssh Telnet dauerhaft starten Start-Skript anzulegen: (!nl) (!T) echo "/usr/local/btn/open_back_door.sh" > /usr/local/zy-pkgs/etc/init.d/starttelnet.sh (!nl) chmod +x /usr/local/zy-pkgs/etc/init.d/starttelnet.sh (!t) !subnode grub !subsubnode grub installieren !begin_verbatim mount /dev/hdxx /mnt/hdxx rm /mnt/hdxx/etc/mtab (falls diese noch Einträge enthält) chroot /mnt/hdxx mount -a (mtab neu generieren s.o.) grub-install update-grub vim /boot/grub/menu.lst (evtl. editieren -> /dev/hdxx und (hdx,x)-Einträge) !end_verbatim Bootimages befinden sich in (!T) /boot/grub/splashimages (!t) und werden mit dem Eintrag (!T) splashimage=(hd0,0)/boot/grub/splashimages/kubuntucrystal.xpm.gz (!t) in der Datei (!T) /boot/grub/menu.lst (!t) eingebunden. (!nl) (!nl) !subsubnode Grub-Passwort setzen (!B) Grub-Passwort setzen (!b) (!nl) Grub-Passwort verhindert den Login in eine root-Shell (siehe "root-passwort neu setzen"). (!nl) Passwort-Hash mit grub-md5-crypt erzeugen und in grub.conf oder menu.lst (je nach Distribution) eintragen: password (--)md5 Passwort-Hash (!nl) Eine Eingabe von lock in die jew. Titel-Direktive der Grub-Einträge verhindert das Booten des jew. Systems ohne Passworteingabe. !subsubnode Bootparameter für Problemhardware !alias acpi !alias pnpbios !alias Bootprobleme Besonders bei Laptops kann es vorkommen, dass Teile der Hardware nicht richtig erkannt werden und das System nicht richtig startet. Es gibt einige Bootparameter, mit denen es möglich ist, die Hardwareerkennung zu steuern: !bi !short !item (!T) acpi=off (!t) kein 'Advanced Configuration and Power Interface' verwenden !item (!T) acpi=force (!t) ACPI erzwingen !item (!T) noapic (!t) den 'Advanced Programmable Interrupt Controller' komplett umgehen !item (!T) nolapic (!t) nur den APIC-Teil der CPU umgehen !item (!T) noagp (!t) Deaktiviert die (AGP) Grafik !item (!T) noapm (!t) Deaktiviert die Energieverwaltung !item (!T) pnpbios=off (!t) kein Plug&Play-Bios verwenden !item (!T) pci=bios (!t) Workaround für falsch erkannte Interrups !item (!T) pci=noacpi (!t) Schaltet ACPI-Erkennung während der PCI-Konfiguration aus (ist insbesondere bei manchen VIA-Chipsätzen notwendig) !item (!T) pci=routeirq (!t) IRQ-Autorouting, hilfreich für einige Mainboards (zum Beispiel Asus A7N8X) !item (!T) irqpoll (!t) kompatibles Verfahren zur Interruptabfrage !item (!T) hpet=disable (!t) den 'High Precision Event Timer' nicht verwenden !item (!T) nodma (!t) kein 'Direct Memory Access' verwenden !item (!T) nousb (!t) USB-Controller abschalten !item (!T) nousb2 (!t) USB2 abschalten !item (!T) nofirewire (!t) FireWire-Controller abschalten !item (!T) nohwsetup (!t) hwsetup-Autokonfiguration überspringen !item (!T) noudev (!t) udev-Autokonfiguration überspringen !item (!T) nopcmcia (!t) PCMCIA-Funktion abschalten !item (!T) noideraid (!t) IDE-Soft-RAID als Einzelplatten ansprechen (!B) (--) gefährlich (--) (!b) !item (!T) pci=irqmask=0x0e98 (!t) Workaround für nicht funktionierende PS2-Mäuse !item (!T) ide2=0x180 nopcmcia (!t) Booten von PCMCIA-CD-ROM !item (!T) vga=normal (!t) bzw. (!T) nofb (!t) erzwingt VGA-Modus !item (!T) vga=ask (!t) frägt beim jedem Systemstart nach der Einstellung (gut für Tests) (siehe auch VGA-Modus) !item (!T) fb=false (!t) Deaktiviert den Framebuffer !item (!T) screen=1280 x 1024 (!t) Auflösung 1280x1024 für Grafikmodus erzwingen !item (!T) vsync=60 (!t) 60Hz-Bildwiederholrate im Grafikmodus !item (!T) hsync=80 (!t) 80Hz Horizontalfrequenz (für manche TFT-Monitore erforderlich) !item (!T) failsafe (!t) verwendet eine Minimalkonfiguration !item (!T) debug (!t) startet besonderen Modus zur Fehlersuche !item (!T) ht=on (!t) Aktiviert Hyper-Threading !item (!T) usb=bios (!t) !item (!T) DEBCONF_DEBUG=5 (!t) Ausführliche Fehlersuche !item (!T) BOOT_DEBUG=2|3 (!t) Fehlersuche während des Startvorgangs !item (!T) all_generic_ide (!t) Generischen IDE Treiber für alle Geräte verwenden, die vom BIOS erkannt wurden !item (!T) xforcevesa (!t) Der XServer (graphische Oberfläche) wird unabhängig von der verwendeten Hardware nur für 'vesa' konfiguriert !ei !subsubnode Grub 2 Grub 2 ist von Grund auf komplett anders aufgebaut als Grub Legacy. Die Änderungen sind hier sehr ausführlich beschrieben: (!nl) (!nl) (!url [http://wiki.ubuntuusers.de/GRUB_2] [http://wiki.ubuntuusers.de/GRUB_2]) (!nl) (!url [http://wiki.ubuntuusers.de/GRUB_2/Konfiguration] [http://wiki.ubuntuusers.de/GRUB_2/Konfiguration]) (!nl) (!nl) Die Konfigurationdatei (früher /boot/grub/menu.list) ist jetzt in folgende Dateien aufgeteilt: !bi !short !item /etc/default/grub !item /boot/grub/grub.cfg !ei Die Datei grub.cfg sollte jedoch nie von Hand geändert werden (sehr gefährlich und nach einem Kernelupdate sind alle Änderungen wieder weg). (!nl) (!nl) Seit Grub 2 können alle installierten Betriebssysteme sehr einfach vollautomatisch eingetragen werden: (!nl) (!nl) (!T)sudo grub-mkconfig -o /boot/grub/grub.cfg # für Versionen ab Karmic (!t) (!nl) (!T)sudo update-grub2 # Jaunty und ältere Versionen (!t) (!nl) !subnode Uhr geht falsch !be !short !item Als root einloggen. !item Die Datei /etc/adjtime löschen: (!T)rm /etc/adjtime(!t), aber vorsichtshalber eine Kopie davon speichern !item Mit dem Programm hwclock die Hardware-Uhr (RTC-Uhr) stellen: (!T)hwclock (--)set (--)date="[monat]/[tag]/[jahr] [stunde]:[min]:[sek]" (--)utc(!t) !item Die Systemuhr nach der Hardware-Uhr stellen: (!T)hwclock (--)hctosys(!t) !item So gut wie fertig. Besser aber: Die Uhr irgendwann nochmal stellen Die Hardware-Uhr soll man nach einiger Zeit (frühestens einer Woche) nochmal stellen, denn sie geht von sich aus nicht besonders genau, aber so hat der Rechner zwei Werte, anhand deren er den Unterschied berechnen und ausgleichen kann. !ee #------------------------------------------------------------------------------------------------------------------------------- !node Shell !subnode Bash-Konfigurationsdateien !alias Bash Es gibt für die Bash zwei Konfigurationsdateien: (!nl) (!T) .bashrc Terminal unter X (!nl) .bash_profile Konsole / Login-Shell (!t) (!nl) (!nl) Für die Konsolen wird die .bash_profile benutzt. Für ein Terminal unter X wird die .bashrc benutzt. Daher setzt man normalerweise seine Einstellungen in der .bashrc und sourced diese in der .bash_profile, in der dann meist nur folgende Zeile steht: (!nl) (!nl) (!T) [ -f !~/.bashrc ] && . !~/.bashrc (!t) (!nl) (!nl) !subsubnode persönlichen bin-Ordner hinzufügen In die Datei .bashrc folgendes eintragen: (!T) [ -d !~/bin ] && PATH=$PATH:!~/bin (!t) !subsubnode Tab-Completition auch als sudo Wenn als sudo die Autovervollständigung nicht funktioniert, dann muss die ~/.bashrc um fogende Zeilen ergänzt werden: !begin_verbatim if [ "$PS1" ]; then complete -cf sudo fi !end_verbatim !subsubnode Promt einstellen (!T) !~/.bashrc: PS1="\u@\h \w \$ " (!t) Dies steht für user@host aktuelles_verzeichnis $ (!nl) grüne Schrift: (!T) !~/.bashrc: PS1="\[\033[0;32;40m\u@\h:\w\$ \]" (!t) (!nl) Sowohl für den Vordergrund als auch für den Hintergrund stehen 8 Farben zur Verfügung. (!nl) (!nl) Auswahl: schwarz, rot, grün, gelb, blau, magenta, cyan und weiß. Die Zahlen dafür sind: 30, 31, 32, 33, 34, 35, 36, 37. (!nl) (!nl) Das Setzen der Hintergrundfarbe verläuft genauso, allerdings statt 3 mit 4. Also 40, 41, 42, 43, 44, 45, 46, 47. (!nl) (!nl) Beispiel: (!T) !~/.bashrc: PS1="\[\033[0;37;44m\u@\033[0;32;43m\h:\033[0;33;41m\w$\033[0m\]" (!t) !subsubnode automatisches Abmelden Das Eintragen von (!T) TMOUT=180 (!t) in der Datei .bashrc führt zum automatischen Logout nach 3 Minuten !subsubnode Beep abschalten (!T) echo -ne '\033[11;0]' (!t) schaltet den Beep in der Kommandozeile ab !subsubnode History aller Shells speichern Normalerweise wird immer nur die History der zuletzt geschlossenen Shell gespeichert. Durch hinzufügen der folgenden Zeilen in die Datei (!T) ~/.bashrc (!t) werden die Eingaben aller Shells gespeichert: !bi !short !item Einstellung, damit neue Befehle an die History-Datei anhängen kann: (!nl) (!T) shopt -s histapped (!t) !item Die History-Daten vor ausgabe des nächsten Prompt speichern: (!nl) (!T) PROMPT_COMMAND="history -a" (!t) !ei Will man Veränderungen an der bashrc aktivieren so hilft (!T) . ~/.bashrc (!t) Dieser Befel liest die .bashrc und die zugehörigen Dateien neu ein. Mit (!T) exec bash -$- (!t) wird die Shell neu gestartet. !subnode konsole (!T) konsole -e (!t) lässt einen Befehl in der Konsole ablaufen !subsubnode Zeichensatz in der Konsole !alias setxkbmap !alias setkeycodes !alias scancode !alias keycode Einstellungen in: (!T) /etc/console-tools/config (!nl) dpkg-reconfigure console dpkg-reconfigure console-data (!t) !be !short !item Paket localeconf installieren mit (!T) sudo apt-get install localeconf (!t) !item Datei (!T) /var/lib/locales/supported.d/de (!t) als Root mit einem Editor bearbeiten: (!T) sudo vi /var/lib/locales/supported.d/de. (!t) Folgende Zeile anhängen: de_DE@euro ISO-8859-15 !item Nach dem Speichern der Datei die (!T) /etc/locale.gen (!t) generieren: (!T) sudo dpkg-reconfigure locales (!t) !item Jetzt mit localeconf den Zeichensatz systemweit auswählen: (!T) sudo dpkg-reconfigure localeconf (!t) !ee Einstellung des Zeichensatzes mit (!T) setxkbmap de (!t) (!nl) Weitere Programme rund um den Zeichensatz: setkeycodes, scancode, keycode !subnode tty Abfragen des Terminalnamens !subnode stty Setzen und Abfragen der Terminaleinstellungen !subnode clear löscht den Inhalt der Konsole !subnode chsh Ändert die Login-Shell !subnode env gibt die Umgebungsvariablen (Environment) aus (!nl) (!T) PATH=$PATH:/home/bin (!t) setzt die Variable auf !~/bin/ (!nl) (!nl) In der Datei .profile sollte folgendes eingetragen sein: (!nl) # set PATH so it includes user's private bin if it exists (!nl) if [ -d !~/bin ] ; then (!nl) PATH=!~/bin:"${PATH}" (!nl) fi (!nl) !subnode export (!T) export PATH="/home/ich/meineProgramme:"$PATH":/home/ich/proggis" (!nl) (!nl) (!t) Umgebungsvariable global exportieren: (!nl) (!T) source export variable="inhalt" (!t) !subnode alias (!T) alias test= (!t) muss in !~/.bashrc eingetragen werden (!nl) (!T) alias -p (!t) zeigt alle Aliase an !subnode echo Textausgabe (!T) echo (!t) !subnode Eingabe-History aktivieren in (!T) /etc/inputrc (!t) oder (!T) !~/.inputrc (!t) folgende Einträge freischalten: (!nl) "\e[5!~": history-search-backward (!nl) "\e[6!~": history-search-forward (!nl) (!nl) oder (!nl) (!nl) (!T) "\e[A": history-search-backward (!nl) "\e[B": history-search-forward (!t) # alternate mappings for "page up" and "page down" to search the history !subnode Stringbearbeitung !begin_table l|l|l !hline (!B) Aufruf (!b) !! (!B) Beschreibung (!b) !! !hline ${name:n:m} !! liefert Teil eines Strings !! n = Offset (negativ = vom Ende her (in diesem Fall muss ein Leerzeichen vor dem Minus stehen!)); m = Anzahl (kann entfallen) ${name#a} !! entfernt den Anfang, wenn dieser mit a übereinstimmt !! a = Suchstring (Windcards (?,*) sind erlaubt) ${name##*a} !! entfernt alle Übereinstimmungen mit a vom Anfang her !! a = Suchstring (Windcard "*" notwendig!) ${name%a} !! entfernt das Ende, wenn dieses mit a übereinstimmt !! a = Suchstring (Windcards (?,*) sind erlaubt) ${name%%a*} !! entfernt alle Übereinstimmungen mit a vom Ende her !! a = Suchstring (Windcard "*" notwendig!) ${name/s/e} !! Suchen / Ersetzen (erste Fundstelle) !! s = Suchstring (Windcards (?,*) sind erlaubt); e = Ersatzstring (kann entfallen -> Suchstring wird entfernt) ${name//s/e} !! Suchen / Ersetzen (alle Fundstellen) !! s = Suchstring (Windcards (?,*) sind erlaubt); e = Ersatzstring (kann entfallen -> Suchstring wird entfernt) ${name:-a} !! Standardwert zurückgeben !! gibt den Wert "a" zurück, wenn die Variable "name" leer ist ${name:=a} !! Standardwert setzen und zurückgeben !! gibt den Wert "a" zurück und weist diesen der Variablen "name" zu, wenn die Variable "name" leer ist ${name:?a} !! Fehlermeldung und Programmabbruch !! Wenn die Variable "name" leer ist, wird die Fehlermeldung "a" ausgegeben und das Skript beendet. ${name:+a} !! liefert "a", wenn "name" nicht leer ist !! mit dieser Funktion kann z.B. ein "/" eingefügt werden, wenn eine Datei übergeben wird (z.B. $HOME${datei:+/}$datei ) !hline !end_table (!nl) !ssh Beispiele !bi !item Dateinamen vom Pfad trennen (!nl) (!T) DIR=${i%/*}; [ "$DIR" == "$i" ] && DIR=. (!nl) FILE=${i##*/} (!nl) FILEBASE=${FILE%.*} (!nl) FILEEXT=${FILE##*.} (!t) (!nl) !item Dateiendung in Großbuchstaben (!nl) (!T) EXT=`echo ${i##*.} | tr [:lower:] [:upper:]` (!t) !ei !subnode Skripte !alias Shellprogrammierung Ein ausführliches Nachschlagewerk zur Shellprogrammierung: (!url [Shellprogrammierung.pdf] [./Shellprogrammierung.pdf]) !bi !short !item Ein Shellskript muss mit (!T)#!//bin/bash(!t) beginnen und ausführbar gemacht werden. !item (!T)konsole -e(!t) lässt ein Skript in der Konsole ablaufen. !ei !subsubnode übergebene Parameter $# Anzahl der Parameter (!nl) $1 1. Parameter (!nl) $2 2. Parameter (!nl) . (!nl) . (!nl) $n n. Parameter (!nl) $# alle Parameter !subsubnode Übergabeparameter auswerten Einem Skript können Parameter übergeben werden. Hierzu werden üblicherweise [OPTIONS] verwendet, die entweder eine Funktion aktivieren oder auch einen zusätzlichen Parameter übergeben. Mit folgendem Quelltext können Übergabeparameter ausgewertet werden: (!nl) !begin_verbatim #! /bin/bash function err_text { while [ $# -gt 0 ] ; do echo "$1" 1>&2 # Ausgabe auf stderr shift done echo "`basename $0` [-ab -c Wert -d Wert] file" 1>&2 # Ausgabe auf stderr exit 1 } # Sortieren und überprüfen der Parameter (":" bedeutet, dass der vorangestellte Parameter # zusätzlich einen Wert benötigt) set (--) `getopt "abc:d:" "$@"` || err_text # Startparameter setzen variable_a=0 variable_b=0 variable_c="" variable_d="" # Parameter in Endlosschleife abfragen # Bei Parametern mit Übergabeparameter muss stets ein "shift" ausgeführt werden! while : ; do case "$1" in -a) variable_a=1;; -b) variable_b=1;; -c) shift; variable_c=$1;; -d) shift; variable_d=$1;; --) break;; esac shift [ $# -eq 0 ] && break # Fehler in den angegebenen Parametern done shift [ $# -lt 1 ] && err_text # kein Dateiname wurde übergeben # Dateien abarbeiten while [ $# -ge 1 ]; do if [ -f "$1" ]; then # else err_text "`basename $0` - Datei '$1' existiert nicht" fi shift done !end_verbatim !subsubnode Schleifen !alias while !alias for !alias do !alias done (!B) Script um alle Bilder in einem Verzeichnis zu verkleinern: (!b) (!nl) (!T) for file in * ; do (!nl) convert -scale 100x $file klein_$file (!nl) done (!t) (!nl) (!nl) (!B) Dieses Script wandelt alle PDF-Dateien im Verzeichnis in Postscript-Dateien um. (!b) (!nl) (!T) for i in *.pdf; do (!nl) pdf2ps $i (!nl) done (!t) (!nl) (!nl) (!B) Zählerschleife: (!b) (!nl) (!T) for ((i=0; i<100; i++)) { (!nl) echo $i (!nl) } (!t) (!nl) (!nl) (!B) Endlosschleife: (!b) (!nl) (!T) while : ; do (!nl) # auszuführender Quelltext (!nl) # Schleife wird mit break beendet (!nl) done (!t) (!nl) (!nl) (!B) Schleifen zur Dateibearbeitung (!b) (die Zweite Variante ist ca. 30% schneller): (!nl) (!T) find /home -type f | while read; do (!nl) echo ${REPLY} (!nl) done (!t) (!nl) (!nl) (!T) for f in $(find /home -type f); do (!nl) echo ${f} (!nl) done (!t) (!nl) (!nl) (!B) alle *.jpg rekursiv in allen Unterordnern finden (!b) (!nl) (!T) while read -rd "" i (!nl) do (!nl) echo "$i" (!nl) done < <(find /home/user/unterordner/ -iname "*.jpg" -print0) (!t) (!nl) (!nl) # etwas eleganter in der BASH (!nl) (!T) shopt -s globstar nocaseglob (!nl) for i in /home/user/unterordner/**/*.jpg (!nl) do (!nl) echo $i (!nl) done (!t) (!nl) (!nl) (!B) Datei zeilenweise einlesen: (!b) (!nl) (!T) while read LINE; do (!nl) echo ${LINE[1]} (!nl) done < infile.txt (!nl) (!nl) (!t) (!T) exec 3 0 ] ;do (!nl) echo Es sind Fehler im Quelltext! (!nl) udo -h -o !~/Documents/Entwicklung/lhb/index.html !~/Documents/Entwicklung/lhb/linux.u (!nl) error=`grep -c Error: !~/Documents/Entwicklung/lhb/index.ulh` (!nl) done (!nl) (!t) !subsubnode Ja/Nein-Abfragen (!T) #!//bin/sh (!nl) echo Befehl ausführen [j,n]? (!nl) read ans (!nl) if [ ${ans:=y} == j -o ${ans:=y} == J ] ; then (!nl) # Hier stehen die Befehle (!nl) fi (!t) !subsubnode Pfad, Dateinamen und Dateiendung trennen !ssh vollständiger Pfad (!T) xPATH=${file%/*} (!nl) xPATH=`dirname "$file"` (!t) !ssh Pfad mit Dateinamen ohne Dateiendung (!T) xBASE=`echo "$file" | sed 's/\(.*\)\..*/\1/'` (!nl) xBASE=${file%.*} (!t) !ssh Dateiname mit Endung (!T) xBASE=`basename "$file"` (!nl) xBASE=${file##*/} (!t) !ssh Dateiendung (!T) xEXT=`echo "$file" | sed 's/.*\.\(.*\)/\1/'` (!nl) xEXT=${file##*.} (!nl) xEXT=`echo ${file##*.} | tr [:lower:] [:upper:]` (!t) # liefert die Dateiendung in Großbuchstaben !subsubnode Pause von x Sekunden siehe sleep !subnode Ein- und Ausgabeumlenkung !subsubnode pipe !alias | (!T) ls | less (!t) leitet den Inhalt an das Anzeigeprogramm less weiter !subsubnode ; # !ignore_links Zwei Befehle nacheinander ausführen: (!T) date; ls (!t) !subsubnode && Zwei Befehle nacheinander ausführen, wenn der erste erfolgreich war: (!T) make && make install (!t) !subsubnode || Zwei Befehle nacheinander ausführen, wenn der erste nicht erfolgreich war: (!T) ls datei || touch datei (!t) !subsubnode () # !ignore_links Umleitung von zwei Befehlen: (!T) (date;ls) > inhalt.txt (!t) !subsubnode < # !ignore_links Inhalt aus einer Datei auslesen und bearbeiten !subsubnode 2> Fehlermeldungen in eine Datei umleiten !subsubnode >& Fehler- und normale Meldungen umleiten !subsubnode tee Abzweigen der Ausgabe und speichern in einer Datei: (!nl) (!T) ls -l | tee liste.txt (!t) gibt die Liste auf den Bildschirm aus und speichert in der Datei liste.txt !subsubnode xargs (!T) find -name "*.WMV" -print0 | xargs -0 rm (!t) sucht rekursiv alle mp3-Dateien und löscht diese. !subsubnode in Datei schreiben !alias >> # !ignore_links !bi !short !item (!T) ls /etc > inhalt.txt (!t) schreibt den Inhalt des Verzeichisses /etc in die Datei inhalt.txt !item (!T) ls /etc >> inhalt.txt (!t) hängt den Inhalt des Verzeichisses /etc an die Datei inhalt.txt an !item (!T) ps ax | grep huhn | less (!t) durchsucht alle Prozesse nach "huhn" und leitet die Fundstellen an das Anzeigeprogramm less weiter !ei !subnode source Kommandos aus einer Datei auslesen und ausführen. !subnode dialog Mit dem dialog-Befehl könne in Scripten Abfragedialoge verwendet werden. (!nl) (!T) dialog [optionen] [Art des Feldes] "Text" [breite] [höhe] (!t) Es gibt Messageboxen ((--)msgbox), Ja-Nein-Abfragen ((--)yesno), Dateiauswahl, Inputboxen... (!nl) Mit (!T) (--)title (!t) kann ein Titel angegeben werden. #------------------------------------------------------------------------------------------------------------------------------- !node Editoren !subnode vi / vim !alias vi !alias vim Standardeditor auf jedem Linux/Unix-System. (!nl) Der Editor arbeitet in zwei Ebenen: Ansichtsebene und Editebene Wechsel mit (!T) ESC (!t) und (!T) Einfg (!t) !bi !short !item Speichern: :w !item Beenden: :q mit :q! wird sofort beendet !item Speichern & Verlassen: :wq !item Suchen: / !item Weitersuchen: n - Rückwärts: Shift+n !item Kopieren: v -> mit Cursor markieren, mit y kopieren !item Einfügen: p !item Löschen: (!T)dw(!t) löscht ein Wort; (!T)3dd(!t) löscht 3 Zeilen (!T)5dw(!t) löscht 5 Wörter !item Zweite Dateien öffnen: :sp dateiname (:vsp für vertikale Teilung) !item Wechsel zwischen zwei Dateien: W / Strg-W !ei !subnode pico einfach zu bedienender Editor für die Konsole !subnode kate sehr guter Editor unter KDE (!nl) (!url [Hervorhebungsdatei für udo] [./udo.xml]) in den Ordner .kde/share/apps/katepart/syntax kopieren !subnode emacs sehr großer und mächtiger Editor #------------------------------------------------------------------------------------------------------------------------------- !node Kompilieren & Installieren !subnode configure, make, makeinstall, checkinstall !alias configure !alias make !alias makeinstall !alias checkinstall !bi !short !item (!T) ./configure !item make !item make install (!t) Das Programm wird direkt installiert. (!nl) !smallskip !item (!T) ./configure !item make !item checkinstall (!t) erzeugt ein fertiges Paket (rpm bzw. deb) !ei Der dritte Schritt muss jeweils als root ausgeführt werden. (!nl) Mit (!T) ./configure (--)help (!t) kann man die Installationsvoraussetzungen prüfen. !subnode kconfigure Konfiguriert, compiliert und installiert auf einmal, unterstützt aber checkinstall noch nicht. !subnode GCC-Version definieren !alias gcc !alias CC Kernelmodule müssen mit der selben Kompiler-Version wie der Kernel selbst übersetzt werden. Hierzu muss die richtige Version als umgebungsvariable definiert werden (ansonsten wird die neueste Version verwendet). !begin_verbatim # Setzt die Umgebungsvariable CC auf den Compiler mit der Version 4.1 export CC=gcc-4.1 !end_verbatim !subnode e-tobi Pakete (VDR) selbst kompilieren !alias VDR !be !short !item Füge folgende Zeile in die Datei (!T) /etc/apt/sources.list (!t) ein: (!nl) (!T) deb-src http://e-tobi.net/vdr-experimental sid base vdr-multipatch addons (!t) !item Die bearbeitete sources.list einlesen. (!nl) (!T) apt-get update (!t) !item Zum Compilen benötigtes Zeug installieren. (!nl) (!T) apt-get build-dep vdr (!t) !item Sourcecode von vdr und dem streamdev-plugin installieren. (!nl) (!T) cd /usr/src; apt-get source vdr vdr-plugin-streamdev (!t) !item Verzeichniswechsel in das vdr-source-Verzeichnis. (!nl) (!T) cd /usr/src/vdr-VERSIONNUMBER (!t) !item vdr Debian-Paket erstellen. (!nl) (!T) dpkg-buildpackage (!t) !item vdr-dev installieren, da es zum Plugin bauen benötigt wird. (!nl) (!T) dpkg -i vdr-dev*.deb (!t) !item Verzeichnis wechseln. (!nl) (!T) cd /usr/src/vdr-plugin-streamdev-VERSIONNUMBER (!t) !item vdr-plugin-streamdev Debian-Paket bauen. (!nl) (!T) dpkg-buildpackage (!t) !item Wenn alles glatt gegangen ist, sollten jetzt ein paar frischgebackene Debianpakete in (!T) /usr/src/ (!t) rumliegen. Nur zu, installier sie. !item (!T) dpkg -i vdr_VERSIONNUMBER_amd64.deb (!t) !item (!T) dpkg -i vdr-plugin-streamdev-server_VERSIONNUMBER_amd64.deb (!t) !ee !subnode apt !subsubnode keyfiles keyfile für apt-get aus dem Internet herunterladen !begin_verbatim # Open a terminal, and type the following, replacing KEYSTRING with one of the long sets of letters and numbers returned by Synaptic/Apt: gpg (--)keyserver hkp://wwwkeys.eu.pgp.net (--)recv-keys KEYSTRING # This should give you another code, something like 1F41B907. Enter this command, replacing KEYSTRING2 with the new one. gpg (--)armor (--)export KEYSTRING2 > keyName.gpg !end_verbatim !subsubnode apt-get !bi !short !item (!T) apt-get install (!t) installiert das !item (!T) apt-get (--)reinstall install (!t) installiert das neu !item (!T) apt-get update (!t) holt Datei-Infos von den Servern !item (!T) apt-get -u upgrade (!t) aktualisiert alle Pakete !item (!T) apt-get -u dist-upgrade (!t) komplettes Update !item (!T) apt-get remove (--)purge (!t) wird inklusive aller Einstellungen gelöscht !item (!T) apt-get clean (!t) löscht heruntergeladene Installationspakete !item (!T) apt-get autoclean (!t) - löscht Installationspakete die nicht mehr geladen werden können !item (!T) apt-get alien -d (!t) Fremdpakete (rpm) installieren !item (!T) apt-cache search (!t) sucht installierbare Programme !item (!T) apt-get source (!t) - Download source archives !item (!T) apt-get build-dep (!t) - Configure build-dependencies for source packages !item (!T) apt-get check (!t) - Verify that there are no broken dependencies !item (!T) apt-get moo (!t) - Easteregg in apt-get !ei Die heruntergeladenen Archive befinden sich in /var/cache/apt/archives. !subsubnode apt-file Sucht, in welchen (auch noch nicht installierten) Paketen die angegebene Datei vorhanden ist. !bi !short !item (!T) apt-file update (!t) Liest die neuesten Paketinformationen ein !item (!T) apt-file search (!t) Sucht, in welchen Paketen die Datei !ei !subsubnode apt-key !ssh Verwaltung von gpg-Schlüsseln für apt. !bi !item Schlüssel hinzufügen: (!nl) (!T) apt-key add key.gpg (!t) !ei !subsubnode apt-spy apt-spy ermöglicht es eine sources.list für Debian zu generieren. Dazu wird die Bandbreite der zu Verfügung stehenden Mirror Server analysiert um daraus den schnellsten Server zu emitteln. (!nl) Hinweis: Folgende Kommandos müssen mit superuser Rechten ausgeführt werden. (!nl) Mit Hilfe des Befehls apt-spy update wird zunächst die Mirrorliste aktualisiert. (!nl) Die eigentliche Geschwindigkeitsanalyse erfolgt z.B. mit dem Befehl apt-spy -d stable -s de. Hier wird der schnellste in Deutschland verfügbare Server ermittelt. (!nl) Wem das zulange dauert, der hat die Möglichkeit mit der Option -e X die Suche auf X Server einzugrenzen (wobei X durch die Anzahl der Server zu ersetzen ist). !subsubnode aptitude (!T) aptitude moo (!t) - Easteregg in aptitude (kann mit -v fortgesetzt werden) !subnode alien Fremdpakete werden mit alien umgewandelt: (!T) alien -d paket.rpm paket.deb (!t) oder (!T) alien -r paket.deb paket.rpm (!t) !subnode dpkg !bi !short !item (!T) dpkg -i (!t) installiert ein Paket !item (!T) dpkg -r (!t) löscht ein Paket !item (!T) dpkg -P (!t) löscht ein Paket incl. der Einstellungsdateien !item (!T) dpkg -l (!t) Liste auf das übergebene Suchmuster passende Pakete auf !item (!T) dpkg -L (!t) Liste die aus Paket auf Ihrem System installierten Pakete auf !item (!T) dpkg -S (!t) Suche nach einem Dateinamen in installierten Paketen !item (!T) dpkg (--)configure -a (!t) behebt Fehler, die eventuell beim installieren entstanden sind (z.B. durch Absturz) !item (!T) dpkg (--)get-selections (!t) Ausgabe aller installierten Pakete !item (!T) dpkg -l | awk '{ print $2 }' (!t) Liste aller installierten Pakete auf Ubuntu/Debian !ei !subnode dpkg-reconfigure (!T) dpkg-reconfigure (!t) rekonfiguriert ein bereits installiertes Paket (!nl) !bi !short !item X-Server neu konfigurieren: (!T) dpkg-reconfigure xserver-xorg (!t) !item NIS neu konfigurieren: (!T) dpkg-reconfigure nis (!t) !ei !subnode deb-Pakete erstellen !be !short !item Ordnerstruktur erstellen: !bi !short !item Ordner mit dem Namen des Programmes !bi !short !item usr !bi !short !item bin !item share !ei !item DEBIAN !ei !ei In den Ordner DEBIAN kommt eine Datei mit Namen control, die folgende Angaben enthält: !begin_verbatim Package: Programmname Version: 1.0 Section: admin Priority: optional Architecture: all Essential: no Depends: Installed-Size: 400 Maintainer: Name des Paketerstellers Description: Dies ist die Beschreibung des Paketes !end_verbatim !item In den Ordner /usr/bin/ wird das zu installierende Programm koppiert, evtl weitere benötigte Dateien müssen in die Verzeichnisstruktur eingeordnet werden. !item Soll das Programm im Anwendungen-Menü angezeigt werden, muss die Datei programmname.desktop im Verzeichnis /usr/share/applications befinden. Die Datei programmname.desktop het folgenden Inhalt. !begin_verbatim [Desktop Entry] Encoding=UTF-8 Name=namedesprogrammes Comment=Dies ist ein Kommentar welcher beim Ueberfahren mit der Maus angezeigt wird Exec=namedesprogrammes Terminal=false Type=Application Categories=GNOME;GTK;System; !end_verbatim !item Ein Symbol für das Programm muss ins Verzeichnis usr/share/pixmaps. In der programmname.desktop-Datei muss folgende Zeile hinzugefügt werden. Icon=namedesprogrammes.png !item Nun kann das Paket erstellt werden: (!T) dpkg -b ordnername programmname-1.0.deb (!t) !ee !subnode installierte Programme sichern & wiederherstellen !alias get-selections !alias set-selections als root: (!nl) (!T) dpkg (--)get-selections > selections.txt (!nl) dpkg (--)set-selections < selections.txt (!nl) dselect update (!nl) dselect install (!t) (!nl) (!nl) oder auch: (!nl) (!T) apt-get -u dselect-upgrade (!t) (!nl) (!nl) oder: (!nl) sichern mit: (!T) COLUMNS=200 dpkg-query -W (--)showformat='${Package}\n' > packages.list (!t) (!nl) wiederherstellen mit: (!T) cat packages.list | xargs apt-get -y install (!t) !smallskip Für RPM-pakete geht dies folgendermaßen: !begin_verbatim rpm -qa --queryformat " "%{NAME} > installedRPMS.list #! /bin/bash apt-get update apt-get install --reinstall chmod u+x installedRPMS.list /home//installedRPMS.list apt-get clean !end_verbatim !subnode unwichtige Anwendungen herausfinden !be !short !item Alle Pakete auflisten: (!T) dpkg -list (!t) !item Paket löschen: (!T) dpkg -remove (!t) !item Programm-Zähler installieren: (!T) popularity-contest > /var/log/ popularity-contest (!t) !item Auswertung: (!T) popcon-largest-unused (!t) !ee #------------------------------------------------------------------------------------------------------------------------------- !node Tastaturkommandos !subnode X-Server beenden !subnode reboot !subnode Prozesstabelle !subnode Prozess abschießen -> Maus wird zu Totenkopf -> Klick auf hängenden Prozess !subnode Exit !subnode Programm starten !alias katapult + Eingabe des Programmnamens (!nl) Alt+Leertaste + Anfangsbuchstaben des Programmes (katapult) !subnode Konsolenwechsel Umschalten zwischen verschiedenen Konsolen (Terminals) mit (!T)+ bis (!t) oder in X mit (!T)++ bis (!t) !subnode Magic SysRQ-Key !bi !short !item (!T) alt+sysrq+r (!t) nimmt dem X-Server die Kontrolle über Maus und Tastatur weg !item (!T) alt+sysrq+k (!t) killt alle Prozesse auf dem laufenden Terminal !item (!T) alt+sysrq+s (!t) schreibt die Daten aus dem Disk-Cache auf die Festplatte, es wird ein Sync durchgeführt !item (!T) alt+sysrq+e (!t) sendet SIGTERM zu allen Prozessen außer INIT !item (!T) alt+sysrq+i (!t) sendet SIGKILL zu allen Prozessen, außer Init !item (!T) Alt+SysRQ+l (!t) sendet SIGKILL zu allen Prozessen, inclusive Init (Ihr System ist danach nicht mehr funktionsfähig) !item (!T) alt+sysrq+u (!t) umountet alle gemounteten Dateisysteme readonly. Nachdem Sie diesen Key benutzt haben, können Sie ihr System mit Alt+SysRQ+b ohne Schaden rebooten. !item (!T) alt+sysrq+b (!t) Reset !item (!T) Alt+SysRQ+m (!t) gibt Infos über den Speicher auf der Konsole aus Um also ihren Rechner nach einem richtigen Festrammler noch sauber herunterbringen müssen Sie folgendes tun: (!T) Alt+SysRQ+e (!t) (sendet TERM-Signal, Prozesse können sich noch ordnungsgemäß beenden (zB Daten speichern)) (!T) Alt+SysRQ+u (!t) (sync wird beim Umount eh' gemacht) (!T) Alt+SysRQ+i (!t) (für die Prozesse, die auf TERM nicht hören gibt es halt ein KILL (kommt einem kill -9 prozess gleich) (!T) Alt+SysRQ+b (!t) (reboot). !ei !subnode Caps-lock abschalten Um die Caps-Lock-Taste abzuschalten .Xmodmap mit folgendem Inhalt im home-Verzeichnis des Users abgelegt werden: !begin_verbatim remove Lock = Caps_Lock !end_verbatim #------------------------------------------------------------------------------------------------------------------------------- !node CDs & DVDs !alias brennen !subnode CD-Schublade !alias eject (!T) eject /dev/cdrom (!t) wirft die CD aus (!nl) (!T) eject -t /dev/cdrom (!t) schließt die Schublade (!nl) (!T) eject -T /dev/cdrom (!t) öffnet, bzw. schließt die Schublade !subnode cdrecord Standardtool um CDs zu brennen (!nl) (!T) cdrecord -dev=/dev/cdwriter datei.iso (!t) brennt das ISO-Image auf CD (!nl) (!T) cdrecord -v speed=8 dev=/dev/hdd -data !~/daten.iso (!t) brennt das Abbild auf eine CD (!nl) (!T) cdrecord dev=/dev/cdrom blank=fast -force (!t) löscht eine wiederbeschreibbare CD (!nl) (!T) cdrecord -atip dev=/dev/cdrom (!t) zeigt Informationen über den Rohling an (!nl) (!T) cdrecord -v speed=2 dev=/dev/cdrom -pad *.wav (!t) brennt wav-Dateien auf CD (!nl) (!T) cdrecord -v -fix dev=/dev/hdd (!t) finalisiert eine CD !subnode growisofs Standardtool um DVDs zu brennen (!nl) Brennt ein Video-DVD-Image: (!T)growisofs -Z /dev/hdd=dvd.iso(!t) oder auch (!T)growisofs -Z /dev/hdd /path/(!t), wenn in /path/ die Verzeichnisse AUDIO_TS und VIDEO_TS liegen (!nl) (!T) growisofs -dvd-compat -Z /dev/dvd=image.iso (!t) brennt eine Daten-DVD (!nl) (!T) growisofs -dvd-compat -Z /dev/dvd -J -r -V "Meine Sicherung" /pfad/zu/den/daten/ (!t) (!nl) (!B) Schalter: (!b) !bi !short !item -dvd-compat: garantiert Größtmögliche Kompatibilität (closed, fixed,... - wie man es auch nennen mag) !item -Z /dev/dvd: die Gerätedatei des Brenners !item -J: Joliet Erweiterung (um sie auch in Windows lesen zu können) !item -r: Rockrigde Erweiterung (für Unix/Linux) !item -V: gibt der DVD (und auch CD) einen Namen. Die Anführungszeichen sind wichtig, wenn ein Leerzeichen dabei ist. !item /pfad/zu/den/daten/: die Daten in diesem Ordner werden gebrannt !ei !subnode uif2iso !alias UIF (!B) Dateiendung UIF (!b) (!nl) Compressed disc image format created by MagicISO, a program for creating, editing, and extracting disc image files; can be encrypted and password-protected; also supports backing up multi-session CD/DVD, Audio-CD, VCD, SVCD, and DVD-Video formats. (!nl) (!nl) (!B) uif2iso (!b) (!nl) Konvertiert uif-Dateien nach iso-Dateien (!nl) (!nl) (!U) Installation (!u) !bi !item Sourcecode (!url [hier] [http://aluigi.altervista.org/mytoolz.htm]) herunterladen. !item uif2iso.zip entpacken !item installieren mit make / make install !ei !subnode cdrdao (!T) cdrdao scanbus (!t) zeigt (als root) alle Laufwerke und deren Adressen an (!nl) (!T) cdrdao write (--)device /dev/hdc film.cue (!t) brennt ein Image mit dem Namen film.cue + film.bin !subnode cdparanoia Auslesen einer Audio-CD. Die Tracks werden als fortlaufende wav-files im aktuellen Verzeichnis gespeichert. (!nl) (!T) cdparanoia -d /dev/cdrom -B (!t) (!nl) (!nl) Soll nur ein einzelner Track gelesen werden, bspw. Nummer 5 dann folgendes eingeben: (!nl) (!T) cdparanoia -d /dev/cdrom "5" (!t) !subnode mkisofs CD-Abbild erstellen (!nl) (!T) mkisofs -o !~/daten.iso -RJ !~/daten (!t) erstellt vom Verzeichnis daten ein ISO-File (!nl) (!T) mkisofs -o image.iso -J -r -v -V "Test-CD" /pfad/zu/den/daten/ (!t) (!nl) !bi !short !item -o image.iso: die zu erstellende Datei (!nl) !item -J: Joliet Erweiterung (für Win) (!nl) !item -r: Rockridge Erweiterung (für Unix/Linux) (!nl) !item -v: Geschwätzigkeit einstellen (!nl) !item -V "Test-CD": Name der CD der später angezeigt wird (!nl) !item /pfad/zu/den/daten/: in diesem Ordner sollten sich die zu brennenden Daten befinden !ei siehe auch dd !subnode dvdbackup (!T) dvdbackup -i /dev/dvd -M -o ./dvd/ (!t) kopiert die ganze DVD auf die Festplatte. !subnode dvdrip Installation: (!T) sudo apt-get install dvdrip vcdimager cdrdao subtitleripper xcdroast ogmtools xvid4conf (!t) (!nl) (!nl) Problem mit rar lösen: (!T) wget http://www.exit1.org/dvdrip/contrib/rarlnx271.sfx.bin (!nl) chmod u+x rarlnx271.sfx.bin (!nl) ./rarlnx271.sfx.bin (!nl) sudo mv rar /usr/local/bin/rar-2.71 (!nl) sudo mv unrar /usr/local/bin/unrar-2.71 (!nl) rm -rf rar (!nl) Edit - Edit Preferences - Commands - rar: /usr/local/bin/rar-2.71 (!t) !subnode cdinfo (!T) cdinfo /dev/hdc (!t) gibt Informationen über die eingelegte CD aus. !subnode CDs kopieren Script um CDs zu kopieren: (!nl) (!T) #!//bin/bash (!nl) mount /dev/dvd (!nl) mkisofs -r -J -o !~/daten.iso -RJ /media/dvd (!nl) umount /dev/dvd (!nl) eject /dev/dvd (!nl) cdrecord -v speed=6 dev=/dev/dvdram -data !~/daten.iso (!nl) eject /dev/dvdram (!nl) rm daten.iso (!t) !subnode Musik-CDs kopieren Script um Audio-CDs zu kopieren: (!nl) (!T) #!//bin/bash (!nl) cdrdao read-toc (--)fast-toc (--)device /dev/dvd cd.toc (!nl) cdparanoia -v -d /dev/dvd -Z 1- data.wav (!nl) eject /dev/dvd/ (!nl) cdrdao write (--)device /dev/dvdram (--)speed 8 cd.toc (!nl) eject /dev/dvdram (!nl) rm data.wav (!nl) rm cd.toc (!t) !subnode Video-DVD verkleinern !be !short !item DVD-Titel mit DVD:RIP auslesen. VOB-Dateien werden erstellt. !item Die VOB-Dateien zusammenfügen: (!T) cat *.vob > movie.vob (!t) !item Demultiplexen: (!T) tcextract -i movie.vob -t vob -x mpeg2 > movie.m2v (!t) (!nl) und danach: (!T) tcextract -i movie.vob -a 0 -x ac3 -t vob > movie.ac3 (!t) !item Verkleinern: (!T) tcrequant -i movie.m2v -o shrinked.m2v -f 1.5 (!t) (!nl) 1.5 ist der Verkleinerungsfaktor (75%). Der Verkleinerungsfaktor lässt sich wie folgt berechnen: (!nl) Faktor = (video_size / (4700000000 - audio_size)) * 1.04 !item Multiplexen: (!T) mplex -f 8 -o final.mpg shrinked.m2v movie.ac3 (!t) !item Verzeichnisstruktur ertsellen: (!T) dvdauthor -o newdvd final.mpg (!t) !item IFO-files erstellen: (!T) dvdauthor -o newdvd -T (!t) !item Dateien brennen !ee !subnode CD-Laufwerk wird nicht gefunden Wenn ein Programm das CD-Laufwerk nicht findet, hilft es oft den Pfad statt mit (!T) /media/cdrom (!t) oder etwas ähnlichem mit (!T) /dev/hdc (!t) bzw. der jeweiligen Zuordnung für das entsprechende Laufwerk einzugeben. #------------------------------------------------------------------------------------------------------------------------------- !node Multimedia !subnode mplayer !bi !short !item ISO mounten und mit mplayer abspielen: (!nl) (!T) mount DATEI.ISO /mnt/ -t iso9660 -o ro,loop=/dev/loop0 (!t) (als root) (!nl) (!T) gmplayer dvd://1 -dvd-device /mnt/ (!t) (nicht als root) !item Audio aus einer DVD auslesen: (!T) mplayer -vo null -ao pcm:file=audio.wav dvd://1 (!t) !item VideoCD auslesen und als avi speichern: (!nl) (!T) mencoder vcd://1 film.avi -oac copy -ovc lavc -lavcopts vcodec=mpeg4 (!t) !item Filme verkleinern (!T) mencoder original.mp4 -oac mp3lame -ovc lavc -vf scale -zoom -xy 0.5 -o zieldatei.mp4 (!t) der Faktor 0.5 ist dabei der Verkleinerungsfaktor !item Video-CD auslesen und als mpg speichern: (!nl) (!T) mencoder -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video -oac copy vcd://1 -o ausgabe.mpg (!t) !item Umwandeln von Videos in AVI .wmv, .mov, .asf, .mkv, .ogm and .bin (S)VCD können mit (!T) mencoder -o .avi -ovc lavc -lavcopts vbitrate=5000 -fourcc DX50 -oac pcm -srate 48000 -ofps 25 .mov (!t) in ein PAL-knformes AVI-Format umgewandelt werden. !item Ein einzelnes Kapitel (hier 19) aus einer DVD-ISO auslesen und im Format 640:480 speichern: (!nl) (!T) mencoder dvd://1 -chapter 19 -dvd-device /media/ISO-Film/ -vf scale=640:480 -o title2.avi -oac copy -ovc lavc -lavcopts vcodec=mpeg4 (!t) !item De-Multiplexen: !bi !short !item mplayer -dumpaudio -dumpfile ton.ac3 dvd://1 !item mplayer -dumpvideo -dumpfile bild.m2v dvd://1 !item mplex -f 8 -o film.mpg ton.ac3 bild.m2v !ei !item Weiter Beispiele: !bi !short !item DVD auslesen und auf die Festplatte kopieren: (!T) mplayer /dev/scd0 -dumpstream -dumpfile film.vob (!t) !item Audio-Datei aus Film extrahieren: (!T) mplayer -dumpaudio film.mpeg (!t) !item Internet-Radio hören: (!nl) (!T) mplayer http://dradio-live.ogg.t-bn.de/dlf_high.ogg (!t) !item DVD anschauen, erster Titel: (!nl) (!T) mplayer dvd://1 (!t) !item Film auf Festplatte kopieren: (!nl) (!T) mplayer dvd://1 -dumpstream -dumpfile film.vob (!t) !item Film nach mpeg4 konvertieren: mp3 96 kbit, Video 1000 kbit, deinterlacing (!nl) (1. Durchgang): (!T) mencoder film.vob -o /dev/null -oac mp3lame -lameopts cbr:br=96 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1000:mbd=2:vpass=1 -vf pp=lb (!t) (!nl) (2. Durchgang): (!T) mencoder film.vob -o film.avi -oac mp3lame -lameopts cbr:br=96 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1000:mbd=2:vpass=2 -vf pp=lb (!t) !item Schwarze Balken an Stelle 5 Min 0 Sek erkennen: (!nl) (!T) mplayer -vf cropdetect,pp=ci -ss 0:05:00 film.vob (!t) !item Film ohne schwarze Balken anschauen (entsprechende crop-Daten einfügen): (!nl) (!T) mplayer -rootwin -vf crop=688:320:22:74,pp=ci -ss 0:05:00 film.vob (!t) !item Windows-Media-Audio-Stream aus dem Internet anhören/mitschneiden: (!nl) (!T) mplayer mms://dradio-live.wm.t-bn.de/live/dlf/dlf (!nl) mplayer -vo null -vc dummy -dumpstream -dumpfile RadioMitschnitt.wma mms://dradio-live.wm.t-bn.de/live/dlf/dlf (!t) !item ogg nach avi konvertieren: (!T) mencoder -idx input.ogg -ovc lavc -oac mp3lame -o output.avi (!t) !item Windows-Media-Video-Stream aus dem Internet anschauen/mitschneiden: (!nl) (!T) mplayer -zoom mms://wmt-od.stream.ne.jp/ntv/hkzkt/hkzkt10.wmv (!nl) mplayer -dumpstream -dumpfile pingpong.wmv mms://wmt-od.stream.ne.jp/ntv/hkzkt/hkzkt10.wmv (!t) !ei !ei (!B) mplayer-Fehler (!b) (!nl) Fehlermeldung: requested audio codec family [mp3] (afm=mp3lib) not available. Enable it at compilation. (!nl) Lösung: Bei "Audio Codec Family" "FFmpeg" einstellen !subnode ffmpeg !subsubnode Informationen über Files und Codecs !bi (!short) !item (!T) ffmpeg -i input-file (!t) zeigt Informationen über das File an. Besser jedoch ist mediainfo (die Installation und Verwendung gibts in einem extra-Kapitel). !item (!T) ffmpeg -formats (!t) zeigt alle für die Kodierung möglichen Audio- und Videoformate an. !item Um eine simple Liste von Video-Files in einem Verzeichnis zu erstellen, die neben dem Dateinamen Informationen über die Auflösung und den verwendeten Video-Codec beinhaltet, hilft folgende Pipe: (!T) # for i in *.flv; do ffmpeg -i "$i" 2> Tempfile; egrep -i "flv|video" < Tempfile >> Liste.txt; echo "-----------------------------------------------" >> Liste.txt; done (!t) (!nl) durch die for-Schleife wird eine Liste sämtlicher Files mit der Endung .flv (Flash-Files) im momentanen Verzeichnis erstellt und die einzelnen Dateinamen an ffmpeg weitergereicht. ffmpeg öffnet die Video-Files und gibt so auf dem Standard-Fehlerkanal Informationen über die Auflösung und den verwendeten Codec wieder, welche in der Datei Tempfile gespeichert werden. Da die Ausgabe von ffmpeg noch viel mehr beinhaltet, wird im nächsten Schritt mittels egrep die relevanten Informationen wie der Dateiname (durch den Suchbegriff flv) und die Eckdaten des Videos (durch den Suchbegriff video) herausgefiltert und in die Datei Liste.txt geschrieben. Dabei wird nach jedem File zur besseren Übersicht mittels echo eine Trennlinie in die Datei geschrieben. Alternativ könnte man auch mittles echo $'\n' einen Zeilenvorschub auslösen. !ei !subsubnode Umwandlungsbeispiele !bi (!short) !item (!T) ffmpeg -i testfile.flv -vcodec mjpeg -b 7000k -acodec copy testfile.avi (!t) Kodiert ein Flash-File in ein MJPEG-File mit 7000 Kbit/sec und kopiert das Audio lediglich, also ohne Konvertierung. !begin_verbatim -i = Input-File -vcodec = Wahl des zu verwendenden Video-Codecs -b = Video-Bitrate (hier 7000 Kbit/sec) -acodec = Wahl des Audio-Codecs (hier copy, also unverändert kopieren) !end_verbatim !item (!T) ffmpeg -i testfile.flv -an -vcodec bmp testfile.avi (!t) wandelt ein Flash-File in unkomprimierte BMP-Bilder, ohne Audio. (!T) -an = Kein Audio verwenden. (!t) Leider führt der Vorgang ein AVI-File mit unkomprimierten BMP-Bildern zu erzeugen dazu, daß sich das Bild verschiebt. Den Grund dafür habe ich leider nicht herausgefunden. Möchte man in ein verlustfreies Format wie eben Vollbilder konvertieren, ist folgender Codec daher besser: (!T) ffmpeg -i testfile.flv -vcodec huffyuv -acodec pcm_s16le testfile.avi (!t) Konvertiert ein Flash-File in das verlustfreie huffyuv-Format (der Huffman-Codec) mit unkomprimiertem Audio (wav). (!T) pcm_s16le = signed 16-bit little-endian PCM. (!t) !ei Audio aus Video extrahieren: (!T) ffmpeg -i testfile.flv -vn testfile.wav (!t) (!nl) -vn = Disable video recording, also kein Bild nur der Ton. !subsubnode DVD-Konvertierung ffmpeg enthält vorgefertigte Templates für die gängigen Formate, wie z.B. vcd (Video-CD), svcd (Super-Video-CD), dvd, dv, dv50, pal-vcd, ntsc-svcd, usw. Man muß also nicht sämtliche Einstellungen für eine DVD wie Auflösung, Bitrate, Video-Codec, Audio-Codec, usw. von Hand einstellen, sondern es genügt die Angabe eines Templates und alle weiteren erforderlichen Einstellungen werden vollautomatisch vorgenommen, z.B.: !bi (!short) !item (!T) ffmpeg -i Input.flv -target dvd Output.mpg (!t) !item In manchen Fällen ist es sicherer oder sinnvoller die Art des DVD-Formats (ob PAL oder NTSC) mitanzugeben: (!T) ffmpeg -i Input.flv -target pal-dvd Output.mpg (!t) wandelt ein Flash-File in das DVD-Format, wobei das Audio sogar in AC3 konvertiert wird. Leider habe ich hier einen kleinen Fehler festgestellt, da ohne Angabe der aspect ratio einfach keine vernünftige Ratio gespeichert wird. In manchen Anzeigeprogrammen steht da was von "Standard" und in wieder Anderen was von "5/4". Daher ist es sinnvoller die korrekte Ratio (ob 4:3 oder 16:9) mitanzugeben: (!nl) (!T) ffmpeg -i Input.flv -target pal-dvd -aspect 4:3 Output.mpg (!t) (!nl) möchte man die Bitrate auch noch verändern: (!T)ffmpeg -i Input.flv -target pal-dvd -aspect 4:3 -b 3000k Output.mpg (!t) (!nl) Hat man die aspect ratio vergessen, so kann man nachträglich ohne Neukodierung die ratio verändern mittels mpgtx. (!T) # mpgtx -j -A2 Input.mpg -o Output.mpg (!t) Dabei steht A2 für die Ratio 4:3. Gültige Werte Ax sind 1,2,3,4 für die Proportionen 1:1, 4:3, 16:9 oder 2,2:1. Etwas kniffliger wird es, wenn das Ursprungs-File nicht die korrekte Auflösung hat und man die Größe verändern muss. (!nl) Hier ein Beispiel mit einem Ursprungs-File das eine Auflösung von 1280x720 (HD) hat und in die DVD-Auflösung von 720x576 konvertiert werden soll und als besondere Schwierigkeit, nicht anamorph! Da das HD-File in der Ratio 16:9 vorliegt müssen wir für die korrekte 4:3 Bildgröße oben und unten schwarze Balken anfügen, man nennt das auch Letterboxed. Würden wir keine Resize-Optionen angeben, würde zwar das File auch in die DVD-Auflösung resized werden, das Bild würde aber verzerrt werden - in dem Fall anamorph gespeichert. Hier nun mit den schwarzen Balken: (!nl) (!T) ffmpeg -i Input.flv -target dvd -padtop 72 -padbottom 72 -s 720x432 Output.mpg (!t) (!nl) Wie man erkennen kann, resizen wir auf die Größe 720x432 und fügen dann jeweils oben und unten 72 Pixel hinzu, was zur finalen Auflösung von 720x576 Bildpunkten führt. Zu beachten ist hier die Reihenfolge der Optionen, denn kommt die Resize-Funktion (-s) vor der "target dvd"-Funktion, hat der Resize-Faktor mit der Höhe 432 keine Wirkung und das Bild wird auf eine Größe von 720x720 (DVD-Höhe 576+72+72=720) skaliert! Anders wenn wir kein Template verwenden, dann gibt es keine einzuhaltende Reihenfolge: (!nl) (!T) ffmpeg -i Input.flv -padtop 72 -padbottom 72 -s 720x432 -vcodec huffyuv -acodec pcm_s16le Output.avi (!t) das könnte auch genauso heißen (!T) ffmpeg -i Input.flv -s 720x432 -padtop 72 -padbottom 72 -vcodec huffyuv -acodec pcm_s16le Output.avi (!t) und macht keinen Unterschied. !item Ganze Ordner mit Hilfe einer for-Schleife umwandeln Möchte man einen ganzen Ordner auf einmal umwandeln, hilft folgende for-Schleife: (!T) for i in *.avi; do ffmpeg -i "$i" -target pal-dvd -aspect 4:3 "`basename "$i" .avi`".mpg; done (!t) (!nl) oder um bei einen ganzen Ordner voller mpg-Files die aspect ratio zu ändern: (!nl) (!T) for i in *.mpg; do mpgtx -j -A2 "$i" -o /anderes/Verzeichnis/"$i"; done (!t) !ei !subsubnode Aneinanderhängen von avi-Files Möchte man mehrere avi-Files mit gleicher Codierung zu einem ganzem File verschmelzen, hilft unter Umständen mencoder: (!T) mencoder -forceidx -ovc copy -oac copy Input1.avi Input2.avi -o Output-Gesamt.avi (!t) !subsubnode Konvertieren einer Tonspur einer Videodatei mit ffmpeg Wenn nach einer DVB-T Aufnahme die Tonspur spinnt (im mplayer gehen nur die ersten 2 Minuten Ton, danach gar nichts mehr) hilft folgendes: (!T) ffmpeg -acodec mp3 -ab 192k -vcodec copy -i datei.mpg ausgabe.mpg (!t) !begin_verbatim ab ist Audio Bitrate acodec als MP3 Dateien kodieren vcodec Videostream kopieren, nicht antasten !end_verbatim !subnode Amarok (!B) Video-Podcasts mit Amarok: (!b) !be !short !item Download des Scriptes unter: (!url [http://kde-apps.org/content/show.php?content=41435] [http://kde-apps.org/content/show.php?content=41435]) !item Extras -> Script-Verwaltung -> Installieren !item Ausführen !item Zu jedem Track in der Playlist kommt nun im Kontextmenü (Rechtsklick) der Punkt PlayVideos -> Play. !item In der Datei (!T) /.kde/share/apps/amarok/scripts/videos/videos.rb (!t) kann der kmplayer durch einen eigenen Player (mplayer/kaffeine) ersetzt werden. !ee !alias Radio-Streams (!B) Radio-Streams: (!b) !bi !short !item SWR1: http://213.200.97.110:80/swr1bwlive/livestream.mp3 !item SWR2: http://213.200.97.110:80/swr2live/livestream.mp3 !item SWR3: http://213.200.97.110:80/swr3live/livestream.mp3 !item Klassik-Radio: http://str31.creacast.com:80/klassik1 !item Bayern 4 Klassik: mms://gffstream-w8b.wm.llnwd.net/gffstream_w8b !item DLF: http://dradio-mp3.t-bn.de/dlf_live !ei Die Streams können mit folgenden Skripten gespeichert werden: Als mp3: !begin_verbatim mplayer -cache 1024 -dumpstream http://213.200.97.110:80/swr3live/livestream.mp3 -dumpfile swr3_vom_`date +%d_%m_%Y`_um_`date +%T`.mp3 !end_verbatim Als wma: !begin_verbatim mkfifo aufnahme.fifo timeout 3480 lame -m s aufnahme.fifo swr3_vom_`date +%d_%m_%Y`_um_`date +%T`.mp3 & /usr/bin/mplayer -ao pcm:file=aufnahme.fifo 'mms://62.26.161.89/swr3live$livestream.wma' rm aufnahme.fifo exit !end_verbatim !subnode Grip !bi !short !item Umlaute in Dateinamen: /Konfiguration/sonstige/ !bi !short !item wandle Dateinamennicht in Kleinbuchstaben um !item erlaube hohe Bits in Dateinamen !item ändere Leerzeichen nicht in Unterstriche !ei !item Variablen für Dateinamen !bi !short !item %t Nummer des Tracks auf der CD !item %n Titel des Stückes !item %a Künstler des Stückes (ideal für Sampler) !item %A Künstler der CD !item %d Titel der CD !item %y Jahr !item %G Genre als Text !ei !ei !subnode mp3c Mit mp3c lassen sich in der Konsole CDs in mp3 und ogg umwandeln. Mit mp3cd können diese dann gebrannt werden. !subnode Realplayer Download unter: (!url [http://www.real.com/linux/] [http://www.real.com/linux/]) (!nl) (!B) Installation: (!b) !be !short !item Ausführbar machen mit: (!T) chmod +x RealPlayer*.bin (!t) !item Installieren mit: (!T) sudo ./RealPlayer*.bin (!t) !item Frage nach dem Installationsverzeichnis: (!T) /opt/realplayer (!t) !item Die nächste Frage einfach durch Eingabe von (!T) y (!t) bestätigen. !item Prefix: Vorgabe /usr bestätigen !ee (!B) Alte Codecs in RealPlayer 10 installieren (!b) (!nl) (!T) su (!t) (!nl) Paket "w32codecs" oder "w32codec-all" installieren (!nl) (!T) cp /usr/lib/win32/dnet.so.6.0 /usr/lib/RealPlayer10/codecs/ bzw. /opt/realplayer/codecs/ (!nl) cp /usr/lib/win32/ddnt.so.6.0 /usr/lib/RealPlayer10/codecs/ bzw. /opt/realplayer/codecs/ (!nl) cd /usr/lib/RealPlayer10/codecs/ bzw. /opt/realplayer/codecs/ (!nl) ln -s dnet.so.6.0 dnet.so (!t) !subnode Aufnahme !alias sox (!T) sox -t ossdsp -w -s -r 44100 -c 2 /dev/dsp -t raw - | lame -x -m s - ZIELDATEI.mp3 (!t) nimmt das Eingangssignal als mp3 auf. (!nl) (!T) mplayer -ao pcm -aofile datei (!t) speicher Livestream in einer Datei !subnode Sound in der Konsole !alias playwave (!T) playwave (!t) spielt eine Wavedatei in der Konsole ab !subnode Audio/Video-Dateien konvertieren !subsubnode mpg -> flv (!T) ffmpeg -i input.mpg -s 150x120 -padleft 100 -padright 100 -ar 44100 -r 25 -b 200k output.flv (!t) !subsubnode avi -> flv (!T) ffmpeg -i original.avi -f flv -b 300k -deinterlace -ar 22050 -ab 64k -s 328x248 ausgabe.flv (!t) für die Veröffentlichung im Internet bietet sich folgende Option an: (!T) ffmpeg -i input.avi -ar 11025 -ab 32 -b 500k -f flv -s 426x320 output.flv (!t) !subsubnode wma -> wave Konvertieren einer WMA-Datei in WAVE: (!nl) (!T) mplayer datei.wma -ao pcm output.wav (!t) !subsubnode ogg -> wave (!T) oggdec datei.ogg datei.wav (!t) konvertiert datei.ogg nach datei.wav. (!nl) (!T) oggdec /Pfad/Audiofiles/*.ogg (!t) konvertiert alle Ogg-Files im Verzeichniss /Pfad/Audiofiles/ in Wav-Files. !subsubnode wave -> ogg (!T) oggenc datei.wav datei.ogg (!t) konvertiert datei.wav nach datei.ogg. (!T) oggenc /Pfad/Audiofiles/*.wav (!t) konvertiert alle Wav-Files im Verzeichniss /Pfad/Audiofiles/ in Ogg-Files. !subsubnode wave -> mp3 (!T) lame -h Song.wav Lied.mp3 (!t) konvertiert Song.wav nach Lied.mp3 mit einer Bitrate von 128 Kbits/s. (!nl) Skriptbeispiel, das alle wav-Dateien eines Verzeichnisses in mp3-Dateien mit einer Bitrate von 128 Kbits/s konvertiert: (!nl) (!T) #!//bin/sh (!nl) for i in *.wav; (!nl) do /usr/bin/lame -h -k "$i" "$(basename "$i" .wav)".mp3; (!nl) done (!t) !subsubnode rm -> avi (!T) mencoder -ovc lavc input.rm -oac mp3lame -o output.avi (!t) konvertiert Real Media-Dateien ins DivX-Format. !subsubnode dv -> mpeg (!T) ffmpeg -i DV-Video.avi -vcodec mpeg2video -t pal-dvd (!t) !subsubnode recordmydesktop format konvertieren (!T) mencoder -of lavf -oac mp3lame -lameopts abr:br=56 -srate 22050 -ovc lavc -lavcopts vcodec=flv:vbitrate=250:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -vf scale=640:480-o DeinVideo.flv DeinVideo.ogv (!t) !subsubnode Bitrate von MP3s ändern mit dem Tool lame können mp3s convertiert etc. werden. Mit dem Kommando (!T) lame (--)mp3input -b 128 .mp3 .mp3 (!t) !subnode Filme konvertieren !alias transcode Mit (!T) transcode (!t) lassen sich Filme und Videos sehr einfach konvertieren: !bi !short !item VCD: (!T) transcode -i "/home/easterdom/Filme/Ein Film.XviD.avi" \ -o "Ein Film.VCD.avi" \ (--)export_prof vcd (!t) !item SVCD: (!T) transcode -i "/home/easterdom/Filme/Ein Film.XviD.avi" \ -o "Ein Film.SVCD.avi" \ (--)export_prof svcd (!t) !item DVD: (!T) transcode -i "/home/easterdom/Filme/Ein Film.XviD.avi" \ -o "Ein Film.vob" \ (--)export_prof vcd (!t) !ei Quelle: http://tobias.schroepf.de/doku/doku.php?id=linux:videos_bearbeiten : !subsubnode Info über Video-Datei herausfinden: (!T) tcprobe -i (!t) Zeigt Auflösung, aspect ratio und framerate an. !subsubnode Video demultiplexen (demuxen) !subsubsubnode MPEG Video extrahieren (!T) tcextract -i .mpg -x mpeg2 > .m2v (!t) !subsubsubnode MP3 Sound extrahieren (!T) tcextract -i .mpg -x mp3 > .mp3 (!t) !subsubsubnode MPEG Video multiplexen (muxen) (!T) tcmplex -o showgirls-dvd.vob -i showgirls-dvd.m2v -p showgirls-dvd.mpa -m d (!t) !subsubsubnode Video requantisieren Ein MPEG2 kodiertes Video kann man requanitisieren, dadurch verringert sich der Speicherbedarf, die Qualität leidet etwas. Großer Vorteil: Es geht viel schneller als das Video umzukodieren. Nachteil: Video muss vorher demuxt werden (!nl) (!T) tcrequant -i .m2v -o .m2v -f 2.0 (!t) (!nl) -f 2.0 gibt das Verhältnis an. 2.0 bedeutet, dass die entstehende Datei halb so groß ist wie vorher, -f 1.5 erzeugt eine Datei, die 2/3 so gross ist wie vorher usw. Dauert bei einer 2,7GB Bildspur ca. 15 min auf der Xbox (64MB RAM, Celeron 733MHz). Links: http://www.linuxquestions.org/linux/answers/Applications_GUI_Multimedia/DVD9_to_DVD5_guide !subsubsubnode Video umwandeln (z.b. in xvid4) (!T) transcode -i -Z 320x240 -y xvid4 -o (!t) !begin_verbatim -i: Eingabedatei -o: Ausgabedatei -g: Auflösung des Eingabestroms (herausfinden mit tcprobe) -Z: Ausgabe-Auflösung -x: Eingabemodul festlegen (für Video und Audio stream) -y: Ausgabemodul festlegen (für Video und Audio stream) !end_verbatim !subsubsubnode In ein Windows-Media-Player taugliches format (!T) transcode -i -Z 320x240 -y ffmpeg -F wmv2 -o .avi (!t) !subsubsubnode In ein komprimiertes WMV-Format (!T) ffmpeg -i -r 25 -s 320x240 -vcodec wmv2 .wmv (!t) !subnode Slideshow Ein Slideshow kann über folgende Konsolenbefehle erstellt werden: !bi !short !item Alle Bilder in ein Verzeichnis kopieren. !item (!T) dir2slideshow -n Titel ./ (!t) erstellt eine Steuerdatei !item (!T) dvd-slideshow -f Titel.txt (!t) erstellt die Slideshow !item (!T) ffmpeg -i Titel.vob -target dvd Film.mpg (!t) konvertiert den Film in ein MPEG-Video !item Der Befehl (!T) dvd-slideshow -a Musik.mp3 -f Titel.txt (!t) fügt der Slideshow Musik hinzu. !ei !subnode mp3 !subsubnode mp3rename Mit (!T) mp3rename * (!t) können mp3-Dateien nach ihren ID3-Tags benannt werden. Sollten nur ID2-Tags vorhanden sein, müssen diese zuerst mit id3v2 konvertiert werden. !subsubnode id3v2 Mit (!T) id3v2 -1 (!t) werden ID2 in ID3-Tags konvertiert. !subnode MIDI Um MIDI abspielen zu können sollten folgende Dateien installiert sein: !bi !short !item timidity !item timidity-interfaces-extra !ei !subsubnode Soundfonts Um mit timidity alle GM-Klänge abspielen zu können, sollte am besten folgende Soundfontdatei installiert werden: (!nl) (!T) sudo apt-get install fluid-soundfont-gm (!t) (!nl) Dann muss noch die Konfiguration angepasst werden: (!nl) In der Datei (!T) /etc/timidity/timidity.cfg (!t) die Zeile (!T) source /etc/timidity/freepats.cfg (!t) auskommentiert und die Zeile (!T) source /etc/timidity/fluidr3_gm.cfg (!t) angehängt werden. !subsubnode timidity (!T) timidity -Ow -s 44100 -o output.wav input.mid (!t) wandelt eine MIDI-Datei in eine WAV-Datei um. !subsubnode mma mma - Musical MIDI Accompaniment ist ein Programm um automatisch erzeugte Begleitungen anhand von Akkorden zu erzeugen. (!nl) Download unter: http://www.mellowood.ca/mma/index.html (!nl) Die Anwendung ist sehr einfach: (!T) mma song.mma (!t) erzeugt die Datei song.mid, die dann mit (!T) timidity -ig song.mid (!t) abgespielt werden kann. Hier eine ganz einfache Beispieldatei: !begin_verbatim // Mein Song Tempo 120 Groove 8beat 1 C 2 C 3 C 4 C 5 F 6 F 7 C 8 C 9 G 10 F 11 C 12 G7 13 C 14 z! !end_verbatim !subnode emovix Beheben des Fehlers in k3b: !be !short !item Download unter: (!url [emovix] [http://sourceforge.net/project/showfiles.php?group_id=61561&package_id=67132&release_id=338401]) !item Umbenennen des Normalize-Programms (!T) sudo mv /usr/bin/normalize-audio /usr/bin/normalize (!t) !item Datei anlegen (!T) sudo nano /usr/bin/normalize-audio (!t) mit folgendem Inhalt: !begin_verbatim #/bin/bash case "$1" in --version) normalize --version | sed -e 's/normalize /normalize-audio /g' ;; *) normalize $* ;; esac !end_verbatim !item Die angelegte Datei als ausführbar markieren: (!T) sudo chmod +x /usr/bin/normalize-audio (!t) !ee !subnode Zattoo Damit Zattoo richtig startet muss die Datei dbus-x11 installiert werden. !subnode Miro Den Absturz nach dem Start schaltet man durch die Installation von icedtea-java7 ab. (!T) sudo apt-get install icedtea-java7-plugin (!t) !subnode Youtube Youtube-Videos können sehr einfach mit dem Konsolenprogramm (!T) youtube-dl (!t) heruntergeladen werden und dann mit (!T) ffmpeg -i (!t) konvertiert werden. (!nl) (!nl) Neben dem Konsolenprogramm gibt es auch im Internet unter (!url [http://bitbucket.org/rg3/youtube-dl/wiki/Home] [http://bitbucket.org/rg3/youtube-dl/wiki/Home]) ein gleichnamiges Programm zum Download, das die gleiche Funktion hat, jedoch mehr Einstellmöglichkeiten bietet. Somit ist es möglich, neben der besten Auflüsung "-b" und der Auflösung für mobile Geräte "-m" auch Filme in HD herunterzuladen "-d". !subnode Sound server fatal error Untersuchung der Soundkarte mit: (!T) lspci | grep audio (!t) ergibt folgendes: 00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 10) (!nl) (!nl) Lösung des Problems mit :(!T) echo "options snd-via82xx dxs_support=2" |sudo tee -a /etc/modprobe.d/alsa-base (!t) !subnode ChordPro ChordPro-Dateien können mit chordpack einfach konvertiert werden: (!T) ./chordpack html Super\ Trouper.chopro > ST.html (!nl) ./chordpack tex Super\ Trouper.chopro > ST.tex (!t) !subnode Echtzeitrechte für die Benutzergruppe "Audio" Der Soundserver Jackd benötigt zum zuverlässigen Betrieb besondere Rechte. Diese Rechte kann man der Gruppe "Audio" zuweisen, indem man mit einem Editor mit Rootrechten die Datei /etc/security/limits.conf bearbeitet. Vor Schluss sind drei Zeilen einzufügen, das sieht dann so aus: !begin_verbatim @audio - rtprio 90 @audio - nice -10 @audio - memlock 4000000 !end_verbatim Die Rechte stehen erst nach einer Neuanmeldung am System zur Verfügung. !subnode amazonmp3 Damit das Programm amazonmp3 läuft muss folgendes ausgeführt werden (alles in einer Zeile!): (!nl) !begin_verbatim mkdir amazonmp3 && cd amazonmp3 && wget http://de.archive.ubuntu.com/ubuntu/pool/universe/b/boost/libboost-filesystem1.34.1_1.34.1-16ubuntu1_i386.deb http://de.archive.ubuntu.com/ubuntu/pool/universe/b/boost/libboost-regex1.34.1_1.34.1-16ubuntu1_i386.deb http://de.archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu40_4.0.1-2ubuntu2_i386.deb http://de.archive.ubuntu.com/ubuntu/pool/universe/b/boost/libboost-thread1.34.1_1.34.1-16ubuntu1_i386.deb http://de.archive.ubuntu.com/ubuntu/pool/universe/b/boost/libboost-iostreams1.34.1_1.34.1-16ubuntu1_i386.deb http://de.archive.ubuntu.com/ubuntu/pool/universe/b/boost/libboost-signals1.34.1_1.34.1-16ubuntu1_i386.deb http://de.archive.ubuntu.com/ubuntu/pool/universe/b/boost/libboost-date-time1.34.1_1.34.1-16ubuntu1_i386.deb && sudo dpkg -i *.deb && sudo apt-get install libglademm-2.4-1c2a && rm * && cd .. && rmdir amazonmp3 !end_verbatim #------------------------------------------------------------------------------------------------------------------------------- !node Bildbearbeitung !subnode screenshot !alias import (!T) import (!t) erstellt einen Screenshot. Ein Klick in ein Fenster kopiert dieses, oder man zieht einen Rahmen auf. (!nl) (!T) sleep 15: import -window root screen.png (!t) -> nach 15 Sekunden screenshot (!nl) (!nl) Das Srceenshot-Programm der KDE KSnapshot lässt sich mit der Taste "Druck" starten. !subnode identify (!T) identify (!t) gibt Informationen über ein Bild aus. mit (!T) identify -verbose (!t) werden noch ausführlichere Inforamtionen angezeigt. !subnode Bilder drehen (!T) find . -name "*.JPG" -exec jhead -autorot "{}" ";" (!t) !subnode convert !subsubnode Bildtyp umwandeln (!T) convert (!t) (!nl) oder als Schleife für viele Bilder: (!nl) (!T) for picture in *.gif ; do (!nl) convert $picture "${picture/.gif}.png" (!nl) done (!t) !subsubnode Bild in Postscript umwandeln (!T) convert (!t) (!nl) zusätzliche Parameter: (!T) convert -page A4+0+0 -monochrome (!t) -page A4 ist die Seitengröße +0+0 gibt die Position auf dem Blatt an. -monochrome wandelt in ein schwarz-weiß-Bild um. !subsubnode Bilder verkleinern !bi !short !item (!T) convert -scale 100x grossesbild.jpg kleinesbild.jpg (!t) (!nl) Ein Bild wird hiermit proportional auf eine Breite von 100 verkleinert. Statt 100x kann man auch eine Prozentzahl angeben: (!nl) (!T) convert -scale 20% grossesbild.jpg kleinesbild.jpg (!t) !item Script um alle Bilder in einem Verzeichnis zu verkleinern: (!nl) (!T) #!//bin/bash (!nl) for file in * (!nl) do (!nl) convert -scale 100x $file klein_$file (!nl) done (!t) !item In einer Zeile: (!T) for i in *.jpg; do convert -resize 20% $i `basename $i .jpg`_thumb.jpg; done (!t) !item (!T) convert -geometry 1024x1024 (!t) !item ein weiteres Script: (!nl) (!T) #!/bin/bash (!nl) for i in `ls *.jpg` ; do convert -geometry 1024x1024 -quality 90 $i xga_$i ; done (!t) !ei !subsubnode Animationen (!T) convert -delay 20 *.jpg out.gif(!t) erstellt ein animiertes GIF-Bild aus allen JPG-Bildern im Verzeichnis. (!nl) (!T) mencoder 'mf://*.jpg' -mf type=jpg:fps=4 -ovc copy -oac copy -o output.avi (!t) oder (!T) mencoder "mf://*.jpg" -mf fps=25 -o output.avi -ovc lavc -lavcopts vcodec=mpeg4 (!t) erstellt einen AVI-Film bzw. einen mpeg-Film. (!nl) (!T) convert -delay 20 *.jpg out.gif (!t) erzeugt eine GIF-Animation !subsubnode Bildübersicht !alias montage (!T) convert vid:*.jpg directory.jpg (!t) erstellt eine Übersicht aller jpg-Dateien im Verzeichnis in der Datei directory.jpg (!nl) (!T) montage *.jpg panorama.jpg (!t) erstellt eine Übersicht !subsubnode Wasserzeichen in Bilder schreiben (!T) convert -font /usr/X11R6/lib/X11/fonts/truetype/arial.ttf -pointsize 20 -fill gray -draw "text 30,30 'Copyright by Linux'" (!t) schreibt den Text "Copyright by Linux" in das Bild "bildmitwasserzeichen.jpg". !subnode EXIF-Informationen Bild nach EXIF-Informationen drehen: (!T) exifautotran *.jpg (!t) !subnode scanimage Scant Bilder in *.pnm oder *.tiff-Dateien (!nl) (!nl) Optionen: (!nl) (--)device Scanner (!nl) (--)mode Farbmodus (!nl) (--)resolution Auflösung (!nl) (!nl) Beispiel: (!nl) (!V) scanimage (--)device=umax:/dev/sg2 (--)mode=Gray (--)resolution=300 > out.pnm (!v) (!nl) (!nl) Siehe auch: pnmtops !subnode digikam !subsubnode Datumsformat zum Sortieren (!T) %Y-%m-%d-%H-%M-%S (!t) !subsubnode Fehler bei der Erstellung von Filmen beheben (!T) sudo kwrite /usr/bin/images2mpg (!t) !be !short !item In dem Script muss nun die Zeile 818 gesucht werden. Diese lautet: (!nl) done | $PPMTOY4M_BIN -v $VERBOSE -n $NBFRAMETOTAL -F $IMAGES_SEC_FORMAT | $YUVSCALER_BIN -v $VERBOSE -n $VIDEO_TYPE_LETTER -O $VIDEO_FORMAT | $MPEG2ENC_BIN -v $VERBOSE -n $VIDEO_TYPE_LETTER -b $BIT_RATE -V $BUFFER_SIZE -f $VIDEO_FORMAT_NUMBER -o "$TMPFILENAME.tmp.m2v" !item Die Zeile muss geändert werden in: (!nl) done | $PPMTOY4M_BIN -v $VERBOSE -n $NBFRAMETOTAL -F $IMAGES_SEC_FORMAT (!B)-S 420mpeg2(!b) | $YUVSCALER_BIN -v $VERBOSE -n $VIDEO_TYPE_LETTER -O $VIDEO_FORMAT | $MPEG2ENC_BIN -v $VERBOSE -n $VIDEO_TYPE_LETTER -b $BIT_RATE -V $BUFFER_SIZE -f $VIDEO_FORMAT_NUMBER -o "$TMPFILENAME.tmp.m2v" !item mpg321 muss installiert werden !ee !subsubnode Deutsche Oberfläche wieder herstellen Herunterladen der Datei (!url [digikam.mo] [./digikam.mo]) (!T) sudo cp digikam.mo /usr/share/locale-langpack/de/LC_MESSAGES (!t) !subnode Gimp !alias gimp !subsubnode 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 (!nl) ctrl-x drücken (!nl) ctrl-m (!nl) als *.png oder *.gif speichern. !subsubnode Animationen !be !short !item Alle Bilder müssen dieselbe Größe haben !item 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. !item Speichern als gif !ee !subnode Inkscape Kubuntu-Benutzer: Inkscape auf deutsch erhält man durch Installieren des Pakets "language-pack-gnome-de" #------------------------------------------------------------------------------------------------------------------------------- !node Sonstiges !subnode Passwörter erstellen (!T) makepasswd (--)chars 6 (--)count 80 > passwoerter.txt (!t) !subnode date Datumsanzeige !subnode cal Kalender !subnode bc !alias Taschenrechner Tachenrechner !subnode Java-Programme starten !alias Java (!T) java -jar (!t) (!nl) Pfade für verschiedene Java-Versionen: !bi !short !item /usr/lib/j2se/1.4/jre/bin/java !item /usr/lib/jvm/java-6-sun-1.6.0.03/bin/java !item /usr/lib/jvm/java-7-icedtea/bin/java !ei !subnode Arcor DNS-Server Wenn die Namensauflösung sehr lange (7-10 Sek) dauert, kann das an einer fehlerhaften DNS-Namensauflösung liegen. Dann sollten einfach die Namensserver des Providers an die oberste Stelle eingetragen werden. Unter kubuntu finden sich dies in Systemeinstellungen / Netzwerkeinstellungen / Namensauflösung. Die Namensserver für Arcor im Linux /etc/resolv.conf Format lauten: !bi !short !item nameserver 145.253.2.11 !item nameserver 145.253.2.75 !item nameserver 145.253.2.171 !item nameserver 145.253.2.203 !item nameserver 195.50.140.114 !item nameserver 145.253.2.196 !item nameserver 145.253.2.81 !item nameserver 145.253.2.174 !ei !subnode OpenOffice !subsubnode Fenster andocken Mit +Doppelklick auf Menüleiste des anzudockenden Fensters wird ein freigestelltes Fenster wieder angedockt. !subsubnode Kprinter als Standard setzen !be !short !item In der Konsole als root anmelden !item (!T) /usr/lib/ooo-2.0/program/spadmin (!t) bzw. (!T) /opt/openoffice.org2.0/program/spadmin (!t) starten !item new printer !item Connect a PDF converter !item default driver !item (!T)kprinter (--)stdin(!t) eingeben !item Kprinter nennen !item default setzen !ee !subnode Moneyplex !alias moneyplex Hinweise zur Installation unter Linux unter: (!url [http://www.matrica.de/service/faq3.html] [http://www.matrica.de/service/faq3.html]) (!nl) (!nl) Weiterhin müssen die xfonts-75dpi installiert werden (ansonsten werden die Schriften sehr unklar dargestellt: (!nl) (!T) sudo apt-get install xfonts-75dpi xfonts-75dpi-transcoded (!t) (!nl) Anschließend System neu starten! !subnode SecurStick !alias blkid SecurStick ist ein Programm zum einfachen Verschlüsseln von Daten auf einem USB-Stick. Download unter (!url [http://www.withopf.com/tools/securstick/] [http://www.withopf.com/tools/securstick/]) (!nl) Damit ein Stick, der mit FAT formatiert ist, unter Linux ausführbar gemountet wird, muss der USB-Stick in der fstab eingetragen werden. !be !short !item UUID des Stick ermitteln mit (!T) sudo blkid (!t) !item Ergänzung der /etc/fstab mit: (!nl) (!V) UUID=3D72-8344 /media/USB-Stick vfat defaults,users,noauto,exec 0 0 (!v) !ee !subnode Googleearth Googleearth zeigt in der Version 4.3 eine sehr kleine Menüschrift an. Die Lösung: (!nl) In der Datei (!T) ~/.config/Google/GoogleEarthPlus.conf (!t) folgenden Eintrag ändern: !begin_verbatim [Render] GuiFontSize=12 !end_verbatim !subnode Joomla Joomla ist ein populäres CMS-System. Um lokal auf dem eigenen Rechner exprimentieren zu können, bietet sich eine Installation von (!T) lampp (!t) an. lampp ist die Linux-Version von xampp (Paket von Apache, MySQL und FTP-Programm) das bei (!url [http://www.apachefriends.org/] [http://www.apachefriends.org/]) heruntergeladen werden kann. !subsubnode lampp Die Installation von lampp: !bi !short !item lampp nach /opt kopieren mit (!T) tar xvfz xampp-linux-1.6.7.tar.gz -C /opt (!t) entpacken !item mit (!T) /opt/lampp/lampp start (!t) starten !item mit (!T) http://localhost/ (!t) testen !ei !subsubnode MySQL !bi !short !item (!T) http://localhost (!t) im Browser eingeben !item phpMyAdmin anklicken !item Datenbank anlegen !item (!T) Server: localhost (!t) anklicken !item (!T) Rechte (!t) anklicken !item (!T) Neuen Benutzer hinzufügen (!t) !item Benutzename eingeben !item Host -> localhost !item Kennwort angeben !item "Gewähre alle Rechte auf Datenbanken" enklicken !item Globale Rechte -> Alle auswählen !item OK anwählen !ei !subsubnode xampp beim Systemstart starten Runlevel mit who -r herausfinden (!nl) In den entsprechenden Runlevel wechseln: (!T) cd /etc/rc2.d (!t) (!nl) Links erstellen: (!nl) (!T) ln -s /opt/lampp/lampp S99lampp (!t) (!T) ln -s /opt/lampp/lampp K01lampp (!t) !subsubnode Joomla installieren Joomla wird von (!url [http://www.joomla.de/] [http://www.joomla.de/]) heruntergeladen und dann installiert: !bi !short !item Entpacken in das Verzeichnis (!T) /opt/lampp/htdocs/joomla/ (!t) (!nl) dazu zuerst das Verzeichnis mit (!T) sudo mkdir /opt/lampp/htdocs/joomla (!t) erstellen, dann mit (!T) sudo unzip Joomla_1.5.14-Stable-Full_Package_German.zip -d /opt/lampp/htdocs/joomla/ (!t) entpacken !item Erstellen der Datei (!T) configuration.php (!t) in (!T) /opt/lampp/htdocs/joomla/ (!t) mit (!T) sudo touch /opt/lampp/htdocs/joomla/configuration.php (!t) !item Ändern der Rechte mit (!T) sudo chmod 777 /opt/lampp/htdocs/joomla/configuration.php (!t) !item mit (!T) http://localhost/joomla (!t) konfigurieren !ei !subsubsubnode Joomla mysql-error Joomla mysql-error bei benutzerverwaltung: folgende Zeilen in der Datei (!T) /plugins/content/cdpetitions/table/cdpetitions.php (!t) abändern: !begin_verbatim Ersetze in Linie 107: ') TYPE=MyISAM;'; In: ') ENGINE=MyISAM;'; !end_verbatim !subnode Evolution !alias evolution !subsubnode Evolution reagiert nicht mehr Wenn Evolution bei der Anzeige der E-Mails hängt, hat es geholfen, einfach mal die Datei ~/.evolution/mail/local/folders.db umzubenennen. Wenn man Evolution danach öffnet, werden die E-Mails in den Ordnern neu eigelesen, was eine Weile dauern kann. Mit (!V) evolution --force-shutdown (!v) lässt sich Evolution beenden. !subsubnode Feiertage und Ferien Auf (!url [sunbird-kalender.de] [http://www.sunbird-kalender.de/extension/kalender/]) gibt es die deutschen Daten im .ics-Format. Diese kann man dann einfach in den Kalender von Evolution einbinden: Es ist empfehlenswert, einen separaten Kalender anzulegen und die Daten dort zu speichern, ist dann farblich übersichtlicher: (!T) "Datei -> Neu -> Kalender -> Typ: "Auf diesem Computer" -> Name: z.B. "Feiertage" -> andere Farbe auswählen als der normale Kalender" (!t) (!nl) importieren: (!nl) (!T) "Datei -> importieren -> vor -> einzelne Datei -> vor -> Dateiname: runtergeladene Datei auswählen -> Dateityp: "iCalendar-Dateien (.ics)" -> passenden Kalender auswählen (z.B. "Feiertage") -> vor -> importieren". (!t) !subsubnode Synchronisation Evolution lässt sich sehr einfach mit dem Kalender von Google synchronisieren. Dazu muss man einfach einen neuen Kalender anlegen, als Art >Google< auswählen und den Google-Benutzernamen angeben. über "Liste abrufen" lassen sich dann, nach Angabe des Passwortes, alle eigenen Googlekalender einbinden. Diese werden dann automatisch synchronisiert. !subnode MuseScore Verzeichnis für Plugins: .local/share/data/MusE/MuseScore/plugins !subnode Synaptic Wenn die Schnellsuche in Synaptic fehlt: (!nl) (!T) sudo apt-get install apt-xapian-index (!t) (!nl) (!T) sudo apt-get install apt aptitude synaptic (--)reinstall (!t) #------------------------------------------------------------------------------------------------------------------------- !node Distributionen Übersicht und Download unter: (!url [http://distrowatch.com/] [http://distrowatch.com/]) !subnode Debian Download von (!url [http://www.debian.de/CD/] [http://www.debian.de/CD/]) Linux Mint Debian (LMDE) ist eine sehr gute Debian-Distribution, die Debian in der Grundinstallation um viele Multimediaerweiterungen und eine etwas einfachere Konfiguration erweitert. Download unter (!url [http://linuxmint.com/] [http://www.linuxmint.com/download_lmde.php]) Hilfe zu LinuxMint findet man unter: (!url [http://www.linuxmintusers.de/] [http://www.linuxmintusers.de/]) Debian aktualisiert sich über ein sogenanntes Rolling-Release. Das bedeutet, dass sich das System kontinuierlich selbst auf dem neuesten Stand hält. Im Idealfall installiert man einmal sein System und muss dann jahrelang nichts mehr tun. Ein tolles Nachschlagewerk zu Debian findet sich unter: (!url [http://debiananwenderhandbuch.de/] [http://debiananwenderhandbuch.de/]) Wer Programme unter Debian vermisst wird hier fündig: (!url [http://people.debian.org/~bartm/borg/missing.html] [http://people.debian.org/~bartm/borg/missing.html]) !subsubnode Quellen !alias Original-Debian-Quellen Für die Original-Debian-Quellen muss in die sources.list folgendes eingetragen werden: !begin_verbatim deb http://ftp.de.debian.org/debian/ stable main contrib non-free deb http://security.debian.org/ stable/updates main contrib non-free !end_verbatim !subsubnode Neue sources.list für LMDE !begin_verbatim deb http://packages.linuxmint.com/ debian main upstream import backport romeo deb http://debian.linuxmint.com/latest testing main contrib non-free deb http://debian.linuxmint.com/latest/security testing/updates main contrib non-free deb http://debian.linuxmint.com/latest/multimedia testing main non-free # Virtualbox deb http://download.virtualbox.org/virtualbox/debian squeeze contrib non-free # deb-src http://download.virtualbox.org/virtualbox/debian squeeze contrib non-free # Opera Browser deb http://deb.opera.com/opera/ stable non-free # Original-Debian-Quellen (z.B. für wine) # deb http://ftp.de.debian.org/debian/ stable main contrib non-free # deb http://security.debian.org/ stable/updates main contrib non-free !end_verbatim !subsubnode Grafiktreiber !subsubsubnode ATI-Grafiktreiber (!T) sudo apt-get install (--)yes fglrx-control fglrx-glx fglrx-modules-dkms (!t) (!nl) (!T) sudo aticonfig (--)initial (!t) !subsubsubnode Nvidia-Grafiktreiber (!T) sudo apt-get install (--)yes nvidia-kernel-dkms nvidia-glx build-essential nvidia-settings nvidia-xconfig (!t) (!nl) (!T)sudo nvidia-xconfig (!t) Für die Hardware-Beschleunigung von HD-Videos über VDPAU wird das Paket libvdpau1 benötigt. (!T) sudo apt-get install (--)yes libvdpau1 (!t) (!nl) Sollte danach die CPU-Belastung beim Abspielen von HD-Videos noch immer sehr hoch sein oder unschönes Tearing auftreten, sorgt der Befehl: (!T) sudo nvidia-xconfig (--)no-composite (!t) und ein anschließender Neustart für Abhilfe. !subsubsubnode Netzwerk geht nach Installation von ffmpeg nicht mehr Bei der Installation von ffmpeg wird unerklärlicherweise (!T) dnet-common (!t) mitinstalliert. Dieses Programm führt zu einer Veränderung der MAC-Adresse und der IP-Adresse, woraufhin der rechner meist nicht mehr ins Netzwerk kommt. Die einfachste Lösung ist mittels (!T) dpkg -r dnet-common (!t) das Programm sofort wieder zu deinstallieren. !subsubsubnode Beep beim Login abschalten Wenn der Lautsprecher-Beep beim Login stört, so lässt sich dieser folgendermaßen abschalten: (!T) echo "options snd_hda_intel beep_mode=0" >> /etc/modprobe.d/alsa-base.conf (!t) (!nl) (!T) echo "blacklist pcspkr" >> /etc/modprobe.d/blacklist.conf (!t) !subsubnode Der Debian-Bootvorgang (!B) Das init-Programm (!b) (!nl) Wie alle Unices, wird Debian durch das Programm init gestartet. Die Konfigurationsdatei für init (dies ist /etc/inittab) gibt an, dass das erste zu startende Skript /etc/init.d/rcS ist. Dieses Skript startet alle anderen Skripte in /etc/rcS.d/, entweder indem diese eingebunden oder explizit als Unterprozess aufgerufen werden, je nach Dateierweiterung. Diese Skripte initialisieren das System indem sie z.B. Dateisysteme überprüfen und einbinden, Module laden, Netzwerk-Dienste starten, die Uhrzeit setzen, u.a. Danach werden zwecks Kompatibilität die Dateien (mit Ausnahme der mit einem `.' im Dateinamen) in /etc/rc.boot/ ausgeführt. Jedes Skript in diesem Verzeichnis ist normalerweise dem Systemadministrator vorbehalten, die Verwendung dieser in Paketen wird missbilligt. Vergleichen Sie Hinweise zur System-Inititalisierung, Abschnitt 9.1 und System run levels and init.d scripts in den Debian-Richtlinien für weitere Informationen. (!nl) (!nl) (!B) Runlevel (!b) (!nl) Nach dem Bootprozess führt init alle Startskripte in einem durch das Standard-Runlevel festgelegten Verzeichnis aus. (Dieses Runlevel wird durch den Eintrag id in /etc/inittab festgelegt). Wie viele System-V-kompatible Unixe hat Linux 7 Runlevel: !bi !short !item 0 (Anhalten des Systems), !item 1 (Einzelnutzer Modus), !item 2 bis 5 (verschiedene Mehrbenutzer-Modi) und !item 6 (Neustart des Systems). !ei Für Debian-Systeme gilt id=2, was bedeutet, dass das Standard-Runlevel 2 sein wird, wenn der Mehrbenutzer-Modus aktiv ist und die Skripte in /etc/rc2.d/ werden ausgeführt. (!nl) In Wirklichkeit sind die Skripte in den Verzeichnissen /etc/rcN.d/ nur symbolische Links zu Skripten in /etc/init.d/. Dennoch werden die Namen der Dateien in jedem der /etc/rcN.d/-Verzeichnisse individuell gewählt, um anzugeben wie die Skripte in /etc/init.d/ gestartet werden. Speziell werden bevor ein Runlevel aktiv wird, alle Skripte die mit `K' beginnen ausgeführt; diese Skripte beenden Dienste. Danach werden alle Skripte die mit `S' beginnen gestartet; diese Skripte starten Dienste. Die zweistellige dem `K' oder `S' folgende Nummer bestimmt die Reihenfolge der Ausführung. Skripte mit kleinerer Nummer werden zuerst ausgeführt. (!nl) Dieses Vorgehen funktioniert, da die Skripte in /etc/init.d/ alle ein Argument akzeptieren, das entweder "start", "stop", "reload", "restart" oder "force-reload" sein kann und eine dem Argument entsprechende Aktion ausführen (starten, stoppen, neuladen, neustarten, erzwinge Neuladen). Diese Skripte können auch ausgeführt werden, nachdem das System gebootet wurde, um verschiedene Prozesse zu kontrollieren. (!nl) Zum Beispiel führt das Argument "reload" im Kommando (!nl) (!T) /etc/init.d/exim4 reload (!t) (!nl) dazu, dass der exim4-Daemon ein Signal zum erneuten Einlesen der Konfigurationsdatei erhält. (!nl) (!B) Anpassen des Bootvorgangs (!b) (!nl) Debian verwendet kein BSD typisches rc.local Verzeichnis, um den Bootvorgang anzupassen; stattdessen wird folgender Mechanismus angeboten. (!nl) Angenommen foo sei ein Skript, das während des Startvorgangs oder beim Übergang in ein bestimmtes (System V) Runlevel aufgerufen werden soll. Dann sollte der Systemadministrator: (!nl) Das Skript foo in das Verzeichnis /etc/init.d/ verschieben. (!nl) Das Debian-Kommando update-rc.d mit entsprechenden Argumenten starten, um Links zwischen den (Kommandozeilen spezifischen) Verzeichnissen rc?.d und /etc/init.d/foo anzulegen. Dabei bezeichnet ? eine Nummer von 0 bis 6, die einem der System V Runlevel entspricht. (!nl) (!nl) (!B) Das System neu booten (!b) (!nl) Das Kommando update-rc.d setzt Links zwischen Dateien im Verzeichnis rc?.d und dem Skript in /etc/init.d/. Jeder Link beginnt mit einem `S' oder `K', gefolgt von einer Nummer, gefolgt vom Namen des Skripts. Beim Wechsel in das Runlevel N, werden Skripte in /etc/rcN.d/ die mit `K' beginnen mit stop als Argument ausgeführt, gefolgt von den mit `S' beginnenden Skripten in /etc/rcN.d/ mit start als Argument. (!nl) Man kann z.B. das Skript foo beim Booten ausführen lassen, indem man es nach /etc/init.d/ verschiebt und die Links mit update-rc.d foo defaults 19 erstellt. Das Argument defaults bezieht sich auf das Standard-Runlevel, welches zwischen 2 und 5 liegt. Das Argument 19 sichert, dass foo vor allen Skripten, welche die Nummern 20 oder größer enthalten, gestartet wird. !subsubnode NVIDIA-Treiber installieren Installation des nVidia-Treibers mit dem module-assistant (für vorkompilierte Kernel) (!nl) (!nl) !be !short !item Kernel-Modul installieren (muss für jeden neuen Kernel wiederholt werden) (!nl) (!nl) (!T) apt-get install module-assistant nvidia-kernel-common (!nl) m-a update (!nl) m-a prepare (!nl) # für neue Grafikkarten (!nl) m-a a-i nvidia (!nl) # für ältere Grafikkarten (!nl) m-a a-i nvidia-kernel-legacy-96xx-source (!nl) (!nl) (!t) !item nVidia user-space libraries installieren (!nl) (!T) # für neue Grafikkarten ($NVDIST = stable, testing oder unstable) (!nl) apt-get -t $NVDIST install nvidia-glx (!nl) # für ältere Grafikkarten ($NVDIST = stable, testing oder unstable) (!nl) apt-get -t $NVDIST install nvidia-glx-legacy-96xx (!t) (!nl) (!nl) !item Konfiguration anpassen (!nl) (!T) vim /etc/X11/xorg.conf (!t) (!nl) (!nl) (!B) unter "Module" (!b) (!nl) (!T) Load "glx" einfügen (!nl) Load "dri" auskommentieren (!nl) Load "GLCore" auskommentieren (!nl) (!t) (!B) unter "Device" (!b) (!nl) (!T) Driver "nvidia" (!t) (!nl) (!nl) !item alle Benuter der Gruppe "video" hinzufügen !ee !subsubnode Besonderheiten NVIDIA-Legacy-Treiber Für ältere NVIDIA-Grafikkarten muss der Legacy-Treiber installiert werden. Die Treiber werden jedoch nicht in das Verzeichnis installiert, in dem der X-Server sie sucht. Daher müssen sie von "Hand" kopiert werden. Hierfür die Inhalte der Verzeichnisse "dirvers" und "extensions" von /usr/lib/xorg/modules nach /usr/X11R6/lib/modules kopieren. !subsubnode 32Bit-Programme unter Debian 64bit Damit auch 32Bit-Anwenungen unter einer 64Bit-umgebung ausgeführt werden müssen die ia32-libs installiert werden: (!nl) (!nl) (!T) sudo apt-get install ia32-libs lib32gomp1(!t) !subnode ubuntu / kubuntu !alias ubuntu !alias kubuntu Download von (!url [http://www.ubuntu.com/] [http://www.ubuntu.com/]) !subsubnode Upgrademanager starten: (!T) update-manager -d (!t) !subsubnode Benutzer root anlegen (!T) sudo passwd root (!t), Passwort eingeben und fertig. !subsubnode sources.list Die Datei sources.list befindet sich in /etc/apt/ (!nl) Ermittlung der schnellsten Server mit apt-spy (!nl) !subsubnode verschiedene ubuntu-Desktops installieren !bi !short !item KDE: (!T) apt-get install kde-desktop (!t) !item Gnome: (!T) apt-get install ubuntu-desktop (!t) !item Edubuntu: (!T) apt-get install edubuntu-desktop (!t) !item Xfce Desktop: (!T) xubuntu-desktop (!t) !item ubuntuStudio: (!T) apt-get install ubuntustudio-desktop (!t) (!nl) Für Audioanwendungen ist es sinnvol einen Realtime-Kernel zu installieren, um die Latenzzeit möglichst gering zu halten. Vorgehensweise: (!nl) Installieren von (!T) linux-rt , linux-restricted-modules-rt (optional) , linux-backports-modules-rt (optional) (!t) (!nl) Danach die Datei /etc/security/limits.conf editieren: (!nl) (!T) @audio - rtprio 90 (!nl) @audio - nice -10 (!nl) @audio - memlock 4000000 (!t) !ei !subsubnode Bootlogo ändern (!T) sudo update-alternatives (--)config default.plymouth (!t) (!nl) (!T) sudo update-initramfs -u -k all (!t) !subsubnode Minimalsystem installieren mit der Alternate-CD booten und mit F4 "Kommandozeilensystem" auswählen (!nl) Dann werden die Quellen für LXDE hinzugefügt: (!nl) (!T) echo "deb http://ppa.launchpad.net/lxde/ppa/ubuntu hardy main" > /etc/apt/sources.list.d/lxde.list (!t) (!nl) (!T) sudo apt-key adv (--)recv-keys (--)keyserver keyserver.ubuntu.com 7992E892 (!t) (!nl) ein X-System wird dann mit (!T) apt-get install xterm xorg xinit lxde lxterminal gdm (!t) installiert (!nl) als weitere Fenstermanager bieten sich an: !bi !short !item Openbox: (!T) sudo aptitude install openbox obconf openbox-themes (!t) !item IceWM: (!T) sudo aptitude install icewm iceconf icepref iceme icewm-themes (!t) !item Fluxbox: (!T) sudo aptitude install fluxbox fluxconf (!t) !ei !subnode SuSE Download von (!url [http://de.opensuse.org/] [http://de.opensuse.org/]) !subsubnode Grundinstallation !be !short !item CD bzw. DVD einlegen und booten !item "Installation" auswählen !item Den Anweisungen am Bildschirm folgen !item "KDE" anwählen !item Die Partitionierung sollte umgeändert werden: !bi !short !item root-Partiion mit ca. 6 GB !item home-Partition mit dem restlichen Festplattenspeicher (Achtung: Wenn das home-Verzeichnis schon vorhanden ist, nicht formatieren!) !item Formatieren mit Reiser !item Die Swap-Partition muss auf jedem Linux-System vorhanden sein !ei !ee !subsubnode Fehlende Pakete Im YaST muss unter "Software/Installationsquelle wechseln" unter "Hinzufügen" "HTTP" angewählt werden. Bei Hinzufügen gibt man als Servername: (!nl) (!T) Packman: packman.iu-bremen.de/suse/10.0 (!nl) Wesnoth: gumbeargang.de/rpm/wesnoth/10.0 (meist nicht erreichbar) (!nl) Fernández: www.polinux.upv.es/!~vfernandez/suse/10.0 (meist nicht erreichbar) (!nl) *Super: opensuse.linux.co.nz/apt/suser-agirardet/10.0 (meist nicht erreichbar) (!nl) Schiele: pi3.informatik.uni-mannheim.de/!~schiele/suse/10.0 (!nl) JArpack: jarpack.com/suse/10.0 (!nl) SUSE: sunsite.informatik.rwth-aachen.de/ftp/pub/linux/suse/i386/10.0/SUSE-Linux10.0-GM-Extra (!nl) KDE: software.opensuse.org/download/repositories/KDE:/KDE3/SUSE_Linux_10.0 (!t) (!nl) (!nl) Dann unter "Hinzufügen" "FTP" auswählen und die folgende Serveradressen eintragen: (!nl) (!T) usr local bin: ftp.gwdg.de/pub/linux/usr-local-bin/10.0 (!nl) Jengelh: ftp.gwdg.de/pub/linux/misc/suser-jengelh/SUSE-10.0 (!nl) SUSE: ftp.gwdg.de/pub/suse/i386/10.0/SUSE-Linux10.0-GM-Extra (!nl) GNU_Cash: ftp.gwdg.de/linux/misc/suser-crauch/10.0 (!nl) Guru: ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/10.0 (!nl) Packman: packman.links2linux.de/pub/packman/suse/10.0 (!nl) Socorot: ftp.gwdg.de/pub/linux/misc/suser-scorot/suse100 (!nl) SUSE: ftp.gwdg.de/pub/opensuse/distribution/SL-10.0-OSS/inst-source (!nl) oder download.opensuse.org/distribution/SL-10.0-OSS/inst-source (!nl) SUSE: ftp.gwdg.de/pub/opensuse/distribution/SL-10.0-OSS/inst-source-java (!nl) oder download.opensuse.org/distribution/SL-10.0-OSS/inst-source-java (!nl) SUSE: ftp.gwdg.de/pub/suse/i386/10.0/inst-source-extra (!nl) Packman: packman.links2linux.de/pub/packman/suse/10.0 (!nl) Jack-Lab: ftp.gwdg.de/pub/linux/misc/jacklab/SUSE-10.0 (nur für spezielle Musik-PCs) (!nl) Suser-liviudm: ftp.gwdg.de/pub/linux/misc/suser-liviudm/10.0 (!nl) Suser-oc2pus: ftp.gwdg.de/linux/misc/suser-oc2pus/10.0 (!nl) Suser-scrute: ftp://ftp.gwdg.de/pub/linux/misc/suser-scrute/suse10 (!nl) GNOME: ftp.uni-bayreuth.de/pub/linux/suse/i386/supplementary/GNOME/update_for_10.0/yast-source (!nl) GNOME: ftp://ftp.gwdg.de/pub/suse/i386/supplementary/GNOME/update_for_10.0 (!nl) Funktronics: ftp.funktronics.ca/pub/rpm/SuSE-10.0 (!t) !subsubnode rpm !subsubsubnode rpm installieren (!T) rpm -iv (!t) (!nl) Update: (!T) rpm -Uhiv (!t) (!nl) (!T) yast -i (!t) !subsubsubnode ist des Paket installiert? (!T) rpm -qa | grep (!t) !subsubsubnode welches Paket beinhaltet das Programm? (!T) rpm -qf /vollstaendiger_pfad/dateiname (!t) !subsubsubnode rpm-entpacken (!T) rpm2cpio | cpio -idmv (--)no-absolute-filenames (!t) !subsubsubnode Programm aus der Installationsliste austragen (!T) rpm -e (--)justdb wine (!t) wine wird ausgetragen !subsubnode Grafiktreiber !alias sax2 Alle Einträge zur Grafik finden sich in /etc/X11/xorg.conf (!nl) Mit (!T) sax2 -p (!t) erfährt man nähere Informationen zu der Grafikkarte (!nl) Wenn die Installation eines Grafiktreibers fehlgeschlagen hat, kann man mit (!nl) (!T) init 3 (!t) herunterfahren in den Runlevel 3 (!nl) (!T) sax2 -nv (!t) bzw. (!T)switch2nv(!t) Standard-Einstellung wiederherstellen (!nl) (!T) sax2 -m 0=nvidia (!t) stellt den Nvidia-Treiber ein (!nl) (!T) sax2 -m 0=vesa (!t) stellt den Standard-Treiber ein !subsubnode Klassisch mounten Im Verzeichnis /usr/share/hal/fdi/policy/ die Datei noautomount.fdi mit folgendem Inhalt anlegen: (!nl) (!T) (!nl) (!nl) (!nl) ~ (!nl) ~~~ (!nl) ~~~~~ false (!nl) ~~~ (!nl) ~ (!nl) (!t) (!nl) (!nl) Danach als root (!T) rchal restart (!t) ausführen. (!nl) (!nl) In der Datei /etc/fstab müssen die Zeilen für Wechselmedien folgendermaßen abgeändert werden: (!nl) (!T) /dev/dvd /media/dvd auto noauto,ro,user,exec,iocharset=utf8 0 0 (!nl) /dev/sda1 /media/usbstick auto noauto,user,exec,async 0 0 (!nl) /dev/fd0 /media/floppy auto noauto,user,exec,async 0 0 (!t) (!nl) (!nl) Mit (!T) mount -a (!t) wird die fstab wieder neu eingelesen. (!nl) (!nl) Das automatische Öffnen von Speichermedien muss abgeschaltet werden ("Diese Einstellung merken.") (!nl) (!nl) Einstellungen zu HAL, Automount... finden sich unter Kontrollfeld / Angeschlossene Geräte / Speichermedien / Erweitert. !subnode System-Rescue-CD Download von (!url [http://www.sysresccd.org] [http://www.sysresccd.org]) (!nl) !subsubnode Bootparameter !bi !short !item ntpasswd: Windows-Passwörter ändern !item hdt: Systemdiagnose !item memtest: Speichertest !item freedos: DOS !item mhdd Hard Disk Drive Diagnose !item grubdisk: Super Grub Disc !ei !subsubnode Netzwerkzugriff (!T) net-setup eth0 (!t) !subsubnode Image erstellen (!U) Mounten:(!u) (!nl) (!T) mkdir /mnt/home (!nl) mount /dev/sda5 /mnt/home(!t) (!nl) (!U) Bootsektor sichern:(!u) (!nl) (!T) sfdisk -d /dev/sda > part.info (!nl) dd if=/dev/sda of=./part.mbr bs=512 count=1(!t) (!nl) (!U) Partition sichern:(!u) (!nl) (!T) partimage(!t) !subsubnode Image einlesen (!U) Mounten:(!u) (!nl) (!T) mkdir /mnt/home (!nl) mount /dev/sda5 /mnt/home(!t) (!nl) (!U) Partition lesen:(!u) (!nl) (!T) partimage (!nl) reboot (!t) !subsubnode SystemRescueCD von Festplatte starten Wird die SystemRescueCD für regelmäßige Systembackups benötigt, so kann diese auf der Festplatte installiert und über Grub gestartet werden. Hierzu sind folgende Schritte notwendig: !be !short !item Auf einer Partition (die später nicht gesichert werden soll!) den Ordner (!T) /sysrcd (!t) erstellen !item Aus dem ISO-File der SystemRescureCD die Dateien (!T) /sysrcd.dat, . /sysrcd.md5, /isolinux/initram.igz (!t) und (!T) /isolinux/rescuecd (!t) direkt in den Ordner (!T) /sysrcd (!t) kopieren. !item Grub anpassen (!nl) Folgende Zeilen in (!T) /boot/grub/menu.lst (!t) einfügen: (!nl) (!nl) title SystemRescueCd (!nl) root (hd1,1) (!nl) kernel /sysrcd/rescuecd subdir=sysrcd setkmap=de vga=791 (!nl) initrd /sysrcd/initram.igz (!nl) boot (!nl) (!nl) Folgende Einträge müssen angepasst werden: !bi !short !item (!B) root (hdx,x) (!b) Hierbei beachten, dass Grub bei "0" beginnt zu zählen: hdb2 = (hd1,1)! !alias VGA-Modus !alias Framebuffer !item (!B) vga=xxx (!b) !begin_table c|c|c|c|c !hline Farbtiefe !! 640x480 !! 800x600 !! 1024x768 !! 1280x1024 !hline 8 bit !! 769 !! 771 !! 773 !! 775 15 bit !! 784 !! 787 !! 790 !! 793 16 bit !! 785 !! 788 !! 791 !! 794 24 bit !! 786 !! 789 !! 792 !! 795 !hline !end_table !ei !end_enumerate !subsubnode SystemRescueCD auf USB-Stick installieren !be !short !item Von der CD booten !item Den USB-stick einstecken und 5 Sekunden warten !item Schreibe (!T) sysresccd-usbstick listdev (!t) um die USB-Device anzuzeigen !item Schreibe (!T) sysresccd-usbstick writembr xxx (!t) xxx ist der Name der USB-Device !item Schreibe (!T) sysresccd-usbstick format xxx (!t) xxx ist der Name der Partition auf der Device !item Schreibe (!T) sysresccd-usbstick copyfiles xxx (!t) xxx ist der Name der Partition auf der Device !item Schreibe (!T) sysresccd-usbstick syslinux xxx (!t) xxx ist der Name der Partition auf der Device !ee oder !be !short !item auf die konsole1 wecheln (Strg+Alt+F1) !item (!T) export TERM="xterm1" (!t) !item (!T) mkdir -p /tmp/cdrom (!t) !item (!T) sudo mount -o loop,exec /path/to/systemrescuecd-x86-x.y.z.iso /tmp/cdrom (!t) !item (!T) cd /tmp/cdrom (!t) !item (!T) sudo umount /dev/sdc1 (!t) !item (!T) bash ./usb_inst.sh (!t) !ee !subsubnode partimage automatisieren !begin_verbatim #! /bin/bash # Startwerte setzen src_part=hda2 dst_part=hdb3 path="backup/sysbackup" # Zielpartition mounten mkdir /mnt/$dst_part mount /dev/$dst_part /mnt/$dst_part echo Wait for /dev/$dst_part to be mounted ... while [ ! -d "/mnt/$dst_part/$path" ]; do sleep 1 done # Backup starten datum=`date +%y%m%d` partimage -z1 (--)volume 2085888 -b -f3 save /dev/$src_part /mnt/$dst_part/$path/sysbackup_$datum # Zielpartition unmounten echo Wait for /dev/$dst_part be unmounted ... while [ -d "/mnt/$dst_part/$path" ]; do umount /dev/$dst_part sleep 1 done rm -rf /mnt/$dst_part # System neu starten echo Restarting system ... reboot !end_verbatim !subsubnode Partitionen verändern / erstellen Nach dem Booten der System-Rescue-CD wird mit (!T) startx (!t) die grafische Oberfläche gestartet und dort das Programm gparted aufgerufen. Nun können Partitionen sehr einfach verschoben, verändert oder gelöscht werden. Achtung: Es besteht immer die Gefahr eines Datenverlustes!!! Also zuerst alle Daten sichern! (!nl) Für eine Linux-Installation ist eine sinnvolle Partitionierung folgende: !bi !item erste Partition mit ca. 20GB für root ( / ) !item zweite Partition für die Daten mit dem Rest außer 1GB ( /home) !item ein Swap-Bereich mit 1GB !ei !subnode PCLinuxOS Mit PCLinuxOS lassen sich sehr einfach eigene Live-CDs bzw. DVDs erstellen. (!nl) Dazu muss man einfach das System installieren, es individuell anpassen und dann mit dem Menüeintrag "MakeLiveCD" eine eigene Distribution erstellen lassen. Die maximale Dateigröße des komprimierten Images liegt bei 2GB. (!nl) Download von (!url [http://www.pclinuxos.com/] [http://www.pclinuxos.com/]) (!nl) Die deutsche Lokalisierung wird durch herunterladen der Pakete (!T) kde-i18n-de (!t) und (!T) locales-de (!t) eingestellt. (!nl) zusätzliche Quellen: (!T) http://maik3531.de/ pclos2007/RPM testing exp exp2 (!t) (!nl) (!T) http://distro.ibiblio.org/pub/linux/distributions/pclinuxos/apt/ pclinuxos/2007 main extra nonfree kde gnome testing (!t) !subsubnode lampp installieren Als root /opt/lampp/lampp öffnen und Zeile 96 von: (!T) export LD_ASSUME_KERNEL=2.2.5 (!t) nach (!T) echo "LAMPP OK" (!t) ändern. Die Datei /opt/lampp/etc/httpd.conf öffnen und der (!T) )"LoadModule" section (!t) folgende Zeile hinzufügen: (!T) LoadModule php5_module modules/libphp5.so (!t) und der (!T) IfModule mime_module (!t) diese Zeile (!T) AddType application/x-httpd-php .php .php5 (!t) hinzufügen !subnode Knoppix Linux-Live-CD/DVD (!nl) Download von (!url [http://www.knopper.net/knoppix] [http://www.knopper.net/knoppix]) (!nl) !subnode Backtrack Sicherheitscheck: Download von (!url [http://www.remote-exploit.org] [http://www.remote-exploit.org]) !subnode Damn Small Linux 50MB großes Linux (!nl) Download von (!url [http://www.damnsmalllinux.org] [http://www.damnsmalllinux.org]) !subnode Ultimate Boot CD Eigentlich keine Distribution, aber die wohl umfassendste Diagnose- und Reparatur-CD (!nl) Download von (!url [http://www.ultimatebootcd.com] [http://www.ultimatebootcd.com]) !subnode S100 (T-Online) zum Mediacenter umrüsten !alias S100 !alias Mediacenter Der Umbau ist in folgenden Dokumenten sehr ausfühlich beschrieben. Der einfachste Weg ist unter wieki.mymediasystem.org (s.u.) beschrieben, da die dort verwendete Version des MMS direkt auf die S100 zugeschnitten wurde und sämtliche Treiber installiert und alle wichtigen Einstellungen vornimmt. !bi !short !item LinuxUser 10/2008, S71ff !item LinuxUser 11/2008, S64ff !item (!url [wiki.mymediasystem.org/Installation_debian_etch_auf_vision_s100] [http://wiki.mymediasystem.org/wiki/index.php/Installation_debian_etch_auf_vision_s100]) !item (!url [wiki.zenega-user.de/Intel-Motherboard] [http://wiki.zenega-user.de/index.php?title=Intel]) !item (!url [wiki.zenega-user.de/Netzteil] [http://wiki.zenega-user.de/index.php?title=Netzteil]) !item (!url [wiki.zenega-user.de/Modifikationen] [http://wiki.zenega-user.de/index.php?title=Modifikationen]) !item (!url [www.ccac.rwth-aachen.de/S100] [http://www.ccac.rwth-aachen.de/~michaels/index.php/hardware/s100]) !item (!url [www.albert-hetzles.de/s100] [http://www.albert-hetzles.de/s100/]) !ei !subsubnode Hardware anpassen Zunächst muss die Hardware angepasst werden. Hierzu gibt es wie oben ganannt sehr ausführliche Anleitungen. Folgende Modifikationenen sind zwingend erforderlich: !bi !short !item (!B)Adapterkabel für VGA-Ausgang(!b) (Pfostenstecker J22 auf VGA-Buchse) !begin_table [c|c|c|c|c|c|c|c|c|c|c] !hline J22 !! 1 !! 2 !! 3 !! 4 !! 5 !! 6 !! 7 !! 8 !! 9 !! 10 VGA !! 1 !! 6 !! 2 !! 7 !! 3 !! 8 !! 15 !! 14 !! 12 !! 13 !end_table Brücke 8 -> 10 an der VGA-Buchse notwendig !item (!B)Ausschaltdauer verlängern(!b) (!nl) Die S100 schaltet schon wenige Sekunden nach Betätigung der Power-Taste den Strom ab. Diese Zeitspanne reicht nicht, damit das System korrekt herunterfahren kann. Durch einen 47uF-Kondensator in der Leitung 6 zum Bedienpanel (Minus-Pol zum Motherboard) kann diese Zeit verlängert werden (siehe (!url [hier] [http://wiki.zenega-user.de/index.php?title=Modifikationen])). !ei Zusätzlich werden folgende Erweiterungen empfohlen: !bi !short !item (!B)LEDs für Festplatten- und Netzwerkaktivität(!b) (!nl) Diese LEDs können schön hinter der über einige Pins zugeschweißten (Schweißstellen aufbohren) versteckt werden. Die LEDs werden am Bedienteil an den Positionen LED5 (Netzwerk) und LED10 (HDD) eingelötet (siehe (!url [hier] [http://wiki.zenega-user.de/index.php?title=Intel])). !item (!B)Festplatte(!b) (!nl) Eine 2,5"-Festplatte findet im Gehäuse (am besten rechts vorne) gut Platz. Der Vorteil einer Festplatte dieser Größe ist, dass diese nur eine 5V-Versorgungsspannung benötigt. Diese 5V liegen bei der S100 nämlich am IDE-Port am "Key-Pin" (Pin 20) an. Wird ein IDE-Kabel ohne "Key-Pin"-Kodierung verwendet, so muss im 3,5"-2,5"-Adapter vor der Festplatte nur eine Brücke vom Pin 20 auf die +5V-Stromversorgung gelegt werden. Diese Variante entlastet auch das Netzgerät der S100, da die 12V-Versorgung sehr knapp ausgelegt ist. !item (!B)Fernsehkarte(!b) (!nl) Einige Modelle haben einen PCI-Steckplatz über den (mit einer Riser-Karte mit mind. 8 cm. langem Kabel - leider sehr schwer zu bekommen) eine Fernehkarte eingebaut werden kann. Bei mir ergaben sich (mit einer DVB-S-Karte von Hauppauge) folgende Probleme: Die PCI-Ports auf dem Motherboard beeinflussen sich gegenseitig (entweder handelt es sich um ein und den selben Port, oder das Layout des Motherboards ist falsch). Demnach ist bei mir die Verwendung der Fernsehkarte nur möglich, wenn ich das WLAN-Modul am Mico-PCI-Port entferne. Weiterhin müssen im Bios alle IRQs (außer einer) unter 14 deaktiviert werden. !item (!B) Wakeup-Board einbauen (!b) (!nl) Der einbau eines Wakeup-Boards ist unter (!url [www.albert-hetzles.de] [http://www.albert-hetzles.de/s100/]) ausführlich beschrieben. !ei !subsubnode Installation Debian Etch Einen USB-Stick zur Installation von Debian Etch (zu diesem Zeitpunkt gibt es die auf die S100 zugeschnittene Version vom MMS nur für Debian Etch) erhält man am einfachsten, indem man sich das ISO-Image der Netzwerkinstallation herunterlädt und mit dem Programm (!url [unetbootin] [http://lubi.sourceforge.net/unetbootin.html]) auf den Stick überträgt. Im BIOS muss noch die Bootreihenfolge angepasst werden. (!nl) (!nl) Ohne eingebaute Festplatte benötigt man für das System einen weiteren USB-Stick mit 2 bis 4 GB. Wie in den Anleitungen beschrieben wird bei der Installation der Kernel (/boot) auf das DOM-Modul (hda1) und der Rest auf den USB-Stick (sda1) isntalliert. Entgegen den Angaben in einigen Anleitungen wurde bei mir für die Installation eine Swap-Partition (sda2 ca. 200 MB) zwingend benötigt (andernfalls kam es zu Abstürzen bei der Installation). Auch sollte die Swap-Partition im Betrieb der S100 nicht deaktiviert werden, da es sonst zu Problemen kommen kann. Die Lebensdauer des USB-Sticks wird dadruch zwar deutlich verkürzt, doch bei Prieisen von ca. 2-3 EUR dürfte dies kein Problem sein (ein regelmäßiges Backup mit partimage nach jeder Änderung am System ist sowieso zu empfehlen). Bei dieser Installationsvariante wird auch ein USB-Hub benötigt, da die beiden Ports für Tastatur, (Maus,) Boot-Stick und System-Stick nicht ausreichen. (!nl) Wenn das System nach der Installation gestartet wird, kann es vorkammen, dass sich die Laufwerksbezeichnungen - bedingt durch den nicht mehr vorhandnenen USB-Hub - verändert haben. In diesem Fall muss die menu.list von grub und die fstab manuell angepasst werden! (!nl) (!nl) Bei eingebauter Festplatte wird alles wie üblich auf der Festplatte installiert. Hier empfehlen sich drei Partitionen für /, swap und /home. !subsubnode Installation MMS Die Installation des MyMediaSystems (MMS) sollte wie in (!url [wiki.mymediasystem.org/Installation_debian_etch_auf_vision_s100] [http://wiki.mymediasystem.org/wiki/index.php/Installation_debian_etch_auf_vision_s100]) beschrieben vorgenommen werden, da auf diesem Wege sämtliche Treiber installiert und alle wichtigen Einstellungen am System vorgenommen werden. Auch wenn MMS gar nicht benötigt wird nimmt einem dieses Installationsskript sehr viel Arbeit ab. MMS kann ja anschließend wieder deinstalliert werden. !subsubnode VDR (vdr-sxfe) anstelle von MMS starten Soll MMS nicht als Standardoberfläche verwendet werden, so kann wie folgt ein anderes Programm (wie z.B. vdr-sxfe) automatisch gestartet werden. Hierzu muss die Datei /home/s100/.xsession wie folgt angepasst werden: !begin_sourcecode unclutter -idle 0& 2>&1 >/dev/null xmodmap .xmodmap 2>&1 >/dev/null xbindkeys -f .xbindkeysrc 2>&1 >/dev/null #Windowmanager Fluxbox starten fluxbox & wmpid=$! #Programme starten #mms 2>&1 >/dev/null /usr/bin/vdr-sxfe xvdr://IP-des-VDR (--)fullscreen & #Warten bis Windowmanager beendet wurde wait $wmpid !end_sourcecode !subsubnode VDR anpassen !bi !short !item (!B) Streaming freigeben (!b) (!nl) Sollen auch andere Computer auf den VDR-Stream zugreifen, so müssen diese in der Datei /etc/vdr/svdrphosts.conf freigeschalten werden (z.B. 192.168.0.0 für alle lokalen Netzwerke). Das Streaming funktioniert am einfachsten über das Plugin XineLibOutput. Angezeigt werden kann dieser Stream von jedem Rechner aus über vdr-sxfe, vdr-sxfb oder das xine-ui. !ei !subnode Multi-Boot-Medien !subsubnode Multi-Boot-CD Mit dem Script multicd.sh von (!url [http://multicd.tuxfamily.org] [http://multicd.tuxfamily.org]) kann auf sehr einfache Art und Weise eine CD/DVD erstellt werden, von der sich mehrere Systeme booten lassen. !subsubnode Multi-Boot-USB-Stick Multisystem ermöglicht es mehrere Systeme von einem USB-Stick zu booten. Download unter: (!nl) (!url [http://liveusb.info/multisystem/depot/dists/all/main/binary-i386/m/][http://liveusb.info/multisystem/depot/dists/all/main/binary-i386/m/]) (!nl) Zusätzlich wird folgende Datei benötigt: (!nl) (!url [http://liveusb.info/multisystem/depot/dists/all/main/binary-i386/g/] [http://liveusb.info/multisystem/depot/dists/all/main/binary-i386/g/]) #------------------------------------------------------------------------------------------------------------------------------- !node Desktop Unter Linux hat man die Wahl zwischen verschiedenen Desktops. Die bekanntesten sind KDE, gnome, XFCE und LXDE. !subnode gnome !subsubnode gedit Die Plugins installiert man unter: (!T) .gnome2/gedit/plugins (!t) (!nl) !subsubnode Nautilus Terminal mit F4 öffnen: Das Paket (!T) nautilus-open-terminal (!t) installieren. Dann den Menüpunkt (!T) Datei/Im Terminal öffnen (!t) mit der Maus anfahren und die Taste F4 drücken. Nach Ausführen des Befehls (!T) gconftool-2 (--)type bool (--)set /desktop/gnome/interface/can_change_accels true (!t) kann man aus Nautilus mit F4 die Konsole öffnen !subsubsubnode WebDAV-Zugriff In Nautilus greift man über (!T) dav://server:port/ordner (!t) zu !subsubnode Fenster-Buttons wieder rechts (!T) gconftool-2 (--)type string (--)set /apps/metacity/general/button_layout "menu:minimize,maximize,close" (!t) !subsubnode cdrdao Unter ubuntu 10.04 meldet Brasero ein Problem mir cdrdao. Durch Hinzufügen einer weiteren Quelle lässt sich dieses Problem beheben: (!T) deb http://ppa.launchpad.net/renbag/ppa/ubuntu lucid main (!t) und die Keydatei erhält man so: (!T) apt-key adv (--)recv-keys (--)keyserver keyserver.ubuntu.com F9A2F76A9D1A0061 (!t) !subnode KDE !subsubnode alte Thumbnails löschen !alias thumbnails (!T) find /home/*/.thumbnails/ -type f -atime +14 -print0 | xargs -0 rm (!t) löscht alle thumbnails, die älter als 14 Tage sind. !subsubnode dolphin Deutsch Oberfläche wiederherstellen: Herunterladen der Datei (!url [d3lphin.mo.mo] [./d3lphin.mo]) (!T) sudo cp d3lphin.mo /usr/share/locale-langpack/de/LC_MESSAGES (!t) !subsubnode Konqueror Liste der wichtigsten KIO-Slaves (im Adressfeld der Konquerors eintragen): !bi !short !item (!T) about:/ (!t) (--)Öffnet das KDE-Kontrollzentrum. !item (!T) applications:/ (!t) (--)Zeigt analog zum K-Menü alle installierten Programme. !item (!T) audiocd:/ (!t) (--)Zeigt den Inhalt einer Audio-CD und konvertiert die Tracks automatisch in verschiedene Formate wie WAV oder MP3. !item (!T) file:/ (!t) (--)Stellt das lokale Dateisystem dar. !item (!T) fish:// (!t) (--)Stellt eine SSH-Verbindung zum gewählten Rechner her. !item (!T) ftp:// (!t) (--)Stellt eine FTP-Verbindung zum gewählten Rechner her. !item (!T) imap:// (!t) (--)Zeigt den Inhalt des IMAP-Postfaches an. !item (!T) man:/ (!t) (--)Zeigt das Handbuch zum gesuchten Begriff an. !item (!T) print:/ (!t) (--)Öffnet das Kontrollfenster für die Drucker und die Druckerwarteschlange. !item (!T) settings:/ (!t) (--)Erlaubt den schnellen Zugriff auf die wichtigsten Systemeinstellungen. !item (!T) remote:/ (!t) (--)Öffnet eine Übersicht der wichtigsten Netzwerk-Dienste, die eine Dateifreigabe ermöglichen. !item (!T) nfs:// (!t) (--)Zeigt die über NFS (Network File System) freigegebenen Dateien und Verzeichnisse. !ei !subsubnode Menü Ein neues, vollständiges Menü erzeugt man am besten, indem man das alte löscht. Lösche einfach die Datei /.config/menus/applications-kmenuedit.menu und starte KDE neu. !subsubnode Tastatur reagiert unter KDE nicht mehr (!T) /usr/share/services/kaccess.desktop (!t) verschieben nach (!T) /root (!t) und (!T) /tmp/ (!t) leeren !subsubnode Pfade zu wichtigen Dateien Das Adressbuch liegt in /.kde/share/apps/kabc/std.vcf (!nl) E-Mails: /.kde/share/apps/kmail/mail/ (!nl) Kalender: /.kde/share/apps/korganizer/std.ics (!nl) Notizen: /.kde/share/apps/knotes/notes.ics !subsubnode Vorschau von OpenOffice-Dokumenten im Konqueror Dazu müssen die Dateien koffice-data und koffice-libs installiert werden !subnode XFCE Nachdem Gnome3 und KDE4 immer größere Speicherfresser werden, die Bedienung immer eingeschränkter wird und Gnome2 nicht weiter entwickelt wird, bietet sich xfce als alternativer Desktop an. !subsubnode Strg-Alt-Entf zum Beenden Unter Settings/Tastatur/Tastaturkürzel lässt sich Strg-Alt-Entf mit dem Befehl (!T) xfce4-session-logout (!t) wieder zum Herunterfahren des Systems bewegen. !subsubnode Bildschirmauflösung Sollte die Bildschirmauflösung nicht passen so lässt sie sich folgendermaßen anpassen (hier für die Auflösung 1280x1024): (!nl) (!T) cvt 1280 1024 (!t) ermittelt die Werte für xrandr (!nl) Datei /etc/X11/Xsession.d/45custom_xrandr-settings wird mit folgenden Einstellungen erstellt: !begin_verbatim xrandr --newmode "1280x1024_75.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync xrandr --verbose --addmode VGA-1 "1280x1024_75.00" xrandr --output VGA-1 --mode "1280x1024_75.00" !end_verbatim !subsubnode Tastaturblock einschalten Erstelle unter ~/.config/autostart/ eine Datei namens numlockx_on.desktop mit folgendem Inhalt: !begin_verbatim [Desktop Entry] Encoding=UTF-8 Name=Ziffernblock anschalten Exec=numlockx on Terminal=false !end_verbatim !subsubnode Fenster: Bedienelemente verschwinden Mit (!T) xfwm4 (--)replace (!t) wird der Fenstermanager repariert. !subsubnode Touchpad Damit der "linke-Maustaste-Klick" auf dem Touchpad funktioniert ist es notwendig die Datei (!T) /usr/share/X11/xorg.conf.d/50-synaptics.conf (!t) folgendermaßen zu verändern: !begin_verbatim Section "InputClass" Identifier "touchpad catchall" Driver "synaptics" MatchIsTouchpad "on" Option "TapButton1" "1" Option "VertEdgeScroll" "1" EndSection !end_verbatim !subsubnode Nautilus zerstört Desktop Im gconf-editor unter apps/nautilus/preferences/ (!T) show desktop (!t) abschalten. (!nl) Im gnome-tweak-tool unter "Arbeitsoberfläche" den Punkt "Have file manager handle the desktop" auf "aus" stellen. (!nl) Evtl. auch noch folgendes: (!T) gsettings set org.gnome.desktop.background show-desktop-icons false (!t) !subsubnode Dateizuordnungen (!T) ~/.local/share/applications (!t) (!nl) Dort gibt es *.desktop-Dateien, die vom Dateimanager angelegt werden, wenn du selbst eine Zuordnung eines Programms zu einem Dateityp vornimmst. In der Datei mimeapps.list steht dann, auf welchen Dateityp sich diese Zuordnungen beziehen. Die systemweiten *.desktop-Dateien sind in (!T) /usr/share/applications (!t) oder in (!T) /usr/local/share/applications (!t) !subsubnode neuer Hintergrund beim Login !be !short !item den neuen Hintergrund in /usr/share/backgrounds/ speichern !item die Datei /usr/share/backgrounds/linuxmint/default_background.jpg löschen !item den neuen Hintergrund setzen: (!T) cd /usr/share/backgrounds/linuxmint/ (!nl) sudo rm default_background.jpg (!nl) sudo ln -s ../neuer_hintergrund.jpg default_background.jpg (!t) !ee !subsubnode eigenes Icon beim Login Bilddatei (nicht größer als 200x200) im home-Verzeichnis als (!T) .face (!t) abspeichern. !subsubnode thunar !subsubsubnode Suche mit gnome-search-tool statt mit catfish !be !short !item Im Thunar Menü-> Bearbeiten/Benutzerdefinierte Einstellungen !item Klicke auf des Plus-Symbol !item Name: "Suche" !item Befehl: gnome-search-tool --path=%f !item OK anklicken !ee #------------------------------------------------------------------------------------------------------------------------------- !node Emulatoren !subnode Wine Wine, ein rekursives Akronym für "WINE Is Not an Emulator". Wine lässt Windowsprogramme unter Linux laufen und ist genaugenommen gar kein Emulator. (!nl) !bi !short !item Programmstart: (!T) wine (!t) !item Deinstallieren (!T) uninstaller(!t) !item Konfigurationswerkzeug: (!T) winecfg (!t) !item Booten: (!T) wineboot (!t) !item Herunterfahren: (!T) wineboot -s (!t) !item Explorer: (!T) wine winefile.exe (!t) !item Texteditor: (!T) notepad (!t) !item Registry-Editor: (!T) regedit (!t) !item MSI: (!T) msiexec (!t) !ei !subsubnode Tote Startmenüeintrage entfernen: !~/.kde/share/applnk/Wine und !~/.menu/wine den String der exe löschen. In !~/.menu/icons sind die Icons (!nl) (!nl) Die Menüeinträge für Wine-Programme liegen in !~/.local/share/applications/wine/Programs/. (!nl) !subsubnode Fehlende DLLs gibt es unter: (!url [http://www.tatanka.com.br] [http://www.tatanka.com.br]) und (!url [http://www.dll-files.com] [http://www.dll-files.com]) oder bei (!url [http://www.wintotal.de] [http://www.wintotal.de]) oder (!url [http://www.winfuture.de] [http://www.winfuture.de]) (!nl) (!nl) !subsubnode libjack-Fehler Der libjack-Fehler wird behoben mit: (!T) sudo cp /usr/lib/libjack-0.80.0.so.0 /usr/lib/libjack.so (!t) (!nl) !subsubnode wine unter LMDE Um unter LMDE wine zu installieren müssen die Original-Debian-Quellen in die sources.list eingetragen werden. Nach der Installation von wine die Debian-Quellen wieder deaktivieren! !subsubnode winetricks Mit winetricks lässt sich wine einfacher konfiogurieren und fehlende DLLs installieren. Wenn winetricks mit der neuesten wine-Version nicht mehr arbeitet, hilft folgende Änderung der system.reg in ~/.wine : Alle Einträge mit (!T) "C:\\windows\\system32\\unknown" (!t) müssen durch (!T) "C:\\Program Files" (!t) ersetzt werden. !subnode qemu siehe unter: (!url [http://wiki.ubuntuusers.de/QEMU] [http://wiki.ubuntuusers.de/QEMU]) (!nl) (!url [http://www.linuxforen.de/forums/showthread.php?t=141201] [http://wiki.ubuntuusers.de/QEMU]) !subsubnode virtuelle Festplatte erzeugen (!T) qemu-img create -f raw name.img 1000M (!nl) qemu -fda /dev/fd0 -hda win98.img -boot a (!nl) qemu -hda /media/hda2/win2000.img -cdrom /dev/hdc -boot c -win2k-hack (!t) (!nl) (!nl) (!T) qemu -L qemu/ -m 128 -localtime -kernel linux24 -initrd minirt24.gz -hda KNOPPIX/KNOPPIX -append "qemu vga=791 quiet noscsi nousb nofirewire atapicd noideraid noacpi acpi=off noapm noagp ide1=noprobe ide2=noprobe nomce frugal" (!t) !subsubnode qemu Startparameter !bi !short !item Image starten: (!T) qemu -cdrom datei.iso (!t) !item Netzwerk: (!T) -net nic -net user (!t) !item Lesezugriff: (!T) -hdb fat:/tmp (!t) !item Schreibzugriff: (!T) -hdb fat:rw:/tmp (!t) !item (!T) qemu -hda /media/hda2/win2000.img -cdrom /dev/hdc -boot c -hdb fat:rw:/media/hda2/tausch/ (!t) !item (!T) qemu -hda /media/hda2/win2000.img -cdrom /dev/hdc -boot c -hdb fat:rw:/media/hda2/tausch/ -net nic -net user (!t) !ei !subnode VirtualBox Sehr gutes Virtualisierungsprogramm: (!url [www.virtualbox.org] [http://www.virtualbox.org]) (!nl) (!nl) Zum Installieren der GuestAdditions das ISO-Image (!T) /usr/share/virtualbox/VBoxGuestAdditions.iso (!t) einbinden. (!nl) (!nl) !ssh USB-Geräte werden erkannt, sind jedoch nicht einbindbar, da inaktiv Unter einigen Debian- und Ubuntu-Versionen kann es vorkommen, dass USB-Geräte zwar erkannt werden, sie jedoch nicht einbindbar sind, da die Zugriffsrechte falsch gesetzt werden. Hierzu muss die Datei (!T) /etc/init.d/mountkernfs.sh (!t) wie folgt editiert werden: (!nl) (!nl) (!B) Original: (!b) !begin_verbatim if [ -d /proc/bus/usb ] then domount usbfs usbdevfs /proc/bus/usb usbfs -onodev,noexec,nosuid fi !end_verbatim (!B) Änderung: (!b) !begin_verbatim if [ -d /proc/bus/usb ] then domount usbfs usbdevfs /proc/bus/usb usbfs -onodev,noexec,nosuid,devgid=123,devmode=664 fi !end_verbatim Hierbei muss (!T) devgid (!t) der ID der Gruppe (!T) vboxuser (!t) entsprechen. !ssh Kernelmodule neu kompilieren (!T) /etc/init.d/vboxdrv setup (!t) !ssh Eine VM direkt starten (!T) VirtualBox -startvm [Name der VM] (!t) oder (!T) VBoxManage startvm [Name der VM] (!t) #------------------------------------------------------------------------------------------------------------------------------- !node Programme !subnode Tabelle: Windows - Linux !begin_table [|l|l|] !hline (!B) Windows (!b) !! (!B) Linux (!b) Microsoft Office !! LibreOffice !hline Internet Explorer !! Firefox / Opera !hline Adobe Acrobat Reader !! Adobe Acrobat Reader / kpdf !hline IrfanView !! gthumb Photoshop !! gimp !hline CDex !! sound-juicer / grip !hline DVDShrink !! dvd95 !hline Nero Burning Rom !! k3b / brasero !hline Winamp !! rhythmbox / banshee / amarok Windows Media Player !! vlc / kaffeine / mplayer !hline Cuecards !! knowit / tomboy !hline !end_table !subnode Büroprogramme !subsubnode Office LibreOffice Abiword !subsubnode Banking moneyplex gnucash !subsubnode Mindmapping Freeplane freemind Xmind kdissert vym !subsubnode PDF acroread (Adobe Reader) / kpdf / kpdftool / evince !subsubnode Datenbank tellico knowit LibreOffice kexi !subsubnode Wörterbuch ding !subsubnode Adressverwaltung kaddressbook !subnode Dienstprogramme !subsubnode Dateimanager thunar / gnome-commander / Konqueror / krusader / mc (Midnight Commander) !subsubnode Packer ark 7zip !subsubnode Taschenrechner kcalc speedcrunch !subsubnode Bildschirmnotizen knotes !subnode Entwicklung !subsubnode Editoren geany kate vi pico joe !subsubnode HTML-Editor bluefish / quanta / nvu !subsubnode Flash Flash4Linux / drawSWF !subnode Grafik !subsubnode DTP scribus !subsubnode Vektorgrafik Inkscape / xara !subsubnode Pixelgrafik gimp / kolourpaint / krita !subsubnode CAD freecad qcad !subsubnode Bildbearbeitung showFoto / gwenview / xnview !subsubnode Digitalkamera digikam / gthumb !subsubnode Scannen simple-scan / kooka / xsane / quiteinsane !subsubnode Texterkennung clara / gocr / tesseract !subsubnode Bildschirmfotos ksnapshot !subnode Internet !subsubnode Browser konquerer / firefox / opera / chromium !subsubnode E-Mail thunderbird / evolution / kmail / opera !subsubnode Chat pidgin / kopete !subnode Lernprogramme geogebra / kstars / gcompris / kmplot / kalzium / kturtle / ktouch / kgeography ... !subnode Multimedia !subsubnode Brennen k3b / brasero !subsubnode CD-Spieler/-Ripper xcfa / kscd / Grip / sound-juicer !subsubnode DVD-Editoren qdvdauthor / mandvd / kmediafactory / k9copy / dvd::rip !subsubnode Videoschnitt lives kdenlive (einfache Bedienung - sehr gut) (!nl) cinelerra (aufwändiger wie kdenlive) (!nl) jahshaka (viele Effekte...) (!nl) avidemux (wie VirtualDub) (!nl) kino (einfach, zum Erfassen von DV) (!nl) ProjectX (!nl) OpenShot !subsubnode Video- und Musikplayer Amarok / mplayer / xine / kaffeine / vlc / Realplayer !subsubnode Wavebearbeitung audacity / sweep !subsubnode Aufnahme / Sequenzer ardour / rosegarden / lmms !subsubnode Drumcomputer hydrogen !subsubnode Notensatz musescore / noteedit / canorus !subsubnode Internetradio streamtuner !subsubnode CD-Cover koverartist / kover !subsubnode Internetfernsehen Miro Player !subnode System !subsubnode Partitionen spiegeln partimage / fsarchiver !subsubnode Systemauslastung kcpuload / conky !subsubnode Festplattenbelegung kdf !subsubnode Netzwerkauslastung knetstats #------------------------------------------------------------------------------------------------------------------------------- !ifdest [html] !node Download !bi !item (!url [Download dieses Dokuments als ASCII-Datei] [./linux.txt]) !item (!url [Download dieses Dokuments als PDF-Datei] [./linux.pdf]) !item (!url [Download dieses Dokuments als RTF-Datei] [./linux.rtf]) !item (!url [Download des Quelltextes (UDO-Format)] [./linux.u]) !ei #------------------------------------------------------------------------------------------------------------------------------- !node Befehlsliste a2pdf addgroup adduser alias alien apropos apt apt-get apt-file aptitude apt-key apt-spy arp at backintime badblocks basename bc bg blkid bzip cabextract cadaver cal cat cd cdinfo cdparanoia cdrdao cdrecord chage chattr checkinstall chgrp chmod chown chsh clear cmp comm config configure convert convmv cp cpuinfo cron cut date dd dd_rescue deluser df dhclient diff dig digikam dircmp dirname dmesg dolphin dpkg dpkg-reconfigure du dvdbackup dvdrip dvips e2fsck echo eject emacs encfs env exit expand export exports fdformat fdisk fg file find finger firehol fish foremost free fsck fstab ftp fuse fuser fusermount gcc get-selections gksu grep groupadd groupdel groupmod groups growisofs gs gzip halt hdparm head help host hostname html2ps hwinfo iconv id id3v2 identify ifconfig ifdown ifup import info ip init interfaces jobs join kill killall klpq last lastlog ldd less ln locate logname logout lpadmin lpc lpinfo lppasswd lpr lprm ls lsattr lsb_release lshw lsof lspci lsusb magicrescue make makeinstall makepasswd man meminfo mkdir mkdosfs mke2fs mkfs mkisofs mmv more mount mp3rename mtr mv ncftp ndiswrapper netstat nethogs nice nl nmap nohup nslookup parted partimage passwd pdf2bmp pdf2jpg pdf2ps pdftk pgrep photorec ping pipe pkill playwave poweroff procinfo ps ps2ascii ps2pdf psbook psnup psresize psselect pstree psutils pwd rdate reboot recode rename renice rm rmdir route rpm scancode scanimage scp screenshot sed sendemail setkeycodes set-selections setxkbmap sfdisk showmount shutdown sitecopy sleep smbpasswd smpusers sort source split ssh startx strace stty su sudo sum swap swapoff swapon sync tail tar tcpdump tee test time timeout timidity tinyproxy top touch tr traceroute transcode tune2fs type udisks uif2iso umask umount uname uniq unison unzip uptime useradd userdel usermod vi vim w watch wc wget whatis whereis which who whoami whois xargs xkill xrandr zip zless #------------------------------------------------------------------------------------------------------------------------------- !node Stichwortverzeichnis !bi !short !item < !item >> !item >& !item | !item || !item ; !item !~ !item . !item .. !item () !item & !item && !item 2> !item 32Bit-Programme unter Debian 64bit !ei !begin_itemize !short !item acpi !item Adobe Reader Fehler !item Adressbuch !item Adressverwaltung !item alte Thumbnails löschen !item Amarok !item anacron !item Animationen !item Animationen mit Gimp !item Archive !item Archive mit mehr als 1 GB !item Arcor DNS-Server !item Audio/Video-Dateien konvertieren !item Auflisten & Analysieren !item Auflisten und Beenden !item Aufnahme !item automatisches Abmelden !end_itemize !bi !short !item Backtrack !item Banking !item Bash !item Bash-Konfigurationsdateien !item Beep abschalten !item Befehlsliste !item Benutzer anlegen !item Benutzer & Gruppen !item Benutzer root anlegen !item Besonderheiten NVIDIA-Legacy-Treiber !item Bildbearbeitung !item Bilder verkleinern !item Bild in Postscript umwandeln !item Bildschirmfotos !item Bildschirmnotizen !item Bildtyp umwandeln !item Bildübersicht !item Bootfähigen USB-Stick erstellen !item Bootparameter !item Bootparameter für Problemhardware !item Bootprobleme !item Bootsektor (MBR) sichern !item Brennen !item Browser !item Büroprogramme !ei !bi !short !item CAD !item Caps-Lock !item CC !item CD-Cover !item CD in ISO-Image kopieren !item CD-Laufwerk wird nicht gefunden !item CD-Schublade !item CDs & DVDs !item CD sichern !item CDs kopieren !item CD-Spieler/-Ripper !item Chat !item ChordPro !item CUPS !item CUPS-Client !item CUPS-Server !ei !bi !short !item Damn Small Linux !item dansguardian !item Dateien & Verzeichnisse !item Dateimanager !item Dateirechte !item Dateisysteme !item Dateitransfer / Synchronisieren !item Daten-Backup !item Datenbank !item Debian !item Der Debian-Bootvorgang !item /dev/null reparieren !item Dienste starten !item Dienstprogramme !item Digitalkamera !item dir_index !item Disketten !item Disketten kopieren !item do !item done !item Download !item Drucken !item Drumcomputer !item DTP !item DVD-Editoren !item dv -> mpeg !item dyndns !ei !bi !short !item Editoren !item Eingabe-History aktivieren !item Einhängen !item Einrichtung Client !item Ein- und Ausgabeumlenkung !item E-Mail !item emovix !item Emulatoren !item Entwicklung !item e-tobi Pakete (VDR) selbst kompilieren !item Exit !ei !bi !short !item Fehlende Pakete !item Fehler bei der Erstellung von Filmen beheben !item Fehlerschleifen !item Fenster andocken !item Fernwartung !item Festplatte !item Festplatte kopieren !item Festplattenbelegung !item Festplatte sicher löschen !item Flash !item for !item Framebuffer !ei !bi !short !item Garmin-GPS-Gerät !item GCC-Version definieren !item Gerätenamen der Netzwerkschnittstelle ändern !item Gesamte Platte sichern !item geschützte PDF !item GhostScript !item Gimp !item Googleearth !item Grafik !item Grafiktreiber !item Grip !item grub !item Grub-Passwort setzen !item grub installieren !item Grundinstallation !ei !bi !short !item Hardware !item Hardwareinformationen !item Hilfe !item Hintergrundprozesse & Zeitsteuerung !item /home/user/.ssh/config !item hosts !item HTML-Editor !ei !bi !short !item Image einlesen !item Image erstellen !item in Datei schreiben !item Inkscape !item Installation Brother-Multifunktionsgeräte (Ubuntu) !item installierte Programme sichern & wiederherstellen !item Internet !item Internetradio !item IP-Adressen !item ISO-Abbild einbinden !item ISO-Datei !ei !bi !short !item Ja/Nein-Abfragen !item Java !item Java-Programme starten !item Joomla !item Journal erstellen !ei !bi !short !item katapult !item kate !item kconfigure !item KDE !item keycode !item keyfiles !item Klassisch mounten !item Knoppix !item Kompilieren & Installieren !item Konqueror !item konsole !item Konsolenwechsel !item kopieren !item kprinter !item Kprinter als Standard setzen !item kubuntu !ei !bi !short !item Lernprogramme !item löschen !item Löschen einer Platte !ei !bi !short !item MAC-Adressen ermitteln (arp) !item MEDION LIFE P89626 !item MBR !item MD5 !item Menü !item MIDI !item Mindmapping !item Minimalsystem installieren !item Miro !item mma !item Moneyplex !item montage !item mp3c !item mplayer !item Multimedia !item Musik-CDs kopieren !ei !bi !short !item Navigation & Pfadangaben !item NAS-Server !item Netzwerk !item Netzwerkauslastung !item Netzwerk einrichten !item Netzwerk neu starten !item Netzwerkschnittstelle !item Netzwerkzugriff !item neues Rootpasswort !item NFS !item NFS-Client !item NFS-Server !item NFS von Hand starten !item nis !item nisdomainname !item Notensatz !item NVIDIA-Treiber installieren !ei !bi !short !item Office !item ogg -> wave !item Oktalzahlen !item OpenOffice !item openssh !item openssh konfigurieren !ei !bi !short !item Packer !item partimage automatisieren !item Partitionen spiegeln !item Partitionieren, Formatieren und Kopieren !item Pause von x Sekunden !item PDF !item persönlichen bin-Ordner hinzufügen !item Pfad, Dateinamen und Dateiendung trennen !item pico !item Pixelgrafik !item pnpbios !item Postscript !item Postscript & PDF !item Prioritäten ändern !item Programm aus der Installationsliste austragen !item Programme als anderer Benutzer ausführen !item Programm starten !item Promt einstellen !item Prozess abschießen !item Prozesse beenden - unterbrechen !item Prozesstabelle !item Prozessverwaltung !item Prüfen, Analysieren und Informationen !item Prüfen & Reparieren !ei !bi !short !item qemu !item qemu Startparameter !item Radio-Streams !item Realplayer !item rm -> avi !item Rootpasswort !item rpm-entpacken !item rpm installieren !item Runlevel !ei !bi !short !item S100 (T-Online) zum Medacenter umrüsten !item samba !item sax2 !item Scannen !item Schleifen !item SecurStick !item Shell !item Shellprogrammierung !item Skripte !item Slideshow !item Sonstiges !item Sound in der Konsole !item Sound server fatal error !item sources.list !item sox !item ssh_config !item sshd_config !item Stringbearbeitung !item Suchen !item Superblock !item SuSE !item Synaptic !item Systemauslastung !item Systeminformationen !item Systemmeldungen !item System-Rescue-CD !item SystemRescueCD von Festplatte starten !ei !bi !short !item Tabelle: Windows - Linux !item Taschenrechner !item Tastaturkommandos !item Tastaturlayout !item Tastatur reagiert unter KDE nicht mehr !item Tauschbörse (P2P) !item testdisk !item Texterkennung !item thumbnails !item thunar !item TightVNC !item Timeserver !item Treiber !item tty !ei !bi !short !item Übergabeparameter auswerten !item übergebene Parameter !item ubuntu !item UDEV !item Uhr geht falsch !item Uhrzeit synchronisieren !item UIF !item Ultimate Boot CD !item umbenennen !item unwichtige Anwendungen herausfinden !item USB-Benutzerrechte !item USB-Scanner !item USB (UDEV) konfigurieren !ei !bi !short !item VDR !item Vektorgrafik !item Verbindung zum X-Server für root erlauben !item Vergleichen, Aufteilen und Sortieren & Co !item verschiedene ubuntu-Desktops installieren !item Verschlüsseltes Dateisystem (encfs) !item Verzeichnisse !item VGA-Modus !item Video-DVD verkleinern !item Videopodcasts !item Videoschnitt !item Video- und Musikplayer !item viele Dateien bearbeiten !item VirtualBox !item virtuelle Festplatte erzeugen !item Voreinstellungen !item Voreinstellungen für neue Benutzer !ei !bi !short !item Wasserzeichen in Bilder schreiben !item Wavebearbeitung !item wave -> mp3 !item wave -> ogg !item webdav !item welches Paket beinhaltet das Programm? !item while !item Windows-Freigabe mounten !item Wine !item wma -> wave !item Wo befindet sich was? !item Wörterbuch !ei !bi !short !item X-Display umleiten !item X Error: BadDevice, invalid or uninitialized input device !item X-Server !item X-Server beenden !ei !bi !short !item Youtube !ei !bi !short !item Zattoo !item Zeichensatz in der Konsole !ei #------------------------------------------------------------------------------------------------------------------------------- !node Impressum !bc !smallskip Stefan Baireuther (!nl) Ligusterweg 25 (!nl) D-73557 Mutlangen (!nl) !raw [html] !ec !endif #------------------------------------------------------------------------------------------------------------------------------- !end_document