Linux-Tipps
Siehe oldCt:Linux-Tipps
Linux und andere Betriebssysteme
Betriebssystemvergleich
Plattformübergreifende Software
Zusammenarbeit mit Windows
- Man kann zum Booten eines Linux-Systems auch den Windows-Bootloader nutzen (Anleitung für Suse, distributionsunabhängige Anleitung).
- Flexibler ist aber der moderne Linux-Bootloader GRUB. In jedem Fall sollte man den Master Boot Record (MBR) sichern.
- andLinux und topologilinux sind auf coLinux basierende Linux-Distributionen, die unter Windows laufen.
- Einige Linux-Anwendungen laufen durch CygWin auch unter Windows. Neben dem graphischen windows-typischen Installer kann nach der Erstinstallation auch das
apt-get
-ähnliche Skript apt-cyg zur Paketverwaltung genutzt werden.
- 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.
- 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 explore2fs. Noch weiter gehen fs-driver und ext2fsd: sie bieten Treiber für ext2-Partitionen. Letzteres läuft auch unter Windows Vista.
Dokumentation
Anleitungen
- Linux-Handbuch, ein kostenloses Onlinebuch zu Linux von Galileo.
- Das Linux-Kompendium ist auf wikibooks.org als freies umfangreiches Nachschlagewerk zu Linux erschienen.
- Einen Einblick in Linux liefert Kapitel 7 des IT-Fachhandbuchs.
- Eine gute Anleitung für Linux (wenn auch etwas beschwerlich zu lesen) enthält 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 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. man
-pages sind DIE Informationsquelle eines Linux-Systems. Sie finden sich auch im World Wide Web (z.B. bei UNIX-Help und 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
- freiesmagazin.de hat monatlich Berichte aus dem Open Source-Umfeld.
- RadioTux liefert PodCasts rund um Linux.
Distributionen
Allgemeines
- Einen Überblick über die verschiedenen Distributionen verspricht dieser Artikel auf golem.de.
- Linux from Scratch gibt Hilfe für den kompletten Eigenbau eines Linux-Systems.
- SLAX ist eine auf 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 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
/var/lib/YaST2/ppd_db.ycp
löschen.[1] - Siehe auch Installation von OpenSuse über PXE.
- Das GNOME-Frontend für Vorlage:Su (starten von Programmen als Root) heißt unter OpenSuse
gnomesu
und nicht wie sonst meist üblichgksu
. Die Entsprechung unter KDE heißtkdesu
.
- OpenSuse ist das von Novell unterstützte freie Linux. Proprietäre (und trotzdem kostenlose) Anwendungen können über andere Installationsquellen nachgeladen werden.
- Auch Debian lässt sich übers Netzwerk/PXE installieren.
- Auch Knoppix lässt sich über PXE installieren. Siehe
- Arch Linux ist offiziell eine schlanke, ständig aktuelle Linux-Distribution (PXE-Installation möglich).
- andLinux ist eine Linux-Distribution, die unter Windows 2000, XP etc. läuft. Sie basiert auf coLinux.
- Eine Distribution, die Wert auf Flexibilität und Anpassungsfähigkeit liegt, ist Gentoo.
- 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 kundenspezifische LiveCDs erstellen, so gibt es z.B. eine LiveCD mit minimalem Footprint.
- Auf Ubuntu baut die Netbook-Distribution Easy Peasy auf.
Schnellstart-Linux
- Tiny Core Linux vom selben Entwickler wie Damn Small Linux, aber als GUI-Desktopvariante.
- U-Lite, ein Derivat von Ubuntu
- Puppy Linux hat schon Tradition als ressourcensparende Distribution. Siehe auch das deutschsprachige Puppy Linux Forum.
- 4MB-Mini-Linux
- Zu diesem Thema kann man auch generell 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
- Installation von OpenSuse über PXE
- Installation von Debian über 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 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 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
Patch und diff
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 ü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 /etc/default/grub sowie über Skripte in /etc/grub.d/
. Beispiel für ein Skript /etc/grub.d/08_meinEintrag
:
#!/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 08
am Beginn des Dateinamens sorgt dafür, dass es vor dem Skript 10_linux
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 /boot/grub/grub.cfg
beim Ausführen von update-grub. Der Text zwischen EOF und EOF landet dagegen 1:1 in /boot/grub/grub.cfg
. Hier kann man also experimentieren.
Der Befehl set
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 search
setzen.[2]
Für weitere Beispiele sollte man sich die automatisch generierte /boot/grub/grub.cfg
anschauen. Dabei kann man alles, was nicht mit menuentry
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 /boot/grub/grub.cfg
mittels
sudo grub-mkconfig
an und schreibt sie in /boot/grub/grub.cfg
mittels
sudo update-grub
ISO-File booten
Boot in die Shell
- Anhängen von init 1 an kernel Parameter
- Hinzufügen von "text" "disable gdm" ans Ende der Kernel-Parameter
- Booten mit Esc oder linker Shift-Taste in den Recovery-Modus
Weiterführendes
Siehe auch
- GRUB-Manual
- Grub-Hilfe für Ubuntu,
- Grub-Tutorial (englisch)
- ArchLinux Grub Wiki
- How to use Labels for GRUB2
EFI-Boot-Loader
Allgemeines
- Beschreibung verschiedener EFI-Bootloader für Linux
- UEFI-Grundlagen für ArchLinux
GRUB2
- GRUB2 auf UEFI unter ArchLinux
- EFI-Grub2-Multiboot
- EFI-Grub2 mit Gentoo
- Chainloading von EFI-Windows-Bootloader funktioniert durch folgenden Eintrag in grub.cfg[3] 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.[4]
Booten übers Netzwerk
- Siehe Booten übers Netzwerk
Kernel
- Kernel-Parameter (weitgehend vollständig)
- Kernel-Parameter (Auswahl auf ubuntuusers)
- Kernel-Parameter(Auswahl)
- Achtung der Kernel-Parameter
root=
kann sich ändern. Passte bei einer früheren Version noch/dev/hda1
als Argument, kann es jetzt/dev/sda1
sein.
Wer seinen Kernel selber kompilieren will, findet 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 /etc/init.d
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 S
oder einem K
, 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
chkconfig
wird in dem init-Skript konkret die jeweiligen Runlevel, in denen der Dienst laufen soll, sowie die Prioritätszahl vorgegeben. insserv
(OpenSuse) kann auch Abhängigkeiten auflösen.- Unter Debian und Konsorten gibt es
update-rc.d
(siehe diese 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
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
/etc/init.d/after.local
oder/etc/rc.local
(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 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 /etc/inittab
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. folgende Änderung der /etc/X11/xorg.conf (evtl. ausführbar machen???):
Section "ServerFlags" Option "AutoAddDevices" "False" EndSection
Zusätzlich sollte noch der "alte" Tastatur-Treiber installiert werden:
aptitude install xserver-xorg-input-kbd xserver-xorg-input-mouse
Tastaturlayout
Ab Debian 6.0 Squeeze ist die 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 /etc/X11/xorg.conf
eingestellt:
Section "InputDevice" Identifier "Generic Keyboard" Driver "kbd" Option "XkbRules" "xorg" Option "XkbModel" "pc104" Option "XkbLayout" "de" EndSection
Siehe auch
Maus und Touchpad
Mit
synclient TouchPadOff=1
kann das Klicken durch Tippen auf das TouchPad abgeschaltet werden. Siehe dazu auch diesen Thread.
Prozessverwaltung
nohup
- Mit dem Befehl
nohup
kann man Prozesse starten, die nicht beendet werden, wenn die Shell verlassen wird. Die Standardausgabestdout
wird nachnohup.out
im aktuellen Verzeichnis umgeleitet (kann z.B. mitcat nohup.out
angesehen werden.
cron
crontab
- Mit dem Befehl
crontab
lassen sich Prozesse zu einem bestimmten Zeitpunkt ausführen. Anleitungen finden sich z.B. bei Wikipedia, Newbie-Net. Mit
crontab -l
wird die crontab
des aktuellen Benutzers ausgegeben. Mit
crontab -e
kann die crontab
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 src
nach backup
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 /etc/cron.daily
, /etc/cron.weekly
und /etc/cron.monthly
werden von anacron
und/oder cron
periodisch ausgeführt.
Gegenüber der crontab
-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 /etc/cron.daily
etc. ist recht restriktiv. Siehe dazu die man-pages von run-parts
. 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
adduser NEUERNUTZER
an. Im Gegensatz zuuseradd
wird dabei gleich ein /home-Verzeichnis angelegt. Ein Passwort wird dabei auch gleich abgefragt.
Benutzer-Nummer
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)[5] legt man ihn in folgenden zwei Schritten an:
adduser userWithoutPassword passwd -d userWithoutPassword
AutoLogin auf Konsole
Ein automatisches Login erreicht man mit dem Paket rungetty:
aptitude install rungetty
Danach muss man in /etc/init/tty1.conf
die Zeile exec /sbin/getty 38400 tty1
durch folgende Zeile ersetzen:
exec /sbin/rungetty --autologin namedesbenutzers tty1
Bei anderen Linux-Systemen (z.B. Debian 6.0 Squeeze) muss man in der /etc/inittab
die Zeile 1:2345:respawn:/sbin/getty 38400 tty1
durch folgende Zeile ersetzen:
1:2345:respawn:/sbin/rungetty --autologin namedesbenutzers tty1
Nach dem Parameter tty1
kann man noch ein Kommando angeben, das automatisch ausgeführt wird. Ein textbasierter Music-Client lässte sich daher durch Aufruf von ncmpcpp
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 Skripte für ein manipulationssicheres Linux vor (c't 3/2011 S. 122ff.).
Virtualisierung
- freiesmagazin.de Mai 2009 zeigt, wie man einen virtuellen Rechner mittels KVM am Heimrechner einrichtet.
Shells
Dokumentation für bash (Kommandozeile/Konsole)
- Advanced Bash Shell Scripting Guide mit vielen Beispielen.
- Häufige Fehler bei der Bash-Programmierung
- 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 !
:
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
declare
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
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.
- 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 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
Interaktion mit Desktop
Zwischenablage
- Mit 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.[6]
Dafür ist allerdings das Paket libnotify-bin
zu installieren:
sudo aptitude install libnotify-bin
User-Dialog
Unter Gnome lässt sich mit zenity
von der Bash mit dem Nutzer in Dialog treten (Ja/Nein, User-Eingabezeile, ...).
Arbeitsflächen wechseln
Das Paket wmctrl
erlaubt den Wechsel zwischen den Arbeitsflächen des Desktops:
wmctrl -s arbeitsflächennummer
wobei arbeitsflächennummer die mit 0 beginnende Nummer des Desktops ist.[7]
Das Paket devilspie
erlaubt es, Programme nach bestimmten Kriterien auf andere Arbeitsflächen/Viewports zu verfrachten. Dazu muss beispielsweise für xterm
folgende Datei ~/.devilspie/xterm.ds
(Die Endung .ds
ist wichtig) erstellt werden:
(if (is (application_name) "xterm") (begin (set_viewport 3) ) )
Anschließend muss devilspie
gestartet werden. Bei den folgenden Aufrufen von xterm
wird das Fenster automatisch auf die Arbeitsfläche 3 landen.
Eine Möglichkeit, mittels wmctrl und bash-Script Compiz-Viewports zu kontrollieren, findet sich hier und hier, letzteres basierend auf diesem Blog.
Dateiverwaltung
Dateisuche
Ein rekursives MS-DOS-dir
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 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 sudo blkid
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 /etc/fstab
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 uid=
, gid=
und umask=
eine Lösung finden.
Unter Debian ist für den Schreibzugriff auf NTFS die Installation des Pakets ntfs-3g
notwendig:
aptitude install ntfs-3g
Korrupte NTFS-Partition
Mit
sudo ntfsfix /dev/sdb1
kann die NTFS-Partition auf /dev/sdb1 repariert werden.[8]
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 angeblich curlftpfs (ausführlichere Anleitung).
- Eine andere Möglichkeit scheint Lufs zu bieten.
Mounten eines ZIP-Archivs
Mounten via SSH
- Übers Netzwerk kann man auch per 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
Um als normaler User WebDAV-Verzeichnisse einzuhängen benötigt die /etc/fstab
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 davfs2
hinzugefügt werden:
sudo addgroup USER davfs2
Zur Vermeidung der Passwortabfrage sollte noch die Datei /home/USER/.davfs2/secrets
mit folgendem Inhalt angelegt werden:[9]
/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
- Um die Samba-Server im Netzwerk anzuzeigen, bitte
nmbstatus
eingeben.[10]
- Um die von einem Samba-Server (z.B. Windows-Rechner) freigegebenen Ressourcen anzusehen, bitte
smbclient -L sambaserver
eingeben, wobei sambaserver
der Name des Samba-Servers ist.[11]
- Mit Konqueror lässt sich graphisch durch die Samba-Freigaben browsen: Einfach
smb:/
in die Adresszeile eingeben.
- Samba-Mounts lassen sich in der /etc/fstab auch permanent einrichten.
- Siehe für die Freigabe einer Samba-Share und deren Mounten z.B. hier oder hier (OpenSuse 8.1).
- Auch hier gibt es ein Beispiel zum Mounten einer Windows-Freigabe.
Mounten eines Loop-Devices
Das Mounten eines Loop-Devices geht wie das Mounten eines normalen Block-Devices. Bei den Optionen in der /etc/fstab steht zusätzlich loop
.
Siehe
Backup
- Inkrementelles Backup mit cron und tar
- Linux-Kompendium: Backups
- Siehe auch Programmierprojekte#P2P-Backup
- Dirvish ist eine recht simple Commandline-Lösung, die auf rsync und ssh basiert.
- Amanda ist eine Open-Source-Lösung zum Backup mehrerer Clients (auch Windows) auf einem zentralen Server
- dropbox bietet 2 GB - Webspeicherplatz zum Synchronisieren mehrerer Computer, aber auch als Webbackup nutzbar. Es gibt auch ein Ubuntu-Repository für Dropbox.
Open-Source Backup Produkte:
- BackupPC (serverseitige Lösung zum Backup vieler Clients, geschrieben in Perl, mit Web-Interface zur Administration)
- Amanda
- storebackup
Linux-Bordmittel: dump
, tar
, smbtar
, rsync, Tipps vom BSI, linux-backup.net
Umfangreiche Anleitung zu inkrementellem Backup mit Hilfe von rsync
- Andere Hilfsmittel:
unison
Verschlüsselung
- Siehe auch Verschlüsselung
Dateien verschlüsseln
- Mit
gpg
lassen sich unter Linux einzelne Dateien verschlüsseln. - Automatisch für ganze Verzeichnisse geht das mit EncFS
Dateisysteme verschlüsseln
SSL
- SSL-Zertifikate kopiert man unter Ubuntu ins Verzeichnis
/usr/share/ca-certificates
und macht sie dem System so bekannt:
sudo dpkg-reconfigure ca-certificates
Dateien im Netzwerk
Siehe
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 /etc/network/interfaces
kann man manuelle Einstellungen für das Netzwerk vornehmen. Siehe 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
noapic nolapic
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 Ethernet-HOWTO.
- Eine Anleitung zu pppd findet sich bei O'Reilly.
- Siehe
WLAN
WLAN-Hardware
USB-WLAN mit RT3070 Chip
Der RT3070 ist u.a. im LogiLink WL00049A verbaut.
- Unter Ubuntu muss das Modul rt2800usb gesperrt werden, indem es in die
/etc/modprobe.d/blacklist.conf
eingetragen wird.
- Auch in Debian muss das Modul rt2800usb gesperrt werden und das Paket
firmware-ralink
aus demnon-free
-Repository installiert werden.
- den Treiber auf der Hersteller-Website
- http://lobmenschen.de/index.php/RALINK_RT3070_Linux_Treiber_Installation (Ergänzung)
- Ab Kernel 2.6.31 ist der Rt3070-Treiber (experimentell) integriert.
- OpenSuse scheint den Chip ab V 11.1 zu unterstützen.[12]
- Auch unter Ubuntu gibt es dazu Versuche, z.B. hier. Unter Ubuntu 9.10 funktioniert der Chip jedoch bereits out-of-the-box.
- Für Debian gibt es hier eine Anleitung zu einem ähnlichen Chip.
- Evtl. funktioniert er auch mit OpenBSD.
RT2500
- unter FreeBSD 6.0
rt2070-Chip
ZD1211-Chipsatz
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[13]. Das ist aber ein Sicherheitsrisiko
.
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
Wake up on LAN
Siehe Wake up on LAN
Webserver
Fernzugriff
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
Window Manager
Fluxbox ist ein im Verhältnis zu GNOME und KDE schneller und kleiner Window Manager.
- 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:
Grafische Fernsteuerung
Wer eine SSH-Konsole nicht mag, kann grafische Anwendungen auf verschiedene Weise fernsteuern:
- mit der Option
-X
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. xfreerdp unterstützt auch eine SSL-Verschlüsselung des RDP-Protokolls.
- Es gibt ein PPA-Repository zur Installation unter Ubuntu.
- Wichtig scheint die Option
--sec tls
zu sein. - Mit der Option --plugin kann man den Sound, die Zwischenablage, das Dateisystem und den Drucker mit dem lokalen Computer verbinden.
- Bei der Druckerumleitung ist nur
--plugin rdpdr --data "printer:DESKJET-840C" --
anzugeben, wobei DESKJET-840C der CUPS-Name des Druckers auf dem lokalen Rechner ist (also keine Bezeichnung des Druckernamens auf dem Server einfügen).
- Bei der Druckerumleitung ist nur
- Beispiel:
xfreerdp --sec tls --plugin cliprdr --plugin rdpsnd --plugin rdpdr --data "printer:DESKJET-840C" -- -u "domain\\user" -p "passwort" -g 90% server:port
- xrdp stellt einen X-Server zur Verfügung, auf den via RDP zugegriffen werden kann.
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übergreifende Software VLC.
Ein Projekt namens 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
gibt es auch Konsolenprogramme:
- ttv
- fbtv - bietet TV im FrameBuffer
Für den Electronic Program Guide - EPG gibt es
- den TV-Browser, freie Java-Programmzeitschrift mit Aufzeichnungs-Plugin SimplePVR
Webcam
sudo aptitude install streamer streamer -f jpeg -o test.jpeg
- Alternativen sind camE etc.
Videotelefonie
Skype
Videotelefonie funktioniert auch unter Linux, z.B. mit Skype, auch wenn man zur Vermeidung von Abstürzen noch Workarounds benötigt.
Alternativen
Wer nur telefonieren will, findet freie Alternativen, die das SIP-Protokoll nutzen.
Digitalkameras unter Linux
- Siehe dazu den Beitrag unter Pro-Linux.de
- Anleitung für die Nutzung einer Kodak-Kamera
- Anleitung für die Nutzung von gphoto
- Digitalkamera HOWTO (noch für den Kernel 2.4)
- Weitere Links:
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
- 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:
Bildinformationen
Mit den Exiflow-Tools können Bilddateien einfach gemäß dem Erstellungsdatum umbenannt werden.
Mit 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 jhead (man-page) alle textuellen Informationen. Dieses Programm läuft nicht nur unter Linux, sondern auch unter Windows. Eine 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 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
Allgemeines
- Das CUPS-Drucksystem bietet unter http://localhost:631 eine Web-Verwaltungsoberfläche.
- CUPS verwendet das Internet Printing Protocol. Dies kann auch Windows XP anbieten.
- Hewlett-Packard und Brother scheinen recht umfangreichen Linux-Treiber-Support für ihre Drucker zu leisten. Aber auch für Epson-Drucker gibt es etliche Treiber.
- Überblick über Drucken unter Linux
- Einen Drucker am Linux-Rechner kann man 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 printer
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 Scannen im Netzwerk unter Ubuntu.
Zusätzlich muss noch in /etc/default/saned
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 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 sbfw.usb herunterladen und im Verzeichnis
/usr/share/sane/gt68xx
speichern sowie - Von der bisher in der Datei
/etc/sane.d/gt68xx.conf
enthaltene Zeile
#override "mustek-scanexpress-1200-ub-plus"
das führende Kommentarzeichen (#) entfernen. Ansonsten wird der Scanner fälschlicherweise als Mustek BearPaw 1200 CU erkannt.
- Das erkannte Scanner-Modell kann man sich ausgeben lassen:
scanimage -L
- Mit der Anwendung
xsane
kann man dann scannen.
Brother MFC 260C
Das Multifunktionsgerät Brother MFC 260 C lässt sich sowohl als Scanner als auch als Drucker unter Linux einrichten. Dazu ist der Treiber brscan2 von 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
xsane
auch die Installation vonsane-utils
erforderlich. - Außerdem muss der jeweilige Benutzer Mitglied der Gruppe
scanner
sein.
- ist neben der Installation von
Ubuntu
Achtung wohl veraltet
- Unter Ubuntu benötigt man jedenfalls in 9.10 Karmic Koala folgende Zeile in
/etc/fstab
:
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,[14] 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 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 anders machen.
Verbindung mit Handy/PDA
Weitere Anwendungen
Plattformübergreifende Software
Siehe Plattformübergreifende Software
CAD
- QCad (OpenSource) - 2D-CAD auf Qt-Basis
- GCAD_3D 3D-CAD (Freeware) auf Gtk-Basis
- PythonCAD (OpenSource)
- FreeCAD (OpenSource)
Business Software
- Überblick über Linux-Business-Software
- Ein weiteres DMS ist Archivista
Groupware-Server
- Kolab
- Citadel
- OpenGroupware
- ↑ Hängen bei Aufbau der Druckerdatenbank bei 4%.
- ↑ Siehe How to use Labels for GRUB2.
- ↑ 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
- ↑ Siehe http://www.rodsbooks.com/efi-bootloaders/elilo.html
- ↑ Vergleiche http://onlyubuntu.blogspot.com/2008/06/howto-enable-empty-password-login-in.html.
- ↑ https://linuxnetz.wordpress.com/2010/04/21/notify-send/
- ↑ http://www.linuxquestions.org/questions/linux-desktop-74/how-to-specify-a-gnome-workpace-an-application-will-launch-in-555764/
- ↑ http://askubuntu.com/questions/74105/how-do-you-repair-an-input-output-error-in-an-ntfs-partition
- ↑ http://tomalison.com/reference/2010/04/03/webdav/
- ↑ Vgl. http://de.opensuse.org/SDB:Drucken_via_SMB_(Samba)_Share_bzw._Windows_Freigabe.
- ↑ http://www.tldp.org/HOWTO/SMB-HOWTO-8.html.
- ↑ http://www.xadux.eu/wireless-lan-und-lan/3423-rt3070-2.html
- ↑ http://wiki.ubuntuusers.de/GNOME_Schl%C3%BCsselbund#Automatische-Anmeldung-in-GDM
- ↑ http://www.ubuntu-forum.de/artikel/41977/scanner-wird-als-user-nicht-erkannt-nur-als-root.html