Linux-Tipps: Unterschied zwischen den Versionen

Aus CodicaTipps
Zur Navigation springen Zur Suche springen
 
(121 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Siehe [[oldCt:Linux-Tipps]]
+
 
  
 
== Linux und andere Betriebssysteme ==
 
== Linux und andere Betriebssysteme ==
Zeile 92: Zeile 92:
 
=== Arch Linux ===
 
=== 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.
 
[[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 ===
 
=== Schnellstart-Linux ===
Zeile 143: Zeile 150:
 
==== RPM ====
 
==== RPM ====
 
* Das [http://xinux.de/docs/linux/rpm/ RPM-Buch] bietet eine  Anleitung zum "Redhat Package Manager" inklusive dem Bau von Paketen.
 
* Das [http://xinux.de/docs/linux/rpm/ 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.:
 +
 +
* [[Ansible]]
 +
* [[Chef]]
 +
* [[Puppet]]
  
 
=== Sound ===
 
=== Sound ===
Zeile 200: Zeile 215:
 
===== Weiteres Beispiel für einen Menüeintrag =====
 
===== Weiteres Beispiel für einen Menüeintrag =====
  
 
+
<pre>
 
   menuentry 'UbuntuLinux Generic Current auf Platte mit Bezeichnung Ubun10LTS' --class ubuntu --class gnu-linux --class gnu --class os {
 
   menuentry 'UbuntuLinux Generic Current auf Platte mit Bezeichnung Ubun10LTS' --class ubuntu --class gnu-linux --class gnu --class os {
 
recordfail
 
recordfail
 
insmod ext2
 
insmod ext2
search --no-floppy --label Ubun10LTS --set root
+
search --no-floppy --label --set root Ubun10LTS
 
linux /vmlinuz root=LABEL=Ubun10LTS ro  quiet splash
 
linux /vmlinuz root=LABEL=Ubun10LTS ro  quiet splash
 
initrd /initrd.img
 
initrd /initrd.img
   }  
+
   }
 
+
</pre>
  
 
===== /boot/grub.cfg aktualisieren =====
 
===== /boot/grub.cfg aktualisieren =====
Zeile 215: Zeile 230:
 
an und schreibt sie in <code>/boot/grub/grub.cfg</code> mittels
 
an und schreibt sie in <code>/boot/grub/grub.cfg</code> mittels
 
   sudo update-grub
 
   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 <code>c</code>  und dann ein <code>exit</code> eingeben.<ref>Vgl. https://unix.stackexchange.com/questions/405515/how-to-preview-my-grub-menu-without-rebooting</ref>
  
 
===== ISO-File booten =====
 
===== ISO-File booten =====
Zeile 224: Zeile 248:
 
Um nur für den nächsten Bootvorgang ein anderes Betriebssystem zu booten, kann man  
 
Um nur für den nächsten Bootvorgang ein anderes Betriebssystem zu booten, kann man  
 
   sudo grub-reboot x
 
   sudo grub-reboot x
aufrufen, wobei x die Nummer oder die genaue Bezeichnung des "menuentry"-Eintrags in der <code>grub.cfg</code> ist.
+
aufrufen, wobei x die Nummer <small>(erster Eintrag hat die 0 nicht die 1)</small> oder die genaue Bezeichnung des "menuentry"-Eintrags in der <code>grub.cfg</code> ist.
  
 
Wichtig ist dabei, dass in <code>/etc/default/grub</code> steht, dass
 
Wichtig ist dabei, dass in <code>/etc/default/grub</code> steht, dass
Zeile 255: Zeile 279:
 
* [http://www.rodsbooks.com/efi-bootloaders/index.html Beschreibung verschiedener EFI-Bootloader] für Linux
 
* [http://www.rodsbooks.com/efi-bootloaders/index.html Beschreibung verschiedener EFI-Bootloader] für Linux
 
* [https://wiki.archlinux.org/index.php/UEFI UEFI-Grundlagen] für ArchLinux
 
* [https://wiki.archlinux.org/index.php/UEFI UEFI-Grundlagen] für ArchLinux
 +
* [https://help.ubuntu.com/community/UEFI UEFI-Hilfe für Ubuntu]
  
 
===== GRUB2 =====
 
===== GRUB2 =====
Zeile 291: Zeile 316:
 
         chainloader /EFI/microsoft/BOOT/bootmgfw.efi
 
         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 =====
 
===== ELILO =====
Zeile 349: Zeile 381:
 
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):
 
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):
 
* http://0pointer.de/blog/projects/instances.html
 
* http://0pointer.de/blog/projects/instances.html
 +
 +
=== Ruhezustand ===
 +
 +
Probiere
 +
  sudo pm-hibernate
 +
oder
 +
  sudo systemctl hibernate
 +
 +
Siehe auch zu den Voraussetzungen wie /etc/initramfs-tools/conf.d/resume:
 +
* https://forums.bunsenlabs.org/viewtopic.php?id=4305
  
 
==== Automatischen Ruhezustand verhindern ====
 
==== Automatischen Ruhezustand verhindern ====
Zeile 354: Zeile 396:
 
Systemd ist standardmäßig so eingestellt, dass es bei geschlossenem Laptop-Deckel in den Ruhezustand geht. Dies lässt sich in der <code>/etc/systemd/login.conf</code> vermeiden:<ref>http://unix.stackexchange.com/questions/52643/how-to-disable-auto-suspend-when-i-close-laptop-lid</ref>
 
Systemd ist standardmäßig so eingestellt, dass es bei geschlossenem Laptop-Deckel in den Ruhezustand geht. Dies lässt sich in der <code>/etc/systemd/login.conf</code> vermeiden:<ref>http://unix.stackexchange.com/questions/52643/how-to-disable-auto-suspend-when-i-close-laptop-lid</ref>
 
   HandleLidSwitch=ignore
 
   HandleLidSwitch=ignore
 
  
 
=== Weiteres ===
 
=== Weiteres ===
Zeile 363: Zeile 404:
 
== Herunterfahren ==
 
== 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 <code>/etc/inittab</code> folgende Zeile einfügen/ändern:
 
Mit einer GUI-Umgebung wie Gnome oder KDE lässt sich der Rechner einfach durch Drücken des Soft-Power-Off-Buttons herunterfahren (meist noch mit einer Rückfrage auf dem Bildschirm). Will man dem normalen User in der Shell etwas ähnliches erlauben, sollte man in <code>/etc/inittab</code> folgende Zeile einfügen/ändern:
  
 
   ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -h now
 
   ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -h now
 +
 +
=== mittels Magic-SysRq ===
 +
Siehe
 +
* [https://www.heise.de/ix/heft/Letzte-Rettung-4054884.html iX-Artikel zur Magic-SysRq-Rettung]
  
 
== Tastatur ==
 
== Tastatur ==
Zeile 452: Zeile 498:
 
   synclient TouchPadOff=1
 
   synclient TouchPadOff=1
 
kann das Klicken durch Tippen auf das TouchPad abgeschaltet werden. Siehe dazu auch [http://forum.ubuntuusers.de/topic/ubuntu-12-04-mouseklicks-touchpad-deaktivieren/#post-4381662 diesen Thread].
 
kann das Klicken durch Tippen auf das TouchPad abgeschaltet werden. Siehe dazu auch [http://forum.ubuntuusers.de/topic/ubuntu-12-04-mouseklicks-touchpad-deaktivieren/#post-4381662 diesen Thread].
 +
 +
=== 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  <code>i8042.nopnp</code> helfen.<ref>Vgl. http://lightrush.ndoytchev.com/random-1/i8042quirkoptions</ref>
  
 
== RS232 Schnittstelle ==
 
== RS232 Schnittstelle ==
Zeile 468: Zeile 518:
 
=== LIRC ===
 
=== LIRC ===
  
Die Signale der [http://www.sbprojects.com/knowledge/ir/ Infrarot]-Fernbedienungen konnten früher nur über [http://www.lirc.org LIRC] empfangen werden, heutzutage kann der Kernel selbst viele Signale direkt als Tastatur-Ereignisse verarbeiten. 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.<ref>Vgl. http://www.lirc.org/html/configuration-guide.html</ref>
+
Die Signale der [http://www.sbprojects.com/knowledge/ir/ Infrarot]-Fernbedienungen konnten früher nur über [http://www.lirc.org LIRC] empfangen werden, heutzutage kann der Kernel selbst viele Signale direkt als Tastatur-Ereignisse verarbeiten.<ref>Siehe [http://atterer.org/mythtv-xmbc-remote-control-without-lirc] .</ref> 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.<ref>Vgl. http://www.lirc.org/html/configuration-guide.html</ref>
  
 
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 LIRC kann man auch die vom Kernel unterstützten IR-Geräte nutzen; dabei geht man den Umweg über das Linux-Input-System.  
Zeile 483: Zeile 533:
 
   sudo adduser USER input
 
   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
  
auszuführen: LIRC installieren
+
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 <small>([http://atterer.org/mythtv-xmbc-remote-control-without-lirc siehe dazu die Key codes( MythTV) ] und die [http://kodi.wiki/view/Keyboard_controls Standardbelegung der Tastatur unter Kodi])</small> 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
  
auszuführen: Lircmap.xml <code>~/.kodi/userdata/</code> und [https://github.com/xbmc/xbmc/blob/master/system/keymaps/remote.xml remote.xml] in <code>~/.kodi/userdata/keymaps/</code>
+
Hier mal meine Beispiel-Tabelle  <code>/etc/rc_keymaps/meine_tt</code> für die Nutzung einer alten Technotrend-Fernbedienung für [[Kodi]]:
 +
<pre>
 +
# 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
 +
</pre>
 +
 
 +
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:<ref>Vgl. [http://forum.kodi.tv/showthread.php?tid=101151 ir-keytable or: How I Learned to Stop Worrying about the LIRC Kernel] </ref>
 +
  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 [https://github.com/xbmc/xbmc/blob/Jarvis/system/Lircmap.xml Lircmap.xml] in <code>~/.kodi/userdata/</code> und die [https://github.com/xbmc/xbmc/blob/master/system/keymaps/remote.xml remote.xml] (jeweils auf korrektes Release/github-Branch achten)<ref>Siehe http://kodi.wiki/view/Keymap.xml#Remote_Buttons</ref> in <code>~/.kodi/userdata/keymaps/</code> 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 <code>/etc/udev/rules.d/10-infrared.rules</code> 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 <code>ir-keytable</code> 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.
 +
  
  
Zeile 492: Zeile 634:
 
* [http://www.lirc.org/html/configuration-guide.html Ausführliche Anleitung und Erläuterung der LIRC-Funktionsweise]
 
* [http://www.lirc.org/html/configuration-guide.html Ausführliche Anleitung und Erläuterung der LIRC-Funktionsweise]
 
* [https://marklodato.github.io/2013/10/24/how-to-use-lirc.html LIRC-Anleitung von Mark Lodato] inkl. Abklemmen der Kernel-Funktionalität über xorg.conf.d-Dateien
 
* [https://marklodato.github.io/2013/10/24/how-to-use-lirc.html LIRC-Anleitung von Mark Lodato] inkl. Abklemmen der Kernel-Funktionalität über xorg.conf.d-Dateien
 +
* [https://www.mythtv.org/wiki/User_Manual:IR_control_via_evdev MythTV-Anleitung zu ir-keytable]
 
* [http://forum.kodi.tv/showthread.php?tid=101151 IR-Remote nur über Kernel, nicht über LIRC]
 
* [http://forum.kodi.tv/showthread.php?tid=101151 IR-Remote nur über Kernel, nicht über LIRC]
 
* [http://forum.kodi.tv/showthread.php?tid=104541 Ausführliche Erklärung von LIRC in mehreren Forumsbeiträgen]
 
* [http://forum.kodi.tv/showthread.php?tid=104541 Ausführliche Erklärung von LIRC in mehreren Forumsbeiträgen]
  
==== IR Probleme ====
+
==== 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.
  
Mit Intel NUCs scheint es manchmal Probleme mit dem internen IR-Receiver zu geben. <ref>Siehe https://communities.intel.com/thread/52072?start=15&tstart=0</ref>
+
Installation:
 +
  sudo aptitude install lirc lirc-x inputlirc
  
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.<ref>Vgl. https://github.com/OpenELEC/OpenELEC.tv/issues/3137</ref>,<ref>Siehe http://ilostmynotes.blogspot.de/2012/12/fintek-ir-receiver-and-xbox-remote-to.html </ref>, <ref>https://bbs.archlinux.org/viewtopic.php?id=151479&p=2</ref>
 
  
== Prozessverwaltung ==
+
In <code>/etc/default/inputlirc</code> muss die Variable <code>EVENTS</code> auf den von der oben angegebenen [[udev]]-Regel erstellten symbolischen Link gesetzt werden:<ref>Vgl. http://kodi.wiki/view/HOW-TO:Set_up_an_MCE_remote_control_in_Linux </ref>
 +
  EVENTS="/dev/input/infrared"
 +
Das ist dann auch der korrekte Name für das <code>&lt;remote&gt;</code>-Tag in der <code>.kodi/userdata/Lircmapxml</code>.
 +
Kernel-Input kann mit ir-keytable -t getestet werden (siehe oben).
  
=== nohup ===
+
Die LIRC-Tastencodes können mit
* Mit dem Befehl <code>nohup</code> kann man Prozesse starten, die nicht beendet werden, wenn die Shell verlassen wird. Die Standardausgabe <code>stdout</code> wird nach <code>nohup.out</code> im aktuellen Verzeichnis umgeleitet (kann z.B. mit <code>cat nohup.out</code> angesehen werden.
+
  irw
 +
angezeigt werden (einzelne Tasten auf der Fernbedienung betätigen).
  
=== cron ===
+
[[Kodi]]-Funktionen: Die <code>~/.kodi/userdata/Lircmap.xml</code> erhält folgenden Inhalt:
 +
<pre>
 +
  <?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  -->
  
==== crontab ====
+
  <lircmap>
* Mit dem Befehl <code>crontab</code> lassen sich Prozesse zu einem bestimmten Zeitpunkt ausführen. Anleitungen finden sich z.B. bei [http://de.wikipedia.org/wiki/Cron Wikipedia], [http://www.newbie-net.de/anleitung_cron.html Newbie-Net]. Mit
+
<remote device="/dev/input/event6">
  crontab -l
+
<!-- new kernel-based lirc button names -->
wird die <code>crontab</code> des aktuellen Benutzers ausgegeben. Mit
+
<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>
  
crontab -e
+
                <!-- extensions -->
kann die <code>crontab</code> geändert werden. Eine Crontab-Datei enthält Zeilen mit normalerweise sechs durch Leerzeichen getrennte Spalten:
+
                <back>KEY_EXIT</back>
* Minuten
+
</remote>
* Stunden
+
  </lircmap
* Tage
+
</pre>
* Monate
+
Siehe
* Wochentage
+
* http://www.pro-linux.de/artikel/2/1682/einstieg-in-lirc-mit-inputlirc.html
* Auszuführender Befehl / Datei
 
Beispiel:
 
2 3 * * * cp src backup
 
@reboot echo "hallo"
 
*/10 * * * * echo "schon wieder"
 
  
In der ersten Zeile wird der cron-Dämon angewiesen, immer um 3:02 Uhr morgens an jedem Tag die Datei <code>src</code> nach <code>backup</code> zu kopieren. In der zweiten Zeile wird bei jedem Boot-Vorgang ein "hallo" per Mail(?) an den jeweiligen Benutzer geschickt. Die letzte Zeile wird alle 10 Minuten ausgeführt. Zu den weiteren "@-Zeiten" siehe http://library.linode.com/linux-tools/utilities/cron.
+
==== ir-keytable und Kodi ====
  
==== /etc/cron.weekly u.a. ====
+
Für neuere Linux- und [[Kodi]]-Versionen braucht man im Regelfall LIRC nicht. <code>ir-keytable</code> reicht aus.
 +
Beispiel für eine TT-Fernbedienung an einem Intel [[NUC]] mit eingebautem IR-Empfänger:
 +
Man bastelt auf Basis der <code>/lib/udev/rc_keymaps/tt_1500</code> eine neue Datei namens <code>/etc/rc_keymaps/meine_tt</code> mit folgendem Inhalt:
 +
<pre>
 +
# 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
 +
</pre>
  
Ausführbare Dateien in den Verzeichnissen <code>/etc/cron.daily</code>, <code>/etc/cron.weekly</code> und <code>/etc/cron.monthly</code> werden von <code>anacron</code> und/oder <code>cron</code> periodisch ausgeführt.
 
  
Gegenüber der <code>crontab</code>-Methode ergibt sich daraus ein Vorteil bei Rechnern, die nicht 24 Stunden im Betrieb sind. Bei [[Debian]] muss dafür jedoch anacron nachinstalliert werden (als root):
+
Diese schreibt man auf den Intel-IR-Receiver (hier: <code>rc0</code>) mit
  aptitude install anacron
+
  sudo ir-keytable -c -w /etc/rc_keymaps/meine_tt -s rc0
  
Die Dateinamenskonvention in den Verzeichnissen <code>/etc/cron.daily</code> etc. ist recht restriktiv. Siehe dazu die [[man]]-pages von <code>run-parts</code>. Um zu sehen, ob das eigene Skript die Namenskonvention einhält, kann man  
+
Um nicht noch durch den im DVB-Stick enthaltenen IR-Receiver (hier: <code>rc1</code>) verwirrt zu werden, kann man dessen Zuordnungstabelle löschen:
  run-parts --test /etc/cron.daily
+
sudo ir-keytable --s rc1
ausführen. Es wird eine Liste derjenigen Skripte ausgegeben, die die Namenskonvention einhält.
 
  
== Benutzerverwaltung ==
+
Kodi muss zur Wirksamkeit wohl neu gestartet werden.
  
=== neuer Benutzer ===
+
==== IR Probleme ====
  
* Einen neuen Benutzer legt man am Besten mit <code>adduser NEUERNUTZER </code> an. Im Gegensatz zu <code>useradd </code> wird dabei gleich ein /home-Verzeichnis angelegt. Ein Passwort wird dabei auch gleich abgefragt.
+
Zu Testzwecken hilft das Anzeigen einzelner Tastendrücke:
 +
  irw
  
=== Benutzer-Nummer ===
 
  
* Die [http://www.unixtutorial.org/2008/01/how-to-find-uid-in-unix/ UID findet man mit dem Befehl <code>id</code>].
+
Mit Intel NUCs scheint es manchmal Probleme mit dem internen IR-Receiver zu geben. <ref>Siehe https://communities.intel.com/thread/52072?start=15&tstart=0</ref>
  
 +
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.<ref>Vgl. https://github.com/OpenELEC/OpenELEC.tv/issues/3137</ref>,<ref>Siehe http://ilostmynotes.blogspot.de/2012/12/fintek-ir-receiver-and-xbox-remote-to.html </ref>, <ref>https://bbs.archlinux.org/viewtopic.php?id=151479&p=2</ref>
  
=== Konsolen-Benutzer ohne Passwort ===
+
Möglicherweise gibt es auf einem Debian Jessie ein LIRC zuviel und die Tasten werden ununterbrochen wiederholt. Dann hilft evtl.:
* Für einen Benutzer ohne Passwort (beim Login auf Shell-Ebene muss man nur den Login-Namen, aber kein Passwort eingeben)<ref>Vergleiche http://onlyubuntu.blogspot.com/2008/06/howto-enable-empty-password-login-in.html.</ref> legt man ihn in folgenden zwei Schritten an:
+
  sudo service lircd-uinput stop
   adduser userWithoutPassword
+
Den <code>lircd-uinput</code> - Service kann man auch dauerhaft deaktivieren:
  passwd -d userWithoutPassword
+
   sudo systemctl disable lircd-uinput
  
=== AutoLogin auf Konsole ===
+
===== IR-Fernbedienung erzeugt doppelte Tastendrücke =====
  
==== AutoLogin unter SysV ====
+
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
Ein automatisches Login erreicht man mit dem Paket [http://wiki.ubuntuusers.de/autologin rungetty]:
+
  export DISPLAY=:0.0
   aptitude install rungetty
+
  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 [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/663651/comments/23 ein fertiges Skript].
  
Danach muss man in <code>/etc/init/tty1.conf</code> die Zeile <code>exec /sbin/getty 38400 tty1</code> durch folgende Zeile ersetzen:
+
== Prozessverwaltung ==
  exec /sbin/rungetty --autologin namedesbenutzers tty1
 
  
Bei anderen Linux-Systemen (z.B. [[Debian]] 6.0 Squeeze) muss man in der <code>/etc/inittab</code> die Zeile <code>1:2345:respawn:/sbin/getty 38400 tty1</code> durch folgende Zeile ersetzen:
+
=== nohup ===
  1:2345:respawn:/sbin/rungetty --autologin namedesbenutzers tty1
+
* Mit dem Befehl <code>nohup</code> kann man Prozesse starten, die nicht beendet werden, wenn die Shell verlassen wird. Die Standardausgabe <code>stdout</code> wird nach <code>nohup.out</code> im aktuellen Verzeichnis umgeleitet (kann z.B. mit <code>cat nohup.out</code> angesehen werden.
  
Nach dem Parameter <code>tty1</code> kann man noch ein Kommando angeben, das automatisch ausgeführt wird. Ein textbasierter Music-Client lässte sich daher durch Aufruf von <code>ncmpcpp</code> erstellen; bei Beenden des Programms wird es dann automatisch wieder gestartet. Dazu muss allerdings zuvor der [[MPD]]-Server installiert sein.
+
=== cron ===
  
==== AutoLogin unter Systemd ====
+
==== crontab ====
 
+
* Mit dem Befehl <code>crontab</code> lassen sich Prozesse zu einem bestimmten Zeitpunkt ausführen. Anleitungen finden sich z.B. bei [http://de.wikipedia.org/wiki/Cron Wikipedia], [http://www.newbie-net.de/anleitung_cron.html Newbie-Net]. Mit
Siehe dazu http://noctus.net/2011/mingetty-und-systemd
+
  crontab -l
 +
wird die <code>crontab</code> des aktuellen Benutzers ausgegeben. Mit
  
=== Weiterführendes ===
+
crontab -e
 +
kann die <code>crontab</code> geändert werden. Eine Crontab-Datei enthält Zeilen mit normalerweise sechs durch Leerzeichen getrennte Spalten:
 +
* Minuten
 +
* Stunden
 +
* Tage
 +
* Monate
 +
* Wochentage
 +
* Auszuführender Befehl / Datei
 +
Beispiel:
 +
2 3 * * * cp src backup
 +
@reboot echo "hallo"
 +
*/10 * * * * echo "schon wieder"
  
* Die ct stellte [http://www.ct.de/1103122 Skripte für ein manipulationssicheres Linux] vor (c't 3/2011 S. 122ff.).
+
In der ersten Zeile wird der cron-Dämon angewiesen, immer um 3:02 Uhr morgens an jedem Tag die Datei <code>src</code> nach <code>backup</code> zu kopieren. In der zweiten Zeile wird bei jedem Boot-Vorgang ein "hallo" per Mail(?) an den jeweiligen Benutzer geschickt. Die letzte Zeile wird alle 10 Minuten ausgeführt. Zu den weiteren "@-Zeiten" siehe http://library.linode.com/linux-tools/utilities/cron.
  
* http://de.m.wikipedia.org/wiki/Unix-Kommandos#Benutzer-_und_Rechteverwaltung
+
==== /etc/cron.weekly u.a. ====
  
== Virtualisierung ==
+
Ausführbare Dateien in den Verzeichnissen <code>/etc/cron.daily</code>, <code>/etc/cron.weekly</code> und <code>/etc/cron.monthly</code> werden von <code>anacron</code> und/oder <code>cron</code> periodisch ausgeführt.
  
* [ftp://ftp.freiesmagazin.de/2009/freiesMagazin-2009-05.pdf freiesmagazin.de Mai 2009] zeigt, wie man einen virtuellen Rechner mittels KVM am Heimrechner einrichtet.
+
Gegenüber der <code>crontab</code>-Methode ergibt sich daraus ein Vorteil bei Rechnern, die nicht 24 Stunden im Betrieb sind. Bei [[Debian]] muss dafür jedoch anacron nachinstalliert werden (als root):
* Open VirtualBox (von Oracle) wird z.B. bei Ubuntu mitgeliefert.
+
  aptitude install anacron
 +
 
 +
Die Dateinamenskonvention in den Verzeichnissen <code>/etc/cron.daily</code> etc. ist recht restriktiv. Siehe dazu die [[man]]-pages von <code>run-parts</code>. Um zu sehen, ob das eigene Skript die Namenskonvention einhält, kann man  
 +
  run-parts --test /etc/cron.daily
 +
ausführen. Es wird eine Liste derjenigen Skripte ausgegeben, die die Namenskonvention einhält.
  
* [[Docker]] ist im Standardpaketumfang von [[Linux Mint]] enthalten.
 
  
* LXC ist ebenfalls eine Container-Lösung
+
==== Feststellen, ob Script von Cron gestartet wurde ====
  
== Shells ==
+
Siehe https://stackoverflow.com/questions/33354864/how-to-check-if-linux-shell-script-is-executed-by-a-cronjob :
 +
<pre>
  
=== Dokumentation für bash (Kommandozeile/Konsole) ===
+
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
 +
</pre>
  
* [http://tldp.org/LDP/abs/html/index.html Advanced Bash Shell Scripting Guide] mit vielen Beispielen.
+
== Benutzerverwaltung ==
* [http://mywiki.wooledge.org/BashPitfalls Häufige Fehler bei der Bash-Programmierung]
 
* [http://linuxconfig.org/Bash_scripting_Tutorial Bash Tutorial]
 
  
=== Ablaufsteuerung ===
+
=== neuer Benutzer ===
==== if-Verzweigung ====
 
  
Der Rückgabewert 0 einer Funktion oder eines Kommando wird als wahr gewertet.
+
* Einen neuen Benutzer legt man am Besten mit <code>adduser NEUERNUTZER </code> an. Im Gegensatz zu <code>useradd </code> wird dabei gleich ein /home-Verzeichnis angelegt. Ein Passwort wird dabei auch gleich abgefragt.
  
Damit gibt
+
=== Benutzer-Nummer ===
  if true; then echo eins; else echo zwei; fi;
 
"eins" aus.
 
  
Die Negation erreicht man mit dem Operator <code>!</code>:
+
* Die [http://www.unixtutorial.org/2008/01/how-to-find-uid-in-unix/ UID findet man mit dem Befehl <code>id</code>].
  if ! true; then echo eins; else echo zwei; fi;
 
liefert "zwei".
 
  
  
==== while-Schleife ====
+
=== Konsolen-Benutzer ohne Passwort ===
* Die bash-Shell bietet auch eine einfach zu nutzende While-Schleife. Beispiel:
+
* Für einen Benutzer ohne Passwort (beim Login auf Shell-Ebene muss man nur den Login-Namen, aber kein Passwort eingeben)<ref>Vergleiche http://onlyubuntu.blogspot.com/2008/06/howto-enable-empty-password-login-in.html.</ref> legt man ihn in folgenden zwei Schritten an:
  while true; do df -h; sleep 50s; echo `date`; done;
+
   adduser userWithoutPassword
* Das kann man auch mit einer Pipe kombinieren (diese Schleife konvertiert Musikdateien, die nur nach der Tracknummer benannt sind, in TrackNr.mp3 um):
+
   passwd -d userWithoutPassword
  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 ===
+
=== AutoLogin auf Konsole ===
* Array-Variablen können z.B. folgendermaßen Werte zugewiesen werden:
 
  meinArray=(eins zwei drei vier)
 
  
* Ein komisches Verhalten zieht <code>declare</code> innerhalb einer Funktion bei: Es begrenzt die Sichtbarkeit der Variablen auf den Funktionsbereich. Wenn globale Variablen zum Informationsaustausch zwischen Funktion und aufrufendem Skript genutzt werden sollen, sollte declare in der Funktion also besser nicht genutzt werden.
+
==== AutoLogin unter SysV ====
 +
Ein automatisches Login erreicht man mit dem Paket [http://wiki.ubuntuusers.de/autologin rungetty]:
 +
  aptitude install rungetty
  
=== Parameteroptionen verarbeiten ===
 
  
[http://www.mkssoftware.com/docs/man1/getopts.1.asp getopts], ein in der Bash enthaltenes Kommando, hilft Kommandozeilenoptionen zu verarbeiten.
+
Danach muss man in <code>/etc/init/tty1.conf</code> die Zeile <code>exec /sbin/getty 38400 tty1</code> durch folgende Zeile ersetzen:
 +
  exec /sbin/rungetty --autologin namedesbenutzers tty1
  
=== Exit-Status ===
+
Bei anderen Linux-Systemen (z.B. [[Debian]] 6.0 Squeeze) muss man in der <code>/etc/inittab</code> die Zeile <code>1:2345:respawn:/sbin/getty 38400 tty1</code> durch folgende Zeile ersetzen:
 +
  1:2345:respawn:/sbin/rungetty --autologin namedesbenutzers tty1
  
Mit
+
Nach dem Parameter <code>tty1</code> kann man noch ein Kommando angeben, das automatisch ausgeführt wird. Ein textbasierter Music-Client lässte sich daher durch Aufruf von <code>ncmpcpp</code> erstellen; bei Beenden des Programms wird es dann automatisch wieder gestartet. Dazu muss allerdings zuvor der [[MPD]]-Server installiert sein.
  echo $?
 
wird der Rückgabewert des unmittelbar davor ausgeführten Shell-Kommandos/Skripts ausgegeben.
 
  
Das kann z.B. für einen Abbruch genutzt werden:
+
==== AutoLogin unter Systemd ====
  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:
+
Siehe dazu http://noctus.net/2011/mingetty-und-systemd
  if do_something; then
 
  
=== Debugging ===
+
=== Weiterführendes ===
  
Mit
+
* Die ct stellte [http://www.ct.de/1103122 Skripte für ein manipulationssicheres Linux] vor (c't 3/2011 S. 122ff.).
  set -x
 
wird Tracing eingeschaltet: Jeder Script-Befehl wird vor der Ausführung auf der Konsole ausgegeben.
 
  
Mit
+
* http://de.m.wikipedia.org/wiki/Unix-Kommandos#Benutzer-_und_Rechteverwaltung
  set -e
 
wird grundsätzlich das Script bei einem erfolglosen Befehl abgebrochen.
 
  
=== Verarbeiten von Textstreams ===
+
== Virtualisierung ==
 +
 
 +
* [ftp://ftp.freiesmagazin.de/2009/freiesMagazin-2009-05.pdf freiesmagazin.de Mai 2009] zeigt, wie man einen virtuellen Rechner mittels KVM am Heimrechner einrichtet.
 +
* Open VirtualBox (von Oracle) wird z.B. bei Ubuntu mitgeliefert.
  
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.
+
* [[Docker]] ist im Standardpaketumfang von [[Linux Mint]] enthalten.
  
* [http://www.easylinux.de/2005/09/084-umleitungen/ Einführung in Pipes]
+
* LXC ist ebenfalls eine Container-Lösung
* Sinnvolle Hilfen zum Verarbeiten von Textstreams/Auslesen von Dateien
 
** [[wc]] zählt Worte und Zeilen
 
** [[cut]] liefert bestimmte Teile einer Zeile
 
** [[grep]] sucht nach Textbestandteilen
 
** [[sed]] hilft beim Editieren einer Datei auf der Kommandozeile bzw. in Shell-Skripten, siehe z.B. der [http://www.freiesmagazin.de/ftp/2010/freiesMagazin-2010-03.pdf Artikel zu sed im "freien Magazin"].
 
** [[printf]] ermöglicht wie in der Programmiersprache C das formatierte Ausgeben von Zahlen und Zeichen
 
  printf '%s mit führenden Nullen: %05d' Zahl 76
 
  
==== sed ====
+
== Shells ==
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
+
=== Dokumentation für bash (Kommandozeile/Konsole) ===
  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.
+
* [http://tldp.org/LDP/abs/html/index.html Advanced Bash Shell Scripting Guide] mit vielen Beispielen.
* Dann der Pfadanfang geändert
+
* [http://mywiki.wooledge.org/BashPitfalls Häufige Fehler bei der Bash-Programmierung]
* Außerdem wird die Pfadstruktur um eine Ebene erweitert: Den Anfangsbuchstaben des Interpreten
+
* [http://linuxconfig.org/Bash_scripting_Tutorial Bash Tutorial]
* 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 <code>-i</code> (oder <code>--in-place</code>) kann eine Datei geändert werden, die zugleich als Eingabestream fungiert.
+
=== Tab-Completion ===
  
=== Datum ===
+
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.
  
  date
+
Eine deutliche Erweiterung dieser Funktionalität auch für Optionen für verschiedene Kommandozeilentools bietet das Paket <code>bash-completion</code>:
zeigt das aktuelle Datum an.
+
   sudo aptitude install bash-completion
  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
+
==== Autovervollständigung für Rechnernamen ====
* [http://tldp.org/LDP/abs/html/timedate.html weitere Beispiele im Advanced Bash Scripting Guide].
+
Bei der Vervollständigung für Rechnernahmen, z.B. für den [[ssh]]-Befehl, schaut die Vervollständigung regelmäßig in die Datei <code>/etc/hosts</code>.
 +
Möchte man weitere Rechnernamen aufnehmen, muss man die Umgebungsvariable $HOSTFILE auf eine Datei mit Rechnernamen setzen:<ref>Vgl. http://www.linux-magazine.com/Online/Features/Bash-Tips-Autocompletion .</ref>
 +
  export HOSTFILE="/home/USER/myhostfile"
 +
Um dies bei jedem Start der Bash automatisch zu tun, fügt man diese Zeile am Ende der <code>.bashrc</code> im Homeverzeichnis des jeweiligen Benutzers ein.
  
=== Interaktion mit Desktop ===
 
==== Zwischenablage ====
 
  
* Mit [http://www.linux-community.de/Archiv/Tipp-der-Woche/Xclip-Zwischenablage-fuer-die-Konsole xclip] lässt sich der Inhalt der Shell-Pipe in die Zwischenablage kopieren. Der Inhalt steht dann beispielsweise in einer KDE- oder Gnome-Anwendung zur Verfügung.
+
In der entsprechenden Datei (im Beispiel /home/USER/myhostfile) werden die Rechner Zeile für Zeile eingetragen:
 +
  fritz.box
 +
  pia2016.de
  
==== Nachricht an Desktop ====
+
=== Gefrorene Shell ===
  
Mit
+
Mittels Strg-S kann man das Terminal anhalten (XOFF). Mittels Strg-Q geht es wieder weiter (XON).
  notify-send text
 
kann eine Nachricht (text) an den Desktop gesendet werden, die dem Benutzer angezeigt wird.<ref>https://linuxnetz.wordpress.com/2010/04/21/notify-send/</ref>
 
  
Dafür ist allerdings das Paket <code>libnotify-bin</code> zu installieren:
+
=== Ablaufsteuerung ===
  sudo aptitude install libnotify-bin
+
==== if-Verzweigung ====
  
==== User-Dialog ====
+
Der Rückgabewert 0 einer Funktion oder eines Kommando wird als wahr gewertet.
  
Unter [[Gnome]] lässt sich mit <code>zenity</code> von der [[Bash]] mit dem Nutzer in Dialog treten (Ja/Nein, User-Eingabezeile, ...).
+
Damit gibt
 +
  if true; then echo eins; else echo zwei; fi;
 +
"eins" aus.
  
==== Arbeitsflächen wechseln ====
+
Die Negation erreicht man mit dem Operator <code>!</code>:
 +
  if ! true; then echo eins; else echo zwei; fi;
 +
liefert "zwei".
  
Das Paket <code>wmctrl</code> erlaubt den Wechsel zwischen den Arbeitsflächen des Desktops:
 
  wmctrl -s arbeitsflächennummer
 
wobei arbeitsflächennummer die mit 0 beginnende Nummer des Desktops ist.<ref>http://www.linuxquestions.org/questions/linux-desktop-74/how-to-specify-a-gnome-workpace-an-application-will-launch-in-555764/</ref>
 
  
Das Paket <code>devilspie</code> erlaubt es, Programme nach bestimmten Kriterien auf andere Arbeitsflächen/Viewports zu verfrachten. Dazu muss beispielsweise für <code>xterm</code> folgende Datei <code>~/.devilspie/xterm.ds</code> (Die Endung <code>.ds</code> ist wichtig) erstellt werden:
+
==== 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
  
  (if
+
=== Variablen ===
    (is (application_name) "xterm")
+
* Array-Variablen können z.B. folgendermaßen Werte zugewiesen werden:
    (begin
+
  meinArray=(eins zwei drei vier)
        (set_viewport 3)
 
    )
 
  )
 
  
Anschließend muss <code>devilspie</code> gestartet werden. Bei den folgenden Aufrufen von <code>xterm</code> wird das Fenster automatisch auf die Arbeitsfläche 3 landen.
+
* Ein komisches Verhalten zieht <code>declare</code> innerhalb einer Funktion bei: Es begrenzt die Sichtbarkeit der Variablen auf den Funktionsbereich. Wenn globale Variablen zum Informationsaustausch zwischen Funktion und aufrufendem Skript genutzt werden sollen, sollte declare in der Funktion also besser nicht genutzt werden.
  
Eine Möglichkeit, mittels  wmctrl und bash-Script Compiz-Viewports zu kontrollieren, findet sich [http://www.linuxquestions.org/questions/programming-9/bash-script-for-automatic-viewport-changing-and-other-wm-stuff-works-with-compiz-838827/ hier] und [http://forum.ubuntuusers.de/topic/wuerfel-per-bash-drehen/#post-1206881 hier], letzteres basierend auf [http://sfyang-en.blogspot.com/2008/02/rotate-cube-in-compiz-with-wmctrl.html diesem Blog].
+
=== Parameteroptionen verarbeiten ===
  
== Dateiverwaltung ==
+
[http://www.mkssoftware.com/docs/man1/getopts.1.asp getopts], ein in der Bash enthaltenes Kommando, hilft Kommandozeilenoptionen zu verarbeiten.
  
=== Dateisuche ===
+
=== Exit-Status ===
Ein rekursives MS-DOS-<code>dir</code> lässt sich mit dem Befehl find erreichen:
 
  
   find / -name "*xy*"
+
Mit
 
+
   echo $?
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.
+
wird der Rückgabewert des unmittelbar davor ausgeführten Shell-Kommandos/Skripts ausgegeben.
  
=== Berechtigungen ===
+
Das kann z.B. für einen Abbruch genutzt werden:
* '''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.
+
  do_something; 
* Informationen u.a. zum SUID-Bit und zum Abschalten auf ganzen Partitionen finden sich auf dem [http://www.informatikserver.at/selflinux/html/grundlagen_sicherheit07.html Informatikserver.at]
+
  exit_status=$?;
 +
  if (($exit_status)); then
 +
    echo do_something failed.;
 +
    exit $exit_status;
 +
  fi;
  
=== Speicherplatz ===
+
Die Kurzform für die ersten drei Zeilen wäre:
* Den '''freien Platz auf der Festplatte''' erfährt man durch
+
   if do_something; then
  df -h
 
* Den vom aktuellen Verzeichnis und seinen Unterverzeichnis '''belegten Platz''' erfährt man durch
 
   du --human-readable --summarize
 
  
=== Mounten ===
+
=== Debugging ===
  
==== Erkennen einer CD-ROM ====
+
Mit
 +
  set -x
 +
wird Tracing eingeschaltet: Jeder Script-Befehl wird vor der Ausführung auf der Konsole ausgegeben.
  
Möglicherweise hilft bei Nichterkennung einer CD-ROM das [http://ignorantguru.github.io/udevil/ Einschalten des Kernel-Pollings (siehe unteren Teil der verlinkten Seite)].
+
Mit
 +
  set -e
 +
wird grundsätzlich das Script bei einem erfolglosen Befehl abgebrochen.
  
==== UUID ====
+
=== Unit Tests ===
  
Die UUIDs der Festplattenpartitionen lassen sich mit <code>sudo blkid</code> anzeigen.
+
[https://github.com/pgrange/bash_unit Bash_unit] ist ein Paket zum Erstellen von Unit-Tests für Bash.
In der <code>/etc/fstab</code> ersetzt man das übliche <code>/dev/sdXX</code> durch <code>UUID=12345678</code>.
 
  
==== LABEL ====
+
=== Verarbeiten von Textstreams ===
  
Eine ext2/ext3/ext4-Partition lässt sich mit <code>sudo e2label</code> mit einem Label versehen.  
+
* Sinnvolle Hilfen zum Verarbeiten von Textstreams/Auslesen von Dateien
In der <code>/etc/fstab</code> ersetzt man das übliche <code>/dev/sdXX</code> durch <code>LABEL=MyPart</code>.
+
** [[wc]] zählt Worte und Zeilen
 +
** [[cut]] liefert bestimmte Teile einer Zeile
 +
** [[grep]] sucht nach Textbestandteilen
 +
** [[sed]] hilft beim Editieren einer Datei auf der Kommandozeile bzw. in Shell-Skripten, siehe z.B. der [http://www.freiesmagazin.de/ftp/2010/freiesMagazin-2010-03.pdf Artikel zu sed im "freien Magazin"].
 +
** [[printf]] ermöglicht wie in der Programmiersprache C das formatierte Ausgeben von Zahlen und Zeichen
 +
  printf '%s mit führenden Nullen: %05d' Zahl 76
  
==== Dauerhaftes Mounten einer NTFS-Partition ====
+
Falls die Standardausgabe zu viel gepuffert wird kann man dies durch das Kommando <code>stdbuf -oL</code> in Zeilenpufferung ändern.<ref>Vgl. https://www.turnkeylinux.org/blog/unix-buffering .</ref>
  
Um eine NTFS-Partition (z.B. auf /dev/sda2) dauerhaft (also schon beim Booten) zu mounten, fügt man in die Datei <code>/etc/fstab</code> folgende Zeile hinzu:
+
==== Piping ====
  /dev/sda2      /mnt/winC    ntfs    defaults,umask=011,uid=BENUTZER,gid=BENUTZERGRUPPE 0 0
 
wobei BENUTZER und BENUTZERGRUPPE durch die entsprechenden Benutzernamen bzw. Gruppennammen zu ersetzen sind.
 
  
Außerdem muss der Mount-Point erzeugt werden:
 
  mkdir /mnt/winC
 
  
Damit werden können aber alle Benutzer alle Daten dieses  Laufwerks lesen und schreiben. Will man dies nicht, muss man mit den Optionen <code>uid=</code>, <code>gid=</code> und <code>umask=</code> eine Lösung finden.
+
Linux kennt zwei Standard-Ausgabe-Streams, stdout und stderr.  
  
Unter [[Debian]] ist für den Schreibzugriff auf [[NTFS]] die Installation des Pakets <code>ntfs-3g</code> notwendig:
+
Die für stderr bestimmten Ausgaben können mit dem Operator "2>" in eine Datei umgeleitet werden.
   aptitude install ntfs-3g
+
Beispiel:
 +
   find / -name '*.mp3' 2> /dev/null
  
 +
* [http://www.easylinux.de/2005/09/084-umleitungen/ Einführung in Pipes]
  
===== Korrupte NTFS-Partition =====
+
==== heredoc ====
  
Mit
+
Man kann auch kleine Textschnipsel in ein Skript selbst schreiben und dann weiterleiten:
  sudo ntfsfix /dev/sdb1
 
kann die NTFS-Partition auf /dev/sdb1 repariert werden.<ref>http://askubuntu.com/questions/74105/how-do-you-repair-an-input-output-error-in-an-ntfs-partition</ref>
 
  
==== USB-Datenträger unter Systemd ====
+
  cat <<EOF
 +
  Dies ist ein Text, der
 +
  an cat weitergegeben wird.
 +
  EOF
  
Wenn man eine USB-Disk nur manchmal beim Start eingesteckt hat, sie in dem Fall aber automatisch mounten will, helfen möglicherweise die <code>/etc/fstab</code>-Optionen <code>nofail,nobootwait</code>.<ref>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</ref>
+
Statt EOF kann in den so genannten "heredocs" auch irgendein anderes Wort
 +
zur Bezeichnung des Endes des heredocs geschrieben werden. Es muss nur
 +
das Gleiche am Anfang und am Ende sein.
  
Unter Systemd kann man auch die Optionenkombination <code>noauto,x-systemd.automount</code> in <code>/etc/fstab</code> verwenden. Dann wird die entsprechende Platte erst dann gemountet, wenn auf den Mountpunkt zugegriffen wird.<ref>Vgl. https://bbs.archlinux.org/viewtopic.php?id=147478</ref>
+
==== 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.
  
Siehe
+
Etwas komplizierter
* http://www.wrigley.me.uk/wp/2012/12/03/automounting-usb-disk-on-boot-with-systemd-in-fedora/
+
  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
* https://bbs.archlinux.org/viewtopic.php?id=147478
 
  
==== Mounten eines CD-Images ====
+
* Zunächst wird der Backslash durch den Slash ersetzt.
Um ein '''CD-Image zu betrachten''' kann man dieses folgendermaßen ins normale Dateisystem einhängen:  
+
* Dann der Pfadanfang geändert
  mkdir zielpunkt
+
* Außerdem wird die Pfadstruktur um eine Ebene erweitert: Den Anfangsbuchstaben des Interpreten
  sudo  mount -o loop -t iso9660 /pfad/zum/iso.image zielpunkt
+
* 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.
Am Ende lässt es sich ganz normal mit
 
 
umount /zielpunkt
 
  
aushängen
+
Mit dem Modifizierer <code>-i</code> (oder <code>--in-place</code>) kann eine Datei geändert werden, die zugleich als Eingabestream fungiert.
  
==== Mounten eines FTP-Verzeichnisses ====
+
=== Datum ===
  
* Zum Mounten eines FTP-Verzeichnisses hilft [http://blog.bumsdiekuh.net/archives/84-FTP-Server-ganz-einfach-mounten-mit-curlftpfs.html angeblich] curlftpfs ([http://www.exanto.de/sftp-und-ftp-unter-linux-mounten.html ausführlichere Anleitung]).
+
  date
* Eine andere Möglichkeit scheint [http://wiki.ubuntuusers.de/Lufs Lufs] zu bieten.
+
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.
  
==== Mounten eines ZIP-Archivs ====
+
Siehe
 +
* [http://tldp.org/LDP/abs/html/timedate.html weitere Beispiele im Advanced Bash Scripting Guide].
  
* [http://freshmeat.net/projects/fuse-zip fuse-zip(Freshmeat)], [http://linux.softpedia.com/get/System/Filesystems/fuse-zip-40109.shtml fuse-zip (Softpedia)], [http://code.google.com/p/fuse-zip/ fuse-zip (Google Code)]
+
=== Interaktion mit Desktop ===
* [http://www.inf.bme.hu/~mszeredi/avfs/ AVFS]
+
==== Zwischenablage ====
  
==== Mounten via SSH ====
+
* Mit [http://www.linux-community.de/Archiv/Tipp-der-Woche/Xclip-Zwischenablage-fuer-die-Konsole xclip] lässt sich der Inhalt der Shell-Pipe in die Zwischenablage kopieren. Der Inhalt steht dann beispielsweise in einer KDE- oder Gnome-Anwendung zur Verfügung.
  
* Übers Netzwerk kann man auch per [http://apps.sourceforge.net/mediawiki/fuse/index.php?title=Main_Page SSH-FUSE-Dateisystem] auf einen entfernten Rechner zugreifen. Das ist ein recht sicherer Zugriff, aber auch transparent, da die Dateien ins lokale Verzeichnis eingehängt (gemountet) werden können.
+
==== Nachricht an Desktop ====
  
==== Mounten von NFS ====
+
Mit
 +
  notify-send text
 +
kann eine Nachricht (text) an den Desktop gesendet werden, die dem Benutzer angezeigt wird.<ref>https://linuxnetz.wordpress.com/2010/04/21/notify-send/</ref>
  
Eine [[NFS]]-Freigabe (siehe /etc/exports auf dem Host) kann folgendermaßen gemountet werden:
+
Dafür ist allerdings das Paket <code>libnotify-bin</code> zu installieren:
   sudo mount 192.168.0.5:/srv/nfs/myhome /mnt/nfshome
+
   sudo aptitude install libnotify-bin
  
==== Mounten eines WebDAV-Verzeichnisses ====
+
==== User-Dialog ====
  
* [[WebDAV]]-Verzeichnisse können auch dauerhaft gemountet werden, siehe [http://www.arvid-geiger.de/index.php?category_id=40&wikipage=WebDav hier].
+
Unter [[Gnome]] lässt sich mit <code>zenity</code> von der [[Bash]] mit dem Nutzer in Dialog treten (Ja/Nein, User-Eingabezeile, ...).
  
Um als normaler User WebDAV-Verzeichnisse einzuhängen benötigt die <code>/etc/fstab</code> etwa folgende Zeile (Beispiel für T-Online Mediencenter und Benutzer USER):
+
==== Arbeitsflächen wechseln ====
 
  https://webdav.mediencenter.t-online.de/ /home/USER/t-online  davfs  noauto,user,rw  0      0
 
  
Zusätzlich muss der Mountpunkt noch angelegt werden:
+
Das Paket <code>wmctrl</code> erlaubt den Wechsel zwischen den Arbeitsflächen des Desktops:
   mkdir ~/t-online
+
   wmctrl -s arbeitsflächennummer
 +
wobei arbeitsflächennummer die mit 0 beginnende Nummer des Desktops ist.<ref>http://www.linuxquestions.org/questions/linux-desktop-74/how-to-specify-a-gnome-workpace-an-application-will-launch-in-555764/</ref>
  
Davfs2 muss installiert werden und normalen Nutzern das Mounten erlaubt werden
+
Das Paket <code>devilspie</code> erlaubt es, Programme nach bestimmten Kriterien auf andere Arbeitsflächen/Viewports zu verfrachten. Dazu muss beispielsweise für <code>xterm</code> folgende Datei <code>~/.devilspie/xterm.ds</code> (Die Endung <code>.ds</code> ist wichtig) erstellt werden:
  sudo aptitude install davfs2
 
  sudo dpkg-reconfigure davfs2 # Frage nach setuid mit "Ja" beantworten
 
  
Der Benutzer muss noch der Gruppe <code>davfs2</code> hinzugefügt werden:
+
  (if
   sudo addgroup USER davfs2
+
    (is (application_name) "xterm")
 +
    (begin
 +
        (set_viewport 3)
 +
    )
 +
   )
  
Zur Vermeidung der Passwortabfrage sollte noch die Datei <code>/home/USER/.davfs2/secrets</code> mit folgendem Inhalt angelegt werden:<ref>http://tomalison.com/reference/2010/04/03/webdav/</ref>
+
Anschließend muss <code>devilspie</code> gestartet werden. Bei den folgenden Aufrufen von <code>xterm</code> wird das Fenster automatisch auf die Arbeitsfläche 3 landen.
  /home/USER/t-online  xy@t-online.de  password
 
  
Die Datei sollte nur von USER einsehbar sein:
+
Eine Möglichkeit, mittels  wmctrl und bash-Script Compiz-Viewports zu kontrollieren, findet sich [http://www.linuxquestions.org/questions/programming-9/bash-script-for-automatic-viewport-changing-and-other-wm-stuff-works-with-compiz-838827/ hier] und [http://forum.ubuntuusers.de/topic/wuerfel-per-bash-drehen/#post-1206881 hier], letzteres basierend auf [http://sfyang-en.blogspot.com/2008/02/rotate-cube-in-compiz-with-wmctrl.html diesem Blog].
  chmod 600 /home/USER/.davfs2/secrets
 
  
Dann kann das WebDAV-Verzeichnis gemountet werden:
+
==== Terminalfenstertitel ====
  mount /home/USER/t-online
 
  
Ein <code>auto</code>-Einbinden in der <code>/etc/fstab</code> funktioniert nicht ohne Weiteres. Möglicherweise hilft die zusätzliche Option <code>_netdev</code>, um das Einbinden bis zum Etablieren des Netzwerks zurückzustellen.<ref>Vgl. http://askubuntu.com/questions/277873/mount-webdav-fails-on-reboot</ref>
+
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 auch [http://skripta.de/Davfs2.html diese Anleitung zum Mounten des Telekom Mediencenters].
+
Siehe
 +
* http://askubuntu.com/questions/22413/how-to-change-gnome-terminal-title
  
==== Mounten einer Windows-Freigabe/Samba-Share ====
+
==== Interaktion der Shell mit Maus ====
  
* Um die [[Samba]]-Server im Netzwerk anzuzeigen, bitte
+
Siehe
  nmbstatus
+
* https://unix.stackexchange.com/questions/106736/detect-if-mouse-button-is-pressed-then-invoke-a-script-or-command
eingeben.<ref>Vgl. http://de.opensuse.org/SDB:Drucken_via_SMB_(Samba)_Share_bzw._Windows_Freigabe.</ref>
+
* http://positon.org/listen-to-mouse-events-in-linux-text-mode
 +
* http://bamboofields.net/Bash%20-%20Linux%20raw%20mouse%20events%20bash%20click
 +
* [https://stackoverflow.com/questions/8361263/detect-mouse-click-in-bash-script xdotool in an X-Environment]
 +
* https://ubuntuforums.org/showthread.php?t=1017150
  
* Um die von einem Samba-Server (z.B. Windows-Rechner) freigegebenen Ressourcen anzusehen, bitte
+
== Dateiverwaltung ==
  smbclient -L sambaserver
 
eingeben, wobei <code>sambaserver</code> der Name des Samba-Servers ist.<ref>http://www.tldp.org/HOWTO/SMB-HOWTO-8.html.</ref>
 
  
* Mit Konqueror lässt sich graphisch durch die Samba-Freigaben browsen: Einfach <code>smb:/</code> in die Adresszeile eingeben.
+
=== Dateisuche ===
  
* Samba-Mounts lassen sich in der /etc/fstab auch [http://www.justlinux.com/nhf/Filesystems/Mounting_smbfs_Shares_Permanently.html permanent einrichten].
+
==== Suchen auch in Unterordnern ====
** Siehe für die Freigabe einer [[Samba]]-Share und deren Mounten z.B. [http://forum.geizhals.at/t369562,2885141.html#2885141 hier] oder [http://de.opensuse.org/SDB:Auf_Windows-Freigaben_zugreifen hier (OpenSuse 8.1)].
+
Ein rekursives MS-DOS-<code>dir</code> lässt sich mit dem Befehl find erreichen:
** Auch [http://www.wiki.csoft.at/index.php/Netzwerklaufwerk_mit_Linux_hinzuf%C3%BCgen hier] gibt es ein Beispiel zum Mounten einer [[Windows-Freigabe]].
 
  
 +
  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.
  
==== Mounten eines Loop-Devices ====
+
==== Suchen nach Dateinamen und Wörtern im Dateiinhalt ====
  
Das Mounten eines Loop-Devices geht wie das Mounten eines normalen Block-Devices. Bei den Optionen in der /etc/fstab steht zusätzlich <code>loop</code>.
+
Will man an Hand des Dateinamens eine Vorauswahl der Dateien treffen, deren Inhalt auf ein bestimmtes Wort untersucht wird, kann man <code>find</code> und <code>grep</code> kombinieren:
  
Siehe
+
  find . -name package.json -print0 | xargs -0 grep mylib
* http://www.volkerschatz.com/unix/advmount.html
 
  
==== Mounten eines Sandwich-Dateisystems ====
+
Dieser Befehl sucht im aktuellen Verzeichnis und dessen Unterverzeichnissen nach Dateien mit dem Namen package.json. In diesen sucht es nach der Zeichenfolge "mylib".
  
Das '''UnionFS''' und das '''AUFS''' wird in moderneren [[Linux]]-Distributionen von '''OverlayFS''' abgelöst.
+
=== Berechtigungen ===
 +
* '''Berechtigungen''' für automatisch eingebundene '''FAT32'''-Laufwerke/Festplatten werden in der Datei ''/etc/fstab'' vorgegeben. Sie können nicht mit ''chmod'' oder ''chown'' geändert werden.
 +
* Informationen u.a. zum SUID-Bit und zum Abschalten auf ganzen Partitionen finden sich auf
 +
** dem [http://www.informatikserver.at/selflinux/html/grundlagen_sicherheit07.html Informatikserver.at]
 +
** https://www.informatik-aktuell.de/betrieb/betriebssysteme/rechte-im-dateisystem-mehr-als-nur-rwx.html
  
Beispiel: Der Inhalt des Verzeichnisses <code>lower</code> sollte im Verzeichnis <code>together</code> erscheinen, soweit er nicht vom Inhalt von <code>upper</code> verdrängt wird:
+
Mit
   sudo mount -t overlayfs -o lowerdir=lower,upperdir=upper overlayfs together
+
   namei -om PATH
Ist <code>upper</code> beim Einhängen leer, sieht man alle Änderungen im Verzeichnis <code>together</code> in <code>upper</code>. <code>lower</code> ändert sich nicht.
+
können die einzelnen Berechtigungen eines Pfades PATH angezeigt werden.
  
Siehe
+
==== SUID ====
* [http://askubuntu.com/questions/109413/how-do-i-use-overlayfs Kurzanleitung für OverlayFS]
+
Mit Setzen des SUID-Bits für ein binäres Programm (also keinem Shell-Skript) mit
* [https://git.kernel.org/cgit/linux/kernel/git/mszeredi/vfs.git/tree/Documentation/filesystems/overlayfs.txt?h=overlayfs.current OverlayFS-Technik]
+
  chmod u+s PROGRAMM
 +
wird der Benutzer, der das Programm aufrufen darf (z.B. Ausführungs-Bit "x" bei der einschlägigen Gruppe gesetzt), das Programm unter dem Benutzer, der Eigentümer des Programms ist, ausführen.
  
 +
==== SGID ====
 +
Mit Setzen des SGID-Bits für ein Verzeichnis erben neu angelegte Dokumente/Verzeichnisse in diesem Verzeichnis dessen Gruppe als Gruppenzugehörigkeit.
  
Ähnliche Funktionalität wie OverlayFS scheint '''Ovl.o''' zu bringen:
+
==== umask ====
* [http://home.comcast.net/~artn/ovlfs/ovl.man.txt Manpage für ovl.o]
 
  
 +
In den Konfigurationsdateien <code>/etc/profile</code>, <code>~/.profile</code> (z.B. umask 027) oder <code>/etc/login.defs</code> (z.B. UMASK 027), je nach Linux-Ausgabe, kann zentral die Standard-Umask vorgegeben werden. Damit kann insbesondere standardmäßig vorgegeben werden, dass die erzeugten Dokumente nicht world-readable sind (umask 007).
  
==== weitere Infoquelle für mount ====
+
Angeblich<ref> Vgl. https://forum.chip.de/discussion/1838389/default-umask</ref> kann man auch user-spezifisch die Default-Umask setzen: Siehe dazu /etc/default/useradd oder /etc/adduser.conf
  
Siehe
+
=== Speicherplatz ===
* [http://pclosmag.com/html/issues/200709/page07.html Beschreibung von Mount-Optionen].
+
* 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
 +
* Um zu sehen, welcher Platz von den einzelnen Dateien bzw. Verzeichnisse des Arbeitsverzeichnisses eingenommen wird, hilft das Tool [[xargs]]. Z.B. um alle Dateien/Verzeichnisse im Gigabyte-Bereich zu finden:
 +
  ls --almost-all -1  | xargs -n1 -d '\n'  du -h --summarize |  sed -n -e '/[[:digit:]]G\s/p'
  
=== Kopieren einer Audio-CD ===
+
=== Mounten ===
  
Angeblich funktioniert [[dd]] nicht mit Audio-CDs.
+
==== Erkennen einer CD-ROM ====
  
Das einfachste Kommando zum Kopieren einer CD ist<ref>Siehe http://www.togaware.com/linux/survivor/Duplicate_Audio.html</ref>
+
Möglicherweise hilft bei Nichterkennung einer CD-ROM das [http://ignorantguru.github.io/udevil/ Einschalten des Kernel-Pollings (siehe unteren Teil der verlinkten Seite)].
  cdrdao copy
 
  
Um trotzdem von der Kommandozeile (und nicht z.B. mit den grafischen Tools Brasero oder K3b) eine Audio-CD kopieren nutzt man <code>cdrdao</code>:
+
==== UUID ====
  
  cdrdao read-cd --device /dev/cdrom --read-raw --datafile INHALT.bin VERZEICHNIS.toc # Kopiert CD-Inhalt und -Verzeichnis auf die Festplatte
+
Die UUIDs der Festplattenpartitionen lassen sich mit <code>sudo blkid</code> anzeigen.
  cdrdao write-cd --device /dev/cdrom VERZEICHNIS.toc # Kopiert CD-Inhalt auf neue Audio-CD
+
In der <code>/etc/fstab</code> ersetzt man das übliche <code>/dev/sdXX</code> durch <code>UUID=12345678</code>.
  
Falls man beim Lesen Probleme bekommt und cdrdao an einer bestimmten Stelle hängen bleibt, sollte man den Paranoia-Mode reduzieren:
+
==== LABEL ====
  cdrdao read-cd --device /dev/cdrom ''--paranoia-mode 0'' --read-raw --datafile INHALT.bin VERZEICHNIS.toc
 
  
=== Backup ===
+
Eine ext2/ext3/ext4-Partition lässt sich mit <code>sudo e2label</code> mit einem Label versehen.  
* [http://blog.beimax.de/2008/10/27/tagliches-inkrementelles-backup-mit-cron-und-tar-unter-linux/ Inkrementelles Backup mit cron und tar]
+
In der <code>/etc/fstab</code> ersetzt man das übliche <code>/dev/sdXX</code> durch <code>LABEL=MyPart</code>.
* [http://de.wikibooks.org/wiki/Linux-Kompendium:_Backups Linux-Kompendium: Backups]
 
* Siehe auch [[Programmierprojekte#P2P-Backup]]
 
* [http://wiki.ubuntuusers.de/dirvish Dirvish] ist eine recht simple Commandline-Lösung, die auf [[rsync]] und [[ssh]] basiert.
 
** [http://wiki.edseek.com/howto:dirvish Dirvish-HOWTO]
 
* [http://www.amanda.org/ Amanda] ist eine Open-Source-Lösung zum Backup mehrerer Clients (auch Windows) auf einem zentralen Server
 
* [http://www.getdropbox.com/pricing dropbox] bietet 2 GB - Webspeicherplatz zum Synchronisieren mehrerer Computer, aber auch als Webbackup nutzbar. Es gibt auch ein [https://www.dropbox.com/help/246/en Ubuntu-Repository für Dropbox].
 
  
 +
==== Dauerhaftes Mounten einer NTFS-Partition ====
  
Open-Source Backup Produkte:
+
Um eine NTFS-Partition (z.B. auf /dev/sda2) dauerhaft (also schon beim Booten) zu mounten, fügt man in die Datei <code>/etc/fstab</code> folgende Zeile hinzu:
* [http://backuppc.sourceforge.net/info.html BackupPC] (serverseitige Lösung zum Backup vieler Clients, geschrieben in Perl, mit Web-Interface zur Administration)
+
  /dev/sda2      /mnt/winC    ntfs    defaults,umask=011,uid=BENUTZER,gid=BENUTZERGRUPPE 0 0
* [http://www.amanda.org/ Amanda]
+
wobei BENUTZER und BENUTZERGRUPPE durch die entsprechenden Benutzernamen bzw. Gruppennammen zu ersetzen sind.
* [http://www.nongnu.org/storebackup/de/node14.html storebackup]
 
  
Linux-Bordmittel: <code>dump</code>, <code>tar</code>, <code>smbtar</code>, [http://www.orgapage.net/pages/server/linux/backup.php?OP_SITE=c2c6a3e534e145bb4b8df1f629e0d380 rsync], [http://www.bsi-fuer-buerger.de/daten/03080801.htm Tipps vom BSI], [http://www.linux-backup.net/ linux-backup.net]
+
Außerdem muss der Mount-Point erzeugt werden:
 +
  mkdir /mnt/winC
  
[http://linuxwiki.de/rsync/SnapshotBackups Umfangreiche Anleitung zu inkrementellem Backup] mit Hilfe von <code>rsync</code>
+
Damit werden können aber alle Benutzer alle Daten dieses  Laufwerks lesen und schreiben. Will man dies nicht, muss man mit den Optionen <code>uid=</code>, <code>gid=</code> und <code>umask=</code> eine Lösung finden.
  
* Andere Hilfsmittel: <code>[[unison]]</code>
+
Unter [[Debian]] ist für den Schreibzugriff auf [[NTFS]] die Installation des Pakets <code>ntfs-3g</code> notwendig:
+
  aptitude install ntfs-3g
* [[MediaWiki]]: [http://www.mediawiki.org/wiki/Manual:Backing_up_a_wiki Anleitung zum Backup eines MediaWiki-Systems]
 
  
=== Festplatten in Ruhezustand versetzen ===
 
  
Mittels
+
===== Korrupte NTFS-Partition =====
  hdparm -S 30 /dev/sdc
 
lässt sich eine Festplatte nach 30*5=150 Sekunden in den Ruhezustand versetzen.
 
  
Über die <code>/etc/hdparm.conf</code> lässt sich [https://linuxundich.de/hardware/festplatten-automatisch-im-betrieb-in-den-standby-schalten/ das auch automatisch einrichten].
+
Mit
 +
  sudo ntfsfix /dev/sdb1
 +
kann die NTFS-Partition auf /dev/sdb1 repariert werden.<ref>http://askubuntu.com/questions/74105/how-do-you-repair-an-input-output-error-in-an-ntfs-partition</ref>
  
=== Festplattenfehler ===
+
==== USB-Datenträger unter Systemd ====
  
Festplattenfehler lassen sich u.a. mit
+
Wenn man eine USB-Disk nur manchmal beim Start eingesteckt hat, sie in dem Fall aber automatisch mounten will, helfen möglicherweise die <code>/etc/fstab</code>-Optionen <code>nofail,nobootwait</code>.<ref>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</ref>
* smartmontools
 
* badblocks
 
* e2fsck
 
* dd_rescue
 
* debugfs
 
finden.
 
  
Z.B. kann man ein fehlerhaftes EXT2/EXT3/EXT4-Dateisystem mit folgendem Befehl (interaktiv) reparieren lassen:
+
Unter Systemd kann man auch die Optionenkombination <code>noauto,x-systemd.automount</code> in <code>/etc/fstab</code> verwenden. Dann wird die entsprechende Platte erst dann gemountet, wenn auf den Mountpunkt zugegriffen wird.<ref>Vgl. https://bbs.archlinux.org/viewtopic.php?id=147478</ref>
  sudo e2fsck /dev/sda5
 
  
Siehe
+
Siehe  
* http://www.technologyblog.de/2014/06/defekte-sektoren-reparieren-unter-linux-mit-badblocks/
+
* http://www.wrigley.me.uk/wp/2012/12/03/automounting-usb-disk-on-boot-with-systemd-in-fedora/
* http://www.linux-community.de/Internal/Artikel/Print-Artikel/LinuxUser/2010/08/Integritaet-gespeicherter-Daten-sicherstellen
+
* https://bbs.archlinux.org/viewtopic.php?id=147478
  
=== Verschlüsselung ===
+
==== 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
  
* Siehe auch [[Verschlüsselung]]
+
aushängen
  
==== Dateien verschlüsseln ====
+
==== Mounten eines FTP-Verzeichnisses ====
* Mit <code>gpg</code> lassen sich unter Linux [http://www.cs.arizona.edu/computing/utilities/linux-encryption.html#gpg einzelne Dateien verschlüsseln].
+
 
* Automatisch für ganze Verzeichnisse geht das mit [[EncFS]]
+
* Zum Mounten eines FTP-Verzeichnisses hilft [http://blog.bumsdiekuh.net/archives/84-FTP-Server-ganz-einfach-mounten-mit-curlftpfs.html angeblich] curlftpfs ([http://www.exanto.de/sftp-und-ftp-unter-linux-mounten.html ausführlichere Anleitung]).
 +
* Eine andere Möglichkeit scheint [http://wiki.ubuntuusers.de/Lufs Lufs] zu bieten.
  
==== Dateisysteme verschlüsseln ====
+
==== Mounten eines ZIP-Archivs ====
  
* [http://www.linux-magazin.de/Ausgaben/2006/10/Loechriger-Kaese älterer Überblick über Datei-Verschlüsselungen unter Linux]
+
* [http://freshmeat.net/projects/fuse-zip fuse-zip(Freshmeat)], [http://linux.softpedia.com/get/System/Filesystems/fuse-zip-40109.shtml fuse-zip (Softpedia)], [http://code.google.com/p/fuse-zip/ fuse-zip (Google Code)]
 +
* [http://www.inf.bme.hu/~mszeredi/avfs/ AVFS]
  
==== SSL ====
+
==== Mounten via SSH ====
[[SSL]]-Zertifikate kopiert man unter [[Ubuntu]] ins Verzeichnis <code>/usr/share/ca-certificates</code> und macht sie dem System so bekannt:
 
  sudo dpkg-reconfigure ca-certificates
 
  
Siehe auch [[SSL]]
+
* Übers Netzwerk kann man auch per [http://apps.sourceforge.net/mediawiki/fuse/index.php?title=Main_Page SSH-FUSE-Dateisystem] auf einen entfernten Rechner zugreifen. Das ist ein recht sicherer Zugriff, aber auch transparent, da die Dateien ins lokale Verzeichnis eingehängt (gemountet) werden können.
  
==== Leere Verzeichnisse löschen ====
+
==== Mounten von NFS ====
  
Mit folgendem Befehl werden alle leeren Unterverzeichnisse gelöscht:<ref>http://www.unixboard.de/vb3/showthread.php?28301-leere-Verzeichnisse-finden</ref>
+
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
  
  find -depth -type d -empty -exec rmdir "{}"  \;
+
==== Mounten eines WebDAV-Verzeichnisses ====
  
=== Dateien im Netzwerk ===
+
* [[WebDAV]]-Verzeichnisse können auch dauerhaft gemountet werden, siehe [http://www.arvid-geiger.de/index.php?category_id=40&wikipage=WebDav hier].
  
Siehe
+
Um als normaler User WebDAV-Verzeichnisse einzuhängen benötigt die <code>/etc/fstab</code> etwa folgende Zeile (Beispiel für T-Online Mediencenter und Benutzer USER):
* [[NFS]]
+
* [[Samba]]
+
  https://webdav.magentacloud.de/ /home/USER/t-online  davfs  noauto,user,rw  0      0
* [http://www.openafs.org/ OpenAFS]
 
* [[WebDAV]]
 
* [[SSH]] mit sshfs
 
  
== Netzwerk ==
+
Zusätzlich muss der Mountpunkt noch angelegt werden:
Siehe [[oldCt:Linux-Tipps#Netzwerk]]
+
  mkdir ~/t-online
* Siehe [[Samba]]
 
* Siehe zudem [[Installation von OpenSuse über PXE]]
 
* Siehe [[Bluetooth-Tipps]]
 
* Siehe [[Sony VAIO PCG-Z600RE]]
 
* Siehe auch [[#Mounten eines FTP-Verzeichnisses]].
 
  
=== Allgemeines ===
+
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
  
In <code>/etc/network/interfaces</code> kann man manuelle Einstellungen für das Netzwerk vornehmen. Siehe [http://wiki.ubuntuusers.de/interfaces diese Anleitung] für [[Ubuntu]]. Dann kann man aber für das betreffende Interface den NetworkManager nicht mehr verwenden.
+
Der Benutzer muss noch der Gruppe <code>davfs2</code> hinzugefügt werden:
 +
  sudo addgroup USER davfs2
  
=== Network-Manager ===
+
Zur Vermeidung der Passwortabfrage sollte noch die Datei <code>/home/USER/.davfs2/secrets</code> mit folgendem Inhalt angelegt werden:<ref>http://tomalison.com/reference/2010/04/03/webdav/</ref>
In Desktop-Distributionen ist üblicherweise der "Network-Manager" installiert. Er lässt sich auch auf der Kommandozeile nutzen:
+
  /home/USER/t-online  xy@t-online.de  password
  
   sudo aptitude install Network-Manager
+
Die Datei sollte nur von USER einsehbar sein:
 +
   chmod 600 /home/USER/.davfs2/secrets
  
Hinzufügen einer WLAN-Verbindung:
+
Dann kann das WebDAV-Verzeichnis gemountet werden:
   sudo nmcli device wifi connect ''SSID'' password ''PASSWORD''
+
   mount /home/USER/t-online
SSID ist der WLAN-Name und Passwort ist der WLAN-Schlüssel.
 
  
Der Network-Manager lässt sich auch deaktivieren:<ref>Siehe http://xmodulo.com/disable-network-manager-linux.html . </ref>
+
Ein <code>auto</code>-Einbinden in der <code>/etc/fstab</code> funktioniert nicht ohne Weiteres. Möglicherweise hilft die zusätzliche Option <code>_netdev</code>, um das Einbinden bis zum Etablieren des Netzwerks zurückzustellen.<ref>Vgl. http://askubuntu.com/questions/277873/mount-webdav-fails-on-reboot</ref>
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 ===
+
Siehe auch [http://skripta.de/Davfs2.html diese Anleitung zum Mounten des Telekom Mediencenters].
  
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.
+
==== Mounten einer Windows-Freigabe/Samba-Share ====
  
Sollte wicd unter [[Linux Mint]] 17.3 vor dem Start nach einem Passwort fragen, hilft folgende Befehlsfolge (man beachte die Punkte).<ref>Siehe https://answers.launchpad.net/ubuntu/+source/wicd/+question/94845/ Post #7.</ref>
+
* Um die [[Samba]]-Server im Netzwerk anzuzeigen, bitte
 +
  nmbstatus
 +
eingeben.<ref>Vgl. http://de.opensuse.org/SDB:Drucken_via_SMB_(Samba)_Share_bzw._Windows_Freigabe.</ref>
  
=== Fehlersuche ===
+
* Um die von einem Samba-Server (z.B. Windows-Rechner) freigegebenen Ressourcen anzusehen, bitte
 +
  smbclient -L sambaserver
 +
eingeben, wobei <code>sambaserver</code> der Name des Samba-Servers ist.<ref>http://www.tldp.org/HOWTO/SMB-HOWTO-8.html.</ref>
  
* Falls der Rechner etwas älter ist und die Netzwerkkarte nicht erkannt wird, hat es vielleicht mit einer Unverträglichkeit mit dem Power-Management zu tun. Vielleicht helfen dann die Boot-Optionen <code>noapic nolapic</code> weiter.
+
* Mit Konqueror lässt sich graphisch durch die Samba-Freigaben browsen: Einfach <code>smb:/</code> in die Adresszeile eingeben.
* Falls der Rechner seine IP-Adresse von einem DHCP-Server beziehen soll, hilft vielleicht
 
  /sbin/dhcpcd -d -t 10 eth0
 
  
Mit
+
* Samba-Mounts lassen sich in der /etc/fstab auch [http://www.justlinux.com/nhf/Filesystems/Mounting_smbfs_Shares_Permanently.html permanent einrichten].
  dmesg|less
+
** Siehe für die Freigabe einer [[Samba]]-Share und deren Mounten z.B. [http://forum.geizhals.at/t369562,2885141.html#2885141 hier] oder [http://de.opensuse.org/SDB:Auf_Windows-Freigaben_zugreifen hier (OpenSuse 8.1)].
kann man sich die Ausgaben während des Bootvorgangs ansehen. Siehe bei Netzwerk-Problemen unter Linux auch http://www.adsl4linux.de/howtos/lan22/ und das [http://www.tldp.org/HOWTO/Ethernet-HOWTO.html Ethernet-HOWTO].
+
** Auch [http://www.wiki.csoft.at/index.php/Netzwerklaufwerk_mit_Linux_hinzuf%C3%BCgen hier] gibt es ein Beispiel zum Mounten einer [[Windows-Freigabe]].
  
* Eine Anleitung zu [http://www.oreilly.de/german/freebooks/linag2/netz0802.htm pppd] findet sich bei O'Reilly.
 
* Siehe
 
** [[Synchronisation unter Linux]], [[Synchronisation Web-PC-Handy]].
 
  
=== WLAN ===
+
==== Mounten eines Loop-Devices ====
  
==== WLAN-Hardware ====
+
Das Mounten eines Loop-Devices geht wie das Mounten eines normalen Block-Devices. Bei den Optionen in der /etc/fstab steht zusätzlich <code>loop</code>.
  
===== USB-WLAN mit RT3070 Chip =====
+
Siehe
 +
* http://www.volkerschatz.com/unix/advmount.html
  
Der RT3070 ist u.a. im [http://wiki.ubuntuusers.de/wlan/karten#LogiLink LogiLink WL00049A verbaut].
+
==== Mounten eines Sandwich-Dateisystems ====
  
* Unter [[Ubuntu]] muss [http://linuxforums.org.uk/hardware-compatibility/ralink-rt2870-based-usb-wireless-n-adapters-(ubuntu)/ das Modul rt2800usb] gesperrt werden, indem es in die <code>/etc/modprobe.d/blacklist.conf</code> eingetragen wird.
+
Das '''UnionFS''' und das '''AUFS''' wird in moderneren [[Linux]]-Distributionen von '''OverlayFS''' abgelöst.
  
* Auch in [[Debian]] muss [http://vivahate.com/2011/04/04/ralink-rt2870rt3070-in-debian-6-squeeze/ das Modul rt2800usb] gesperrt werden und  das Paket <code>firmware-ralink</code> aus dem <code>non-free</code>-Repository installiert werden.
+
Beispiel: Der Inhalt des Verzeichnisses <code>lower</code> sollte im Verzeichnis <code>together</code> erscheinen, soweit er nicht vom Inhalt von <code>upper</code> verdrängt wird:
 +
  sudo mount -t overlayfs -o lowerdir=lower,upperdir=upper overlayfs together
 +
Ist <code>upper</code> beim Einhängen leer, sieht man alle Änderungen im Verzeichnis <code>together</code> in <code>upper</code>. <code>lower</code> ändert sich nicht.
  
* den Treiber auf der [http://www.ralinktech.com/support.php?s=2 Hersteller-Website]
+
Siehe
*  http://lobmenschen.de/index.php/RALINK_RT3070_Linux_Treiber_Installation ([http://ubuntuforums.org/archive/index.php/t-1106034.html Ergänzung])
+
* [http://askubuntu.com/questions/109413/how-do-i-use-overlayfs Kurzanleitung für OverlayFS]
* Ab Kernel 2.6.31 ist der Rt3070-Treiber (experimentell) integriert.
+
* [https://git.kernel.org/cgit/linux/kernel/git/mszeredi/vfs.git/tree/Documentation/filesystems/overlayfs.txt?h=overlayfs.current OverlayFS-Technik]
* OpenSuse scheint den Chip ab V 11.1 zu unterstützen.<ref>http://www.xadux.eu/wireless-lan-und-lan/3423-rt3070-2.html</ref>
 
* Auch unter [[Ubuntu]] gibt es dazu [http://forum.ubuntuusers.de/topic/wlan-an-fritzbox-7270-mit-rt3070-wpa-wpa2/ Versuche], z.B. [http://lifewithdebian.blogspot.com/ hier]. Unter Ubuntu 9.10 funktioniert der Chip jedoch bereits out-of-the-box.
 
* Für [[Debian]] gibt es [http://wiki.debian.org/rt2870sta hier] eine Anleitung zu einem ähnlichen Chip.
 
* Evtl. funktioniert er auch mit [http://www.openbsd.org/cgi-bin/man.cgi?query=run&sektion=4&format=html OpenBSD].
 
  
===== RT2500 =====
 
* unter [http://www.freebsd.org/cgi/man.cgi?query=ural&sektion=4&manpath=FreeBSD+6.0-RELEASE FreeBSD 6.0]
 
  
===== rt2070-Chip =====
+
Ähnliche Funktionalität wie OverlayFS scheint '''Ovl.o''' zu bringen:
* [http://maxein08.wordpress.com/2009/11/04/guida-allinstallazione-di-una-chiavetta-wireless-sitecom-wl-608-su-ubuntu/ italienischer Tipp]
+
* [http://home.comcast.net/~artn/ovlfs/ovl.man.txt Manpage für ovl.o]
  
===== ZD1211-Chipsatz =====
+
==== Mounten eines iPhone-Dateisystems ====
* [http://wiki.debian.org/zd1211rw Installation unter Debian]
 
* Unter [[OpenSuse]]:
 
  zypper install zd1211-firmware
 
  
==== Vermeidung der Passwortabfrage ====
+
Sollte beim Anstecken eines iPhones über USB-Kabel an einen Linux-Rechner und anschließendem Entsperren des iPhones durch Wischen von unten nach oben der Ordner mit den Fotos und Videos nicht automatisch gemountet werden, hilft wahrscheinlich die Installation von <code>ifuse</code>:
 +
  sudo aptitude install ifuse
  
Wenn man unter [[Gnome]] ein [[WLAN]] einrichtet, kann man das dafür nötige Passwort im Gnome-Schlüsselbund abspeichern. Wenn man beim Hochfahren sich automatisch anmelden lässt (ohne Login mit Passwort), benötigt der [[NetworkManager]] Zugriff auf den Schlüsselbund. Daher wird man vor Aufbau der Verbindung nach dem Schlüsselbund-Passwort gefragt. Das lässt sich vermeiden, indem man dem Standardschlüsselbund ein leeres Passwort gibt<ref>http://wiki.ubuntuusers.de/GNOME_Schl%C3%BCsselbund#Automatische-Anmeldung-in-GDM</ref>. Das ist aber ein <code>Sicherheitsrisiko</code>.
 
  
 +
==== weitere Infoquelle für mount ====
  
==== Linuxbox als WLAN-Accesspoint ====
+
Siehe
 +
* [http://pclosmag.com/html/issues/200709/page07.html Beschreibung von Mount-Optionen].
  
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:
+
=== Kopieren einer Audio-CD ===
* http://www.nicolaskuttler.com/post/using-any-debian-box-as-wireless-access-point/
 
* http://wiki.ubuntuusers.de/WLAN_Router
 
  
=== Bluetooth ===
+
Angeblich funktioniert [[dd]] nicht mit Audio-CDs.
  
Siehe [[Bluetooth]]
+
Das einfachste Kommando zum Kopieren einer CD ist<ref>Siehe http://www.togaware.com/linux/survivor/Duplicate_Audio.html</ref>
 +
  cdrdao copy
  
 +
Um trotzdem von der Kommandozeile (und nicht z.B. mit den grafischen Tools Brasero oder K3b) eine Audio-CD kopieren nutzt man <code>cdrdao</code>:
  
=== Using Android-Phone as Internet-Modem ===
+
  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
  
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.
+
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
  
Leider funktioniert das nicht immer, eventuell hilft
+
=== Backup ===
* [http://www.upubuntu.com/2011/12/how-to-tether-your-android-phone-to.html diese Anleitung mit der App EasyTether]
+
* [http://blog.beimax.de/2008/10/27/tagliches-inkrementelles-backup-mit-cron-und-tar-unter-linux/ Inkrementelles Backup mit cron und tar]
 +
* [http://de.wikibooks.org/wiki/Linux-Kompendium:_Backups Linux-Kompendium: Backups]
 +
* Siehe auch [[Programmierprojekte#P2P-Backup]]
 +
* [http://wiki.ubuntuusers.de/dirvish Dirvish] ist eine recht simple Commandline-Lösung, die auf [[rsync]] und [[ssh]] basiert.
 +
** [http://wiki.edseek.com/howto:dirvish Dirvish-HOWTO]
 +
* [http://www.amanda.org/ Amanda] ist eine Open-Source-Lösung zum Backup mehrerer Clients (auch Windows) auf einem zentralen Server
 +
* [http://www.getdropbox.com/pricing dropbox] bietet 2 GB - Webspeicherplatz zum Synchronisieren mehrerer Computer, aber auch als Webbackup nutzbar. Es gibt auch ein [https://www.dropbox.com/help/246/en Ubuntu-Repository für Dropbox].
  
=== Wake up on LAN ===
 
  
Siehe [[Wake up on LAN]]
+
Open-Source Backup Produkte:
 
+
* [https://restic.net/ restic] - Kommandozeilenprogramm, geschrieben in [[Go]], siehe unten
=== Webserver ===
+
* [https://borgbackup.readthedocs.io/en/stable/ Borg Backup], siehe [[BorgBackup]]
 +
* [https://burp.grke.org/ Burp]
 +
* [http://backuppc.sourceforge.net/info.html BackupPC] (serverseitige Lösung zum Backup vieler Clients, geschrieben in Perl, mit Web-Interface zur Administration)
 +
* [http://www.amanda.org/ Amanda]
 +
* [http://www.nongnu.org/storebackup/de/node14.html storebackup]
  
* [[Plattformübergreifende Software#Serversoftware|Serversoftware]]
+
Linux-Bordmittel: <code>dump</code>, <code>tar</code>, <code>smbtar</code>, [http://www.orgapage.net/pages/server/linux/backup.php?OP_SITE=c2c6a3e534e145bb4b8df1f629e0d380 rsync], [http://www.bsi-fuer-buerger.de/daten/03080801.htm Tipps vom BSI], [http://www.linux-backup.net/ linux-backup.net]
* [[oldCt:Webhosting]]
 
* [[Verschlüsselung]]
 
  
=== Mail ===
+
[http://linuxwiki.de/rsync/SnapshotBackups Umfangreiche Anleitung zu inkrementellem Backup] mit Hilfe von <code>rsync</code>
* [[Mail unter Linux]]
 
  
=== Fernzugriff ===
+
* Andere Hilfsmittel: <code>[[unison]]</code>
* [[Remote Desktop]]
+
** [[ssh]]
+
* [[MediaWiki]]: [http://www.mediawiki.org/wiki/Manual:Backing_up_a_wiki Anleitung zum Backup eines MediaWiki-Systems]
  
== Grafiksystem ==
+
==== Backup mit Borg ====
=== Framebuffer ===
 
  
Auch ohne X-System kann man unter Linux Grafiken anzeigen: Dazu gibt es den Framebuffer.
+
===== Backup =====
 +
Initialisiere Repository mit [https://borgbackup.readthedocs.io/en/stable/ Borg Backup]
  
Siehe z.B.
+
  borg init --encrypt none <repoPath>
* [http://hacklab.cz/2012/04/22/usefulness-linux-framebuffer-virtual-console fbi] zum Anzeigen von Bildern
+
 
* fbtv zur Anzeige von Fernsehen
 
* directvnc, eine [[VNC]]-Client für den Framebuffer
 
  
Weitere Infos
+
Erstelle Snapshot
* [http://hacklab.cz/2012/04/22/usefulness-linux-framebuffer-virtual-console Übersicht über Anwendungen für Framebuffer]
+
  borg create --stats --progress  <repopath>::documents_$(date -I) $(realpath ~/documents)
* [https://github.com/notro/fbtft/wiki/Framebuffer-use weitere Anwendungsbeispiele für den Framebuffer]
 
  
=== X ===
 
* [[X Server]]
 
  
=== Window Manager ===
+
Man kann auch einen Lauf starten, bei dem nichts verändert wird:
 +
  borg create --dry-run --list \
 +
      --progress  <repopath>::documents_$(date -I) $(realpath ~/documents)
  
Siehe [http://www.knetfeder.de/linux/spezial/pz-spezial-fenstermanager.pdf Einführung in Nur-Fenstermanager].
+
===== Borg-Repo-Pfad =====
  
[[Fluxbox]] ist ein im Verhältnis zu [[GNOME]] und [[KDE]] schneller und kleiner Window Manager.  
+
Auf dem lokalen Rechner ist <repopath> eine schlichte Pfadangabe wie <code>/mnt/externUSB/backup</code>.  
  
* [http://www.linuxmint.com/rel_helena_fluxbox.php Fluxbox-Tastenkürzel]
+
Via [[SSH]] kann man aber auch auf einen entfernten Rechner backupen. <repopath> lautet dann:
 +
  ssh://user@host:port/path/to/repo
 +
 +
Die Angabe des Repository-Pfades kann man sich sparen, indem man ihn mit
 +
  export BORG_REPO=<repopath>
 +
als Umgebungsvariable borg zur Verfügung stellt.
  
* 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:
+
==== Backup mit Restic ====
** [http://ubuntuforums.org/showthread.php?p=3130878#post3130878 Änderungen am Source-Code von Fluxbox]
 
  
=== Grafische Fernsteuerung ===
+
Anlegen eines Backup-Repositorys mit [https://restic.readthedocs.io/en/stable/manual_rest.html restic]:
 +
  restic -r sftp:BACKUP_RECHNER:/pfad/zum/repository init
  
Siehe [[Remote Desktop]]
+
Eine Passwortdatei ist eine einfache Textdatei mit dem Passwort in einer Zeile.
  
== Multimedia ==
+
Anzeigen der vorhandenen Snapshots
* Siehe [[Multimedia]]
+
  restic -r sftp:BACKUP_RECHNER:/pfad/zum/repository -p /pfad/zur/Passwortdatei snapshots
** [[Plattformübergreifende Software#Multimedia]]
 
  
=== Audio ===
+
Backup
 +
  restic -r sftp:BACKUP_RECHNER:/pfad/zum/repository -p /pfad/zur/Passwortdatei backup /pfad/zu/den/zu/sichernden/dateien
  
Siehe auch [[Audio]]
+
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:
  
Siehe auch [[Videotelefonie]]
+
  restic -r sftp:BACKUP_RECHNER:/pfad/zum/repository -p /pfad/zur/Passwortdatei backup $(readlink -f /pfad/zum/Symlink)
  
=== Videos ===
+
restic hat [https://restic.readthedocs.io/en/stable/050_restore.html viele Möglichkeiten zum Wiederherstellen]. Beispiel:
  
==== Abspielen ====
+
  restic -r sftp:BACKUP_RECHNER:/pfad/zum/repository -p /pfad/zur/Passwortdatei restore latest \
Die Versorgung mit Codecs ist unter Linux ein - lösbares - Problem. Z.B. hilft die [[plattformübergreifend]]e Software [[VLC]].
+
  --target /pfad/wo/die/dateien/wiederhergestellt/werden/sollen --path "/pfad/der/wiederhergestellt/werden/soll"
  
Ein Projekt namens [http://abock.org/2009/02/11/announcing-moonshine-the-project-never-formerly-known-as-pornilus/ Moonshine] ermöglicht unter Linux Windows Media Content mit Original-Microsoft-Codecs abzuspielen. Es nutzt dazu [[Moonlight]].
+
=== Festplatten in Ruhezustand versetzen ===
 +
Mittels
 +
  sudo hdparm -y /dev/sdc
 +
lässt sich die Festplatte sdc in den Standby-Modus versetzen.<ref>Vgl. https://www.pks.mpg.de/~mueller/docs/suse10.3/opensuse-manual_de/manual/sec.pmanage.silenthd.html</ref>
  
==== Herunterladen ====
+
Mittels
 +
  hdparm -S 30 /dev/sdc
 +
lässt sich eine Festplatte nach 30*5=150 Sekunden in den Ruhezustand versetzen.
  
Videos von [[YouTube]] lassen sich mit
+
Über die <code>/etc/hdparm.conf</code> lässt sich [https://linuxundich.de/hardware/festplatten-automatisch-im-betrieb-in-den-standby-schalten/ das auch automatisch einrichten].
  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
+
=== Festplattenfehler ===
  youtube-dl -U
 
  
==== TV ====
+
Festplattenfehler lassen sich u.a. mit
 +
* smartmontools
 +
* badblocks
 +
* e2fsck
 +
* dd_rescue
 +
* debugfs
 +
finden.
  
Neben Projekten wie
+
Z.B. kann man ein fehlerhaftes EXT2/EXT3/EXT4-Dateisystem mit folgendem Befehl (interaktiv) reparieren lassen:
* [[VDR]]
+
  sudo e2fsck /dev/sda5
* [[MythTV]]
 
* [[XBMC]], nun [[Kodi]]
 
** auch mit [http://linux.mjnet.eu/post/804/xbmc-pvr-tvheadend-ubuntu-12-04-install/ tvheadend]
 
  
gibt es auch Konsolenprogramme:
+
Siehe
* [[ttv]]
+
* https://recoverit.wondershare.de/harddrive-tips/repair-linux-disk.html
* [[fbtv]] - bietet TV im [[FrameBuffer]]
+
* 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
  
Für den Electronic Program Guide - EPG gibt es
+
=== Verschlüsselung ===
  
* [http://sourceforge.net/projects/tvbrowser/ den TV-Browser], freie [[Java]]-Programmzeitschrift mit Aufzeichnungs-Plugin [[SimplePVR]]
+
* Siehe auch [[Verschlüsselung]]
  
Wichtig ist, dass der den TV-Stick nutzende User der Gruppe <code>video</code> zugeordnet ist, z.B. für den [[Tvheadend]]-Nutzer:
+
==== Dateien verschlüsseln ====
  sudo adduser hts video
+
* Mit <code>gpg</code> lassen sich unter Linux [http://www.cs.arizona.edu/computing/utilities/linux-encryption.html#gpg einzelne Dateien verschlüsseln].
 +
* Automatisch für ganze Verzeichnisse geht das mit [[EncFS]]
  
Die Pakete dvbsnoop, dvb-apps, dvb-tools und w-scan bieten Werkzeuge, um die Einrichtung von DVB-C-Adaptern zu debuggen.
+
==== Dateisysteme verschlüsseln ====
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]]
+
* [http://www.linux-magazin.de/Ausgaben/2006/10/Loechriger-Kaese älterer Überblick über Datei-Verschlüsselungen unter Linux]
  
=== Webcam ===
+
==== SSL ====
 +
[[SSL]]-Zertifikate kopiert man unter [[Ubuntu]] ins Verzeichnis <code>/usr/share/ca-certificates</code> und macht sie dem System so bekannt:
 +
  sudo dpkg-reconfigure ca-certificates
  
* Einfach Bilder von der [[Shell]] aufnehmen geht mit dem Paket [http://ubuntu.online02.com/node/25 streamer]:
+
Siehe auch [[SSL]]
  sudo aptitude install streamer
 
  streamer -f jpeg -o test.jpeg
 
  
* Alternativen sind [http://tldp.org/HOWTO/Webcam-HOWTO/framegrabbers.html camE etc.]
+
==== Leere Verzeichnisse löschen ====
  
=== Videotelefonie ===
+
Mit folgendem Befehl werden alle leeren Unterverzeichnisse gelöscht:<ref>http://www.unixboard.de/vb3/showthread.php?28301-leere-Verzeichnisse-finden</ref>
==== Skype ====
 
[[Videotelefonie]] funktioniert auch unter [[Linux]], z.B. mit [[Skype]], auch wenn man zur Vermeidung von Abstürzen noch [http://dark.asengard.net/blog/2009/04/17/avoid-skype-crash-with-video-conversation-on-linux/ Workarounds] benötigt.
 
  
* [https://help.ubuntu.com/community/SkypeTroubleshooting Skype Troubleshooting] für [[Ubuntu]]
+
  find -depth -type d -empty -exec rmdir "{}"  \;
* [http://blogs.skype.com/linux/ Skype for Linux Blog]
 
  
==== Alternativen ====
+
=== Dateien im Netzwerk ===
Wer nur telefonieren will, findet [http://www.easylinux.de/Artikel/ausgabe/2006/06/026-skype/ freie Alternativen], die das [[SIP]]-Protokoll nutzen.
 
  
=== Digitalkameras unter Linux ===
+
Siehe
* Siehe dazu den Beitrag unter [http://www.pro-linux.de/berichte/digitalkameras.html Pro-Linux.de]
+
* [[NFS]]
* [http://www.linuxdevcenter.com/pub/a/linux/2005/01/06/digicam.html Anleitung] für die Nutzung einer Kodak-Kamera
+
* [[Samba]]
* [http://www.linuxnetmag.com/de/issue6/m6gphoto1.html Anleitung] für die Nutzung von [http://www.gphoto.org gphoto]
+
* [http://www.openafs.org/ OpenAFS]
* [http://m4l.berlios.de/pub/Main/HowTo/DE-DIGITALKAMERA-HOWTO.html Digitalkamera HOWTO] (noch für den Kernel 2.4)
+
* [[WebDAV]]
* Weitere Links:
+
* [[SSH]] mit sshfs
** http://blog.chip.de/chip-linux-blog/digitalkameras-fotografie-unter-linux-20070521/
 
** http://www.multimedia4linux.de/cameramodule.html
 
** http://www.gphoto.org/cameras.html
 
** http://www.qbik.ch/usb/devices/
 
  
=== Bildanzeige ===
+
== Netzwerk ==
 +
* Siehe [[Netzwerk]]
 +
* Siehe [[Samba]]
 +
* Siehe zudem [[Installation von OpenSuse über PXE]]
 +
* Siehe [[Bluetooth-Tipps]]
 +
* Siehe [[Sony VAIO PCG-Z600RE]]
 +
* Siehe auch [[#Mounten eines FTP-Verzeichnisses]].
  
In den graphischen Desktop-Umgebungen ist die Anzeige von Bildern selbstverständlich kein Problem.
+
=== Allgemeines ===
  
Aber es gibt auch Möglichkeiten auf der Konsole:
+
==== Konfiguration in <code>/etc/network/interfaces</code> ====
  
* [[fbi]] - benutzt Linux Frame Buffer System
+
In <code>/etc/network/interfaces</code> kann man manuelle Einstellungen für das Netzwerk vornehmen. Siehe [http://wiki.ubuntuusers.de/interfaces diese Anleitung] für [[Ubuntu]]. Dann kann man aber für das betreffende Interface den NetworkManager nicht mehr verwenden.
** [http://linuxers.org/howto/howto-open-images-linux-console-using-fbi-console-based-image-viewer Howto für FBI]]
 
* [[xli]]
 
* [[xloadimage]] benötigt [[X]]
 
* [[xwud]] bedarf einer [[X]]-Umgebung
 
* [[xzgv]] benötigt [[X]], hat angeblich gute Tastaturunterstützung
 
  
=== Bildbearbeitung ===
+
==== Konfiguration des Netzwerks mit systemd ====
Siehe
 
* [[Fotografie]]
 
* [[GIMP]]
 
* [[pixelize]] - ein Programm, mit dem man ein größeres Bild aus unzähligen kleineren Bildern zusammensetzen kann
 
  
==== ImageMagick ====
+
Systemd kann alles, aber hält sich nicht an das KISS-Prinzip (Keep it simple stupid). So kann Systemd auch das Netzwerk konfigurieren. Siehe
Auf der Kommandozeile unter Linux helfen die Tools von ImageMagick:
+
* https://www.debian.org/doc/manuals/debian-reference/ch05.de.html#_the_modern_network_configuration_without_gui
* [http://www.linux-community.de/Internal/Artikel/Print-Artikel/LinuxUser/2012/08/Bildbearbeitung-mit-ImageMagick Anleitung auf LINUX-Community]
 
  
Beispielsweise lassen sich mit folgendem Befehl Bilder als Kacheln auf einem neuen Bild getrennt mit einem transparenten Rahmen darstellen:
+
=== Network-Manager ===
 +
In Desktop-Distributionen ist üblicherweise der "Network-Manager" installiert. Er lässt sich auch auf der Kommandozeile nutzen:
  
   montage -monitor -resize x200+0+0 -crop 300x200+20+0 -geometry 200x200+50+50 -background transparent bilder*.jpg uebersicht.png
+
   sudo aptitude install Network-Manager
  
=== Bildinformationen ===
+
Hinzufügen einer WLAN-Verbindung:
Mit den [http://exiflow.sourceforge.net/wiki/Main_Page Exiflow-Tools] können Bilddateien einfach gemäß dem Erstellungsdatum umbenannt werden.
+
  sudo nmcli device wifi connect ''SSID'' password ''PASSWORD''
 +
SSID ist der WLAN-Name und Passwort ist der WLAN-Schlüssel.
  
Mit [http://www.exiv2.org/index.html exiv2] lässt sich auf der Kommandozeile die Informationen eines Bildes auswerten.
+
Der Network-Manager lässt sich auch deaktivieren:<ref>Siehe http://xmodulo.com/disable-network-manager-linux.html . </ref>
 +
Unter [[Linux Mint 17]] (wahrscheinlich auch unter Ubuntu 14.04 LTS Trusty) geht das so:
 +
  echo manual | sudo tee /etc/init/network-manager.override
  
Auch [[exiftags]] und [[exif]] bieten die Informationen aus dem EXIF-Teil des JPEG-Bilds über die Kommandozeile an.
 
  
Schließlich bietet auch [http://www.sentex.net/~mwandel/jhead/ jhead] ([http://linux.die.net/man/1/jhead man-page]) alle textuellen Informationen. Dieses Programm läuft nicht nur unter Linux, sondern auch unter Windows. Eine [http://www.guckes.net/augsburg2006/bildbearbeitung_auf_der_console.txt Verwendungsbeispiel]:
+
=== wicd ===
    jhead -nfhm%04Y.%02m.%02d-%H%M%S.%f *.jpg
 
Das macht aus der Datei p104711.jpg z.B. hm2007,11,12-110048.p104711.jpg.
 
  
In den OpenSuse-Forums findet sich ein [http://forums.opensuse.org/archives/sf-archives/archives-programming-scripting/335342-rename-files-using-creation-date.html Shell-Skript zum Umbenennen von Movies (.MOV)] basierend auf dem Dateimodifikationsdatum. Damit lässt sich obiger jhead-Befehl nachbilden (der Unterschied bleibt natürlich, dass nicht das EXIF-Datum, sondern das Dateidatum in den Namen aufgenommen wird):
+
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.
  
  #!/bin/sh
+
Sollte wicd unter [[Linux Mint]] 17.3 vor dem Start nach einem Passwort fragen, hilft folgende Befehlsfolge (man beachte die Punkte).<ref>Siehe https://answers.launchpad.net/ubuntu/+source/wicd/+question/94845/ Post #7.</ref>
  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 ==
+
=== Ping ohne sudo ===
* [[Remote Desktop]]
 
** [[ssh]]
 
  
== Drucken ==
+
Sollte das einfache Pingen eines Rechners Root-Rechte benötigen, kann man Ping mit den nötigen Rechten ausstatten:<ref>Vgl. https://debianforum.de/forum/viewtopic.php?t=156254</ref>
=== Allgemeines ===
+
sudo setcap cap_net_raw+ep /bin/ping
* Das CUPS-Drucksystem bietet unter http://localhost:631 eine Web-Verwaltungsoberfläche.
 
* CUPS verwendet das Internet Printing Protocol. Dies kann auch [http://www.heise.de/netze/Ueberall-drucken--/artikel/78252/0 Windows XP anbieten].
 
* [http://hplipopensource.com/hplip-web/supported_devices/index.html Hewlett-Packard] und [http://solutions.brother.com/linux/en_us/index.html Brother] scheinen recht umfangreichen Linux-Treiber-Support für ihre Drucker zu leisten. Aber auch für [http://avasys.jp/hp/menu000000500/hpg000000442.htm Epson-Drucker] gibt es etliche Treiber.
 
* [http://www.linuxforen.de/forums/showthread.php?t=213560 Überblick über Drucken unter Linux]
 
* Einen Drucker am Linux-Rechner kann man [http://pda-und-co.de/linux/2009/05/03/eee-als-home-server-feste-ip-netzwerkdrucker-per-cups-einrichten/ auch vom Windows-PC als Netzwerkdrucker nutzen]
 
  
Beim Netzwerk-Server, an den der Drucker angeschlossen ist, muss man den Clients den Zugriff auf den Drucker erlauben:
+
=== Fehlersuche ===
  cupsctl --share-printers
 
  
Von der Shell kann man einen Netzwerkdrucker folgendermaßen zum Client hinzufügen:
+
* Falls der Rechner etwas älter ist und die Netzwerkkarte nicht erkannt wird, hat es vielleicht mit einer Unverträglichkeit mit dem Power-Management zu tun. Vielleicht helfen dann die Boot-Optionen <code>noapic nolapic</code> weiter.
  lpadmin -p printer -E -v ipp://server/printers/printer
+
* Falls der Rechner seine IP-Adresse von einem DHCP-Server beziehen soll, hilft vielleicht
wobei man <code>printer</code> jeweils durch die CUPS-Drucker-Bezeichnung, z.B. "DESKJET-840C" ersetzen muss.
+
  /sbin/dhcpcd -d -t 10 eth0
  
Siehe auch
+
Mit
* [[Drucken]] allgemein
+
  dmesg|less
 +
kann man sich die Ausgaben während des Bootvorgangs ansehen. Siehe bei Netzwerk-Problemen unter Linux auch http://www.adsl4linux.de/howtos/lan22/ und das [http://www.tldp.org/HOWTO/Ethernet-HOWTO.html Ethernet-HOWTO].
  
=== HP-Drucker ===
+
* Eine Anleitung zu [http://www.oreilly.de/german/freebooks/linag2/netz0802.htm pppd] findet sich bei O'Reilly.
 +
* Siehe
 +
** [[Synchronisation unter Linux]], [[Synchronisation Web-PC-Handy]].
  
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
+
==== Netzwerktool ip ====
 +
Siehe
 +
* https://www.heise.de/ct/artikel/FAQ-Netzwerke-analysieren-und-konfigurieren-mit-ip-4769802.html
 +
 
 +
==== Netzwerktool ss ====
 +
 
 +
Mit
 +
  ss -ntlp
 +
kann man sich die offenen Ports und die daran lauschenden Anwendungen anzeigen lassen.
 +
 
 +
==== Netzwerktool netstat ====
 +
 
 +
Zur Installation:
 +
  sudo aptitude install net-tools
 +
 
 +
Zum Anzeigen der am Netzwerk lauschenden Programme:
 +
 
 +
  sudo netstat -tulpn
 +
 
 +
==== lsof ====
 +
 
 +
Mit Hilfe von
 +
  sudo lsof -nP -i | grep LISTEN
 +
kann man sich ebenfalls die offenen Netzwerk-Ports (und die daran angedockten Prozesse) anzeigen lassen.
 +
 
 +
==== Netzwerkanalyse ====
 +
 
 +
Siehe [[Netzwerk]]
 +
 
 +
=== WLAN ===
 +
 
 +
==== WLAN-Hardware ====
 +
 
 +
===== USB-WLAN mit RT3070 Chip =====
 +
 
 +
Der RT3070 ist u.a. im [http://wiki.ubuntuusers.de/wlan/karten#LogiLink LogiLink WL00049A verbaut].
 +
 
 +
* Unter [[Ubuntu]] muss [http://linuxforums.org.uk/hardware-compatibility/ralink-rt2870-based-usb-wireless-n-adapters-(ubuntu)/ das Modul rt2800usb] gesperrt werden, indem es in die <code>/etc/modprobe.d/blacklist.conf</code> eingetragen wird.
 +
 
 +
* Auch in [[Debian]] muss [http://vivahate.com/2011/04/04/ralink-rt2870rt3070-in-debian-6-squeeze/ das Modul rt2800usb] gesperrt werden und  das Paket <code>firmware-ralink</code> aus dem <code>non-free</code>-Repository installiert werden.
 +
 
 +
* den Treiber auf der [http://www.ralinktech.com/support.php?s=2 Hersteller-Website]
 +
*  http://lobmenschen.de/index.php/RALINK_RT3070_Linux_Treiber_Installation ([http://ubuntuforums.org/archive/index.php/t-1106034.html Ergänzung])
 +
* Ab Kernel 2.6.31 ist der Rt3070-Treiber (experimentell) integriert.
 +
* OpenSuse scheint den Chip ab V 11.1 zu unterstützen.<ref>http://www.xadux.eu/wireless-lan-und-lan/3423-rt3070-2.html</ref>
 +
* Auch unter [[Ubuntu]] gibt es dazu [http://forum.ubuntuusers.de/topic/wlan-an-fritzbox-7270-mit-rt3070-wpa-wpa2/ Versuche], z.B. [http://lifewithdebian.blogspot.com/ hier]. Unter Ubuntu 9.10 funktioniert der Chip jedoch bereits out-of-the-box.
 +
* Für [[Debian]] gibt es [http://wiki.debian.org/rt2870sta hier] eine Anleitung zu einem ähnlichen Chip.
 +
* Evtl. funktioniert er auch mit [http://www.openbsd.org/cgi-bin/man.cgi?query=run&sektion=4&format=html OpenBSD].
 +
 
 +
===== RT2500 =====
 +
* unter [http://www.freebsd.org/cgi/man.cgi?query=ural&sektion=4&manpath=FreeBSD+6.0-RELEASE FreeBSD 6.0]
 +
 
 +
===== rt2070-Chip =====
 +
* [http://maxein08.wordpress.com/2009/11/04/guida-allinstallazione-di-una-chiavetta-wireless-sitecom-wl-608-su-ubuntu/ italienischer Tipp]
 +
 
 +
===== ZD1211-Chipsatz =====
 +
* [http://wiki.debian.org/zd1211rw Installation unter Debian]
 +
* Unter [[OpenSuse]]:
 +
  zypper install zd1211-firmware
 +
 
 +
==== Vermeidung der Passwortabfrage ====
 +
 
 +
Wenn man unter [[Gnome]] ein [[WLAN]] einrichtet, kann man das dafür nötige Passwort im Gnome-Schlüsselbund abspeichern. Wenn man beim Hochfahren sich automatisch anmelden lässt (ohne Login mit Passwort), benötigt der [[NetworkManager]] Zugriff auf den Schlüsselbund. Daher wird man vor Aufbau der Verbindung nach dem Schlüsselbund-Passwort gefragt. Das lässt sich vermeiden, indem man dem Standardschlüsselbund ein leeres Passwort gibt<ref>http://wiki.ubuntuusers.de/GNOME_Schl%C3%BCsselbund#Automatische-Anmeldung-in-GDM</ref>. Das ist aber ein <code>Sicherheitsrisiko</code>.
 +
 
 +
 
 +
==== Linuxbox als WLAN-Accesspoint ====
 +
 
 +
Den Linux-Rechner kann man auch als Accesspoint für Geräte ohne WLAN nutzen, also Kabel zwischen Client und Linux-Rechner und drahtlose Übertragung zwischen Linux-Rechner und entferntem Internet-Router:
 +
* http://www.nicolaskuttler.com/post/using-any-debian-box-as-wireless-access-point/
 +
* http://wiki.ubuntuusers.de/WLAN_Router
 +
 
 +
=== Bluetooth ===
 +
 
 +
Siehe [[Bluetooth]]
 +
 
 +
 
 +
=== Using Android-Phone as Internet-Modem ===
 +
 
 +
Normalerweise kann das [[Android]]-Smartphone einfach an einen [[USB]]-Port des [[Linux]]-Rechners angeschlossen werden. Im Android muss dann in den Einstellungen noch das USB-Tethering aktiviert werden.
 +
 
 +
Leider funktioniert das nicht immer, eventuell hilft
 +
* [http://www.upubuntu.com/2011/12/how-to-tether-your-android-phone-to.html diese Anleitung mit der App EasyTether]
 +
 
 +
=== Wake up on LAN ===
 +
 
 +
Siehe [[Wake up on LAN]]
 +
 
 +
=== Webserver ===
 +
 
 +
* [[Plattformübergreifende Software#Serversoftware|Serversoftware]]
 +
* [[oldCt:Webhosting]]
 +
* [[Verschlüsselung]]
 +
 
 +
=== Mail ===
 +
Siehe
 +
* [[Mail unter Linux]]
 +
* [[Postfix]]
 +
 
 +
=== Fernzugriff ===
 +
* [[Remote Desktop]]
 +
** [[ssh]]
 +
 
 +
== 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. <code>DISPLAY=:0</code> 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
 +
* [http://hacklab.cz/2012/04/22/usefulness-linux-framebuffer-virtual-console fbi] zum Anzeigen von Bildern
 +
* fbtv zur Anzeige von Fernsehen
 +
* directvnc, eine [[VNC]]-Client für den Framebuffer
 +
 
 +
Weitere Infos
 +
* [http://hacklab.cz/2012/04/22/usefulness-linux-framebuffer-virtual-console Übersicht über Anwendungen für Framebuffer]
 +
* [https://github.com/notro/fbtft/wiki/Framebuffer-use weitere Anwendungsbeispiele für den Framebuffer]
 +
 
 +
==== 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 <code>video</code> 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 <code>video</code> 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 ===
 +
* [[X Server]]
 +
 
 +
=== Display Manager ===
 +
 
 +
Die Auswahl der Desktopumgebung wird nicht mehr unter <code>~/.dmrc</code> gespeichert, sondern in <code>/var/lib/AccountsService/users/$USER</code>.
 +
 
 +
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 [http://www.knetfeder.de/linux/spezial/pz-spezial-fenstermanager.pdf Einführung in Nur-Fenstermanager].
 +
 
 +
[[Fluxbox]] ist ein im Verhältnis zu [[GNOME]] und [[KDE]] schneller und kleiner Window Manager.
 +
 
 +
* [http://www.linuxmint.com/rel_helena_fluxbox.php Fluxbox-Tastenkürzel]
 +
 
 +
* Das Umsteigen von Windows würde es erleichtern, wenn er nicht nur ein Startmenü durch Rechtsklick auf den Desktop hätte, sondern auch bei Klicken eines Icons links unten. Dazu gibt es wohl auch Lösungen:
 +
** [http://ubuntuforums.org/showthread.php?p=3130878#post3130878 Änderungen am Source-Code von Fluxbox]
 +
 
 +
==== 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
 +
* https://wiki.ubuntuusers.de/.desktop-Dateien/
 +
 
 +
Diese kann man auch nutzen, um die Programme beim Start des graphischen Desktops automatisch zu starten. Dazu müssen sie ins Verzeichnis <code>/etc/xdg/autostart/</code> bzw. <code>/home/USER/.config/autostart</code> 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 ==
 +
* Siehe [[Multimedia]]
 +
** [[Plattformübergreifende Software#Multimedia]]
 +
 
 +
=== Audio ===
 +
 
 +
Siehe auch [[Audio#Linux%20und%20Audio]]
 +
 
 +
Siehe auch [[Videotelefonie]]
 +
 
 +
=== Videos ===
 +
 
 +
 
 +
Siehe auch [[Fotografie#Film_und_Video]]
 +
 
 +
==== Abspielen ====
 +
Die Versorgung mit Codecs ist unter Linux ein - lösbares - Problem. Z.B. hilft die [[plattformübergreifend]]e Software [[VLC]].
 +
 
 +
Ein Projekt namens [http://abock.org/2009/02/11/announcing-moonshine-the-project-never-formerly-known-as-pornilus/ Moonshine] ermöglicht unter Linux Windows Media Content mit Original-Microsoft-Codecs abzuspielen. Es nutzt dazu [[Moonlight]].
 +
 
 +
==== Herunterladen ====
 +
 
 +
Videos von [[YouTube]] lassen sich mit
 +
  youtube-dl -t http://www.youtube.com/watch?v=j09hpp3AxIE
 +
herunterladen. Dabei ist die anzugebende URL diejenige, die man im Browser-Adressfeld beim Surfen auf youtube findet.
 +
 
 +
Wenn der Download nicht funktioniert, hilft wahrscheinlich ein Update
 +
  youtube-dl -U
 +
 
 +
==== TV ====
 +
 
 +
Neben Projekten wie
 +
* [[VDR]]
 +
* [[MythTV]]
 +
* [[XBMC]], nun [[Kodi]]
 +
** auch mit [http://linux.mjnet.eu/post/804/xbmc-pvr-tvheadend-ubuntu-12-04-install/ tvheadend]
 +
 
 +
gibt es auch Konsolenprogramme:
 +
* [[ttv]]
 +
* [[fbtv]] - bietet TV im [[FrameBuffer]]
 +
 
 +
Für den Electronic Program Guide - EPG gibt es
 +
 
 +
* [http://sourceforge.net/projects/tvbrowser/ den TV-Browser], freie [[Java]]-Programmzeitschrift mit Aufzeichnungs-Plugin [[SimplePVR]]
 +
 
 +
Wichtig ist, dass der den TV-Stick nutzende User der Gruppe <code>video</code> 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 ===
 +
 
 +
* Einfach Bilder von der [[Shell]] aufnehmen geht mit dem Paket [http://ubuntu.online02.com/node/25 streamer]:
 +
  sudo aptitude install streamer
 +
  streamer -f jpeg -o test.jpeg
 +
 
 +
* Alternativen sind [http://tldp.org/HOWTO/Webcam-HOWTO/framegrabbers.html camE etc.]
 +
 
 +
=== Videotelefonie ===
 +
==== Skype ====
 +
[[Videotelefonie]] funktioniert auch unter [[Linux]], z.B. mit [[Skype]], auch wenn man zur Vermeidung von Abstürzen noch [http://dark.asengard.net/blog/2009/04/17/avoid-skype-crash-with-video-conversation-on-linux/ Workarounds] benötigt.
 +
 
 +
* [https://help.ubuntu.com/community/SkypeTroubleshooting Skype Troubleshooting] für [[Ubuntu]]
 +
* [http://blogs.skype.com/linux/ Skype for Linux Blog]
 +
 
 +
==== Alternativen ====
 +
Wer nur telefonieren will, findet [http://www.easylinux.de/Artikel/ausgabe/2006/06/026-skype/ freie Alternativen], die das [[SIP]]-Protokoll nutzen.
 +
 
 +
Alternativen auch mit Video scheinen
 +
* [https://bigbluebutton.org/ BigBlueButton]
 +
* [https://jitsi.org/ Jitsi]
 +
** [https://jitsi.org/jitsi-meet/ Jitsi Meet] kann sofort (ohne Registrierung) auf https://meet.jit.si/ ausprobiert werden.
 +
* https://opentalk.eu/de
 +
* [https://www.golem.de/news/aus-dem-verlag-odin-rooms-macht-videocalls-sicher-und-klar-2409-188992.html Odin Rooms]
 +
zu sein.
 +
 
 +
Bekannte kommerzielle Alternativen zum veralteten Skype sind
 +
* Microsoft Teams
 +
* Cisco Webex
 +
* Zoom
 +
 
 +
=== Digitalkameras unter Linux ===
 +
* Siehe dazu den Beitrag unter [http://www.pro-linux.de/berichte/digitalkameras.html Pro-Linux.de]
 +
* [http://www.linuxdevcenter.com/pub/a/linux/2005/01/06/digicam.html Anleitung] für die Nutzung einer Kodak-Kamera
 +
* [http://www.linuxnetmag.com/de/issue6/m6gphoto1.html Anleitung] für die Nutzung von [http://www.gphoto.org gphoto]
 +
* [http://m4l.berlios.de/pub/Main/HowTo/DE-DIGITALKAMERA-HOWTO.html Digitalkamera HOWTO] (noch für den Kernel 2.4)
 +
* Weitere Links:
 +
** http://blog.chip.de/chip-linux-blog/digitalkameras-fotografie-unter-linux-20070521/
 +
** http://www.multimedia4linux.de/cameramodule.html
 +
** http://www.gphoto.org/cameras.html
 +
** http://www.qbik.ch/usb/devices/
 +
 
 +
=== Bildanzeige ===
 +
 
 +
In den graphischen Desktop-Umgebungen ist die Anzeige von Bildern selbstverständlich kein Problem.
 +
 
 +
Aber es gibt auch Möglichkeiten auf der Konsole:
 +
 
 +
* [[fbi]] - benutzt Linux Frame Buffer System
 +
** [http://linuxers.org/howto/howto-open-images-linux-console-using-fbi-console-based-image-viewer Howto für FBI]]
 +
* [[xli]]
 +
* [[xloadimage]] benötigt [[X]]
 +
* [[xwud]] bedarf einer [[X]]-Umgebung
 +
* [[xzgv]] benötigt [[X]], hat angeblich gute Tastaturunterstützung
 +
 
 +
=== Bildbearbeitung ===
 +
Siehe
 +
* [[Fotografie]]
 +
* [[GIMP]]
 +
* [[pixelize]] - ein Programm, mit dem man ein größeres Bild aus unzähligen kleineren Bildern zusammensetzen kann
 +
 
 +
==== ImageMagick ====
 +
Auf der Kommandozeile unter Linux helfen die Tools von ImageMagick:
 +
* [http://www.linux-community.de/Internal/Artikel/Print-Artikel/LinuxUser/2012/08/Bildbearbeitung-mit-ImageMagick Anleitung auf LINUX-Community]
 +
 
 +
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 [http://exiflow.sourceforge.net/wiki/Main_Page Exiflow-Tools] können Bilddateien einfach gemäß dem Erstellungsdatum umbenannt werden.
 +
 
 +
Mit [http://www.exiv2.org/index.html exiv2] lässt sich auf der Kommandozeile die Informationen eines Bildes auswerten.
 +
 
 +
Auch [[exiftags]] und [[exif]] bieten die Informationen aus dem EXIF-Teil des JPEG-Bilds über die Kommandozeile an.
 +
 
 +
==== Aufnahmedatum in Dateinamen ====
 +
Schließlich bietet auch [http://www.sentex.net/~mwandel/jhead/ jhead] ([http://linux.die.net/man/1/jhead man-page]) alle textuellen Informationen. Dieses Programm läuft nicht nur unter Linux, sondern auch unter Windows. Ein [http://www.guckes.net/augsburg2006/bildbearbeitung_auf_der_console.txt Verwendungsbeispiel]:
 +
    jhead -nfhm%04Y.%02m.%02d-%H%M%S.%f *.jpg
 +
Das macht aus der Datei p104711.jpg z.B. hm2007,11,12-110048.p104711.jpg.
 +
 
 +
In den OpenSuse-Forums findet sich ein [http://forums.opensuse.org/archives/sf-archives/archives-programming-scripting/335342-rename-files-using-creation-date.html Shell-Skript zum Umbenennen von Movies (.MOV)] basierend auf dem Dateimodifikationsdatum. Damit lässt sich obiger jhead-Befehl nachbilden (der Unterschied bleibt natürlich, dass nicht das EXIF-Datum, sondern das Dateidatum in den Namen aufgenommen wird):
 +
 
 +
  #!/bin/sh
 +
  for file in ${@}; do
 +
    if [ -e $file ]; then
 +
      timestamp=`ls -l --time-style=+%Y.%m.%d-%H%M%S $file |cut -d' ' -f6`
 +
      newfile="hm$timestamp.$file"
 +
      echo Aus $file wird $newfile ...
 +
      mv -v "$file" "$newfile"
 +
    fi
 +
  done
 +
 
 +
==== 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 [http://www.sno.phy.queensu.ca/~phil/exiftool/geotag.html Beschreibung auf der Projektseite].
 +
 
 +
Die Geodaten bekommt man z.B. mit der [[Android]] - [[Open Source]]-Software [https://github.com/mendhak/gpslogger gpslogger].
 +
 
 +
== Fernzugriff ==
 +
* [[Remote Desktop]]
 +
** [[ssh]]
 +
 
 +
== Drucken ==
 +
=== Allgemeines ===
 +
* Das CUPS-Drucksystem bietet unter http://localhost:631 eine Web-Verwaltungsoberfläche.
 +
* CUPS verwendet das Internet Printing Protocol. Dies kann auch [http://www.heise.de/netze/Ueberall-drucken--/artikel/78252/0 Windows XP anbieten].
 +
* [http://hplipopensource.com/hplip-web/supported_devices/index.html Hewlett-Packard] und [http://solutions.brother.com/linux/en_us/index.html Brother] scheinen recht umfangreichen Linux-Treiber-Support für ihre Drucker zu leisten. Aber auch für [http://avasys.jp/hp/menu000000500/hpg000000442.htm Epson-Drucker] gibt es etliche Treiber.
 +
* [http://www.linuxforen.de/forums/showthread.php?t=213560 Überblick über Drucken unter Linux]
 +
* Einen Drucker am Linux-Rechner kann man [http://pda-und-co.de/linux/2009/05/03/eee-als-home-server-feste-ip-netzwerkdrucker-per-cups-einrichten/ auch vom Windows-PC als Netzwerkdrucker nutzen]
 +
 
 +
Beim Netzwerk-Server, an den der Drucker angeschlossen ist, muss man den Clients den Zugriff auf den Drucker erlauben:
 +
  cupsctl --share-printers
 +
 
 +
Von der Shell kann man einen Netzwerkdrucker folgendermaßen zum Client hinzufügen:
 +
  lpadmin -p "$PRINTER" -E -v "ipp://$SERVER/printers/$PRINTER"
 +
wobei man <code>$PRINTER</code> jeweils durch die CUPS-Drucker-Bezeichnung, z.B. "DESKJET-840C" ersetzen muss.
 +
 
 +
Mit
 +
  lpstat -p -d
 +
kann man sich die vorhandenen Drucker anzeigen lassen.
 +
 
 +
Mit
 +
  lpoptions -d DRUCKER
 +
kann man den Standard-Drucker auswählen.
 +
 
 +
 
 +
Mit
 +
  lpstat  -o -a
 +
kann man sich alle noch offenen Druckaufträge anzeigen lassen.
 +
 
 +
Mit
 +
  lpstat -W completed -o -a
 +
kann man sich alle abgeschlossenen Druckaufträge anzeigen lassen.
 +
 
 +
Siehe auch
 +
* [http://localhost:631/help/options.html CUPS-Hilfe zu Kommandozeilenbefehlen auf eigenem Rechner]
 +
* [[Drucken]] allgemein
 +
* https://www.linux-praxis.de/verwaltung-von-druckern-und-druckerwarteschlangen
 +
 
 +
==== Troubleshooting ====
 +
 
 +
===== Drucker deaktiviert sich von selbst =====
 +
 
 +
Um zu vermeiden, dass man jedes Mal den Drucker wieder auf "aktiviert" stellen muss, fügt man in der Datei <code>/etc/cups/printer.conf</conf> die Zeile
 +
  ErrorPolicy retry-job
 +
hinzu. Siehe
 +
* https://debianforum.de/forum/viewtopic.php?t=126837
 +
 
 +
=== 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 <code>net</code> 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 [http://support.brother.com/g/s/id/linux/en/instruction_prn1a.html?c=us_ot&lang=en&redirect=on 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 <code>lp</code> sein.
 +
 
 +
Auf 64bit-Systemen müssen zusätzlich die Pakete ia32libs und libstdc++ installiert sein.
 +
 
 +
== Scannen ==
 +
 
 +
=== Scanner im Netzwerk ===
 +
 
 +
Siehe die Anleitung zum [http://wiki.ubuntuusers.de/SANE-Scanserver_im_Netzwerk Scannen im Netzwerk unter Ubuntu].
 +
 
 +
Zusätzlich muss noch  in <code>/etc/default/saned</code> der Start von Saned eingestellt werden:
 +
 
 +
  RUN=yes
 +
 
 +
 
 +
=== Scannen und OCR ===
 +
 
 +
Mit Hilfe von scanimage und tesseract lassen sich auch PDFs mit per OCR erkanntem (überlagerndem) Text erstellen.
 +
 
 +
Das Projekt [https://openpaper.work/de/ Paperwork] bietet auf dieser Basis eine Volltextsuche über sämtliche gescannten Dokumente. Die Installation hat bei mir gut über [[AppImage]] funktioniert. Siehe die [https://openpaper.work/de/download/linux#appimage Anleitung auf der Projekt-Seite].
 +
 
 +
=== Einzelne Scanner ===
 +
 
 +
==== Scanner '''Mustek 1200 UB Plus''' ====
 +
 
 +
Für den Scanner '''Mustek 1200 UB Plus''' ist neben einer SANE-Installation einschließlich des [http://www.meier-geinitz.de/sane/gt68xx-backend/index.html gt68xx-Backends] (bei OpenSuse 10.3 automatisch) noch Folgendes zu tun:
 +
* Verzeichnis für Firmware anlegen
 +
  sudo mkdir -p /usr/share/sane/gt68xx
 +
* Die Firmware-Datei [http://www.meier-geinitz.de/sane/gt68xx-backend/firmware/sbfw.usb sbfw.usb] herunterladen und im Verzeichnis <code>/usr/share/sane/gt68xx</code> speichern sowie
 +
* Von der bisher in der Datei <code>/etc/sane.d/gt68xx.conf</code> enthaltene Zeile
 +
    #override "mustek-scanexpress-1200-ub-plus"
 +
das führende Kommentarzeichen (#) entfernen. <small>Ansonsten wird der Scanner fälschlicherweise als  Mustek BearPaw 1200 CU erkannt.</small>
 +
* Das erkannte Scanner-Modell kann man sich ausgeben lassen:
 +
  scanimage -L
 +
* Mit der Anwendung <code>xsane</code> kann man dann scannen.
  
Um einen HP-All-In-One-Drucker/Scanner wie der [[HP OfficeJet 8600 Pro Plus]] im Netzwerk zu installieren, startet man als Root
+
==== Brother MFC 260C ====
  hp-setup -i
 
und wählt 2 für <code>net</code> aus.
 
  
=== Brother ===
+
Das Multifunktionsgerät Brother MFC 260 C lässt sich [http://ubuntuforums.org/showthread.php?t=590793 sowohl als Scanner als auch als Drucker] unter Linux einrichten. Dazu ist der Treiber brscan2 von [http://welcome.solutions.brother.com/bsc/public_s/id/linux/en/download_scn.html Brother herunterzuladen].
  
Die Installation von Brother-Drucker wird seitens Brother mit eigenständigen rpm- bzw- deb-Paketen unterstützt.
+
Für neuere Ubuntu / Linux Mint 64 bit -Versionen müssen symbolische Links angelegt werden:<ref>Vgl. https://wiki.ubuntuusers.de/Scanner/Brother/#Scanner-Treiber-ab-Bionic-Beaver-18-04-64-Bit</ref>
  
Bei der Installation des Brother MFC-260C unter Linux Mint 17 32bit bedarf es folgender Schritte nach dem Download der DEB-Files vom [http://support.brother.com/g/s/id/linux/en/instruction_prn1a.html?c=us_ot&lang=en&redirect=on Brother Solutions Center]:
+
  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
  
  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
 
  
== Scannen ==
+
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.
  
=== Scanner im Netzwerk ===
+
=== Scannen in verschiedenen Distributionen ===
 +
==== OpenSuse ====
 +
* Mit dem Scanner-Modul von yast kann man die korrekte Installation testen.
  
Siehe die Anleitung zum [http://wiki.ubuntuusers.de/SANE-Scanserver_im_Netzwerk Scannen im Netzwerk unter Ubuntu].  
+
==== Debian ====
 +
* Unter [[Debian]]
 +
** ist neben der Installation von <code>xsane</code> auch die Installation von <code>sane-utils</code> erforderlich.
 +
**  Außerdem muss der jeweilige Benutzer Mitglied der Gruppe <code>scanner</code> oder aber der Gruppe <code>lp</code><ref>Vgl. https://www.linuxquestions.org/questions/slackware-14/sane-and-usb-permission-4175421150/</ref> sein.
  
Zusätzlich muss noch  in <code>/etc/default/saned</code> der Start von Saned eingestellt werden:
+
==== Ubuntu ====
 +
'''Achtung wohl veraltet'''
 +
* Unter [[Ubuntu]] benötigt man jedenfalls in 9.10 Karmic Koala folgende Zeile in <code>/etc/fstab</code>:
 +
  none    /proc/bus/usb  usbfs          auto                    0      0
  
   RUN=yes
+
Evtl. funktioniert auch
 +
   none    /proc/bus/usb  usbfs          auto,devmode=0666      0      0
  
  
=== Scannen und OCR ===
+
* Ob die Zeile funktioniert lässt sich mit mount testen:
 +
  sudo mount -a
 +
 
 +
* Damit man auch als normaler User auf den Scanner zugreifen kann,<ref>http://www.ubuntu-forum.de/artikel/41977/scanner-wird-als-user-nicht-erkannt-nur-als-root.html</ref> kreiert man mit
 +
  sudo joe /etc/udev/rules.d/40-basic-permissions.rules
 +
(oder irgendeinem anderen Editor) eine Datei mit folgendem Inhalt
 +
  # USB devices (usbfs replacement)
 +
  SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666"
 +
  SUBSYSTEM=="usb_device", MODE="0666"
  
Mit Hilfe von scanimage und tesseract lassen sich auch PDFs mit per OCR erkanntem (überlagerndem) Text erstellen.
+
Anschließend muss man das udev-System neustarten:
 +
  sudo restart udev
  
=== Einzelne Scanner ===
+
Hinweis: Auf [http://wiki.ubuntuusers.de/Scanner#USB ubuntuusers.de] findet sich eine davon leicht abweichende Möglichkeit für das Scannen als normaler User.
 +
Hinweis 2: Für Ubuntu 9.10 muss man es wohl inzwischen [http://forum.ubuntuusers.de/topic/probleme-mit-scanner-seit-karmic-9-10/ anders machen].
  
==== Scanner '''Mustek 1200 UB Plus''' ====
+
== Energiemanagement ==
  
Für den Scanner '''Mustek 1200 UB Plus''' ist neben einer SANE-Installation einschließlich des [http://www.meier-geinitz.de/sane/gt68xx-backend/index.html gt68xx-Backends] (bei OpenSuse 10.3 automatisch) noch Folgendes zu tun:
+
=== Akku ===
* Verzeichnis für Firmware anlegen
+
Mit <code>upower</code> kann man sich den Stand des Akkus anzeigen lassen.<ref>Siehe http://askubuntu.com/questions/69556/how-to-check-battery-status-using-terminal .</ref>
  sudo mkdir -p /usr/share/sane/gt68xx
+
 
* Die Firmware-Datei [http://www.meier-geinitz.de/sane/gt68xx-backend/firmware/sbfw.usb sbfw.usb] herunterladen und im Verzeichnis <code>/usr/share/sane/gt68xx</code> speichern sowie
+
   upower -i /org/freedesktop/UPower/devices/battery_BAT0
* Von der bisher in der Datei <code>/etc/sane.d/gt68xx.conf</code> enthaltene Zeile
 
    #override "mustek-scanexpress-1200-ub-plus"
 
das führende Kommentarzeichen (#) entfernen. <small>Ansonsten wird der Scanner fälschlicherweise als  Mustek BearPaw 1200 CU erkannt.</small>
 
* Das erkannte Scanner-Modell kann man sich ausgeben lassen:
 
   scanimage -L
 
* Mit der Anwendung <code>xsane</code> kann man dann scannen.
 
  
==== Brother MFC 260C ====
+
Den Pfad für das oben angegebene Kommando findet man durch
 +
  upower -e
  
Das Multifunktionsgerät Brother MFC 260 C lässt sich [http://ubuntuforums.org/showthread.php?t=590793 sowohl als Scanner als auch als Drucker] unter Linux einrichten. Dazu ist der Treiber brscan2 von [http://welcome.solutions.brother.com/bsc/public_s/id/linux/en/download_scn.html Brother herunterzuladen].
+
Eine komplette Übersicht erhält man mit
 +
  upower --dump
  
=== Scannen in verschiedenen Distributionen ===
+
=== Festplatte im Leerlauf ausschalten ===
==== OpenSuse ====
 
* Mit dem Scanner-Modul von yast kann man die korrekte Installation testen.
 
  
==== Debian ====
+
Siehe
* Unter [[Debian]]
+
* https://www.foxplex.com/sites/festplatten-standby-im-leerlauf-mit-hdparm-und-hd-idle/
** ist neben der Installation von <code>xsane</code> auch die Installation von <code>sane-utils</code> erforderlich.
 
**  Außerdem muss der jeweilige Benutzer Mitglied der Gruppe <code>scanner</code> sein.
 
  
==== Ubuntu ====
+
=== Energieverbrauch minimieren ===
'''Achtung wohl veraltet'''
+
Zur Ermittlung der Verbraucher helfen
* Unter [[Ubuntu]] benötigt man jedenfalls in 9.10 Karmic Koala folgende Zeile in <code>/etc/fstab</code>:
+
* [http://manpages.ubuntu.com/manpages/focal/man8/powerstat.8.html powerstat]
  none    /proc/bus/usb  usbfs          auto                    0      0
+
* [https://01.org/sites/default/files/page/powertop_users_guide_201412.pdf powertop]
 +
** https://wiki.ubuntuusers.de/PowerTOP/
 +
** https://www.admin-magazin.de/Das-Heft/2011/02/Energiefresser-unter-Linux-mit-PowerTOP-enttarnen/(offset)/2
  
Evtl. funktioniert auch
+
Siehe
  none    /proc/bus/usb  usbfs          auto,devmode=0666      0      0
+
* http://www.thinkwiki.org/wiki/How_to_reduce_power_consumption
 +
* https://metebalci.com/blog/a-minimum-complete-tutorial-of-cpu-power-management-c-states-and-p-states/
  
 +
== Verbindung mit Handy/PDA ==
  
* Ob die Zeile funktioniert lässt sich mit mount testen:
+
* [[Synchronisation Web-PC-Handy]]
  sudo mount -a
+
** [[Sony Ericsson K800i]]
 +
*** [[Sony Ericsson K800i über Bluetooth an Linux-PC]]
 +
* [[Synchronisation unter Linux]]
  
* Damit man auch als normaler User auf den Scanner zugreifen kann,<ref>http://www.ubuntu-forum.de/artikel/41977/scanner-wird-als-user-nicht-erkannt-nur-als-root.html</ref> kreiert man mit
+
== Weitere Anwendungen ==
  sudo joe /etc/udev/rules.d/40-basic-permissions.rules
 
(oder irgendeinem anderen Editor) eine Datei mit folgendem Inhalt
 
  # USB devices (usbfs replacement)
 
  SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666"
 
  SUBSYSTEM=="usb_device", MODE="0666"
 
 
 
Anschließend muss man das udev-System neustarten:
 
  sudo restart udev
 
 
 
Hinweis: Auf [http://wiki.ubuntuusers.de/Scanner#USB ubuntuusers.de] findet sich eine davon leicht abweichende Möglichkeit für das Scannen als normaler User.
 
Hinweis 2: Für Ubuntu 9.10 muss man es wohl inzwischen [http://forum.ubuntuusers.de/topic/probleme-mit-scanner-seit-karmic-9-10/ anders machen].
 
  
== Energiemanagement ==
+
=== Editoren ===
  
Mit <code>upower</code> kann man sich den Stand des Akkus anzeigen lassen.<ref>Siehe http://askubuntu.com/questions/69556/how-to-check-battery-status-using-terminal .</ref>
+
==== Grafische Editoren und Entwicklungsumgebungen ====
 
 
  upower -i /org/freedesktop/UPower/devices/battery_BAT0
 
  
Den Pfad für das oben angegebene Kommando findet man durch
+
* Geany
  upower -e
+
* [[Netbeans]]
 +
* [[Eclipse]]
  
== Verbindung mit Handy/PDA ==
+
==== Editoren fürs Terminalfenster ====
  
* [[Synchronisation Web-PC-Handy]]
+
* [[vim]]
** [[Sony Ericsson K800i]]
+
* nano
*** [[Sony Ericsson K800i über Bluetooth an Linux-PC]]
+
* joe - Benutzerführung wie MS WordStar (etwas antiquiert)
* [[Synchronisation unter Linux]]
+
* emacs
  
== Weitere Anwendungen ==
+
=== Textverarbeitung ===
  
 +
Die Standard-Textverarbeitung unter Linux ist derzeit [[LibreOffice]] Writer.
  
 
=== Plattformübergreifende Software ===
 
=== Plattformübergreifende Software ===
Zeile 1.434: Zeile 2.135:
 
* [http://sourceforge.net/apps/mediawiki/free-cad/index.php?title=Main_Page FreeCAD] ([[OpenSource]])
 
* [http://sourceforge.net/apps/mediawiki/free-cad/index.php?title=Main_Page FreeCAD] ([[OpenSource]])
 
** [http://sourceforge.net/apps/mediawiki/free-cad/index.php?title=Draft_tutorial Einstiegstutorial]
 
** [http://sourceforge.net/apps/mediawiki/free-cad/index.php?title=Draft_tutorial Einstiegstutorial]
 
+
* [[OpenSCAD]] - a simple CAD application based on scripts
  
 
=== Business Software ===
 
=== Business Software ===
  
 
* [http://www.linux-community.de/Internal/Artikel/Online-Artikel/Versuch-einer-Entscheidungshilfe-fuer-die-richtige-Linux-Unternehmenssoftware Überblick über Linux-Business-Software]
 
* [http://www.linux-community.de/Internal/Artikel/Online-Artikel/Versuch-einer-Entscheidungshilfe-fuer-die-richtige-Linux-Unternehmenssoftware Überblick über Linux-Business-Software]
 +
 
* Ein weiteres [[DMS]] ist [http://www.archivista.ch/de/pages/support/installation.php Archivista]
 
* Ein weiteres [[DMS]] ist [http://www.archivista.ch/de/pages/support/installation.php Archivista]
 +
 +
Siehe auch
 +
* [[Informationstechnik#Dokumentenmanagementsystem]]
  
 
=== Groupware-Server ===
 
=== Groupware-Server ===

Aktuelle Version vom 19. September 2024, 12:30 Uhr


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.
  • Uptimes - Mitgliederzeitschrift der German Unix User Group

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

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

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.

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

Kernel

  • 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

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

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


Feststellen, ob Script von Cron gestartet wurde

Siehe https://stackoverflow.com/questions/33354864/how-to-check-if-linux-shell-script-is-executed-by-a-cronjob :


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 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)[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

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.
  • LXC ist ebenfalls eine Container-Lösung

Shells

Dokumentation für bash (Kommandozeile/Konsole)

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

heredoc

Man kann auch kleine Textschnipsel in ein Skript selbst schreiben und dann weiterleiten:

 cat <<EOF
 Dies ist ein Text, der
 an cat weitergegeben wird.
 EOF

Statt EOF kann in den so genannten "heredocs" auch irgendein anderes Wort zur Bezeichnung des Endes des heredocs geschrieben werden. Es muss nur das Gleiche am Anfang und am Ende sein.

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

Dateiverwaltung

Dateisuche

Suchen auch in Unterordnern

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.

Suchen nach Dateinamen und Wörtern im Dateiinhalt

Will man an Hand des Dateinamens eine Vorauswahl der Dateien treffen, deren Inhalt auf ein bestimmtes Wort untersucht wird, kann man find und grep kombinieren:

 find . -name package.json -print0 | xargs -0 grep mylib

Dieser Befehl sucht im aktuellen Verzeichnis und dessen Unterverzeichnissen nach Dateien mit dem Namen package.json. In diesen sucht es nach der Zeichenfolge "mylib".

Berechtigungen

Mit

 namei -om PATH

können die einzelnen Berechtigungen eines Pfades PATH angezeigt werden.

SUID

Mit Setzen des SUID-Bits für ein binäres Programm (also keinem Shell-Skript) mit

 chmod u+s PROGRAMM

wird der Benutzer, der das Programm aufrufen darf (z.B. Ausführungs-Bit "x" bei der einschlägigen Gruppe gesetzt), das Programm unter dem Benutzer, der Eigentümer des Programms ist, ausführen.

SGID

Mit Setzen des SGID-Bits für ein Verzeichnis erben neu angelegte Dokumente/Verzeichnisse in diesem Verzeichnis dessen Gruppe als Gruppenzugehörigkeit.

umask

In den Konfigurationsdateien /etc/profile, ~/.profile (z.B. umask 027) oder /etc/login.defs (z.B. UMASK 027), je nach Linux-Ausgabe, kann zentral die Standard-Umask vorgegeben werden. Damit kann insbesondere standardmäßig vorgegeben werden, dass die erzeugten Dokumente nicht world-readable sind (umask 007).

Angeblich[32] kann man auch user-spezifisch die Default-Umask setzen: Siehe dazu /etc/default/useradd oder /etc/adduser.conf

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
  • Um zu sehen, welcher Platz von den einzelnen Dateien bzw. Verzeichnisse des Arbeitsverzeichnisses eingenommen wird, hilft das Tool xargs. Z.B. um alle Dateien/Verzeichnisse im Gigabyte-Bereich zu finden:
 ls --almost-all -1  | xargs -n1 -d '\n'  du -h --summarize |  sed -n -e '/digit:G\s/p'

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

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

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

Siehe

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.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:[36]

 /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.[37]


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

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

  • 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

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:

Mounten eines iPhone-Dateisystems

Sollte beim Anstecken eines iPhones über USB-Kabel an einen Linux-Rechner und anschließendem Entsperren des iPhones durch Wischen von unten nach oben der Ordner mit den Fotos und Videos nicht automatisch gemountet werden, hilft wahrscheinlich die Installation von ifuse:

 sudo aptitude install ifuse


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[40]

 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


Open-Source Backup Produkte:

Linux-Bordmittel: dump, tar, smbtar, rsync, Tipps vom BSI, linux-backup.net

Umfangreiche Anleitung zu inkrementellem Backup mit Hilfe von rsync

Backup mit Borg

Backup

Initialisiere Repository mit Borg Backup

 borg init --encrypt none <repoPath>
 

Erstelle Snapshot

 borg create --stats --progress  <repopath>::documents_$(date -I) $(realpath ~/documents)


Man kann auch einen Lauf starten, bei dem nichts verändert wird:

 borg create --dry-run --list \
     --progress  <repopath>::documents_$(date -I) $(realpath ~/documents)
Borg-Repo-Pfad

Auf dem lokalen Rechner ist <repopath> eine schlichte Pfadangabe wie /mnt/externUSB/backup.

Via SSH kann man aber auch auf einen entfernten Rechner backupen. <repopath> lautet dann:

 ssh://user@host:port/path/to/repo

Die Angabe des Repository-Pfades kann man sich sparen, indem man ihn mit

 export BORG_REPO=<repopath>

als Umgebungsvariable borg zur Verfügung stellt.

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

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

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

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

Dateien im Netzwerk

Siehe

Netzwerk

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:[43] 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).[44]

Ping ohne sudo

Sollte das einfache Pingen eines Rechners Root-Rechte benötigen, kann man Ping mit den nötigen Rechten ausstatten:[45]

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.


Netzwerktool ip

Siehe

Netzwerktool ss

Mit

 ss -ntlp

kann man sich die offenen Ports und die daran lauschenden Anwendungen anzeigen lassen.

Netzwerktool netstat

Zur Installation:

 sudo aptitude install net-tools

Zum Anzeigen der am Netzwerk lauschenden Programme:

 sudo netstat -tulpn

lsof

Mit Hilfe von

 sudo lsof -nP -i | grep LISTEN

kann man sich ebenfalls die offenen Netzwerk-Ports (und die daran angedockten Prozesse) anzeigen lassen.

Netzwerkanalyse

Siehe Netzwerk

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

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

Siehe auch Fotografie#Film_und_Video

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

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

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

Alternativen auch mit Video scheinen

zu sein.

Bekannte kommerzielle Alternativen zum veralteten Skype sind

  • Microsoft Teams
  • Cisco Webex
  • Zoom

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

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

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.

Mit

 lpstat -p -d

kann man sich die vorhandenen Drucker anzeigen lassen.

Mit

 lpoptions -d DRUCKER

kann man den Standard-Drucker auswählen.


Mit

 lpstat  -o -a

kann man sich alle noch offenen Druckaufträge anzeigen lassen.

Mit

 lpstat -W completed -o -a

kann man sich alle abgeschlossenen Druckaufträge anzeigen lassen.

Siehe auch

Troubleshooting

Drucker deaktiviert sich von selbst

Um zu vermeiden, dass man jedes Mal den Drucker wieder auf "aktiviert" stellen muss, fügt man in der Datei /etc/cups/printer.conf</conf> die Zeile

 ErrorPolicy retry-job

hinzu. Siehe

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.

Das Projekt Paperwork bietet auf dieser Basis eine Volltextsuche über sämtliche gescannten Dokumente. Die Installation hat bei mir gut über AppImage funktioniert. Siehe die Anleitung auf der Projekt-Seite.

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

 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 von sane-utils erforderlich.
    • Außerdem muss der jeweilige Benutzer Mitglied der Gruppe scanner oder aber der Gruppe lp[49] 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,[50] 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.[51]

 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

Business Software

Siehe auch

Groupware-Server


  1. Hängen bei Aufbau der Druckerdatenbank bei 4%.
  2. Siehe How to use Labels for GRUB2.
  3. Vgl. https://unix.stackexchange.com/questions/405515/how-to-preview-my-grub-menu-without-rebooting
  4. Siehe ubuntuusers
  5. 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
  6. Siehe http://www.rodsbooks.com/efi-bootloaders/elilo.html
  7. http://www.freedesktop.org/wiki/Software/systemd/FrequentlyAskedQuestions/
  8. https://wiki.archlinux.org/index.php/systemd#Syntax_highlighting_for_units_within_Vim
  9. https://wiki.archlinux.org/index.php/systemd#Syntax_highlighting_for_units_within_Vim
  10. http://unix.stackexchange.com/questions/52643/how-to-disable-auto-suspend-when-i-close-laptop-lid
  11. https://www.archlinux.org/news/linux-313-warning-ps2-keyboard-support-is-now-modular/
  12. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=641267
  13. Siehe http://www.aptosidusers.de/index.php?name=PNphpBB2&file=viewtopic&p=12101
  14. Siehe http://forums.debian.net/viewtopic.php?f=17&t=105344 .
  15. Vgl. http://lightrush.ndoytchev.com/random-1/i8042quirkoptions
  16. 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
  17. Siehe [1] .
  18. Vgl. http://www.lirc.org/html/configuration-guide.html
  19. Vgl. http://www.lirc.org/html/devinput.html
  20. Vgl. ir-keytable or: How I Learned to Stop Worrying about the LIRC Kernel
  21. Siehe http://kodi.wiki/view/Keymap.xml#Remote_Buttons
  22. Vgl. http://kodi.wiki/view/HOW-TO:Set_up_an_MCE_remote_control_in_Linux
  23. Siehe https://communities.intel.com/thread/52072?start=15&tstart=0
  24. Vgl. https://github.com/OpenELEC/OpenELEC.tv/issues/3137
  25. Siehe http://ilostmynotes.blogspot.de/2012/12/fintek-ir-receiver-and-xbox-remote-to.html
  26. https://bbs.archlinux.org/viewtopic.php?id=151479&p=2
  27. Vergleiche http://onlyubuntu.blogspot.com/2008/06/howto-enable-empty-password-login-in.html.
  28. Vgl. http://www.linux-magazine.com/Online/Features/Bash-Tips-Autocompletion .
  29. Vgl. https://www.turnkeylinux.org/blog/unix-buffering .
  30. https://linuxnetz.wordpress.com/2010/04/21/notify-send/
  31. http://www.linuxquestions.org/questions/linux-desktop-74/how-to-specify-a-gnome-workpace-an-application-will-launch-in-555764/
  32. Vgl. https://forum.chip.de/discussion/1838389/default-umask
  33. http://askubuntu.com/questions/74105/how-do-you-repair-an-input-output-error-in-an-ntfs-partition
  34. 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
  35. Vgl. https://bbs.archlinux.org/viewtopic.php?id=147478
  36. http://tomalison.com/reference/2010/04/03/webdav/
  37. Vgl. http://askubuntu.com/questions/277873/mount-webdav-fails-on-reboot
  38. Vgl. http://de.opensuse.org/SDB:Drucken_via_SMB_(Samba)_Share_bzw._Windows_Freigabe.
  39. http://www.tldp.org/HOWTO/SMB-HOWTO-8.html.
  40. Siehe http://www.togaware.com/linux/survivor/Duplicate_Audio.html
  41. Vgl. https://www.pks.mpg.de/~mueller/docs/suse10.3/opensuse-manual_de/manual/sec.pmanage.silenthd.html
  42. http://www.unixboard.de/vb3/showthread.php?28301-leere-Verzeichnisse-finden
  43. Siehe http://xmodulo.com/disable-network-manager-linux.html .
  44. Siehe https://answers.launchpad.net/ubuntu/+source/wicd/+question/94845/ Post #7.
  45. Vgl. https://debianforum.de/forum/viewtopic.php?t=156254
  46. http://www.xadux.eu/wireless-lan-und-lan/3423-rt3070-2.html
  47. http://wiki.ubuntuusers.de/GNOME_Schl%C3%BCsselbund#Automatische-Anmeldung-in-GDM
  48. Vgl. https://wiki.ubuntuusers.de/Scanner/Brother/#Scanner-Treiber-ab-Bionic-Beaver-18-04-64-Bit
  49. Vgl. https://www.linuxquestions.org/questions/slackware-14/sane-and-usb-permission-4175421150/
  50. http://www.ubuntu-forum.de/artikel/41977/scanner-wird-als-user-nicht-erkannt-nur-als-root.html
  51. Siehe http://askubuntu.com/questions/69556/how-to-check-battery-status-using-terminal .