Linux-Tipps

Aus CodicaTipps
Zur Navigation springen Zur Suche springen

Siehe oldCt:Linux-Tipps

Linux und andere Betriebssysteme

Betriebssystemvergleich

Plattformübergreifende Software

Zusammenarbeit mit Windows

  • 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.

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

  • RadioTux liefert PodCasts rund um Linux.

Distributionen

Allgemeines

  • 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 üblich gksu. Die Entsprechung unter KDE heißt kdesu.
  • 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

Schnellstart-Linux

Router mit Linux

Siehe Router

Linux im Browser

bellard.org/jslinux

Installation

Installation von Linux auf Laptops

Installation eines Servers im Internet

Siehe Root-Server

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
Auswahl des Betriebssystems für nächsten Boot

Um nur für den nächsten Bootvorgang ein anderes Betriebssystem zu booten, kann man

 sudo grub-reboot x

aufrufen, wobei x die Nummer oder die genaue Bezeichnung des "menuentry"-Eintrags in der grub.cfg ist.

Wichtig ist dabei, dass in /etc/default/grub steht, dass

 GRUB_DEFAULT=saved

Dabei ist es sinnvoll den Standardbootmenüeintrag mit folgendem Kommando festzulegen:

 sudo grub-set-default x

Siehe http://wiki.ubuntuusers.de/GRUB_2/Terminalbefehle#grub-reboot

Boot in die Shell
Weiterführendes

Siehe auch

EFI-Boot-Loader

Allgemeines
GRUB2
Allgemeines


Installation

Aus einem mit EFI gestarteten System lassen sich mit

 sudo efibootmgr --verbose

die zu bootenden Loader anzeigen und die Bootreihenfolge mit

 sudo efibootmgr -o A,2,3

ändern.

Wenn man in /etc/default/grub

 GRUB_DISTRIBUTOR=dhubuntu

gesetzt hat und mit

 sudo grub-install

den GRUB-Bootloader erneut installiert hat, kann man ihn mit

 sudo efibootmgr -c --bootnum 000A -d /dev/sda -p 1 -L "dhUbuntuEFI" -l \\EFI\\dhubuntu\\grubx64.efi 

aktivieren.[3]

Chainloading Windows
  • Chainloading von EFI-Windows-Bootloader funktioniert durch folgenden Eintrag in grub.cfg[4] 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.[5]

Booten übers Netzwerk

Kernel

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

Systemd

Systemd scheint nach der Entscheidung von Debian zur Umstellung auf Systemd das alte *NIX-Init-System abzulösen.

Standard-Ziel

Das Standard-Ziel (der Default Runlevel) wird mittels eines Links eingestellt:[6]

 ln -s /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

Alternativ kann auch der folgende Befehl genutzt werden:[7]

 systemctl set-default multi-user.target

Schließlich lässt sich beim Booten ebenfalls das Target als Kernel-Parameter (siehe bei GRUB) angeben:[8]

 systemd.unit=multi-user.target

Eine Übersicht über besondere Ziele des Systemd-Systems findet sich bei freedesktop.org.

Konsolen

Siehe zu Service-Templates (z.B. mehrere Konsolen, auf die mittels (Strg-)Alt-F1, (Strg-)Alt-F2 ... zugegriffen werden kann und auf denen jeweils getty läuft):

Weiteres

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

Debian 8.0 Jessie

Wenn die PS/2-Tastatur nach Installation von CUPS nicht funktioniert, hilft möglicherweise[9] eine Änderung der /etc/default/cups:

 LOAD_LP_MODULE=no

Oder man deinstalliert das Modul cups-server-common mit all seinen Abhängigkeiten

 aptitude remove cups-server-common

Der eigentliche Übeltäter ist jedoch das Modul parport_pc[10], das CUPS für Drucker am Parallelport lädt. Dies lässt sich durch Erstellung folgender /etc/modprobe.d/uebeltaeter.conf beheben:

 #Ermoeglicht wieder die PS_2 Tastatur zu nutzen:
 
 blacklist parport_pc


Wenn es immer noch nicht hilft, muss das Modul ohci_pci nachgeladen werden.[11]

Oder: das Paket hal muss deinstalliert werden:

 aptitude remove hal

Schließlich hilft eventuell (z.B. bei einer Tastatur, die nach einem Suspend-to-RAM nicht mehr funktioniert) auch der Kernelparameter (anzugeben bei den GRUB-Einstellungen):

 atkbd.reset

Debian 7.0 Wheezy

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


Dazu muss zuvor die notwendigen Pakete installiert werden

 aptitude install console-data 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 Standardausgabe stdout wird nach nohup.out im aktuellen Verzeichnis umgeleitet (kann z.B. mit cat 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 zu useradd 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)[12] legt man ihn in folgenden zwei Schritten an:
 adduser userWithoutPassword
 passwd -d userWithoutPassword

AutoLogin auf Konsole

AutoLogin unter SysV

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.

AutoLogin unter Systemd

Siehe dazu http://noctus.net/2011/mingetty-und-systemd

Weiterführendes

Virtualisierung


Shells

Dokumentation für bash (Kommandozeile/Konsole)

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.

Mit dem Modifizierer -i (oder --in-place) kann eine Datei geändert werden, die zugleich als Eingabestream fungiert.

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.[13]

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.[14]

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

