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.
- Uptimes - Mitgliederzeitschrift der German Unix User Group
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.
- Ebenfalls auf Ubuntu basiert die normale Version von Linux Mint.
Arch Linux
Arch Linux ist ein sog. Rolling Release und enthält sehr aktuelle Software, allerdings mit dem Nachteil, dass sie auch nicht immer besonders tief getestet wurde.
ChromeOS
Das Google-Betriebssystem ChromeOS basiert ebenfalls auf Linux. Es kann inzwischen auch Android-Apps ausführen.
2018 hat Google die Initiative ergriffen und versucht, ChromeOS auf dem Tablet zu offerieren. Bisher (Anfang 2020) scheint das noch nicht den Massenmarkt zu erreichen.
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
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.
Orchestrierungswerkzeuge
Es gibt eine Menge Tools, um die Konfiguration von Rechnern aus der Ferne (halb-)automatisch zu erledigen, z.B.:
Sound
Siehe Audio#Linux und Audio
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 --set root Ubun10LTS 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
Vorschau auf GRUB-Menü
Das Menü, das GRUB beim Booten anbieten wird, kann mit dem Emulator angezeigt werden:
sudo aptitude install grub-emu grub-emu
Um es wieder zu beenden, muss man im Fenster, von dem aus man grub-emu gestartet hat (also nicht das Vorschaufenster) ein c
und dann ein exit
eingeben.[3]
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 (erster Eintrag hat die 0 nicht die 1) 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
- 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
- UEFI-Hilfe für Ubuntu
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.[4]
Chainloading Windows
- Chainloading von EFI-Windows-Bootloader funktioniert durch folgenden Eintrag in grub.cfg[5] bzw. /etc/grub.d/08_windows
menuentry "Windows 7" { set root='(hd0,gpt1)' chainloader /EFI/microsoft/BOOT/bootmgfw.efi }
Booteintrag für nächsten Reboot
Für den nächsten Boot kann man den Booteintrag folgendermaßen auswählen
sudo grub-reboot 2
Statt der 2 (die für den 3. Menüeintrag) steht kann man natürlich auch eine andere Nummer angeben oder aber den Menüeintrag-Titel, wie er der Datei /boot/grub.cfg zu entnehmen ist.
ELILO
Für ELILO muss Kernel und Initial RamDisk auf einer EFI-zugänglichen Partition liegen.[6]
Booten übers Netzwerk
- Siehe Booten übers Netzwerk
Kernel
- Kernel-Parameter (weitgehend vollständig)
- Kernel-Parameter (Auswahl auf ubuntuusers)
- Kernel-Parameter(Auswahl)
- Laden und Nicht-Laden von Kernel-Modulen unter ArchLinux
- 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
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:[7]
ln -s /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
Alternativ kann auch der folgende Befehl genutzt werden:[8]
systemctl set-default multi-user.target
Schließlich lässt sich beim Booten ebenfalls das Target als Kernel-Parameter (siehe bei GRUB) angeben:[9]
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):
Ruhezustand
Probiere
sudo pm-hibernate
oder
sudo systemctl hibernate
Siehe auch zu den Voraussetzungen wie /etc/initramfs-tools/conf.d/resume:
Automatischen Ruhezustand verhindern
Systemd ist standardmäßig so eingestellt, dass es bei geschlossenem Laptop-Deckel in den Ruhezustand geht. Dies lässt sich in der /etc/systemd/login.conf
vermeiden:[10]
HandleLidSwitch=ignore
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
im Init-System
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
mittels Magic-SysRq
Siehe
Tastatur
Troubleshooting Tastatur
Linux Mint 17.1 Rebecca
Siehe zunächst das Vorgehen bei Linux-Tipps#Debian 8.0 Jessie
Bei mir hat allerdings die Einstellungen für cups, in der blacklist und der Kernel-Parameter atkbd.reset
nicht geholfen. Mittels aptitude
habe ich dann das System auf den aktuellen Stand gebracht (im Recovery-Modus). Außerdem habe ich den openssh-server
installiert, um auch bei normalem Start von einem Zweitrechner auf die Mint-Installation zugreifen zu können. Die Module lp, ppdev, parport_pc und parport habe ich sowohl in GRUB (z.B. lp.blacklist=yes) als auch in /etc/modprobe.d/uebeltaeter.conf
ausgeschlossen.
Das Laden der Module lp, parport und parport_pc in /etc/modules-load.d/cups-filters.conf
wird durch Auskommentieren (Raute '#' am Anfang der Zeile) unterbunden.
Eventuell hilft auch das ausdrückliche Laden von atkbd
mittels der Kernel-Parameter earlymodules=atkbd modules-load=atkbd
.[11]
Der Recovery-Modus einer Linux-Mint-Installation ist meist ein guter Weg, um die notwendigen Änderungen vorzunehmen.
Ubuntu 14.04.2
In /etc/modules-load.d/cups-filter.conf
sind die Module lp, ppdev und parport_pc auszukommentieren.
Debian 8.0 Jessie
Wenn die PS/2-Tastatur nach Installation von CUPS nicht funktioniert, hilft möglicherweise[12] 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
[13], das CUPS für Drucker am Parallelport lädt. Dies lässt sich durch Erstellung folgender /etc/modprobe.d/blacklist-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.[14]
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.
Maus nicht erkannt beim Starten
Bei Linux Mint 19.1 und dem Motherboard ASRock B360 Pro4 wird evtl die USB-Maus (in meinem Fall Microsoft Optical Mouse) beim Systemstart nicht erkannt. Hier könnte der Kernelparameter i8042.nopnp
helfen.[15]
RS232 Schnittstelle
Einen USB-RS232-Adapter kann man auch an einen Linux-PC anschließen.[16]
Allerdings muss man dazu entsprechende Kernel-Module laden.
Die RS232-Schnittstelle lässt sich aus einem in C geschriebenen Programm mittels einer recht neuen Open Source Bibliothek ansprechen.
Infrarot-Schnittstelle
IrDA
Datenübertragung per Infrarot geht nach dem IrDA-Standard. Dazu gibt es unter Linux beispielsweise die irda-utils.
LIRC
Die Signale der Infrarot-Fernbedienungen konnten früher nur über LIRC empfangen werden, heutzutage kann der Kernel selbst viele Signale direkt als Tastatur-Ereignisse verarbeiten.[17] LIRC hat aber weiterhin Sinn, z.B. wenn man bei der Konfiguration flexibler sein will oder wenn ein IR-Empfänger oder eine IR-Fernbedienung noch nicht vom Kernel unterstützt wird.[18]
Mit LIRC kann man auch die vom Kernel unterstützten IR-Geräte nutzen; dabei geht man den Umweg über das Linux-Input-System.
Mit
ir-keytable
können die installierten IR-Receiver angezeigt werden. Eingabegeräte ganz allgemein lassen sich auch mit
cat /proc/bus/input/devices
anzeigen.
Mit
sudo ir-keytable --device /dev/input/event10 -t
kann man testen, ob überhaupt Signale ankommen (event10 durch den auf den IR-Empfänger passenden event setzen, siehe oben ir-keytable). Das sudo kann weggelassen werden, indem man den Benutzer der Gruppe input
zuweist:[19]
sudo adduser USER input
Zunächst gibt man beim Testen alle unterstützten Protokolle an:
ir-keytable -p jvc,rc-5,rc-6,other -t
Dann setzt man das korrekte Protokoll, indem hinter -p die übrigen Protokolle weggelassen werden. Außerdem kopiert man eine Kernel-Keymap nach /etc/rc_keymap, bearbeitet sie gegebenenfalls (siehe dazu die Key codes( MythTV) und die Standardbelegung der Tastatur unter Kodi) und liest sie dann ein
sudo cp /lib/udev/rc_keymaps/tt_1500 /etc/rc_keymaps/meine_keymap sudo ir-keytable -p jvc -c -w /etc/rc_keymaps/meine_keymap
Hier mal meine Beispiel-Tabelle /etc/rc_keymaps/meine_tt
für die Nutzung einer alten Technotrend-Fernbedienung für Kodi:
# table tt_1500, type: RC5 0x1501 KEY_POWER 0x1502 KEY_SHUFFLE 0x1503 KEY_1 0x1504 KEY_2 0x1505 KEY_3 0x1506 KEY_4 0x1507 KEY_5 0x1508 KEY_6 0x1509 KEY_7 0x150a KEY_8 0x150b KEY_9 0x150c KEY_0 0x150d KEY_UP 0x150e KEY_LEFT 0x150f KEY_ENTER 0x1510 KEY_RIGHT 0x1511 KEY_DOWN 0x1512 KEY_C 0x1513 KEY_BACKSPACE 0x1514 KEY_RED 0x1515 KEY_GREEN 0x1516 KEY_YELLOW 0x1517 KEY_BLUE 0x1518 KEY_MUTE 0x1519 KEY_TEXT 0x151a KEY_MODE 0x1521 KEY_OPTION 0x1522 KEY_E 0x1523 KEY_CHANNELUP 0x1524 KEY_CHANNELDOWN 0x1525 KEY_VOLUMEUP 0x1526 KEY_VOLUMEDOWN 0x1527 KEY_SETUP 0x153a KEY_RECORD 0x153b KEY_SPACE 0x153c KEY_X 0x153d KEY_REWIND 0x153e KEY_PAUSE 0x153f KEY_FORWARD
Mit
ir-keytable --read
kann man sich die eingelesenen Keycodes anzeigen lassen.
Hier ist mit dem reinen Kernel-Treiber Schluss.
Man kann es sich aber auch komplizierter machen und LIRC installieren:
sudo aptitude install lirc
Die /etc/lirc/hardware.conf bekommt folgenden Inhalt:[20]
LOAD_MODULES=true DRIVER="devinput" DEVICE="/dev/input/event6"
event6 muss dabei an den mit
ir-keytable
Gerätenamen angepasst werden. Achtung: Nach einem Neustart kann der IR-Receiver einem anderen eventXXX zugeordnet sein.
Für die /etc/lirc/lircd.conf greift man auf die devinput-Datei zurück:
sudo cp -av /usr/share/lirc/remotes/devinput/lircd.conf.devinput /etc/lirc/lircd.conf
Danach müssen noch Lircmap.xml in ~/.kodi/userdata/
und die remote.xml (jeweils auf korrektes Release/github-Branch achten)[21] in ~/.kodi/userdata/keymaps/
hineinkopiert werden, möchte man Kodi nutzen. Dabei ist in die Lircmap.xml in das device-Attribut des remote-Elements korrekt zu setzen. Beispiel:
<remote device="/dev/input/event6">
Da udev insbesondere bei mehreren IR-Receivern immer wieder eine andere Gerätenummer (eventXX) zuweist, sollte man mit einer eigenen udev-Regel einen symbolischen Link erstellen. Dazu legt man eine Datei /etc/udev/rules.d/10-infrared.rules
an und gibt ihr folgenden Inhalt:
ACTION=="add", SUBSYSTEM=="input", ATTRS{name}=="ITE8713 CIR transceiver", SYMLINK+="input/infrared"
Hilfe zum Finden der korrekten Attribute für den eigenen IR-Empfänger erhält man mit
udevadm info -a -n /dev/input/event7
wobei natürlich event7 mit dem korrekten eventXX aus dem Aufruf von ir-keytable
ersetzt werden muss.
Mit
sudo udevadm test /devices/virtual/rc/rc0/input7/event7
kann man die udev-Regel testen.
sudo udevadm trigger
löst den udev-Zuweisungsvorgang aus (genauso wie beim Neustart).
Mit
ls -als /dev/input/infrared
kann man sehen, ob man erfolgreich war.
Siehe
- Ausführliche Anleitung und Erläuterung der LIRC-Funktionsweise
- LIRC-Anleitung von Mark Lodato inkl. Abklemmen der Kernel-Funktionalität über xorg.conf.d-Dateien
- MythTV-Anleitung zu ir-keytable
- IR-Remote nur über Kernel, nicht über LIRC
- Ausführliche Erklärung von LIRC in mehreren Forumsbeiträgen
InputLirc
InputLirc nutzt das Kernel-Input-Subsystem (ir-keytable) und gibt die Events an LIRC weiter, das dann für die Aktionen in den Anwendungen sorgt.
Installation:
sudo aptitude install lirc lirc-x inputlirc
In /etc/default/inputlirc
muss die Variable EVENTS
auf den von der oben angegebenen udev-Regel erstellten symbolischen Link gesetzt werden:[22]
EVENTS="/dev/input/infrared"
Das ist dann auch der korrekte Name für das <remote>
-Tag in der .kodi/userdata/Lircmapxml
.
Kernel-Input kann mit ir-keytable -t getestet werden (siehe oben).
Die LIRC-Tastencodes können mit
irw
angezeigt werden (einzelne Tasten auf der Fernbedienung betätigen).
Kodi-Funktionen: Die ~/.kodi/userdata/Lircmap.xml
erhält folgenden Inhalt:
<?xml version="1.0" encoding="UTF-8"?> <!-- This file contains the mapping of LIRC keys to XBMC keys used in Keymap.xml --> <!-- --> <!-- How to add remotes --> <!-- <remote device="name_Lirc_calls_the_remote"> --> <!-- --> <!-- For the commands the layout following layout is used --> <!-- <XBMC_COMMAND>LircButtonName</XBMC_COMMAND> --> <!-- --> <!-- For a list of XBMC_COMMAND's check out the <remote> sections of keymap.xml --> <lircmap> <remote device="/dev/input/event6"> <!-- new kernel-based lirc button names --> <eject>KEY_EJECTCD</eject> <left>KEY_LEFT</left> <right>KEY_RIGHT</right> <up>KEY_UP</up> <down>KEY_DOWN</down> <select>KEY_OK</select> <start>KEY_HOME</start> <back>KEY_BACK</back> <record>KEY_RECORD</record> <play>KEY_PLAY</play> <pause>KEY_PAUSE</pause> <stop>KEY_STOP</stop> <forward>KEY_FORWARD</forward> <reverse>KEY_REWIND</reverse> <volumeplus>KEY_VOLUMEUP</volumeplus> <volumeminus>KEY_VOLUMEDOWN</volumeminus> <pageplus>KEY_CHANNELUP</pageplus> <pageminus>KEY_CHANNELDOWN</pageminus> <skipplus>KEY_NEXT</skipplus> <skipminus>KEY_AGAIN</skipminus> <mute>KEY_MUTE</mute> <power>KEY_POWER</power> <myvideo>KEY_VIDEO</myvideo> <mymusic>KEY_AUDIO</mymusic> <livetv>LiveTV</livetv> <guide>KEY_EPG</guide> <one>KEY_1</one> <two>KEY_2</two> <three>KEY_3</three> <four>KEY_4</four> <five>KEY_5</five> <six>KEY_6</six> <seven>KEY_7</seven> <eight>KEY_8</eight> <nine>KEY_9</nine> <zero>KEY_0</zero> <red>KEY_RED</red> <green>KEY_GREEN</green> <yellow>KEY_YELLOW</yellow> <blue>KEY_BLUE</blue> <menu>KEY_DVD</menu> <clear>KEY_CLEAR</clear> <enter>KEY_ENTER</enter> <!-- extensions --> <back>KEY_EXIT</back> </remote> </lircmap
Siehe
ir-keytable und Kodi
Für neuere Linux- und Kodi-Versionen braucht man im Regelfall LIRC nicht. ir-keytable
reicht aus.
Beispiel für eine TT-Fernbedienung an einem Intel NUC mit eingebautem IR-Empfänger:
Man bastelt auf Basis der /lib/udev/rc_keymaps/tt_1500
eine neue Datei namens /etc/rc_keymaps/meine_tt
mit folgendem Inhalt:
# table tt_1500, type: RC5 0x1501 KEY_POWER 0x1502 KEY_SHUFFLE 0x1503 KEY_1 0x1504 KEY_2 0x1505 KEY_3 0x1506 KEY_4 0x1507 KEY_5 0x1508 KEY_6 0x1509 KEY_7 0x150a KEY_8 0x150b KEY_9 0x150c KEY_0 0x150d KEY_UP 0x150e KEY_LEFT 0x150f KEY_ENTER 0x1510 KEY_RIGHT 0x1511 KEY_DOWN 0x1512 KEY_C 0x1513 KEY_BACKSPACE 0x1514 KEY_RED 0x1515 KEY_GREEN 0x1516 KEY_YELLOW 0x1517 KEY_BLUE 0x1518 KEY_MUTE 0x1519 KEY_TEXT 0x151a KEY_MODE 0x1521 KEY_OPTION 0x1522 KEY_E 0x1523 KEY_CHANNELUP 0x1524 KEY_CHANNELDOWN 0x1525 KEY_VOLUMEUP 0x1526 KEY_VOLUMEDOWN 0x1527 KEY_SETUP 0x153a KEY_RECORD 0x153b KEY_SPACE 0x153c KEY_X 0x153d KEY_REWIND 0x153e KEY_PAUSE 0x153f KEY_FORWARD
Diese schreibt man auf den Intel-IR-Receiver (hier: rc0
) mit
sudo ir-keytable -c -w /etc/rc_keymaps/meine_tt -s rc0
Um nicht noch durch den im DVB-Stick enthaltenen IR-Receiver (hier: rc1
) verwirrt zu werden, kann man dessen Zuordnungstabelle löschen:
sudo ir-keytable -c -s rc1
Kodi muss zur Wirksamkeit wohl neu gestartet werden.
IR Probleme
Zu Testzwecken hilft das Anzeigen einzelner Tastendrücke:
irw
Mit Intel NUCs scheint es manchmal Probleme mit dem internen IR-Receiver zu geben. [23]
Wenn man zwei IR-Receiver (z.B. eingebauten und den einer TV-Karte) hat, kann es passieren, dass man das Protokoll für den zweiten nicht einstellen kann.[24],[25], [26]
Möglicherweise gibt es auf einem Debian Jessie ein LIRC zuviel und die Tasten werden ununterbrochen wiederholt. Dann hilft evtl.:
sudo service lircd-uinput stop
Den lircd-uinput
- Service kann man auch dauerhaft deaktivieren:
sudo systemctl disable lircd-uinput
IR-Fernbedienung erzeugt doppelte Tastendrücke
Wenn man Kodi über eine Infrarot-Fernbedienung steuern will und sie wie oben dargestellt mit LIRC und Kodis Lircmap.xml eingerichtet hat, dann kann es vorkommen, dass die Fernbedienung Tastendrücke doppelt an Kodi meldet. Wenn dies der Fall ist, schaltet man das entsprechende Input-Device im X-Server ab. Dazu sucht man mit
export DISPLAY=:0.0 xinput list
die Id (z.B. 9) des IR-Adapters (üblicherweise benannt nach dem TV-Stick, der den IR-Empfänger integriert hat). Mit
xinput list-props 9
(statt 9 ggf. andere ID angeben) kann man dann die Eigenschaften des IR-Empfängers ausgeben lassen. Hinter jeder Eigenschaft ist in Klammern eine Eigenschaftsnummer angegeben. Die Eigenschaft mit dem "Enabled" im Text, muss auf 0 gesetzt werden, z.B. so:
xinput set-prop 9 138 0
Oft funktioniert auch direkt
xinput set-prop 9 "Device Enabled" 0
Dazu gibt es auch ein fertiges Skript.
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.
Feststellen, ob Script von Cron gestartet wurde
if [ -t 0 ]; then echo "I'm on a TTY, this is interactive." else logger "My output may get emailed, or may not. Let's log things instead." fi
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)[27] 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
- 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.
- Open VirtualBox (von Oracle) wird z.B. bei Ubuntu mitgeliefert.
- Docker ist im Standardpaketumfang von Linux Mint enthalten.
- LXC ist ebenfalls eine Container-Lösung
Shells
Dokumentation für bash (Kommandozeile/Konsole)
- Advanced Bash Shell Scripting Guide mit vielen Beispielen.
- Häufige Fehler bei der Bash-Programmierung
- Bash Tutorial
Tab-Completion
Wenn man in der Bash die Tabulatortaste drückt, wird der gerade angefangene Befehl, der gerade angefangene Dateiname usw. vervollständigt bzw. bei zweimaligem Drücken weitere Vervollständigungen angeboten.
Eine deutliche Erweiterung dieser Funktionalität auch für Optionen für verschiedene Kommandozeilentools bietet das Paket bash-completion
:
sudo aptitude install bash-completion
Autovervollständigung für Rechnernamen
Bei der Vervollständigung für Rechnernahmen, z.B. für den ssh-Befehl, schaut die Vervollständigung regelmäßig in die Datei /etc/hosts
.
Möchte man weitere Rechnernamen aufnehmen, muss man die Umgebungsvariable $HOSTFILE auf eine Datei mit Rechnernamen setzen:[28]
export HOSTFILE="/home/USER/myhostfile"
Um dies bei jedem Start der Bash automatisch zu tun, fügt man diese Zeile am Ende der .bashrc
im Homeverzeichnis des jeweiligen Benutzers ein.
In der entsprechenden Datei (im Beispiel /home/USER/myhostfile) werden die Rechner Zeile für Zeile eingetragen:
fritz.box pia2016.de
Gefrorene Shell
Mittels Strg-S kann man das Terminal anhalten (XOFF). Mittels Strg-Q geht es wieder weiter (XON).
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.
Unit Tests
Bash_unit ist ein Paket zum Erstellen von Unit-Tests für Bash.
Verarbeiten von Textstreams
- 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
Falls die Standardausgabe zu viel gepuffert wird kann man dies durch das Kommando stdbuf -oL
in Zeilenpufferung ändern.[29]
Piping
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. Beispiel:
find / -name '*.mp3' 2> /dev/null
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 des Leerzeichens weggelassen.
Etwas komplizierter
sed -e 's:\\:/:g' -e 's:../Musik/Music/\(.\):sortedMusic/\1/\1:' -e 's:/\([0-9][0-9]\) :/\1_-_:' -e 's/ /_/g' < playlistOriginal.m3u > playListNeu.m3u
- Zunächst wird der Backslash durch den Slash ersetzt.
- Dann der Pfadanfang geändert
- Außerdem wird die Pfadstruktur um eine Ebene erweitert: Den Anfangsbuchstaben des Interpreten
- Zwischen die Trackziffern und den Namen des Lieds werden noch ein Trennstrich mit zwei Leerzeichen eingefügt.
- Schließlich werden alle Leerzeichen durch einen Unterstrich ersetzt.
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.[30]
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.[31]
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.
Terminalfenstertitel
Der Terminaltitel lässt sich mit einer Escape-Sequenz setzen:
echo -ne "\033]0;SOME TITLE HERE\007"
Achtung: Das funktioniert bei mir aber nur innerhalb eines Shell-Skripts!
Im Normalfall bringt das aber nichts, wenn der Prompt wieder angezeigt wird, der normalerweise eine Escape-Sequenz zum Ändern des Terminaltitels beinhaltet. Daher sollte man diesen zurücksetzen:
PS1="\u@\h:\w\$ "
Siehe
Interaktion der Shell mit Maus
Siehe
- https://unix.stackexchange.com/questions/106736/detect-if-mouse-button-is-pressed-then-invoke-a-script-or-command
- http://positon.org/listen-to-mouse-events-in-linux-text-mode
- http://bamboofields.net/Bash%20-%20Linux%20raw%20mouse%20events%20bash%20click
- xdotool in an X-Environment
- https://ubuntuforums.org/showthread.php?t=1017150
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
Mit
namei -om PATH
können die einzelnen Berechtigungen eines Pfades PATH angezeigt werden.
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.[32]
USB-Datenträger unter Systemd
Wenn man eine USB-Disk nur manchmal beim Start eingesteckt hat, sie in dem Fall aber automatisch mounten will, helfen möglicherweise die /etc/fstab
-Optionen nofail,nobootwait
.[33]
Unter Systemd kann man auch die Optionenkombination noauto,x-systemd.automount
in /etc/fstab
verwenden. Dann wird die entsprechende Platte erst dann gemountet, wenn auf den Mountpunkt zugegriffen wird.[34]
Siehe
- http://www.wrigley.me.uk/wp/2012/12/03/automounting-usb-disk-on-boot-with-systemd-in-fedora/
- https://bbs.archlinux.org/viewtopic.php?id=147478
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.magentacloud.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:[35]
/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
Ein auto
-Einbinden in der /etc/fstab
funktioniert nicht ohne Weiteres. Möglicherweise hilft die zusätzliche Option _netdev
, um das Einbinden bis zum Etablieren des Netzwerks zurückzustellen.[36]
Siehe auch diese Anleitung zum Mounten des Telekom Mediencenters.
- Um die Samba-Server im Netzwerk anzuzeigen, bitte
nmbstatus
eingeben.[37]
- 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.[38]
- 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
Mounten eines Sandwich-Dateisystems
Das UnionFS und das AUFS wird in moderneren Linux-Distributionen von OverlayFS abgelöst.
Beispiel: Der Inhalt des Verzeichnisses lower
sollte im Verzeichnis together
erscheinen, soweit er nicht vom Inhalt von upper
verdrängt wird:
sudo mount -t overlayfs -o lowerdir=lower,upperdir=upper overlayfs together
Ist upper
beim Einhängen leer, sieht man alle Änderungen im Verzeichnis together
in upper
. lower
ändert sich nicht.
Siehe
Ähnliche Funktionalität wie OverlayFS scheint Ovl.o zu bringen:
weitere Infoquelle für mount
Siehe
Kopieren einer Audio-CD
Angeblich funktioniert dd nicht mit Audio-CDs.
Das einfachste Kommando zum Kopieren einer CD ist[39]
cdrdao copy
Um trotzdem von der Kommandozeile (und nicht z.B. mit den grafischen Tools Brasero oder K3b) eine Audio-CD kopieren nutzt man cdrdao
:
cdrdao read-cd --device /dev/cdrom --read-raw --datafile INHALT.bin VERZEICHNIS.toc # Kopiert CD-Inhalt und -Verzeichnis auf die Festplatte cdrdao write-cd --device /dev/cdrom VERZEICHNIS.toc # Kopiert CD-Inhalt auf neue Audio-CD
Falls man beim Lesen Probleme bekommt und cdrdao an einer bestimmten Stelle hängen bleibt, sollte man den Paranoia-Mode reduzieren:
cdrdao read-cd --device /dev/cdrom --paranoia-mode 0 --read-raw --datafile INHALT.bin VERZEICHNIS.toc
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:
- restic - Kommandozeilenprogramm, geschrieben in Go, siehe unten
- Borg Backup, siehe BorgBackup
- Burp
- 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
Backup mit Borg
Initialisiere Repository mit Borg Backup
borg init --encrypt none <repoPath>
Erstelle Snapshot
borg create --stats --progress <repopath>::documents_$(date -I) $(readlink ~/documents)
Man kann auch einen Lauf starten, bei dem nichts verändert wird:
borg create --dry-run --list \ --progress <repopath>::documents_$(date -I) $(readlink ~/documents)
Backup mit Restic
Anlegen eines Backup-Repositorys mit restic:
restic -r sftp:BACKUP_RECHNER:/pfad/zum/repository init
Eine Passwortdatei ist eine einfache Textdatei mit dem Passwort in einer Zeile.
Anzeigen der vorhandenen Snapshots
restic -r sftp:BACKUP_RECHNER:/pfad/zum/repository -p /pfad/zur/Passwortdatei snapshots
Backup
restic -r sftp:BACKUP_RECHNER:/pfad/zum/repository -p /pfad/zur/Passwortdatei backup /pfad/zu/den/zu/sichernden/dateien
restic folgt symbolischen Links (symlinks) nicht, sondern sichert sie als solche. Wenn man ein Verzeichnis, auf das ein Symlink verweist sichern will, kann man sich readlink zunutze machen:
restic -r sftp:BACKUP_RECHNER:/pfad/zum/repository -p /pfad/zur/Passwortdatei backup $(readlink -f /pfad/zum/Symlink)
restic hat viele Möglichkeiten zum Wiederherstellen. Beispiel:
restic -r sftp:BACKUP_RECHNER:/pfad/zum/repository -p /pfad/zur/Passwortdatei restore latest \ --target /pfad/wo/die/dateien/wiederhergestellt/werden/sollen --path "/pfad/der/wiederhergestellt/werden/soll"
Festplatten in Ruhezustand versetzen
Mittels
sudo hdparm -y /dev/sdc
lässt sich die Festplatte sdc in den Standby-Modus versetzen.[40]
Mittels
hdparm -S 30 /dev/sdc
lässt sich eine Festplatte nach 30*5=150 Sekunden in den Ruhezustand versetzen.
Über die /etc/hdparm.conf
lässt sich das auch automatisch einrichten.
Festplattenfehler
Festplattenfehler lassen sich u.a. mit
- smartmontools
- badblocks
- e2fsck
- dd_rescue
- debugfs
finden.
Z.B. kann man ein fehlerhaftes EXT2/EXT3/EXT4-Dateisystem mit folgendem Befehl (interaktiv) reparieren lassen:
sudo e2fsck /dev/sda5
Siehe
- http://www.technologyblog.de/2014/06/defekte-sektoren-reparieren-unter-linux-mit-badblocks/
- http://www.linux-community.de/Internal/Artikel/Print-Artikel/LinuxUser/2010/08/Integritaet-gespeicherter-Daten-sicherstellen
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
Siehe auch SSL
Leere Verzeichnisse löschen
Mit folgendem Befehl werden alle leeren Unterverzeichnisse gelöscht:[41]
find -depth -type d -empty -exec rmdir "{}" \;
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
Konfiguration in /etc/network/interfaces
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.
Konfiguration des Netzwerks mit systemd
Systemd kann alles, aber hält sich nicht an das KISS-Prinzip (Keep it simple stupid). So kann Systemd auch das Netzwerk konfigurieren. Siehe
Network-Manager
In Desktop-Distributionen ist üblicherweise der "Network-Manager" installiert. Er lässt sich auch auf der Kommandozeile nutzen:
sudo aptitude install Network-Manager
Hinzufügen einer WLAN-Verbindung:
sudo nmcli device wifi connect SSID password PASSWORD
SSID ist der WLAN-Name und Passwort ist der WLAN-Schlüssel.
Der Network-Manager lässt sich auch deaktivieren:[42] Unter Linux Mint 17 (wahrscheinlich auch unter Ubuntu 14.04 LTS Trusty) geht das so:
echo manual | sudo tee /etc/init/network-manager.override
wicd
Eine Alternative zum Network-Manager ist wicd. Neben der grafischen Oberfläche (auch mit Tray-Icon) bietet wicd auch eine Kommandozeile und eine ncurses-Version zur halbgrafischen Bedienung im Terminal.
Sollte wicd unter Linux Mint 17.3 vor dem Start nach einem Passwort fragen, hilft folgende Befehlsfolge (man beachte die Punkte).[43]
Ping ohne sudo
Sollte das einfache Pingen eines Rechners Root-Rechte benötigen, kann man Ping mit den nötigen Rechten ausstatten:[44]
sudo setcap cap_net_raw+ep /bin/ping
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
Netzwerktool ip
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.[45]
- 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[46]. 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
Siehe
Fernzugriff
Grafiksystem
Monitorinfos
Ob der Monitor angeschaltet oder im StandBy ist, kann man mit
ddccontrol -p
erfahren.
Ansonsten bekommt man auch noch über folgende Befehle Infos über den Monitor (ggf. DISPLAY=:0
voranstellen):
xrandr
oder
xset -q
Framebuffer
Auch ohne X-System kann man unter Linux Grafiken anzeigen: Dazu gibt es den Framebuffer.
Siehe z.B.
- mplayer zum Anzeigen von Videos
- fbi zum Anzeigen von Bildern
- fbtv zur Anzeige von Fernsehen
- directvnc, eine VNC-Client für den Framebuffer
Weitere Infos
mplayer für Framebuffer
Der Kommandozeilen-basierte Audio- und Video-Abspieler mplayer kann auch Videos auf der Linux-Konsole mittels Framebuffer anzeigen:
mplayer -vo fbdev2 VIDEO.MOV
Evtl. muss der Nutzer der Gruppe video
hinzugefügt werden.
vlc für Framebuffer
Auch vlc kann den FrameBuffer nutzen. Das funktioniert z.B. mit der NCURSES-basierten Oberfläche, die man mit
nvlc
oder
vlc -I
erreicht.
Die Installation erfolgt über
sudo aptitude install nvlc
oder
sudo aptitude install vlc-bin vlc-base-plugins
Hier ist erforderlich, dass der ausführende Benutzer der Gruppe video
hinzugefügt wird:
sudo adduser USER video
Damit können z.B. auch rtsp-Streams (z.B. vom Kabeltuner der Fritz!box 6490) abgespielt werden:
nvlc 'rtsp://....'
X
Display Manager
Die Auswahl der Desktopumgebung wird nicht mehr unter ~/.dmrc
gespeichert, sondern in /var/lib/AccountsService/users/$USER
.
Man kann die Wahl aber auch über den dbus speichern:
dbus-send --system --type=method_call --print-reply --dest=org.freedesktop.Accounts /org/freedesktop/Accounts/User1000 org.freedesktop.Accounts.User.SetXSession string:cinnamon
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:
Menüeinträge fürs "Startmenü" oder den Desktop
Mit Hilfe von .desktop-Dateien können Einträge fürs Startmenü oder den Schreibtisch zum Starten von Programmen ("Apps") erstellt werden. Siehe
Diese kann man auch nutzen, um die Programme beim Start des graphischen Desktops automatisch zu starten. Dazu müssen sie ins Verzeichnis /etc/xdg/autostart/
bzw. /home/USER/.config/autostart
eingefügt und als ausführbar markiert werden.
Programme minimiert starten
In den .desktop-Dateien fehlt leider eine Option zum minimierten Starten.
Aber es gibt Abhilfe mittels wmctrl und xdotool: https://www.reddit.com/r/kde/comments/b0k01e/start_application_at_login_minimized/
Linux wäre nicht Linux, wenn es nicht noch einen zweiten Weg gäbe (hier devilspie): http://www.webupd8.org/2011/02/how-to-start-applications-minimized.html
Grafische Fernsteuerung
Siehe Remote Desktop
Multimedia
Audio
Siehe auch Audio#Linux und 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
Wichtig ist, dass der den TV-Stick nutzende User der Gruppe video
zugeordnet ist, z.B. für den Tvheadend-Nutzer:
sudo adduser hts video
Die Pakete dvbsnoop, dvb-apps, dvb-tools und w-scan bieten Werkzeuge, um die Einrichtung von DVB-C-Adaptern zu debuggen. Beispielsweise lässt sich mit
dvb-fe-tool -d DVBC/ANNEX_A
der ein DVB-T/C-Adapter auf DVB-C umschalten.
Siehe auch DVB-C
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.
Alternativen auch mit Video scheinen
- BigBlueButton
- Jitsi
- Jitsi Meet kann sofort (ohne Registrierung) auf https://meet.jit.si/ ausprobiert werden.
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
ImageMagick
Auf der Kommandozeile unter Linux helfen die Tools von ImageMagick:
Beispielsweise lassen sich mit folgendem Befehl Bilder als Kacheln auf einem neuen Bild getrennt mit einem transparenten Rahmen darstellen:
montage -monitor -resize x200+0+0 -crop 300x200+20+0 -geometry 200x200+50+50 -background transparent bilder*.jpg uebersicht.png
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.
Aufnahmedatum in Dateinamen
Schließlich bietet auch jhead (man-page) alle textuellen Informationen. Dieses Programm läuft nicht nur unter Linux, sondern auch unter Windows. Ein 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
Geotagging von Fotos
Möchte man seine Fotos von einer Kamera ohne GPS-Receiver mit GPS-Daten z.B. aus dem mitgeführten Smartphone aufwerten, dann hilft das exiftool, z.B.:
exiftool -api GeoMaxExtSecs=9999 -geotag '*.gpx' images
Dieses Beispiel nutzt als Geodaten-Quelle alle Dateien mit der Endung gpx im aktuellen Verzeichnis und versieht alle Bilder im images-Ordner mit den entsprechenden Daten. Siehe dazu näher die Beschreibung auf der Projektseite.
Die Geodaten bekommt man z.B. mit der Android - Open Source-Software gpslogger.
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
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.
Brother
Die Installation von Brother-Drucker wird seitens Brother mit eigenständigen rpm- bzw- deb-Paketen unterstützt.
Bei der Installation des Brother MFC-260C unter Linux Mint 17 32bit bedarf es folgender Schritte nach dem Download der DEB-Files vom Brother Solutions Center:
sudo mkdir /var/spool/lpd sudo chgrp lp /var/spool/lpd sudo dpkg -i mfc260clpr-1.0.1-1.i386.deb sudo dpkg -i mfc260ccupswrapper-1.0.1-1.i386.deb
Außerdem sollte der Benutzer in der Gruppe lp
sein.
Auf 64bit-Systemen müssen zusätzlich die Pakete ia32libs und libstdc++ installiert sein.
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
Scannen und OCR
Mit Hilfe von scanimage und tesseract lassen sich auch PDFs mit per OCR erkanntem (überlagerndem) Text erstellen.
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:
- Verzeichnis 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.
Für neuere Ubuntu / Linux Mint 64 bit -Versionen müssen symbolische Links angelegt werden:[47]
sudo ln -sf /usr/lib64/sane/libsane-brother* /usr/lib/x86_64-linux-gnu/sane sudo ln -sf /usr/lib64/libbrcolm* /usr/lib/x86_64-linux-gnu sudo ln -sf /usr/lib64/libbrscandec* /usr/lib/x86_64-linux-gnu
Bei manchen Rechnern funktionieren die Treiber für den Brother MFC-260C nicht mit USB 3.0. Dann muss USB 3.0 im BIOS deaktiviert werden, so dass die Ports als USB 2.0-Ports genutzt werden können.
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
oder aber der Gruppelp
[48] 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,[49] 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
Akku
Mit upower
kann man sich den Stand des Akkus anzeigen lassen.[50]
upower -i /org/freedesktop/UPower/devices/battery_BAT0
Den Pfad für das oben angegebene Kommando findet man durch
upower -e
Eine komplette Übersicht erhält man mit
upower --dump
Festplatte im Leerlauf ausschalten
Siehe
Energieverbrauch minimieren
Zur Ermittlung der Verbraucher helfen
Siehe
Verbindung mit Handy/PDA
Weitere Anwendungen
Editoren
Grafische Editoren und Entwicklungsumgebungen
Editoren fürs Terminalfenster
- vim
- nano
- joe - Benutzerführung wie MS WordStar (etwas antiquiert)
- emacs
Textverarbeitung
Die Standard-Textverarbeitung unter Linux ist derzeit LibreOffice Writer.
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.
- ↑ Vgl. https://unix.stackexchange.com/questions/405515/how-to-preview-my-grub-menu-without-rebooting
- ↑ Siehe ubuntuusers
- ↑ 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
- ↑ http://www.freedesktop.org/wiki/Software/systemd/FrequentlyAskedQuestions/
- ↑ https://wiki.archlinux.org/index.php/systemd#Syntax_highlighting_for_units_within_Vim
- ↑ https://wiki.archlinux.org/index.php/systemd#Syntax_highlighting_for_units_within_Vim
- ↑ http://unix.stackexchange.com/questions/52643/how-to-disable-auto-suspend-when-i-close-laptop-lid
- ↑ https://www.archlinux.org/news/linux-313-warning-ps2-keyboard-support-is-now-modular/
- ↑ http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=641267
- ↑ Siehe http://www.aptosidusers.de/index.php?name=PNphpBB2&file=viewtopic&p=12101
- ↑ Siehe http://forums.debian.net/viewtopic.php?f=17&t=105344 .
- ↑ Vgl. http://lightrush.ndoytchev.com/random-1/i8042quirkoptions
- ↑ Siehe https://blog.mypapit.net/2008/05/how-to-use-usb-serial-port-converter-in-ubuntu.html, http://www.linux-usb.org/USB-guide/x356.html
- ↑ Siehe [1] .
- ↑ Vgl. http://www.lirc.org/html/configuration-guide.html
- ↑ Vgl. http://www.lirc.org/html/devinput.html
- ↑ Vgl. ir-keytable or: How I Learned to Stop Worrying about the LIRC Kernel
- ↑ Siehe http://kodi.wiki/view/Keymap.xml#Remote_Buttons
- ↑ Vgl. http://kodi.wiki/view/HOW-TO:Set_up_an_MCE_remote_control_in_Linux
- ↑ Siehe https://communities.intel.com/thread/52072?start=15&tstart=0
- ↑ Vgl. https://github.com/OpenELEC/OpenELEC.tv/issues/3137
- ↑ Siehe http://ilostmynotes.blogspot.de/2012/12/fintek-ir-receiver-and-xbox-remote-to.html
- ↑ https://bbs.archlinux.org/viewtopic.php?id=151479&p=2
- ↑ Vergleiche http://onlyubuntu.blogspot.com/2008/06/howto-enable-empty-password-login-in.html.
- ↑ Vgl. http://www.linux-magazine.com/Online/Features/Bash-Tips-Autocompletion .
- ↑ Vgl. https://www.turnkeylinux.org/blog/unix-buffering .
- ↑ 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
- ↑ Siehe http://www.reddit.com/r/archlinux/comments/1lafu2/fstab_how_to_automount_but_ignore_if_its_not/ , https://bbs.archlinux.org/viewtopic.php?id=147478
- ↑ Vgl. https://bbs.archlinux.org/viewtopic.php?id=147478
- ↑ http://tomalison.com/reference/2010/04/03/webdav/
- ↑ Vgl. http://askubuntu.com/questions/277873/mount-webdav-fails-on-reboot
- ↑ Vgl. http://de.opensuse.org/SDB:Drucken_via_SMB_(Samba)_Share_bzw._Windows_Freigabe.
- ↑ http://www.tldp.org/HOWTO/SMB-HOWTO-8.html.
- ↑ Siehe http://www.togaware.com/linux/survivor/Duplicate_Audio.html
- ↑ Vgl. https://www.pks.mpg.de/~mueller/docs/suse10.3/opensuse-manual_de/manual/sec.pmanage.silenthd.html
- ↑ http://www.unixboard.de/vb3/showthread.php?28301-leere-Verzeichnisse-finden
- ↑ Siehe http://xmodulo.com/disable-network-manager-linux.html .
- ↑ Siehe https://answers.launchpad.net/ubuntu/+source/wicd/+question/94845/ Post #7.
- ↑ Vgl. https://debianforum.de/forum/viewtopic.php?t=156254
- ↑ http://www.xadux.eu/wireless-lan-und-lan/3423-rt3070-2.html
- ↑ http://wiki.ubuntuusers.de/GNOME_Schl%C3%BCsselbund#Automatische-Anmeldung-in-GDM
- ↑ Vgl. https://wiki.ubuntuusers.de/Scanner/Brother/#Scanner-Treiber-ab-Bionic-Beaver-18-04-64-Bit
- ↑ Vgl. https://www.linuxquestions.org/questions/slackware-14/sane-and-usb-permission-4175421150/
- ↑ http://www.ubuntu-forum.de/artikel/41977/scanner-wird-als-user-nicht-erkannt-nur-als-root.html
- ↑ Siehe http://askubuntu.com/questions/69556/how-to-check-battery-status-using-terminal .