Änderungen

Zur Navigation springen Zur Suche springen
57.914 Bytes hinzugefügt ,  19:47, 14. Jul. 2013
Siehe [[oldCt:Linux-Tipps]]

== Linux und andere Betriebssysteme ==
=== Betriebssystemvergleich ===

* [http://www.linux-community.de/Community/Meinungen/Benutzerfreundlichkeit-der-Betriebssysteme-im-Vergleich#75851start Vergleich der Benutzerfreundlichkeit]

=== Plattformübergreifende Software ===

* [[Plattformübergreifende Software]]
** [[svn]]

=== Zusammenarbeit mit Windows ===

* Man kann zum Booten eines Linux-Systems auch den [[Windows]]-Bootloader nutzen ([http://de.opensuse.org/SDB:Linux_mit_Hilfe_des_Bootmanagers_von_Windows_NT/2000/XP_booten Anleitung für Suse], [http://www.fz-juelich.de/zam/docs/tki/tki_html/t0398/t0398.html distributionsunabhängige Anleitung]).

* Flexibler ist aber der moderne Linux-Bootloader [http://www.wikidorf.de/reintechnisch/Inhalt/GrubEinfuehrung GRUB]. In jedem Fall sollte man den [http://www.wikidorf.de/reintechnisch/Inhalt/GrubEinfuehrung Master Boot Record (MBR) sichern].

* [http://www.andlinux.org/index.php andLinux] und [http://www.topologilinux.com/ topologilinux] sind auf coLinux basierende Linux-Distributionen, die unter Windows laufen.

* Einige Linux-Anwendungen laufen durch [http://www.cygwin.com/ CygWin] auch unter Windows. Neben dem graphischen windows-typischen Installer kann nach der Erstinstallation auch das <code>apt-get</code>-ähnliche Skript [http://code.google.com/p/apt-cyg/updates/list apt-cyg] zur Paketverwaltung genutzt werden.

* [http://gnuwin32.sourceforge.net/summary.html GnuWin32] bietet ebenfalls etliche Linux-Kommandozeilenprogramme. Diese bauen direkt auf den Windows-Bibliotheken auf. Sie sind daher einfacher als die CygWin-Utilities zu handhaben; allerdings ist CygWin umfangreicher und bietet z.B. eine Bash-shell und einen X-Server.

* [http://www.it.fht-esslingen.de/~zimmerma/software/ltools.html LTools] erlaubt den Zugriff auf ext2/ext3-Partitionen von der Kommandozeile oder mittels einer Java- oder Web-GUI. Eine graphisches Tool zum Lesen von ext2-/ext3-Partitionen ist auch [http://www.chrysocome.net/explore2fs explore2fs]. Noch weiter gehen [http://www.fs-driver.org/ fs-driver] und [http://ext2fsd.sourceforge.net/ ext2fsd]: sie bieten Treiber für ext2-Partitionen. Letzteres läuft auch unter [[Windows]] [[Vista]].

* [http://www.straightrunning.com/XmingNotes/ Xming] ist ein X-Server, der nativ unter [[Windows]] läuft. Lt. [wikipedia:Xming] ist die Lizenz "undurschschaubar", sie wird als "proprietär" gekennzeichnet.
** [http://www.tanmar.info/content/view/47/47/ Tutorial zu Xming und Putty]

== Dokumentation ==


=== Anleitungen ===

* [http://openbook.galileocomputing.de/linux/ Linux-Handbuch], ein kostenloses Onlinebuch zu Linux von Galileo.
* Das [http://de.wikibooks.org/wiki/Linux-Kompendium Linux-Kompendium] ist auf wikibooks.org als freies umfangreiches Nachschlagewerk zu Linux erschienen.

* Einen Einblick in Linux liefert Kapitel 7 des [http://www.galileocomputing.de/openbook/it_handbuch/fachinformatiker_07_linux_unix_001.htm#mj5029e6f7d5fd4879d37717fd563be94f IT-Fachhandbuchs].
* Eine gute Anleitung für Linux (wenn auch etwas beschwerlich zu lesen) enthält [http://www.oreilly.de/german/freebooks/rlinux3ger/linux_wegIVZ.html Linux - Wegweiser zur Installation & Konfiguration] von Matt Welsh, Matthias Kalle Dalheimer und Lar Kaufmann.
* Für Anfänger, der man unter Linux immer bleiben wird, findet man Anleitungen bei [http://www.newbie-net.de/anleitung.html Newbie-Net].
* Ein '''Crash-Kurs''' für Leute, die schon erste Linux-Erfahrungen gesammelt haben, findet sich unter http://www.wemelug.de/www/tips/crashkurs.html. Er ist kurz, prägnant, vielleicht nicht ganz aktuell.
* Eine längere allerdings schon ältere Einführung in Linux findet sich bei http://www.oreilly.de/german/freebooks/linux_install/inhalt.html. Ein älteres Anwenderhandbuch findet sich bei http://www.linux-ag.de/linux/LHB/LHB.html.

=== man-Pages ===
Die sog. <code>man</code>-pages sind DIE Informationsquelle eines Linux-Systems. Sie finden sich auch im [http://nixdoc.net/man-pages/Linux World Wide Web] (z.B. bei [http://unixhelp.ed.ac.uk/CGI/man-cgi UNIX-Help] und [http://www.manpagez.com/man/ manpages.com]).

Die man-pages befinden sich in verschiedenen Kategorien, die innerhalb der man-pages durch eine in Klammern an die Bezeichnung angehängte Zahl gekennzeichnet wird. Beim Aufruf von man steht dagegen die Section-Nr VOR der Bezeichnung. Die Einführungen finden sich z.B. durch
man x intro
wobei x eine Zahl zwischen 1 und 9 ist.

=== Regelmäßige Publikationen ===

* [http://www.freiesmagazin.de/ freiesmagazin.de] hat monatlich Berichte aus dem [[Open Source]]-Umfeld.

== Distributionen ==

=== Allgemeines ===

* Einen Überblick über die verschiedenen Distributionen verspricht [http://www.golem.de/0912/71918.html dieser Artikel auf golem.de].

* [http://www.linuxfromscratch.org/index.html Linux from Scratch] gibt Hilfe für den kompletten Eigenbau eines Linux-Systems.

* [http://www.zorin-os.com/ Zorin OS] ist eine auf [[Ubuntu]] basierende Distribution, die die Oberfläche von [[Windows]] nachahmt.

* [http://www.slax.org SLAX] ist eine auf [http://www.slackware.org Slackware] basierende Live-CD, die selbst bei denjenigen alten PCs den Netzwerkadapter ansprechen kann, wo [[OpenSuse]], [[Knoppix]] sowie [[Debian]] versagen.
** [[OpenSuse]] ist das von Novell unterstützte freie Linux. Proprietäre (und trotzdem kostenlose) Anwendungen können über andere Installationsquellen nachgeladen werden.
*** Der [http://wiki.linux-club.de/opensuse/Hauptseite Linux-Club] bietet ein gutes Wiki rund um OpenSuse.
*** Beim Update von OpenSuse 10.1 auf 10.2 könnte es Probleme mit der Druckerinstallation geben: Dann einfach <code>/var/lib/YaST2/ppd_db.ycp</code> löschen.<ref>[http://www.linux-club.de/viewtopic.php?t=71724&highlight=yast+drucker Hängen bei Aufbau der Druckerdatenbank bei 4%].</ref>
*** Siehe auch [[Installation von OpenSuse über PXE]].
*** Das GNOME-Frontend für {{su}} (starten von Programmen als Root) heißt unter OpenSuse <code>gnomesu</code> und nicht wie sonst meist üblich <code>gksu</code>. Die Entsprechung unter KDE heißt <code>kdesu</code>.
* Auch [[Debian]] lässt sich übers Netzwerk/PXE installieren.
* Auch [[Knoppix]] lässt sich über [[PXE]] installieren. Siehe
** [http://mylinuxjournal.blogspot.com/2009/06/knoppix-via-pxe.html diesen Blog].
** [http://www.knoppix.net/wiki/PXE_FAQ Knoppix-Wiki]

* [http://www.archlinux.de/?page=Start Arch Linux] ist offiziell eine schlanke, ständig aktuelle Linux-Distribution ([http://wiki.archlinux.org/index.php/Install_Arch_from_network_(via_PXE) PXE-Installation möglich]).
* [http://www.andlinux.org/index.php andLinux] ist eine Linux-Distribution, die unter Windows 2000, XP etc. läuft. Sie basiert auf [http://polishlinux.org/linux/ext3-reiserfs-xfs-in-windows-thanks-to-colinux/ coLinux].
* Eine Distribution, die Wert auf Flexibilität und Anpassungsfähigkeit liegt, ist [http://www.gentoo.org/doc/en/gentoo-x86-quickinstall.xml Gentoo].

* [http://www.sugarlabs.org/ Sugar], hervorgegangen aus dem One Laptop Per Child-Projekt, ist ein Linux-System für Kinder.

=== Ubuntu ===
* [[Ubuntu]] ist eine auf [[Debian]] basierende Distribution, die mittels [[Wubi]] wie eine [[Windows]]-Applikation installiert und deinstalliert werden kann.
** Von Ubuntu lässt sich leicht [http://uck.sourceforge.net/ kundenspezifische LiveCDs] erstellen, so gibt es z.B. eine LiveCD mit [http://ubuntu-mini-remix.crealabs.it/ minimalem Footprint].
** Auf [[Ubuntu]] baut die Netbook-Distribution [http://www.geteasypeasy.com/ Easy Peasy] auf.


=== Schnellstart-Linux ===

* [http://tinycorelinux.com/welcome.html Tiny Core Linux] vom selben Entwickler wie Damn Small Linux, aber als GUI-Desktopvariante.
* [http://www.u-lite.org/ U-Lite], ein Derivat von [[Ubuntu]]
* [http://puppylinux.org/news/ Puppy Linux] hat schon Tradition als ressourcensparende Distribution. Siehe auch das [http://murga-linux.com/puppy/index.php?f=25 deutschsprachige Puppy Linux Forum].
* [http://blog.rootserverexperiment.de/2008/03/17/neue-uclibc-chroot-umgebung-artikeldownload/ 4MB-Mini-Linux]

* Zu diesem Thema kann man auch generell [http://www.gambaru.de/blog/?p=256 Anwendungen mit wenig Anforderungen] an die [[Hardware]]-Ressourcen zählen.

=== Router mit Linux ===

Siehe [[Router]]

=== Linux im Browser ===

bellard.org/jslinux

== Installation ==


=== Installation von Linux auf Laptops ===
** [http://www.linux-laptop.net/ Linux on Laptops]
** [http://tuxmobil.de/mylaptops_de.html tuxmobil.de]
** [http://tuxmobil.org/mylaptops.html tuxmobil.org]
* [[Installation von OpenSuse über PXE]]
* [http://wiki.debian.org/PXEBootInstall Installation von Debian über PXE]
* [[Ubuntu#Ubuntu Live mit PXE | Installation von Ubuntu Live-CD]], die über [[PXE]] geladen wird.
* Installation auf dem [[Toshiba Portege R100]]

=== Umzug auf andere Festplatte/Partition ===

Will man sein Linux auf eine andere Festplatte umziehen, nimmt man eine LiveCD und gibt in der Shell ein (bei Umzug von erster auf zweite Partition):
dd if=/dev/sda1 of=/dev/sda2

Wenn die neue Partition größer ist (kleiner geht nicht), dann muss auch noch das Dateisystem angepasst werden (funktioniert jedenfalls bei einem [[ext3]]-Dateisystem):
resize2fs /dev/sda2

Siehe [http://www.heise.de/ix/artikel/Moebelpacker-506917.html iX-Artikel Möbelpacker].

=== Paketmanagement ===

Die großen Distributionen sind entweder Debian-basiert (mit .DEB-Paketen) oder nutzen das Redhat Package Manager-Format (.RPM; z.B. OpenSuse).
==== RPM ====
* Das [http://xinux.de/docs/linux/rpm/ RPM-Buch] bietet eine Anleitung zum "Redhat Package Manager" inklusive dem Bau von Paketen.

=== Sound ===

Zum Einrichten des Sounds hilft
alsaconf

=== (De-)Installation von Programmen aus dem Quelltext ===

* Siehe [http://www.linupedia.org/opensuse/Software_aus_dem_Quelltext_Installieren/Deinstallieren (De-)Installation von Programmen aus dem Quelltext]

=== Patch und diff ===

* [http://stephenjungels.com/jungels.net/articles/diff-patch-ten-minutes.html Kurzanleitung für diff und patch]

== Bootvorgang ==

=== Bootloader ===
==== GRUB ====

===== Installation =====
Den Bootloader GRUB2 auf allen Platten installieren:
sudo grub-install /dev/sda
sudo grub-install /dev/sdb

===== GRUB über PXE starten =====

GRUB lässt sich auch [http://ubuntublog.ch/applikationen/die-super-grub-2-disk-ueber-pxe über PXE starten]

Das ist quasi der umgekehrte Fall des Startens von PXE mittels GRUB (im wesentlichen über "root (nd)").

===== Konfiguration in /etc/grub.d/ =====
Beim neuen GRUB-Bootloader (GRUB 2) wird die Konfiguration nicht mehr über die Datei /boot/grub/menu.lst, sondern über [http://wiki.ubuntuusers.de/GRUB_2/Konfiguration /etc/default/grub] sowie über Skripte in <code>/etc/grub.d/</code>. Beispiel für ein Skript <code>/etc/grub.d/08_meinEintrag</code>:

#!/bin/sh -e
echo "Füge meine eigenen Menüeinträge hinzu" >&2
cat << EOF
menuentry "MeinLinux" {
insmod ext2
set root='(hd0,1)'
linux /boot/vmlinuz-2.6.32-32-generic root=/dev/sda ro quiet splash
initrd /boot/initrd.img-2.6.32-32-generic
}
EOF

Die Zahl <code>08</code> am Beginn des Dateinamens sorgt dafür, dass es vor dem Skript <code>10_linux</code> ausgeführt wird und die eigenen Menüeinträge oben im Grub-Menü erscheinen. Wichtig ist, dass die Datei ausführbar wird:
sudo chmod +x /etc/grub.d/08_meinEintrag

Der echo-Befehl im Skript wird auf die Error-Ausgabe (&2) umgeleitet und landet nicht in <code>/boot/grub/grub.cfg</code> beim Ausführen von update-grub. Der Text zwischen EOF und EOF landet dagegen 1:1 in <code>/boot/grub/grub.cfg</code>. Hier kann man also experimentieren.

Der Befehl <code>set</code> setzt Umgebungsvariablen, in diesem Fall root, die die Partition mit dem zu startenden Betriebssystem enthält. Die erste Platte heißt hd0, die erste Partition beginnt (seit GRUB2) mit 1; die erste Partition auf der ersten Platte heißt also '(hd0,1)'. Root lässt sich auch mit dem Befehl <code>search</code> setzen.<ref>Siehe [http://forums.linuxmint.com/viewtopic.php?f=46&t=38599 How to use Labels for GRUB2].</ref>

Für weitere Beispiele sollte man sich die automatisch generierte <code>/boot/grub/grub.cfg</code> anschauen. Dabei kann man alles, was nicht mit <code>menuentry</code> beginnt beim Lesen erst einmal überspringen.

===== Weiteres Beispiel für einen Menüeintrag =====


menuentry 'UbuntuLinux Generic Current auf Platte mit Bezeichnung Ubun10LTS' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
search --no-floppy --label Ubun10LTS --set root
linux /vmlinuz root=LABEL=Ubun10LTS ro quiet splash
initrd /initrd.img
}


===== /boot/grub.cfg aktualisieren =====
Nach Änderung an der Konfiguration schaut man sich die Auswirkungen auf <code>/boot/grub/grub.cfg</code> mittels
sudo grub-mkconfig
an und schreibt sie in <code>/boot/grub/grub.cfg</code> mittels
sudo update-grub

===== ISO-File booten =====

* [http://www.supergrubdisk.org/wiki/Loopback.cfg Anleitung bei vorhandener loopback.cfg]

===== Boot in die Shell =====

* [http://superuser.com/questions/215590/how-to-boot-grub2-into-the-simplest-linux-shell Anhängen von init 1 an kernel Parameter]
* [http://ubuntuforums.org/showthread.php?t=919499 Hinzufügen von "text" "disable gdm" ans Ende der Kernel-Parameter]
* [https://wiki.ubuntu.com/RecoveryMode Booten mit Esc oder linker Shift-Taste in den Recovery-Modus]

===== Weiterführendes =====

Siehe auch
* [http://www.gnu.org/software/grub/manual/grub.html GRUB-Manual]
* [https://help.ubuntu.com/community/Grub2 Grub-Hilfe] für [[Ubuntu]],
* [http://www.dedoimedo.com/computers/grub-2.html Grub-Tutorial (englisch)]
* [https://wiki.archlinux.org/index.php/GRUB2#parttool_or_legacy_hide.2Funhide_.3D ArchLinux Grub Wiki]
* [http://forums.linuxmint.com/viewtopic.php?f=46&t=38599 How to use Labels for GRUB2]

==== EFI-Boot-Loader ====

===== Allgemeines =====

* [http://www.rodsbooks.com/efi-bootloaders/index.html Beschreibung verschiedener EFI-Bootloader] für Linux
* [https://wiki.archlinux.org/index.php/UEFI UEFI-Grundlagen] für ArchLinux

===== GRUB2 =====

* [https://wiki.archlinux.org/index.php/GRUB2#UEFI_systems_2 GRUB2 auf UEFI] unter [[ArchLinux]]
* [http://thinkpad-forum.de/threads/123262-EFI-Grub2-Multiboot-HowTo EFI-Grub2-Multiboot]
* [http://en.gentoo-wiki.com/wiki/Grub2 EFI-Grub2 mit Gentoo]
* Chainloading von EFI-[[Windows]]-Bootloader funktioniert durch folgenden Eintrag in grub.cfg<ref>Siehe http://www.rodsbooks.com/efi-bootloaders/grub2.html; für GRUB Legacy siehe http://www.denraf.be/content/efi-dualboot-windows-7-and-fedora-16 oder http://www.rodsbooks.com/efi-bootloaders/grub_legacy.html</ref> bzw. /etc/grub.d/08_windows
menuentry "Windows 7" {
set root='(hd0,gpt1)'
chainloader /EFI/microsoft/BOOT/bootmgfw.efi
}

===== ELILO =====

Für ELILO muss Kernel und Initial RamDisk auf einer EFI-zugänglichen Partition liegen.<ref>Siehe http://www.rodsbooks.com/efi-bootloaders/elilo.html</ref>

==== Booten übers Netzwerk ====
* Siehe [[Booten übers Netzwerk]]

=== Kernel ===
* [http://www.kernel.org/doc/Documentation/kernel-parameters.txt Kernel-Parameter (weitgehend vollständig)]
* [http://wiki.ubuntuusers.de/booten Kernel-Parameter (Auswahl auf ubuntuusers)]
* [http://www.cyberciti.biz/tips/10-boot-time-parameters-you-should-know-about-the-linux-kernel.html Kernel-Parameter(Auswahl)]
* Achtung der Kernel-Parameter <code>root=</code> kann sich ändern. Passte bei einer früheren Version noch <code>/dev/hda1</code> als Argument, kann es jetzt <code>/dev/sda1</code> sein.

Wer seinen Kernel selber kompilieren will, findet [http://www.freiesmagazin.de/ftp/2012/freiesMagazin-2012-01.pdf hier eine Anleitung].

=== Init nach UNIX Sys V ===

Der herkömmliche Boot-Prozess unter Linux ist das Init-System aus Unix Sys V - Zeiten: Dabei werden entsprechend verschiedener Runlevel einzelne Init-Skripte abgearbeitet, die sich normalerweise in <code>/etc/init.d</code> befinden. Unterhalb von /etc/rc.d findet sich für jedes Runlevel eine symbolische Linksammlung, deren einzelne Links auf die init-Skripten verweisen. Die Links beginnen mit einem <code>S</code> oder einem <code>K</code>, einer Zahl (=Priorität) und enden mit dem Namen des zu startenden (S) bzw. zu beendenden (K) Prozesses. Die Init-Skripten werden nacheinander entsprechend dieser Prioritäten-Zahl abgearbeitet.

Zur Verwaltung der Linksammlung bieten die unterschiedlichen Distributionen kleine Kommandozeilentools:

* Für <code>chkconfig</code> wird in dem init-Skript konkret die jeweiligen Runlevel, in denen der Dienst laufen soll, sowie die Prioritätszahl vorgegeben.
* <code>insserv</code> ([[OpenSuse]]) kann auch Abhängigkeiten auflösen.
* Unter [[Debian]] und Konsorten gibt es <code>update-rc.d</code> (siehe diese [http://www.debian-administration.org/article/Making_scripts_run_at_boot_time_with_Debian kleine Anleitung]).

=== Upstart ===
[[Ubuntu]] steigt ab V 9.10 Karmic Koala auf das neuere "Upstart"-System um. Damit ist es möglich, init-Skripten parallel abzuarbeiten. Dafür wird ein Abhängigkeitssystem zur Verfügung gestellt.
[[Debian]] verfügt ab Debian 6.0 Squeeze über [[Upstart]].

Siehe
* http://upstart.ubuntu.com/getting-started.html

=== Weiteres ===

* Um ähnlich der AUTOEXEC.BAT unter MS-DOS Programme bei jedem Systemstart/login zu ändern, empfiehlt sich (jedenfalls unter [[OpenSuse]] 10.2) die Datei <code>/etc/init.d/after.local</code> oder <code>/etc/rc.local</code> (unter [[Ubuntu]] 9.10 Karmic Koala) zu ändern/ zu erstellen. Sie wird nach allen anderen sonstigen Befehlen des Systemstarts aufgerufen.
* Den '''Linux-Bootvorgang''' erklärt http://www.tldp.org/HOWTO/From-PowerUp-To-Bash-Prompt-HOWTO.html#toc1 und http://itreviews.blogspot.com/2006/05/linuxs-boot-process-explained.html. Einen Artikel zu Dämonen und Systemstart findet sich bei [http://www.pro-linux.de/work/newbie/daemons.html Pro-Linux].

== Herunterfahren ==

Mit einer GUI-Umgebung wie Gnome oder KDE lässt sich der Rechner einfach durch Drücken des Soft-Power-Off-Buttons herunterfahren (meist noch mit einer Rückfrage auf dem Bildschirm). Will man dem normalen User in der Shell etwas ähnliches erlauben, sollte man in <code>/etc/inittab</code> folgende Zeile einfügen/ändern:

ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -h now

== Tastatur ==

=== Troubleshooting Tastatur ===

Für [[Debian]] 7.0 Wheezy hilft evtl. [http://serverfault.com/questions/307600/keyboard-dont-work-after-upgrade-to-debian-wheezy folgende Änderung der /etc/X11/xorg.conf] (evtl. ausführbar machen???):

Section "ServerFlags"
Option "AutoAddDevices" "False"
EndSection

Zusätzlich sollte noch der [http://www.linuxquestions.org/questions/debian-26/mouse-and-keyboard-are-dead-on-x-debian-testing-881873/ "alte" Tastatur-Treiber] installiert werden:
aptitude install xserver-xorg-input-kbd xserver-xorg-input-mouse

=== Tastaturlayout ===
Ab [[Debian]] 6.0 Squeeze ist die [http://www.debian.org/releases/stable/i386/release-notes/ch-whats-new.de.html#unity-keyboard-settings Tastatureinstellung für die Konsole und den X-Server vereinheitlicht]:

dpkg-reconfigure keyboard-configuration


Bisher:
Mit
loadkeys de-latin1
kann man in der Konsole die deutsche Tastaturbelegung laden.

Für X wird das Tastaturlayout (jedenfalls unter [[Debian]]) in der Datei <code>/etc/X11/xorg.conf</code> eingestellt:
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "XkbRules" "xorg"
Option "XkbModel" "pc104"
Option "XkbLayout" "de"
EndSection


Siehe auch
* [http://www.faqs.org/docs/Linux-HOWTO/Keyboard-and-Console-HOWTO.html Linux Tastatur Hinweise].

== Maus und Touchpad ==

Mit
synclient TouchPadOff=1
kann das Klicken durch Tippen auf das TouchPad abgeschaltet werden. Siehe dazu auch [http://forum.ubuntuusers.de/topic/ubuntu-12-04-mouseklicks-touchpad-deaktivieren/#post-4381662 diesen Thread].

== Prozessverwaltung ==

=== nohup ===
* Mit dem Befehl <code>nohup</code> kann man Prozesse starten, die nicht beendet werden, wenn die Shell verlassen wird. Die Standardausgabe <code>stdout</code> wird nach <code>nohup.out</code> im aktuellen Verzeichnis umgeleitet (kann z.B. mit <code>cat nohup.out</code> angesehen werden.

=== cron ===

==== crontab ====
* Mit dem Befehl <code>crontab</code> lassen sich Prozesse zu einem bestimmten Zeitpunkt ausführen. Anleitungen finden sich z.B. bei [http://de.wikipedia.org/wiki/Cron Wikipedia], [http://www.newbie-net.de/anleitung_cron.html Newbie-Net]. Mit
crontab -l
wird die <code>crontab</code> des aktuellen Benutzers ausgegeben. Mit

crontab -e
kann die <code>crontab</code> geändert werden. Eine Crontab-Datei enthält Zeilen mit normalerweise sechs durch Leerzeichen getrennte Spalten:
* Minuten
* Stunden
* Tage
* Monate
* Wochentage
* Auszuführender Befehl / Datei
Beispiel:
2 3 * * * cp src backup
@reboot echo "hallo"
*/10 * * * * echo "schon wieder"

In der ersten Zeile wird der cron-Dämon angewiesen, immer um 3:02 Uhr morgens an jedem Tag die Datei <code>src</code> nach <code>backup</code> zu kopieren. In der zweiten Zeile wird bei jedem Boot-Vorgang ein "hallo" per Mail(?) an den jeweiligen Benutzer geschickt. Die letzte Zeile wird alle 10 Minuten ausgeführt. Zu den weiteren "@-Zeiten" siehe http://library.linode.com/linux-tools/utilities/cron.

==== /etc/cron.weekly u.a. ====

Ausführbare Dateien in den Verzeichnissen <code>/etc/cron.daily</code>, <code>/etc/cron.weekly</code> und <code>/etc/cron.monthly</code> werden von <code>anacron</code> und/oder <code>cron</code> periodisch ausgeführt.

Gegenüber der <code>crontab</code>-Methode ergibt sich daraus ein Vorteil bei Rechnern, die nicht 24 Stunden im Betrieb sind. Bei [[Debian]] muss dafür jedoch anacron nachinstalliert werden (als root):
aptitude install anacron

Die Dateinamenskonvention in den Verzeichnissen <code>/etc/cron.daily</code> etc. ist recht restriktiv. Siehe dazu die [[man]]-pages von <code>run-parts</code>. Um zu sehen, ob das eigene Skript die Namenskonvention einhält, kann man
run-parts --test /etc/cron.daily
ausführen. Es wird eine Liste derjenigen Skripte ausgegeben, die die Namenskonvention einhält.

== Benutzerverwaltung ==

=== neuer Benutzer ===

* Einen neuen Benutzer legt man am Besten mit <code>adduser NEUERNUTZER </code> an. Im Gegensatz zu <code>useradd </code> wird dabei gleich ein /home-Verzeichnis angelegt. Ein Passwort wird dabei auch gleich abgefragt.

=== Benutzer-Nummer ===

* Die [http://www.unixtutorial.org/2008/01/how-to-find-uid-in-unix/ UID findet man mit dem Befehl <code>id</code>].


=== Konsolen-Benutzer ohne Passwort ===
* Für einen Benutzer ohne Passwort (beim Login auf Shell-Ebene muss man nur den Login-Namen, aber kein Passwort eingeben)<ref>Vergleiche http://onlyubuntu.blogspot.com/2008/06/howto-enable-empty-password-login-in.html.</ref> legt man ihn in folgenden zwei Schritten an:
adduser userWithoutPassword
passwd -d userWithoutPassword

=== AutoLogin auf Konsole ===
Ein automatisches Login erreicht man mit dem Paket [http://wiki.ubuntuusers.de/autologin rungetty]:
aptitude install rungetty


Danach muss man in <code>/etc/init/tty1.conf</code> die Zeile <code>exec /sbin/getty 38400 tty1</code> durch folgende Zeile ersetzen:
exec /sbin/rungetty --autologin namedesbenutzers tty1

Bei anderen Linux-Systemen (z.B. [[Debian]] 6.0 Squeeze) muss man in der <code>/etc/inittab</code> die Zeile <code>1:2345:respawn:/sbin/getty 38400 tty1</code> durch folgende Zeile ersetzen:
1:2345:respawn:/sbin/rungetty --autologin namedesbenutzers tty1

Nach dem Parameter <code>tty1</code> kann man noch ein Kommando angeben, das automatisch ausgeführt wird. Ein textbasierter Music-Client lässte sich daher durch Aufruf von <code>ncmpcpp</code> erstellen; bei Beenden des Programms wird es dann automatisch wieder gestartet. Dazu muss allerdings zuvor der [[MPD]]-Server installiert sein.

=== Weiterführendes ===

* Die ct stellte [http://www.ct.de/1103122 Skripte für ein manipulationssicheres Linux] vor (c't 3/2011 S. 122ff.).

* http://de.m.wikipedia.org/wiki/Unix-Kommandos#Benutzer-_und_Rechteverwaltung

== Virtualisierung ==

* [ftp://ftp.freiesmagazin.de/2009/freiesMagazin-2009-05.pdf freiesmagazin.de Mai 2009] zeigt, wie man einen virtuellen Rechner mittels KVM am Heimrechner einrichtet.


== Shells ==

=== Dokumentation für bash (Kommandozeile/Konsole) ===

* [http://tldp.org/LDP/abs/html/index.html Advanced Bash Shell Scripting Guide] mit vielen Beispielen.
* [http://mywiki.wooledge.org/BashPitfalls Häufige Fehler bei der Bash-Programmierung]
* [http://linuxconfig.org/Bash_scripting_Tutorial Bash Tutorial]

=== Ablaufsteuerung ===
==== if-Verzweigung ====

Der Rückgabewert 0 einer Funktion oder eines Kommando wird als wahr gewertet.

Damit gibt
if true; then echo eins; else echo zwei; fi;
"eins" aus.

Die Negation erreicht man mit dem Operator <code>!</code>:
if ! true; then echo eins; else echo zwei; fi;
liefert "zwei".


==== while-Schleife ====
* Die bash-Shell bietet auch eine einfach zu nutzende While-Schleife. Beispiel:
while true; do df -h; sleep 50s; echo `date`; done;
* Das kann man auch mit einer Pipe kombinieren (diese Schleife konvertiert Musikdateien, die nur nach der Tracknummer benannt sind, in TrackNr.mp3 um):
find /mnt/Daten/MusikSorted/ | grep ".*/[0-9][0-9]$" | (while read i; do mv "$i" "$i.mp3"; done; )
==== Funktionen ====
* Funktionen in einem Shell-Script sind einfach definiert:
function meineFunktion() {
echo Hallo welt und $1;
}
# Aufruf:
meineFunktion Tina
# Ausgabe: Hallo welt und Tina

=== Variablen ===
* Array-Variablen können z.B. folgendermaßen Werte zugewiesen werden:
meinArray=(eins zwei drei vier)

* Ein komisches Verhalten zieht <code>declare</code> innerhalb einer Funktion bei: Es begrenzt die Sichtbarkeit der Variablen auf den Funktionsbereich. Wenn globale Variablen zum Informationsaustausch zwischen Funktion und aufrufendem Skript genutzt werden sollen, sollte declare in der Funktion also besser nicht genutzt werden.

=== Parameteroptionen verarbeiten ===

[http://www.mkssoftware.com/docs/man1/getopts.1.asp getopts], ein in der Bash enthaltenes Kommando, hilft Kommandozeilenoptionen zu verarbeiten.

=== Exit-Status ===

Mit
echo $?
wird der Rückgabewert des unmittelbar davor ausgeführten Shell-Kommandos/Skripts ausgegeben.

Das kann z.B. für einen Abbruch genutzt werden:
do_something;
exit_status=$?;
if (($exit_status)); then
echo do_something failed.;
exit $exit_status;
fi;

Die Kurzform für die ersten drei Zeilen wäre:
if do_something; then

=== Debugging ===

Mit
set -x
wird Tracing eingeschaltet: Jeder Script-Befehl wird vor der Ausführung auf der Konsole ausgegeben.

Mit
set -e
wird grundsätzlich das Script bei einem erfolglosen Befehl abgebrochen.

=== Verarbeiten von Textstreams ===

Linux kennt zwei Standard-Ausgabe-Streams, stdout und stderr. Die für stderr bestimmten Ausgaben können mit dem Operator "2>" in eine Datei umgeleitet werden.

* [http://www.easylinux.de/2005/09/084-umleitungen/ Einführung in Pipes]
* Sinnvolle Hilfen zum Verarbeiten von Textstreams/Auslesen von Dateien
** [[wc]] zählt Worte und Zeilen
** [[cut]] liefert bestimmte Teile einer Zeile
** [[grep]] sucht nach Textbestandteilen
** [[sed]] hilft beim Editieren einer Datei auf der Kommandozeile bzw. in Shell-Skripten, siehe z.B. der [http://www.freiesmagazin.de/ftp/2010/freiesMagazin-2010-03.pdf Artikel zu sed im "freien Magazin"].
** [[printf]] ermöglicht wie in der Programmiersprache C das formatierte Ausgeben von Zahlen und Zeichen
printf '%s mit führenden Nullen: %05d' Zahl 76

==== sed ====
Beispiel für sed für die Umwandlung in eine Playlist:
sed -e 's/..\/Musik\/Music/dhMusic/' -e 's/\/[0-9][0-9] /\//' <playlistOriginal.m3u > playListNeu.m3u
In der neuen Playlist
* ist der Pfadanfang geändert von ../Musik/Musik nach dhMusic und
* sind die Trackziffern inklusive dies Leerzeichens weggelassen.

=== Datum ===

date
zeigt das aktuelle Datum an.
date +%s
zeigt die seit 1970 vergangenen Sekunden an.
date -d "2100-1-1 -1 day"
zeigt den letzten Tag des 21. Jahrhunderts (31.12.2099) an.

Siehe
* [http://tldp.org/LDP/abs/html/timedate.html weitere Beispiele im Advanced Bash Scripting Guide].

=== Interaktion mit Desktop ===
==== Zwischenablage ====

* Mit [http://www.linux-community.de/Archiv/Tipp-der-Woche/Xclip-Zwischenablage-fuer-die-Konsole xclip] lässt sich der Inhalt der Shell-Pipe in die Zwischenablage kopieren. Der Inhalt steht dann beispielsweise in einer KDE- oder Gnome-Anwendung zur Verfügung.

==== Nachricht an Desktop ====

Mit
notify-send text
kann eine Nachricht (text) an den Desktop gesendet werden, die dem Benutzer angezeigt wird.<ref>https://linuxnetz.wordpress.com/2010/04/21/notify-send/</ref>

Dafür ist allerdings das Paket <code>libnotify-bin</code> zu installieren:
sudo aptitude install libnotify-bin

==== User-Dialog ====

Unter [[Gnome]] lässt sich mit <code>zenity</code> von der [[Bash]] mit dem Nutzer in Dialog treten (Ja/Nein, User-Eingabezeile, ...).

==== Arbeitsflächen wechseln ====

Das Paket <code>wmctrl</code> erlaubt den Wechsel zwischen den Arbeitsflächen des Desktops:
wmctrl -s arbeitsflächennummer
wobei arbeitsflächennummer die mit 0 beginnende Nummer des Desktops ist.<ref>http://www.linuxquestions.org/questions/linux-desktop-74/how-to-specify-a-gnome-workpace-an-application-will-launch-in-555764/</ref>

Das Paket <code>devilspie</code> erlaubt es, Programme nach bestimmten Kriterien auf andere Arbeitsflächen/Viewports zu verfrachten. Dazu muss beispielsweise für <code>xterm</code> folgende Datei <code>~/.devilspie/xterm.ds</code> (Die Endung <code>.ds</code> ist wichtig) erstellt werden:

(if
(is (application_name) "xterm")
(begin
(set_viewport 3)
)
)

Anschließend muss <code>devilspie</code> gestartet werden. Bei den folgenden Aufrufen von <code>xterm</code> wird das Fenster automatisch auf die Arbeitsfläche 3 landen.

Eine Möglichkeit, mittels wmctrl und bash-Script Compiz-Viewports zu kontrollieren, findet sich [http://www.linuxquestions.org/questions/programming-9/bash-script-for-automatic-viewport-changing-and-other-wm-stuff-works-with-compiz-838827/ hier] und [http://forum.ubuntuusers.de/topic/wuerfel-per-bash-drehen/#post-1206881 hier], letzteres basierend auf [http://sfyang-en.blogspot.com/2008/02/rotate-cube-in-compiz-with-wmctrl.html diesem Blog].

== Dateiverwaltung ==

=== Dateisuche ===
Ein rekursives MS-DOS-<code>dir</code> lässt sich mit dem Befehl find erreichen:

find / -name "*xy*"

Es findet alle Dateien, die ein xy im Dateinamen enthalten und gibt den vollständigen Pfad aus. Die Anführungszeichen sind wichtig, ansonsten würde die Shell bereits die Sternchen auswerten.

=== Berechtigungen ===
* '''Berechtigungen''' für automatisch eingebundene '''FAT32'''-Laufwerke/Festplatten werden in der Datei ''/etc/fstab'' vorgegeben. Sie können nicht mit ''chmod'' oder ''chown'' geändert werden.
* Informationen u.a. zum SUID-Bit und zum Abschalten auf ganzen Partitionen finden sich auf dem [http://www.informatikserver.at/selflinux/html/grundlagen_sicherheit07.html Informatikserver.at]

=== Speicherplatz ===
* Den '''freien Platz auf der Festplatte''' erfährt man durch
df -h
* Den vom aktuellen Verzeichnis und seinen Unterverzeichnis '''belegten Platz''' erfährt man durch
du --human-readable --summarize

=== Mounten ===

==== UUID ====

Die UUIDs der Festplattenpartitionen lassen sich mit <code>sudo blkid</code> anzeigen.

==== Dauerhaftes Mounten einer NTFS-Partition ====

Um eine NTFS-Partition (z.B. auf /dev/sda2) dauerhaft (also schon beim Booten) zu mounten, fügt man in die Datei <code>/etc/fstab</code> folgende Zeile hinzu:
/dev/sda2 /mnt/winC ntfs defaults,umask=011,uid=BENUTZER,gid=BENUTZERGRUPPE 0 0
wobei BENUTZER und BENUTZERGRUPPE durch die entsprechenden Benutzernamen bzw. Gruppennammen zu ersetzen sind.

Außerdem muss der Mount-Point erzeugt werden:
mkdir /mnt/winC

Damit werden können aber alle Benutzer alle Daten dieses Laufwerks lesen und schreiben. Will man dies nicht, muss man mit den Optionen <code>uid=</code>, <code>gid=</code> und <code>umask=</code> eine Lösung finden.

Unter [[Debian]] ist für den Schreibzugriff auf [[NTFS]] die Installation des Pakets <code>ntfs-3g</code> notwendig:
aptitude install ntfs-3g


===== Korrupte NTFS-Partition =====

Mit
sudo ntfsfix /dev/sdb1
kann die NTFS-Partition auf /dev/sdb1 repariert werden.<ref>http://askubuntu.com/questions/74105/how-do-you-repair-an-input-output-error-in-an-ntfs-partition</ref>

==== Mounten eines CD-Images ====
Um ein '''CD-Image zu betrachten''' kann man dieses folgendermaßen ins normale Dateisystem einhängen:
mkdir zielpunkt
sudo mount -o loop -t iso9660 /pfad/zum/iso.image zielpunkt

Am Ende lässt es sich ganz normal mit

umount /zielpunkt

aushängen



==== Mounten eines FTP-Verzeichnisses ====

* Zum Mounten eines FTP-Verzeichnisses hilft [http://blog.bumsdiekuh.net/archives/84-FTP-Server-ganz-einfach-mounten-mit-curlftpfs.html angeblich] curlftpfs ([http://www.exanto.de/sftp-und-ftp-unter-linux-mounten.html ausführlichere Anleitung]).
* Eine andere Möglichkeit scheint [http://wiki.ubuntuusers.de/Lufs Lufs] zu bieten.

==== Mounten eines ZIP-Archivs ====

* [http://freshmeat.net/projects/fuse-zip fuse-zip(Freshmeat)], [http://linux.softpedia.com/get/System/Filesystems/fuse-zip-40109.shtml fuse-zip (Softpedia)], [http://code.google.com/p/fuse-zip/ fuse-zip (Google Code)]
* [http://www.inf.bme.hu/~mszeredi/avfs/ AVFS]

==== Mounten via SSH ====

* Übers Netzwerk kann man auch per [http://apps.sourceforge.net/mediawiki/fuse/index.php?title=Main_Page SSH-FUSE-Dateisystem] auf einen entfernten Rechner zugreifen. Das ist ein recht sicherer Zugriff, aber auch transparent, da die Dateien ins lokale Verzeichnis eingehängt (gemountet) werden können.

==== Mounten von NFS ====

Eine [[NFS]]-Freigabe (siehe /etc/exports auf dem Host) kann folgendermaßen gemountet werden:
sudo mount 192.168.0.5:/srv/nfs/myhome /mnt/nfshome

==== Mounten eines WebDAV-Verzeichnisses ====

* [[WebDAV]]-Verzeichnisse können auch dauerhaft gemountet werden, siehe [http://www.arvid-geiger.de/index.php?category_id=40&wikipage=WebDav hier].

Um als normaler User WebDAV-Verzeichnisse einzuhängen benötigt die <code>/etc/fstab</code> etwa folgende Zeile (Beispiel für T-Online Mediencenter und Benutzer USER):

https://webdav.mediencenter.t-online.de/ /home/USER/t-online davfs noauto,user,rw 0 0

Zusätzlich muss der Mountpunkt noch angelegt werden:
mkdir ~/t-online

Davfs2 muss installiert werden und normalen Nutzern das Mounten erlaubt werden
sudo aptitude install davfs2
sudo dpkg-reconfigure davfs2 # Frage nach setuid mit "Ja" beantworten

Der Benutzer muss noch der Gruppe <code>davfs2</code> hinzugefügt werden:
sudo addgroup USER davfs2

Zur Vermeidung der Passwortabfrage sollte noch die Datei <code>/home/USER/.davfs2/secrets</code> mit folgendem Inhalt angelegt werden:<ref>http://tomalison.com/reference/2010/04/03/webdav/</ref>
/home/USER/t-online xy@t-online.de password

Die Datei sollte nur von USER einsehbar sein:
chmod 600 /home/USER/.davfs2/secrets

Dann kann das WebDAV-Verzeichnis gemountet werden:
mount /home/USER/t-online

==== Mounten einer Windows-Freigabe/Samba-Share ====

* Um die [[Samba]]-Server im Netzwerk anzuzeigen, bitte
nmbstatus
eingeben.<ref>Vgl. http://de.opensuse.org/SDB:Drucken_via_SMB_(Samba)_Share_bzw._Windows_Freigabe.</ref>

* Um die von einem Samba-Server (z.B. Windows-Rechner) freigegebenen Ressourcen anzusehen, bitte
smbclient -L sambaserver
eingeben, wobei <code>sambaserver</code> der Name des Samba-Servers ist.<ref>http://www.tldp.org/HOWTO/SMB-HOWTO-8.html.</ref>

* Mit Konqueror lässt sich graphisch durch die Samba-Freigaben browsen: Einfach <code>smb:/</code> in die Adresszeile eingeben.

* Samba-Mounts lassen sich in der /etc/fstab auch [http://www.justlinux.com/nhf/Filesystems/Mounting_smbfs_Shares_Permanently.html permanent einrichten].
** Siehe für die Freigabe einer [[Samba]]-Share und deren Mounten z.B. [http://forum.geizhals.at/t369562,2885141.html#2885141 hier] oder [http://de.opensuse.org/SDB:Auf_Windows-Freigaben_zugreifen hier (OpenSuse 8.1)].
** Auch [http://www.wiki.csoft.at/index.php/Netzwerklaufwerk_mit_Linux_hinzuf%C3%BCgen hier] gibt es ein Beispiel zum Mounten einer [[Windows-Freigabe]].

=== Backup ===
* [http://blog.beimax.de/2008/10/27/tagliches-inkrementelles-backup-mit-cron-und-tar-unter-linux/ Inkrementelles Backup mit cron und tar]
* [http://de.wikibooks.org/wiki/Linux-Kompendium:_Backups Linux-Kompendium: Backups]
* Siehe auch [[Programmierprojekte#P2P-Backup]]
* [http://www.amanda.org/ Amanda] ist eine Open-Source-Lösung zum Backup mehrerer Clients (auch Windows) auf einem zentralen Server
* [http://www.getdropbox.com/pricing dropbox] bietet 2 GB - Webspeicherplatz zum Synchronisieren mehrerer Computer, aber auch als Webbackup nutzbar. Es gibt auch ein [https://www.dropbox.com/help/246/en Ubuntu-Repository für Dropbox].


Open-Source Backup Produkte:
* [http://backuppc.sourceforge.net/info.html BackupPC] (serverseitige Lösung zum Backup vieler Clients, geschrieben in Perl, mit Web-Interface zur Administration)
* [http://www.amanda.org/ Amanda]
* [http://www.nongnu.org/storebackup/de/node14.html storebackup]

Linux-Bordmittel: <code>dump</code>, <code>tar</code>, <code>smbtar</code>, [http://www.orgapage.net/pages/server/linux/backup.php?OP_SITE=c2c6a3e534e145bb4b8df1f629e0d380 rsync], [http://www.bsi-fuer-buerger.de/daten/03080801.htm Tipps vom BSI], [http://www.linux-backup.net/ linux-backup.net]

[http://linuxwiki.de/rsync/SnapshotBackups Umfangreiche Anleitung zu inkrementellem Backup] mit Hilfe von <code>rsync</code>

* Andere Hilfsmittel: <code>unison</code>

* [[MediaWiki]]: [http://www.mediawiki.org/wiki/Manual:Backing_up_a_wiki Anleitung zum Backup eines MediaWiki-Systems]

=== Verschlüsselung ===

* Siehe auch [[Verschlüsselung]]

==== Dateien verschlüsseln ====
* Mit <code>gpg</code> lassen sich unter Linux [http://www.cs.arizona.edu/computing/utilities/linux-encryption.html#gpg einzelne Dateien verschlüsseln].
* Automatisch für ganze Verzeichnisse geht das mit [[EncFS]]

==== Dateisysteme verschlüsseln ====

* [http://www.linux-magazin.de/Ausgaben/2006/10/Loechriger-Kaese älterer Überblick über Datei-Verschlüsselungen unter Linux]

==== SSL ====
* [[SSL]]-Zertifikate kopiert man unter [[Ubuntu]] ins Verzeichnis <code>/usr/share/ca-certificates</code> und macht sie dem System so bekannt:
sudo dpkg-reconfigure ca-certificates

=== Dateien im Netzwerk ===

Siehe
* [[NFS]]
* [[Samba]]
* [http://www.openafs.org/ OpenAFS]
* [[WebDAV]]
* [[SSH]] mit sshfs

== Netzwerk ==
Siehe [[oldCt:Linux-Tipps#Netzwerk]]
* Siehe [[Samba]]
* Siehe zudem [[Installation von OpenSuse über PXE]]
* Siehe [[Bluetooth-Tipps]]
* Siehe [[Sony VAIO PCG-Z600RE]]
* Siehe auch [[#Mounten eines FTP-Verzeichnisses]].

=== Allgemeines ===

In <code>/etc/network/interfaces</code> kann man manuelle Einstellungen für das Netzwerk vornehmen. Siehe [http://wiki.ubuntuusers.de/interfaces diese Anleitung] für [[Ubuntu]]. Dann kann man aber für das betreffende Interface den NetworkManager nicht mehr verwenden.


=== Fehlersuche ===

* Falls der Rechner etwas älter ist und die Netzwerkkarte nicht erkannt wird, hat es vielleicht mit einer Unverträglichkeit mit dem Power-Management zu tun. Vielleicht helfen dann die Boot-Optionen <code>noapic nolapic</code> weiter.
* Falls der Rechner seine IP-Adresse von einem DHCP-Server beziehen soll, hilft vielleicht
/sbin/dhcpcd -d -t 10 eth0

Mit
dmesg|less
kann man sich die Ausgaben während des Bootvorgangs ansehen. Siehe bei Netzwerk-Problemen unter Linux auch http://www.adsl4linux.de/howtos/lan22/ und das [http://www.tldp.org/HOWTO/Ethernet-HOWTO.html Ethernet-HOWTO].

* Eine Anleitung zu [http://www.oreilly.de/german/freebooks/linag2/netz0802.htm pppd] findet sich bei O'Reilly.
* Siehe
** [[Synchronisation unter Linux]], [[Synchronisation Web-PC-Handy]].

=== WLAN ===

==== WLAN-Hardware ====

===== USB-WLAN mit RT3070 Chip =====

Der RT3070 ist u.a. im [http://wiki.ubuntuusers.de/wlan/karten#LogiLink LogiLink WL00049A verbaut].

* Unter [[Ubuntu]] muss [http://linuxforums.org.uk/hardware-compatibility/ralink-rt2870-based-usb-wireless-n-adapters-(ubuntu)/ das Modul rt2800usb] gesperrt werden, indem es in die <code>/etc/modprobe.d/blacklist.conf</code> eingetragen wird.

* Auch in [[Debian]] muss [http://vivahate.com/2011/04/04/ralink-rt2870rt3070-in-debian-6-squeeze/ das Modul rt2800usb] gesperrt werden und das Paket <code>firmware-ralink</code> aus dem <code>non-free</code>-Repository installiert werden.

* den Treiber auf der [http://www.ralinktech.com/support.php?s=2 Hersteller-Website]
* http://lobmenschen.de/index.php/RALINK_RT3070_Linux_Treiber_Installation ([http://ubuntuforums.org/archive/index.php/t-1106034.html Ergänzung])
* Ab Kernel 2.6.31 ist der Rt3070-Treiber (experimentell) integriert.
* OpenSuse scheint den Chip ab V 11.1 zu unterstützen.<ref>http://www.xadux.eu/wireless-lan-und-lan/3423-rt3070-2.html</ref>
* Auch unter [[Ubuntu]] gibt es dazu [http://forum.ubuntuusers.de/topic/wlan-an-fritzbox-7270-mit-rt3070-wpa-wpa2/ Versuche], z.B. [http://lifewithdebian.blogspot.com/ hier]. Unter Ubuntu 9.10 funktioniert der Chip jedoch bereits out-of-the-box.
* Für [[Debian]] gibt es [http://wiki.debian.org/rt2870sta hier] eine Anleitung zu einem ähnlichen Chip.
* Evtl. funktioniert er auch mit [http://www.openbsd.org/cgi-bin/man.cgi?query=run&sektion=4&format=html OpenBSD].

===== RT2500 =====
* unter [http://www.freebsd.org/cgi/man.cgi?query=ural&sektion=4&manpath=FreeBSD+6.0-RELEASE FreeBSD 6.0]

===== rt2070-Chip =====
* [http://maxein08.wordpress.com/2009/11/04/guida-allinstallazione-di-una-chiavetta-wireless-sitecom-wl-608-su-ubuntu/ italienischer Tipp]

===== ZD1211-Chipsatz =====
* [http://wiki.debian.org/zd1211rw Installation unter Debian]
* Unter [[OpenSuse]]:
zypper install zd1211-firmware

==== Vermeidung der Passwortabfrage ====

Wenn man unter [[Gnome]] ein [[WLAN]] einrichtet, kann man das dafür nötige Passwort im Gnome-Schlüsselbund abspeichern. Wenn man beim Hochfahren sich automatisch anmelden lässt (ohne Login mit Passwort), benötigt der [[NetworkManager]] Zugriff auf den Schlüsselbund. Daher wird man vor Aufbau der Verbindung nach dem Schlüsselbund-Passwort gefragt. Das lässt sich vermeiden, indem man dem Standardschlüsselbund ein leeres Passwort gibt<ref>http://wiki.ubuntuusers.de/GNOME_Schl%C3%BCsselbund#Automatische-Anmeldung-in-GDM</ref>. Das ist aber ein <code>Sicherheitsrisiko</code>.


==== Linuxbox als WLAN-Accesspoint ====

Den Linux-Rechner kann man auch als Accesspoint für Geräte ohne WLAN nutzen, also Kabel zwischen Client und Linux-Rechner und drahtlose Übertragung zwischen Linux-Rechner und entferntem Internet-Router:
* http://www.nicolaskuttler.com/post/using-any-debian-box-as-wireless-access-point/
* http://wiki.ubuntuusers.de/WLAN_Router

=== Bluetooth ===

Siehe [[Bluetooth]]


=== Using Android-Phone as Internet-Modem ===

Normalerweise kann das [[Android]]-Smartphone einfach an einen [[USB]]-Port des [[Linux]]-Rechners angeschlossen werden. Im Android muss dann in den Einstellungen noch das USB-Tethering aktiviert werden.

Leider funktioniert das nicht immer, eventuell hilft
* [http://www.upubuntu.com/2011/12/how-to-tether-your-android-phone-to.html diese Anleitung mit der App EasyTether]

=== Wake up on LAN ===

Siehe [[Wake up on LAN]]

=== Webserver ===

* [[Plattformübergreifende Software#Serversoftware|Serversoftware]]
* [[oldCt:Webhosting]]
* [[Verschlüsselung]]

=== Mail ===
* [[Mail unter Linux]]

=== Fernzugriff ===
* [[Remote Desktop]]
** [[ssh]]

== Grafiksystem ==
=== Framebuffer ===

Auch ohne X-System kann man unter Linux Grafiken anzeigen: Dazu gibt es den Framebuffer.

Siehe z.B.
* fbtv zur Anzeige von Fernsehen

=== X ===
* [[X Server]]

=== Window Manager ===

[[Fluxbox]] ist ein im Verhältnis zu [[GNOME]] und [[KDE]] schneller und kleiner Window Manager.

* [http://www.linuxmint.com/rel_helena_fluxbox.php Fluxbox-Tastenkürzel]

* Das Umsteigen von Windows würde es erleichtern, wenn er nicht nur ein Startmenü durch Rechtsklick auf den Desktop hätte, sondern auch bei Klicken eines Icons links unten. Dazu gibt es wohl auch Lösungen:
** [http://ubuntuforums.org/showthread.php?p=3130878#post3130878 Änderungen am Source-Code von Fluxbox]

=== Grafische Fernsteuerung ===

Wer eine [[SSH]]-Konsole nicht mag, kann grafische Anwendungen auf verschiedene Weise fernsteuern:
* mit der Option <code>-X</code> kann [[SSH]] auch X-Anwendungen auf dem Server auf den lokalen [[X-Server]] umleiten
* mit [[rdesktop]] oder
* dem neueren [[xfreerdp]] kann ein Linux-Client auch auf graphische Anwendungen auf einem [[Windows]]-Server mittels des [[RDP]]-Protokolls zugreifen. [http://sgaul.de/2012/05/21/rdp-mit-ssl-unter-ubuntu-12-04/ xfreerdp unterstützt auch eine SSL-Verschlüsselung] des [[RDP]]-Protokolls.
** Es gibt ein [http://sgaul.de/2012/05/21/rdp-mit-ssl-unter-ubuntu-12-04/ PPA-Repository zur Installation] unter [[Ubuntu]].
** Wichtig scheint die [http://osdir.com/ml/freerdp-devel-remote-desktop-protocol/2011-11/msg00040.html Option <code>--sec tls</code>] zu sein.
** Mit der [http://manpages.ubuntu.com/manpages/maverick/man1/xfreerdp.1.html Option --plugin] kann man den Sound, die Zwischenablage, das Dateisystem und den Drucker mit dem lokalen Computer verbinden.
*** Bei der Druckerumleitung ist nur <code>--plugin rdpdr --data "printer:DESKJET-840C" --</code> anzugeben, wobei DESKJET-840C der CUPS-Name des Druckers auf dem lokalen Rechner ist (also keine Bezeichnung des Druckernamens auf dem Server einfügen).
** Beispiel: <code>xfreerdp --sec tls --plugin cliprdr --plugin rdpsnd --plugin rdpdr --data "printer:DESKJET-840C" -- -u "domain\\user" -p "passwort" -g 90% server:port</code>
* [[xrdp]] stellt einen X-Server zur Verfügung, auf den via [[RDP]] zugegriffen werden kann.

== Multimedia ==
* Siehe [[Multimedia]]
** [[Plattformübergreifende Software#Multimedia]]

=== Audio ===

Siehe auch [[Audio]]

Siehe auch [[Videotelefonie]]

=== Videos ===

==== Abspielen ====
Die Versorgung mit Codecs ist unter Linux ein - lösbares - Problem. Z.B. hilft die [[plattformübergreifend]]e Software [[VLC]].

Ein Projekt namens [http://abock.org/2009/02/11/announcing-moonshine-the-project-never-formerly-known-as-pornilus/ Moonshine] ermöglicht unter Linux Windows Media Content mit Original-Microsoft-Codecs abzuspielen. Es nutzt dazu [[Moonlight]].

==== Herunterladen ====

Videos von [[YouTube]] lassen sich mit
youtube-dl -t http://www.youtube.com/watch?v=j09hpp3AxIE
herunterladen. Dabei ist die anzugebende URL diejenige, die man im Browser-Adressfeld beim Surfen auf youtube findet.

Wenn der Download nicht funktioniert, hilft wahrscheinlich ein Update
youtube-dl -U

==== TV ====

Neben Projekten wie
* [[VDR]]
* [[MythTV]]
* [[XBMC]]
gibt es auch Konsolenprogramme:
* [[ttv]]
* [[fbtv]] - bietet TV im [[FrameBuffer]]

Für den Electronic Program Guide - EPG gibt es

* [http://sourceforge.net/projects/tvbrowser/ den TV-Browser], freie [[Java]]-Programmzeitschrift mit Aufzeichnungs-Plugin [[SimplePVR]]

=== Webcam ===

* Einfach Bilder von der [[Shell]] aufnehmen geht mit dem Paket [http://ubuntu.online02.com/node/25 streamer]:
sudo aptitude install streamer
streamer -f jpeg -o test.jpeg

* Alternativen sind [http://tldp.org/HOWTO/Webcam-HOWTO/framegrabbers.html camE etc.]

=== Videotelefonie ===
==== Skype ====
[[Videotelefonie]] funktioniert auch unter [[Linux]], z.B. mit [[Skype]], auch wenn man zur Vermeidung von Abstürzen noch [http://dark.asengard.net/blog/2009/04/17/avoid-skype-crash-with-video-conversation-on-linux/ Workarounds] benötigt.

* [https://help.ubuntu.com/community/SkypeTroubleshooting Skype Troubleshooting] für [[Ubuntu]]
* [http://blogs.skype.com/linux/ Skype for Linux Blog]

==== Alternativen ====
Wer nur telefonieren will, findet [http://www.easylinux.de/Artikel/ausgabe/2006/06/026-skype/ freie Alternativen], die das [[SIP]]-Protokoll nutzen.

=== Digitalkameras unter Linux ===
* Siehe dazu den Beitrag unter [http://www.pro-linux.de/berichte/digitalkameras.html Pro-Linux.de]
* [http://www.linuxdevcenter.com/pub/a/linux/2005/01/06/digicam.html Anleitung] für die Nutzung einer Kodak-Kamera
* [http://www.linuxnetmag.com/de/issue6/m6gphoto1.html Anleitung] für die Nutzung von [http://www.gphoto.org gphoto]
* [http://m4l.berlios.de/pub/Main/HowTo/DE-DIGITALKAMERA-HOWTO.html Digitalkamera HOWTO] (noch für den Kernel 2.4)
* Weitere Links:
** http://blog.chip.de/chip-linux-blog/digitalkameras-fotografie-unter-linux-20070521/
** http://www.multimedia4linux.de/cameramodule.html
** http://www.gphoto.org/cameras.html
** http://www.qbik.ch/usb/devices/

=== Bildanzeige ===

In den graphischen Desktop-Umgebungen ist die Anzeige von Bildern selbstverständlich kein Problem.

Aber es gibt auch Möglichkeiten auf der Konsole:

* [[fbi]] - benutzt Linux Frame Buffer System
** [http://linuxers.org/howto/howto-open-images-linux-console-using-fbi-console-based-image-viewer Howto für FBI]]
* [[xli]]
* [[xloadimage]] benötigt [[X]]
* [[xwud]] bedarf einer [[X]]-Umgebung
* [[xzgv]] benötigt [[X]], hat angeblich gute Tastaturunterstützung

=== Bildbearbeitung ===
Siehe
* [[Fotografie]]
* [[GIMP]]
* [[pixelize]] - ein Programm, mit dem man ein größeres Bild aus unzähligen kleineren Bildern zusammensetzen kann


Auf der Kommandozeile unter Linux helfen die Tools von ImageMagik:
* [http://www.linux-community.de/Internal/Artikel/Print-Artikel/LinuxUser/2012/08/Bildbearbeitung-mit-ImageMagick Anleitung auf LINUX-Community]

=== Bildinformationen ===
Mit den [http://exiflow.sourceforge.net/wiki/Main_Page Exiflow-Tools] können Bilddateien einfach gemäß dem Erstellungsdatum umbenannt werden.

Mit [http://www.exiv2.org/index.html exiv2] lässt sich auf der Kommandozeile die Informationen eines Bildes auswerten.

Auch [[exiftags]] und [[exif]] bieten die Informationen aus dem EXIF-Teil des JPEG-Bilds über die Kommandozeile an.

Schließlich bietet auch [http://www.sentex.net/~mwandel/jhead/ jhead] ([http://linux.die.net/man/1/jhead man-page]) alle textuellen Informationen. Dieses Programm läuft nicht nur unter Linux, sondern auch unter Windows. Eine [http://www.guckes.net/augsburg2006/bildbearbeitung_auf_der_console.txt Verwendungsbeispiel]:
jhead -nfhm%04Y.%02m.%02d-%H%M%S.%f *.jpg
Das macht aus der Datei p104711.jpg z.B. hm2007,11,12-110048.p104711.jpg.

In den OpenSuse-Forums findet sich ein [http://forums.opensuse.org/archives/sf-archives/archives-programming-scripting/335342-rename-files-using-creation-date.html Shell-Skript zum Umbenennen von Movies (.MOV)] basierend auf dem Dateimodifikationsdatum. Damit lässt sich obiger jhead-Befehl nachbilden (der Unterschied bleibt natürlich, dass nicht das EXIF-Datum, sondern das Dateidatum in den Namen aufgenommen wird):

#!/bin/sh
for file in ${@}; do
if [ -e $file ]; then
timestamp=`ls -l --time-style=+%Y.%m.%d-%H%M%S $file |cut -d' ' -f6`
newfile="hm$timestamp.$file"
echo Aus $file wird $newfile ...
mv -v "$file" "$newfile"
fi
done

== Fernzugriff ==
* [[Remote Desktop]]
** [[ssh]]

== Drucken ==
=== Allgemeines ===
* Das CUPS-Drucksystem bietet unter http://localhost:631 eine Web-Verwaltungsoberfläche.
* CUPS verwendet das Internet Printing Protocol. Dies kann auch [http://www.heise.de/netze/Ueberall-drucken--/artikel/78252/0 Windows XP anbieten].
* [http://hplipopensource.com/hplip-web/supported_devices/index.html Hewlett-Packard] und [http://solutions.brother.com/linux/en_us/index.html Brother] scheinen recht umfangreichen Linux-Treiber-Support für ihre Drucker zu leisten. Aber auch für [http://avasys.jp/hp/menu000000500/hpg000000442.htm Epson-Drucker] gibt es etliche Treiber.
* [http://www.linuxforen.de/forums/showthread.php?t=213560 Überblick über Drucken unter Linux]
* Einen Drucker am Linux-Rechner kann man [http://pda-und-co.de/linux/2009/05/03/eee-als-home-server-feste-ip-netzwerkdrucker-per-cups-einrichten/ auch vom Windows-PC als Netzwerkdrucker nutzen]

Beim Netzwerk-Server, an den der Drucker angeschlossen ist, muss man den Clients den Zugriff auf den Drucker erlauben:
cupsctl --share-printers

Von der Shell kann man einen Netzwerkdrucker folgendermaßen zum Client hinzufügen:
lpadmin -p printer -E -v ipp://server/printers/printer
wobei man <code>printer</code> jeweils durch die CUPS-Drucker-Bezeichnung, z.B. "DESKJET-840C" ersetzen muss.

Siehe auch
* [[Drucken]] allgemein

=== HP-Drucker ===

HP bietet mit HPLIP eine Open Source - Unterstützung für Linux.

Falls HPLIP-Status sich wegen eines fehlenden Systray meldet, sollte man auf das GNOME-Panel gehen, rechts klicken -> "Zum Panel hinzufügen " -> "Benachrichtigungsfeld" wählen

== Scannen ==

=== Scanner im Netzwerk ===

Siehe die Anleitung zum [http://wiki.ubuntuusers.de/SANE-Scanserver_im_Netzwerk Scannen im Netzwerk unter Ubuntu].

Zusätzlich muss noch in <code>/etc/default/saned</code> der Start von Saned eingestellt werden:

RUN=yes

=== Einzelne Scanner ===

==== Scanner '''Mustek 1200 UB Plus''' ====

Für den Scanner '''Mustek 1200 UB Plus''' ist neben einer SANE-Installation einschließlich des [http://www.meier-geinitz.de/sane/gt68xx-backend/index.html gt68xx-Backends] (bei OpenSuse 10.3 automatisch) noch Folgendes zu tun:
* Verezeichnis für Firmware anlegen
sudo mkdir -p /usr/share/sane/gt68xx
* Die Firmware-Datei [http://www.meier-geinitz.de/sane/gt68xx-backend/firmware/sbfw.usb sbfw.usb] herunterladen und im Verzeichnis <code>/usr/share/sane/gt68xx</code> speichern sowie
* Von der bisher in der Datei <code>/etc/sane.d/gt68xx.conf</code> enthaltene Zeile
#override "mustek-scanexpress-1200-ub-plus"
das führende Kommentarzeichen (#) entfernen. <small>Ansonsten wird der Scanner fälschlicherweise als Mustek BearPaw 1200 CU erkannt.</small>
* Das erkannte Scanner-Modell kann man sich ausgeben lassen:
scanimage -L
* Mit der Anwendung <code>xsane</code> kann man dann scannen.

==== Brother MFC 260C ====

Das Multifunktionsgerät Brother MFC 260 C lässt sich [http://ubuntuforums.org/showthread.php?t=590793 sowohl als Scanner als auch als Drucker] unter Linux einrichten. Dazu ist der Treiber brscan2 von [http://welcome.solutions.brother.com/bsc/public_s/id/linux/en/download_scn.html Brother herunterzuladen].

=== Scannen in verschiedenen Distributionen ===
==== OpenSuse ====
* Mit dem Scanner-Modul von yast kann man die korrekte Installation testen.

==== Debian ====
* Unter [[Debian]]
** ist neben der Installation von <code>xsane</code> auch die Installation von <code>sane-utils</code> erforderlich.
** Außerdem muss der jeweilige Benutzer Mitglied der Gruppe <code>scanner</code> sein.

==== Ubuntu ====
'''Achtung wohl veraltet'''
* Unter [[Ubuntu]] benötigt man jedenfalls in 9.10 Karmic Koala folgende Zeile in <code>/etc/fstab</code>:
none /proc/bus/usb usbfs auto 0 0

Evtl. funktioniert auch
none /proc/bus/usb usbfs auto,devmode=0666 0 0


* Ob die Zeile funktioniert lässt sich mit mount testen:
sudo mount -a

* Damit man auch als normaler User auf den Scanner zugreifen kann,<ref>http://www.ubuntu-forum.de/artikel/41977/scanner-wird-als-user-nicht-erkannt-nur-als-root.html</ref> kreiert man mit
sudo joe /etc/udev/rules.d/40-basic-permissions.rules
(oder irgendeinem anderen Editor) eine Datei mit folgendem Inhalt
# USB devices (usbfs replacement)
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666"
SUBSYSTEM=="usb_device", MODE="0666"

Anschließend muss man das udev-System neustarten:
sudo restart udev

Hinweis: Auf [http://wiki.ubuntuusers.de/Scanner#USB ubuntuusers.de] findet sich eine davon leicht abweichende Möglichkeit für das Scannen als normaler User.
Hinweis 2: Für Ubuntu 9.10 muss man es wohl inzwischen [http://forum.ubuntuusers.de/topic/probleme-mit-scanner-seit-karmic-9-10/ anders machen].

== Verbindung mit Handy/PDA ==

* [[Synchronisation Web-PC-Handy]]
** [[Sony Ericsson K800i]]
*** [[Sony Ericsson K800i über Bluetooth an Linux-PC]]
* [[Synchronisation unter Linux]]

== Weitere Anwendungen ==


=== Plattformübergreifende Software ===

Siehe [[Plattformübergreifende Software]]

=== CAD ===

* QCad ([[OpenSource]]) - 2D-CAD auf [[Qt]]-Basis
* [http://www.gcad3d.org/ GCAD_3D] 3D-CAD (Freeware) auf [[Gtk]]-Basis
* [http://sourceforge.net/projects/pythoncad/ PythonCAD] ([[OpenSource]])
* [http://sourceforge.net/apps/mediawiki/free-cad/index.php?title=Main_Page FreeCAD] ([[OpenSource]])
** [http://sourceforge.net/apps/mediawiki/free-cad/index.php?title=Draft_tutorial Einstiegstutorial]


=== Business Software ===

* [http://www.linux-community.de/Internal/Artikel/Online-Artikel/Versuch-einer-Entscheidungshilfe-fuer-die-richtige-Linux-Unternehmenssoftware Überblick über Linux-Business-Software]
* Ein weiteres [[DMS]] ist [http://www.archivista.ch/de/pages/support/installation.php Archivista]

=== Groupware-Server ===
* [http://www.kolab.org/about-kolab-server.html Kolab]
* Citadel
* [http://www.opengroupware.org/en/index.html OpenGroupware]

----
<references/>

[[Category:Linux]]
[[Category:OldCt]]
[[Category:Informationstechnik]]

Navigationsmenü