Erkennen einer CD-ROM

Möglicherweise hilft bei Nichterkennung einer CD-ROM das Einschalten des Kernel-Pollings (siehe unteren Teil der verlinkten Seite).

UUID

Die UUIDs der Festplattenpartitionen lassen sich mit sudo blkid anzeigen. In der /etc/fstab ersetzt man das übliche /dev/sdXX durch UUID=12345678.

LABEL

Eine ext2/ext3/ext4-Partition lässt sich mit sudo e2label mit einem Label versehen. In der /etc/fstab ersetzt man das übliche /dev/sdXX durch LABEL=MyPart.

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.[15]

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

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

  • WebDAV-Verzeichnisse können auch dauerhaft gemountet werden, siehe hier.

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:[16]

 /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


Siehe auch diese Anleitung zum Mounten des Telekom Mediencenters.

Mounten einer Windows-Freigabe/Samba-Share

  • Um die Samba-Server im Netzwerk anzuzeigen, bitte
 nmbstatus

eingeben.[17]

  • 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.[18]

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


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


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

Dateien verschlüsseln

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

Siehe auch SSL

Leere Verzeichnisse löschen

Mit folgendem Befehl werden alle leeren Unterverzeichnisse gelöscht:[19]

 find -depth -type d -empty -exec rmdir "{}"  \;

Dateien im Netzwerk

Siehe

Netzwerk

Siehe oldCt:Linux-Tipps#Netzwerk

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.

WLAN

WLAN-Hardware

USB-WLAN mit RT3070 Chip

Der RT3070 ist u.a. im LogiLink WL00049A verbaut.

  • Auch in Debian muss das Modul rt2800usb gesperrt werden und das Paket firmware-ralink aus dem non-free-Repository installiert werden.
RT2500
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[21]. 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:

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

Mail

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

Siehe Einführung in Nur-Fenstermanager.

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

Siehe Remote Desktop

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:

Für den Electronic Program Guide - EPG gibt es

Webcam

  • Einfach Bilder von der Shell aufnehmen geht mit dem Paket streamer:
 sudo aptitude install streamer
 streamer -f jpeg -o test.jpeg

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

Bildanzeige

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

Aber es gibt auch Möglichkeiten auf der Konsole:

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

Drucken

Allgemeines

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

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

Um einen HP-All-In-One-Drucker/Scanner wie der HP OfficeJet 8600 Pro Plus im Netzwerk zu installieren, startet man als Root

 hp-setup -i

und wählt 2 für net aus.

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 von sane-utils erforderlich.
    • Außerdem muss der jeweilige Benutzer Mitglied der Gruppe scanner sein.

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,[22] 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.

Energiemanagement

Mit upower kann man sich den Stand des Akkus anzeigen lassen.[23]

 upower -i /org/freedesktop/UPower/devices/battery_BAT0

Den Pfad für das oben angegebene Kommando findet man durch

 upower -e

Verbindung mit Handy/PDA

Weitere Anwendungen

Plattformübergreifende Software

Siehe Plattformübergreifende Software

CAD


Business Software

Groupware-Server


  1. Hängen bei Aufbau der Druckerdatenbank bei 4%.
  2. Siehe How to use Labels for GRUB2.
  3. Siehe ubuntuusers
  4. 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
  5. Siehe http://www.rodsbooks.com/efi-bootloaders/elilo.html
  6. http://www.freedesktop.org/wiki/Software/systemd/FrequentlyAskedQuestions/
  7. https://wiki.archlinux.org/index.php/systemd#Syntax_highlighting_for_units_within_Vim
  8. https://wiki.archlinux.org/index.php/systemd#Syntax_highlighting_for_units_within_Vim
  9. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=641267
  10. Siehe http://www.aptosidusers.de/index.php?name=PNphpBB2&file=viewtopic&p=12101
  11. Siehe http://forums.debian.net/viewtopic.php?f=17&t=105344 .
  12. Vergleiche http://onlyubuntu.blogspot.com/2008/06/howto-enable-empty-password-login-in.html.
  13. https://linuxnetz.wordpress.com/2010/04/21/notify-send/
  14. http://www.linuxquestions.org/questions/linux-desktop-74/how-to-specify-a-gnome-workpace-an-application-will-launch-in-555764/
  15. http://askubuntu.com/questions/74105/how-do-you-repair-an-input-output-error-in-an-ntfs-partition
  16. http://tomalison.com/reference/2010/04/03/webdav/
  17. Vgl. http://de.opensuse.org/SDB:Drucken_via_SMB_(Samba)_Share_bzw._Windows_Freigabe.
  18. http://www.tldp.org/HOWTO/SMB-HOWTO-8.html.
  19. http://www.unixboard.de/vb3/showthread.php?28301-leere-Verzeichnisse-finden
  20. http://www.xadux.eu/wireless-lan-und-lan/3423-rt3070-2.html
  21. http://wiki.ubuntuusers.de/GNOME_Schl%C3%BCsselbund#Automatische-Anmeldung-in-GDM
  22. http://www.ubuntu-forum.de/artikel/41977/scanner-wird-als-user-nicht-erkannt-nur-als-root.html
  23. Siehe http://askubuntu.com/questions/69556/how-to-check-battery-status-using-terminal .