Linux - Tips und Tricks

Stand: 5.12.2008


Jede Anwendung der hier beschriebenen Hinweise und Tips erfolgt ausschließlich auf eigene Gefahr. Keine Haftung für die Richtigkeit der Darstellung. Jegliche Haftung für irgendwelche Schäden aufgrund dieses Textes ist ausgeschlossen.


Einleitung

Nachdem ich viele Jahre lang Windows benutzt hatte, habe ich mich mit Linux beschäftigt. Jedesmal, wenn ich dabei etwas Neues über dieses Betriebssystem gelernt habe, das mir wichtig erschien, habe ich es notiert. Später habe ich aus diesen Notizen den folgenden Text erstellt. Dieser kann auch ohne Vorkenntnisse verstanden werden und sollte es einem ermöglichen, sich rasch unter Linux zurechtzufinden.

Ausgelagerte Nebenseiten dieser Hauptseite:



Inhalt:


1. System-Installation

Die Installationstools der Distributionen (YaST2 (SuSE), drakconf (Mandriva)) sollten die Installation ordnungsgemäß durchführen.

Wenn allerdings Linux die Hardware nicht automatisch erkennt, hat man meiner Meinung nach ein nahezu unlösbares Problem. Mein Rat wäre, dann gleich eine andere Distribution zu versuchen. Alles andere wäre meiner Meinung nach bloß Quälerei.

So weigerten sich die Distributionen SuSE 8.2, Redhat 9 und leider auch noch Aurox 10 (auf der Basis von Fedora Core 2) hartnäckig, mit meinem Onboard-Grafikchip S3 ProSavage höhere Auflösungen als 640x480 darzustellen.
Dieses Problem soll man jedoch lösen können, indem man als root in die Datei /etc/X11/XF86Config in der Sektion "Device" folgendes einträgt: Option "UseBIOS" "off"

Die 3D-Unterstützung der Grafikkarte geht bei mir bis auf weiteres nicht.

Es gibt PCs, auf denen Linux überhaupt nicht laufen wird.

Die Hersteller von Hardware bringen diese nämlich immer mit Windows-, aber selten mit Linux-Treibern auf den Markt. Deshalb müssen freie Linux-Programmierer erst welche nachbauen, was die Hersteller zum Teil zu verhindern versuchen. Die Treiber sind dann oft nicht so gut und jedenfalls immer erst mit zeitlichem Abstand zu haben. Also werden nur etwas ältere Geräte unterstützt, wenn überhaupt.

Einige "Probleme und Lösungen" bei und nach der Installation von SuSE 10.0 und Mandriva Community 10.1 werden weiter unten, kurz vor dem Ende dieser Webseite dargestellt.


2. Mehrere Benutzer / Mehrere Prozesse; Benutzer "root"; Benutzergruppen

Linux ist ein konsequentes Multiuser und Multitasking-System.
Das hängt damit zusammen, daß Linux ein Derivat von Unix ist. Unix ist aber ein System, das urspünglich in der Weise benutzt werden sollte, daß mehrere Personen von leistungsschwachen Terminals aus auf einen mit diesen verbundenen Großrechner zugreifen können sollten. Der Großrechner mußte daher mehrere Benutzer verwalten und mehrere Zugriffe gleichzeitig verarbeiten können.
Dieses Pinzip liegt auch noch heutigen Linux-Distributionen zugrunde. Die Vorstellung ist, daß Terminals auf das System zugreifen, nur daß diese Terminals heute nicht mehr aus getrennter Hardware bestehen müssen, sondern lediglich Programme, also bloße Software sein können.
Außerdem wird ein Verwalter des Systems vorausgesetzt.
Dieser trägt auf allen Linux-Computern den festgelegten Benutzernamen

root

Das heißt, nur, wenn man sich unter dem Benutzernamen des Superusers "root" eingeloggt hat, kann man alle, auch alle Systemdateien, die überall im Verzeichnisbaum verteilt sind, verändern.

Wenn man also nicht als "root", sondern unter einem anderen Namen eingeloggt ist, können Viren aus dem Internet, von denen es für Linux sowieso nicht so viele gibt, kaum etwas anrichten.

Im Verzeichnis /home/ legt Linux persönliche Verzeichnisse der normalen Benutzer an.
Für root ist hingegegen vom System ein eigenes /root/-Verzeichnis angelegt.
Programme installieren in das persönliche Verzeichnis des ausführenden Benutzers dessen persönliche Programmeinstellungen in Verzeichnissen und Dateien, die mit einem Punkt anfangen und deshalb versteckt sind, also zum Beispiel

.exrc

Auf diese Weise müßte die eigentliche Programmdatei, die etwa in /usr/bin/ liegen kann, immer unverändert bleiben, so daß jeder Benutzer darauf zugreifen können müßte, ohne Veränderungen an der Programmdatei zu bewirken.

Programmeinstellungsdateien und etwa Daten wie den Cache eines Browsers sollte man also zunächst im Benutzerverzeichnis in /home/, bzw. in /root/ suchen.

Die Befehle für die Benutzerverwaltung sind insbesondere

chown (ändere Eigentümer; change owner)

chmod (ändere Zugriffsberechtigungen)

who (wer ist noch angemeldet), whoami

passwd

Normale Benutzer können Programme nur ausführen, wenn bei allen zur Ausführung erforderlichen Dateien die Benutzerrechte richtig gesetzt sind (was ziemlich umständlich sein kann).
Für Verzeichnisse gilt folgendes:
Normale Benutzer können auf Verzeichnisse und die darin liegenden Dateien nur zugreifen, wenn für sie bezüglich der Verzeichnisse die Berechtigung "ausführen" gesetzt ist.
Das ist schon überraschend, denn ein Verzeichnis kann ja nicht im eigentlichen Sinne ausgeführt werden.

Die Benutzer sind zudem in Gruppen zusammengefaßt.
Die Benutzergruppe, der eine Datei zugerechnet wird, läßt sich durch den Befehl

chgrp

festlegen, bzw. ändern.
Durch den Befehl chmod ist festgelegt, ob der Eigentümer einer Datei diese lesen darf (r = read), diese beschreiben darf (w = write) und diese ausführen darf (x = execute), ob die jeweilige Gruppe diese Rechte ausüben darf und ob alle anderen diese Dateirechte ausüben dürfen. Die wichtigsten Benutzerrechte an der Datei werden demnach durch rwxrwxrwx beschrieben.

Es gibt keine Möglichkeit, Linux dazu zu bringen, auf die Verwaltung mehrerer Benutzer und Gruppen sowie die Vergabe von Benutzerrechten zu verzichten. Auch wenn man seinen Rechner stets allein und immer als "root" benutzt, bleibt das dargestellte System mehrerer Benutzer im Grundsatz erhalten.

Aus Sicherheitsgründen wird empfohlen, jedenfalls nach einiger Zeit, wenn das System gut eingerichtet ist, für sich einen normalen Benutzer anzulegen und nur zu besonderen Zwecken (mit dem Befehl "su") "root" zu werden . Sonst gilt:

Confucius said: "He who play in root, eventually kill tree."


3. Terminals, Shells

Linux kann entweder im Textmodus (der wie DOS aussieht) oder im Grafikmodus betrieben werden. Im Textmodus erscheint standardmäßig die Eingabeaufforderung (Konsole), im Grafikmodus kann eine solche leicht gestartet werden:

ALT+F2 (= Programm starten): Dort eines der Terminalprogramme starten:

xterm
rxvt
konsole
gnome-terminal

In den Terminals kann man Befehle eingeben, die von einer Shell interpretiert werden. Es gibt mehrere Shells, standardmäßig wird "bash" gestartet.

Die Terminal-Befehle sind wie bei Basic oder DOS englische Wörter, die jedoch erheblich verkürzt sind, um nicht so viel tippen zu müssen. Die Befehle unterscheiden sich erheblich von DOS, auch wenn sie dasselbe tun.

Im Gegensatz zu DOS beachtet Linux immer unerbittlich Groß- und Kleinschreibung (= case sensitive).

Die Eingabeaufforderung, bzw. die Shell versucht, alle angefangenen Eingaben automatisch zu vervollständigen, wenn man jeweils TAB eingibt.

Mit den Cursortasten kann man stets vorherige Eingaben zurückholen.

Das erspart einem viel Tipparbeit.

Wichtige Befehle sind etwa:

halt System herunterfahren
reboot System neu starten
ls (list) Wie "dir" (DOS). "dir" selbst geht auch, ebenso cd, cd .. und cd /.
rm (remove) Wie "delete" (DOS). "rm -r" löscht ganze Verzeichnisse (Vorsicht: "rm -rf *" in "/" als root ausgeführt und das ganze System ist weg; unter anderem deshalb sollte man nur als einfacher Benutzer online gehen.).
mv (move) Verschieben von Dateien.
file Datei Zeigt Einzelheiten zu einer bestimmten Datei an, insbesondere den Dateityp. Praktisch, denn anders als Windows verlangt Linux keine Dateiendungen wie .txt oder .mp3, obwohl man solche Endungen natürlich benutzen kann.
time Befehl Zeigt an, wie schnell der angegebene Befehl ausgeführt wird.
man (manual) Ähnlich "help" (DOS). Daneben gibt es noch "info" und "apropos".
ps x Zeigt Prozesse des aktuellen Benutzers, die mit "kill -9" mit der Prozeßnummer gewaltsam beendet werden können. xkill ist noch komfortabler.
ps xa Zeigt Prozesse aller aktuellen Benutzer.
startx, startx gnome, startx kde, startx WindowMaker Vom Textmodus aus den Grafikmodus starten (dazu hier).
init 3 Soll in Textmodus schalten, Grafikmodus benötigt init 5.
su Läßt einen nach Passworteingabe für die Dauer der Terminalsitzung root sein.
sux -l Läßt einen nach Passworteingabe auch X-Programme als root starten (SuSE, Grafikmodus).
kdesu Startet unter KDE grafische Programme als root, nachdem das root-Passwort in einer Eingabemaske abgefragt wurde.
su Benutzer Läßt einen die Identität von "Benutzer" annehmen.
yast Das SuSE-Konfigurationstool läuft auch im Textmodus.
df Zeigt eingebundene Laufwerke und deren Platzbedarf.
du, du -h, du -a Zeigt Platzbedarf von Verzeichnissen und Dateien.
mmv dazu hier.
date dazu hier.
shred, wipe dazu hier.

Hilfreiche Tastenkombinationen im Terminal sind:

STRG+l Löscht den Bildschirm. Gleiches tut auch der Befehl clear (wie DOS: cls).
STRG+a Bewegt den Cursor zum Zeilenanfang.
STRG+e Bewegt den Cursor zum Zeilenende.
ALT+n Bewegt den Cursor ein Wort vor.
ALT+b Bewegt den Cursor ein Wort zurück.
STRG+w Löscht das Wort vor der aktuellen Cursorposition.
ALT+d Löscht das Wort nach der aktuellen Cursorposition.
STRG+u Löscht Eingaben von der Cursorposition zurück bis zum Zeilenanfang.
STRG+k Löscht Eingaben von der Cursorposition bis zum Zeilenende.
STRG+y Fügt das zuletzt Gelöschte ein.
STRG+Shift+_ Macht die letzte Aktion rückgängig.
STRG+d Beendet das aktuelle Terminal (= logout, exit).

Für Fortgeschrittene: Eigene Tastenkombinationen für die Shell definieren. vi-Modus der Shell

Die oben genannten Tastenkombinationen kann man auch selbst umdefinieren:
Der Befehl

bind -p | less

zeigt die aktuellen Tastenkombinationen der bash-Shell mit der Bezeichnung der durch die Tasten ausgelösten Funktionen.
Zum Beispiel mit

bind -r "\M-d"

kann man dann die Belegung der Kombination "Alt+d" entfernen.
Mit

bind '"\M-d": kill-word'

(bitte die einfachen Anführungszeichen beachten) kann man die oben bezeichnete Belegung für "Löschen des Wortes nach der aktuellen Cursorposition" wieder zurück auf die Kombination "Alt+d" legen.
Die gewünschten bind-Befehle kann man dann in die Konfigurationsdatei

/home/Benutzer/.bashrc

eintragen.

Wenn man den Editor vim benutzen kann, kann man zudem die Shell mit

set -o vi

in einem vi-Modus ausführen und dann einige der vi-Tastenkombinationen benutzen. Den Befehl kann man ebenfalls in die Konfigurationsdatei

/home/Benutzer/.bashrc

eintragen.


4. Nur Verzeichnisse in einem Verzeichnis anzeigen

Offenbar kann der Befehl "ls" nicht nur die Verzeichnisse in einem Verzeichnis anzeigen, jedenfalls habe ich dazu nichts in "man ls" gefunden.

Man kann dies aber mit folgendem Befehl erreichen:

find . -maxdepth 1 -type d -printf "%P\n" | grep -v -x $

Diesem Befehl sollte man ein "alias" geben, indem man z.B. als root

alias lsd='find . -maxdepth 1 -type d -printf "%P\n" | grep -v -x $'

in die Datei "/etc/bash.bashrc.local" einträgt.


5. Oberen Bildschirminhalt des Terminals zurückholen

Die Ausgabe eines Befehl, etwa von ls -l, läßt im Terminal oft den Bildschirminhalt so weit nach oben scrollen, daß man nicht mehr sieht, was zuerst ausgegeben wurde. Mit der Tastenkombination

Shift+PgUp (Bild nach oben)

kann man den oberen Fensterinhalt wieder zurückholen. Shift+PgDown (Bild nach unten) scrollt wieder nach unten.
Das geht sowohl im Grafikmodus als auch im Textmodus.

Zur bildschirmweisen Ausgaben von Befehlen wie ls -l siehe hier.


6. Ganzen Inhalt des Terminalfensters löschen

Zum Löschen des ganzen Inhalts des Terminalfensters, also nicht nur des gerade sichtbaren Bereichs, gibt es in dem KDE-Terminalprogramm "konsole" den Menüpunkt "Bearbeiten/Terminalinhalt löschen".

In "xterm" muß man dazu

Strg + Mittlere Maustaste
gedrückt halten (bei Zwei-Tasten-Mäsen drückt man anstelle der (fehlenden) mittleren Maustaste beide Maustasten gleichzeitig). Dann erscheint ein Menü. Dort muß man "Reset and Clear Saved Lines" auswählen.


7. Ganzen Inhalt des Terminalfensters kopieren

In dem KDE-Terminalprogramm "konsole" kann man mit dem Menüpunkt "Bearbeiten/Verlauf speichern unter" den ganzen Inhalt des Terminalfensters, also nicht nur den gerade sichtbaren Bereich, abspeichern.

In dem Terminalprogramm "xterm" kann man den Fensterinhalt über den gerade sichtbaren Bildschirm hinaus kopieren, indem man

  1. Den "xterm"-Inhalt ganz nach oben srollt (mit "Shift+PgUp" (siehe oben) oder mit dem "xterm"-Scrollbalken).
  2. Ein paar Zeilen im oberen Bereich mit gedrückter linker Maustaste markiert.
  3. Dann die linke Maustaste losläßt.
  4. Nach unten zur Eingabeaufforderung zurückkehrt.
  5. Das Textende mit der rechten Maustaste anklickt.
Dann ist der ganze Text markiert. Man kann ihn dann mit der mittleren Maustaste, möglicherweise auch mit "Shift+Insert" oder "Ctrl+Insert", an anderer Stelle einfügen.


8. Terminalanwendungen abbrechen und unterbrechen

Mit der Tastenkombination

STRG+c

kann man viele Terminalanwendungen abbrechen, etwa den MP3-Player mpg123 während des Abspielens.
STRG+c hilft manchmal auch, wenn im Terminal unerwartet keine Eingabeaufforderung zu sehen ist, etwa manchmal nach einem logout aus dem Grafkmodus.

Mit der Tastenkombination

STRG+z

kann man laufende Programme unterbrechen. Den Lauf des Programms kann man dann mit dem Befehl

fg

fortsetzen. Das ist ziemlich ungewöhnlich.


9. Terminal nach Start von Programmen weiterbenutzen

Startet man ein Programm vom Terminal aus, ist das Terminal danach blockiert. Will man es aber trotz des Programmstarts weiterbenutzen, muß man dem Befehl ein "&" hinzufügen, also etwa

xmms &


10. Platzhalter (Wildcards)

Systemweite Platzhalter, etwa für cp und cd, sind:

* Steht für beliebig viele beliebige Zeichen.
? Steht für genau ein beliebiges Zeichen, entsprechend steht ?? für zwei beliebige Zeichen.
[ar] Steht für "ar". [a-z] steht für ein Zeichen von a bis z.
. Steht für das aktuelle Verzeichnis (praktisch bei cp).
.. Steht für das übergeordnete Verzeichnis.
/ Steht für das oberste Verzeichnis im Verzeichnisbaum.
~ Steht für das Home-Verzeichnis des aktuellen Benutzers.

Wenn man mehrere Platzhalter zusammen verwendet, ergeben sich weitere Möglichkeiten:

*/. Erfaßt nur die Verzeichnisse im aktuellen Verzeichnis.


11. Dateien finden / Bestimmte Dateien aus Verzeichnissen herauskopieren

Dateien finden kann man mit dem Midnight Commander: Shift+ALT+?.

Außerdem geht es mit dem Befehl

find . -name "Datei"

Ein einfaches find zeigt alle Dateien im aktuellen Verzeichnis an.
Darauf kann man grep anwenden (siehe unten), also zeigt

find | grep mpg

alle Dateien unterhalb des aktuellen Verzeichnisses an, die "mpg" enthalten.

Die so gefundenen Dateien kann man folgendermaßen kopieren:

cp `find | grep mpg` /home/Benutzer

bzw. genauer mit folgendem Befehl (Tipquelle) :

find . -name '*.mpg' -exec cp {} /home/Benutzer/ \;

Wesentlich schneller kann man Dateien mit dem Befehl

locate Datei

suchen. Er greift auf eine Datenbank der Dateinamen in der Datei "/var/lib/locatedb" zu, die allerdings zuvor mit

updatedb

erstellt werden muß, bzw. mit diesem Befehl aktualisiert werden kann.


12. Mausunterstützung im Textmodus

Der Befehl

gpm -m /dev/mouse

aktiviert die Maus im Textmodus.
Das Programm ermöglicht auch das Kopieren und Einfügen von Text im Textmodus (siehe unten -> Text kopieren und einfügen).
Allerdings kann gpm zu Konflikten mit der Mausunterstützung im Grafikmodus führen. Also sollte man es mit

gpm -k

beenden, bevor man den Grafikmodus startet.
Näheres: gpm -h, man gpm


13. Grafische Oberfläche

Die Desktopumgebung heißt "X-Window-System". Dabei läuft nicht nur ein Programm wie bei Windows, sondern zwei Programme, ein sogenannter "X-Server" und ein "X-Client".

Der X-Server stellt das eigentliche System dar.
Der X-Client ist eine Art Terminal, eine Oberfläche, mit der man Eingaben an den X-Server übermitteln kann und Ausgaben zurückerhält.

Der X-Client ist also die Oberfläche, die bestimmt, wie die Fenster aussehen und sich verhalten.
Es gibt anders als bei Windows mehrere Desktop-Umgebungen. Die umfangreichsten und bekanntesten sind "gnome" und "KDE". Hervorragend und schön klein ist "WindowMaker". Diesen benutze ich zur Zeit. Weiter unten beschreibe ich "ratpoison".

KDE-Programme wie konqueror laufen in der Regel zur Not auch unter anderen Windowmanagern, also etwa unter gnome und WindowMaker.

Es gibt jede Menge Themes, um die Fenster und den Desktop gut aussehen zu lassen (siehe die Links unten sowie hier).


14. Fenster ziehen

Hält man ALT gedrückt, kann man die Fenster mit der Maus von jeder Stelle aus, also nicht nur von der Titelleiste aus, hin- und herziehen. Das ist wichtig, wenn etwa ein OK-Button mal außerhalb des sichtbaren Bildschirmbereichs liegt.


15. Fenster maximieren / Vollbild

In gnome gibt es im Menü den Punkt "Keyboard Shortcuts". Hier kann man eine Tastenkombination definieren, die ein Fenster sofort maximiert oder auch ganz auf Vollbild stellt (Bei mir: ALT+x, ALT+y).

In WindowMaker kann man dies in Mandriva 10.1 in dem Programm

/usr/X11R6/GNUstep/Applications/WPrefs.app/WPrefs

einstellen.


16. Text kopieren und einfügen

In vielen Anwendungen funktionieren die von Windows bekannten Tastenkombinationen STRG+c und STRG+v.

Zudem wird Text aber bereits durch das Markieren kopiert. Das heißt, man kann einen Text lediglich markieren und ihn bereits dann durch Drücken der mittleren Maustaste einer 3-Tasten-Maus etwa in eine andere Anwendung einfügen.
Diese Methode funktioniert auch im Textmodus bei Verwendung von gpm (siehe oben).


17. Den Inhalt einer Datei einer anderen Datei anfügen

Der Befehl

cat 1.html >> 2.html

fügt den Inhalt der Datei 1.html der Datei 2.html an. (vgl. auch unten "Ausgaben von Befehlen bildschirmweise ansehen oder umleiten").
Auf diese Weise kann man auch mehrere mpg-Dateien aneinanderfügen.
Leider geht das aber nicht ohne weiteres mit wav- und mp3-Dateien, wahrscheinlich wegen unterschiedlicher Dateiheader.


18. Mehrere Sitzungen

Auch wenn die XWindow-Oberfläche läuft, laufen gleichzeitig mehrere weitere Sitzungen im Textmodus im Hintergrund. Man
kann zwischen den einzelnen Sitzungen mit

STRG+ALT+F1 ..... F7

hin- und herschalten. Dabei läuft die XWindow-Sitzung auf STRG+ALT+F7.

Das bedeutet, man kann die XWindow-Sitzung als normaler Benutzer ausführen und zugleich notwendige Systemarbeiten als
root in einer anderen Textmodussitzung etwa mit dem Midnight Commander durchführen. Das ist in der Regel praktischer, als
den Befehl su zu benutzen.
Ist aber der Rechner online, sind alle Benutzer online, also auch die in der anderen Textmodussitzung. Man sollte sich insoweit
also vorher ausloggen (STRG+d), denn als root im Internet zu sein, wäre ein Sicherheitsrisiko.

(Mehrere grafische Oberflächen starten: Dazu hier.)


19. X-Server killen

STRG+ALT+Backspace (=Rücktaste)

Macht die Grafikeinstellung des X-Servers Probleme, kann man versuchen, im Textmodus mit dem Programm SaX2 eine bessere zu finden.


20. Zwischen verfügbaren Bildschirmauflösungen umschalten

STRG+ALT+Plus auf dem Zahlenblock und
STRG+ALT+Minus auf dem Zahlenblock


21. Autorepeat wiederherstellen

Bei einigen wenigen Anwendungen funktioniert nach dem Beenden die Tastenwiederholung (Autorepeat) nicht mehr.
Diese läßt sich aber leicht wiederherstellen durch Eingabe des Befehls

xset r on


22. Bildschirmschoner abschalten

(Tipquelle)

Im Grafikmodus schaltet sich der Bildschirm standardmäßig nach 10 Minuten Untätigkeit dunkel (einfacher Bildschirmschoner). Dies kann man mit dem Befehl

xset s off

verhindern.


23. Signalton des Terminals abstellen

Im Grafikmodus geht das mit dem Befehl

xset b off

In der Konsole (Textmodus) geht es mit

setterm -blength 0 -store


24. Tastaturbelegungen unter X verändern

Komplexere Umbelegungen von Tastenkombinationen kann man unter X mit dem Befehl

xmodmap

vornehmen:

xmodmap -pke

zeigt die aktuellen Tastaturbelegungen an.

Mit dem Programm

xev

kann man die gewünschten "keycodes" der Tasten herausfinden.

Im Zusammenhang mit Tasten lohnt sich oft auch ein Blick in die Datei

/usr/X11R6/include/X11/keysymdef.h

Für "xmodmap" ist das aber oft nicht erforderlich. Das Umbelegen selbst erfolgt dann z.B. durch einen Befehl wie

xmodmap -e 'keycode 29 = y Y guillemotleft less guillemotleft less'

Bei dauerhafteren Umbelegungen kann man auch eine Datei

/home/Benutzer/.Xmodmap

anlegen.


25. Hilfe

Die Datei /usr/share/doc/howto/de/html/DE-DOS-nach-Linux-HOWTO-1.html (SuSE) sollte man etwa mit konqueror angesehen haben.

Hilfe gibt es ansonsten an fünf Stellen:

1. Befehl --help oder Befehl -?

2. man Befehl

man: Die Hilfeseite wird mit dem Tool less angezeigt. Mit

/Suchwort kann man auf der man-Seite nach dem Suchwort suchen und dann mit n zum jeweils nächsten gehen.

Mit q kann man die Anzeige der man-Seite beenden.

Der Befehl

apropos

hilft einem, eine gesuchte Funktion zu finden.

Im Grafikmodus gibt es zudem noch den weit komfortableren Befehl

xman

Damit kann man mit der Maus nach den passenden man-Seiten suchen und sich diese anzeigen lassen.

3. info Befehl

4. Dokumentationen im Verzeichnis

/usr/share/doc/packages/ (SuSE), bzw. /usr/share/doc/ (Mandriva)

5. Ferner gibt es das SUSE-Help-Center unter KDE.


26. Geräte mounten, Geräte und Partitionen verbergen, Digitalkamera, Windows-Dateisysteme

Bevor man in Linux ein Gerät benutzen kann, muß es erst gemountet, also in den Verzeichnisbaum eingehängt werden. Dies kann man auf dem Desktop machen oder mit dem Befehlt mount. Etwa in /media/ kann man mount cdrom oder mount floppy eingeben.

Braucht man das Gerät nicht mehr, muß man es wieder aushängen, um den Zugriff auf das Gerät auch sicher abzuschließen, sonst können noch Daten gewissermaßen hängen bleiben. Das Aushängen geschieht etwa mit dem Befehl umount.

Die genaue Beschreibung der Geräte befindet sich in der Datei

/etc/fstab

Macht man in dieser Datei vor die Zeile, in der etwa /windows/C steht, das Zeichen #, wird die Zeile nicht mehr ausgeführt, so daß das System /windows/C nicht mehr erkennt und auch nicht mehr mounten kann. Auf diese Weise kann man eine auf dem Rechner befindliche Windows-Partition vor anderen schützen, wenn man online geht.

Ich habe eine USB-Digitalkamera Jenoptik 2100f. Diese wird von SuSE-Linux automatisch erkannt.

Ich kann sie mit folgendem Befehl mounten:

mount -t vfat /dev/sda /media/camera

Das Verzeichnis /media/camera muß natürlich erstellt sein (zB. mit mkdir).

vfat bedeutet Windows-Dateisystem (FAT=File Allocation Table): DOS und Windows 95 A benutzen FAT16, Windows 95 B, 98, ME benutzen FAT32, Windows 2000 kann ebenfalls FAT32 benutzen, aber auch NTFS (NT Filesystem).
Windows XP benutzt NTFS: Hier geht vfat nicht.
Linux kann noch nicht vollständig mit NTFS-Partitionen umgehen. Ich habe gelesen, daß man aber, wenn man Windows XP und Linux auf einem Rechner betreiben will, zusätzlich eine FAT32-Partition erstellen kann, auf die man dann von beiden Betriebssystemen aus zugreifen kann. Ob das geht, weiß ich aber nicht, da ich keine neueren Windows-Versionen habe.

Linux kann über vfat also auf FAT-Partitionen der beschriebenen Windows-Versionen zugreifen und also auch DOS-Disketten lesen und beschreiben, ebenso kann es so die Digitalkamera auslesen (man sollte dabei aber nicht in den Speicher der Digitalkamera schreiben, sondern die Bilder mit der Kamera selbst löschen). Wenn die Gerätebezeichnung /dev/sda nicht gehen sollte, kann man /dev/sda1 oder /dev/sda2 versuchen. Wenn man fertig ist, umount /media/camera nicht vergessen.

Klappt die Einbindung der Digitalkamera so nicht, kann möglicherweise das Programm gphoto2 helfen.


27. Verborgene Dateien auf CDs anzeigen

Manche CDs sind für Windows und Apple Macintosh zugleich bestimmt.
Wenn man diese CDs unter Linux als Windows-CDs mountet, werden unter Umständen nicht alle vorhandenen Dateien und Verzeichnisse angezeigt.
Diese CDs sollte man unter Linux als Mac-CDs mounten. Das geht als root mit dem Befehl:

mount -t hfs /dev/cdrom /media/cdrom

Dann sollte man alle Dateien und Verzeichnisse sehen.

Wegen Musikstücken von AudioCDs siehe hier.


28. Auf mit Windows / MS-DOS formatierte Disketten zugreifen

Mit Windows / MS-DOS formatierte Disketten kann man mit mount /media/floppy einbinden, dann dort darauf zugreifen und mit umount /media/floppy wieder aushängen.

Man kann aber auch die Programme von mtools benutzen. Diese stellen dafür, insbesondere für kurze Kopieraktionen besondere Befehle bereit, etwa

mdir a:

oder

mcopy a:datei ~


29. Auf mit Apple Macintosh formatierte Disketten zugreifen

Unter Mandriva 10.1 können auch Apple-Macintosh-Dateisysteme eingebunden werden:

mount -t hfs /dev/fd0 /media/macfloppy

gewährt Zugriff auf eine Mac-formatierte Floppy im gegebenenfalls zu erstellenden Verzeichnis /media/macfloppy.

Die Art der Mac-Dateien kann möglicherweise nicht richtig erkannt werden. Sie sollten daher gepackt auf der Diskette gespeichert sein.


30. Auf Iomega-Zip-Laufwerke-100-Parallelport zugreifen

Parallelport-Zip-Laufwerke können unter Mandriva 10.1 ähnlich wie Parallelport-Joysticks in das System eingebunden werden.
Ich empfehle daher, bezüglich der Hintergründe zunächst den Abschnitt "Parallelport-Joystick einbinden / Kernel-Module verwalten / joy2key" weiter unten zu lesen.

Die Einbindung des Zip-Laufwerks erfolgt dann als root folgendermaßen:

Verzeichnis zum Mounten erstellen: mkdir /mnt/zip

Gegebenenfalls Druckermodul abkoppeln: rmmod lp

Treibermodul für Zip-Laufwerk ankoppeln: modprobe ppa

Bei mir fängt das Zip-Laufwerk dann an zu laufen, und das System erstellt automatisch ein Device /dev/sda4, trägt eine neue Zeile in /etc/fstab ein und mountet das Laufwerk unter /mnt/zip.
Gegebenenfalls kann man noch "mount -t vfat /dev/sda4 /mnt/zip" versuchen.

Dann sollte man problemlos auf das Laufwerk zugreifen und es mit "umount /mnt/zip" wieder aushängen können.
Das System behandelt Parallelport-Zip-Laufwerke übrigens intern wie SCSI-Laufwerke.
Es gibt auch ein neueres Treibermodul imm, das möglicherweise anstelle ppa angekoppelt werden kann, also statt "modprobe ppa" dann "modprobe imm".
Bei mir funktioniert nur ppa, aber das genügt auch.


31. Knoppix-Image mounten

Knoppix ist eine Linux-Live-Distribution auf einer CD. Das gesamte Linux-System befindet sich dabei in einer Image-Datei mit dem Namen "KNOPPIX", z.B. in

/media/cdrom/KNOPPIX/KNOPPIX

wenn das CD-Rom-Laufwerk in "/media/cdrom" eingehängt ist. Man kann auf das Knoppix-Image zugreifen, indem man als root ein cloop-Device einrichtet:

mkdir knop
modprobe cloop file=/media/cdrom/KNOPPIX/KNOPPIX
mount -r -t iso9660 /dev/cloop0 knop/
cd knop

Allerdings bringt das meist nicht so viel, wenn man Programme von dort kopieren möchte, denn es befinden sich dort keine rpm-Pakete, sondern entpackte, ausführbare Dateien, die für Debian kompiliert sind.


32. Entpacken

Linux-Dateien liegen standardmäßig im .tar.gz oder .tgz-Format vor (tar=Tape Archive, gz von gzip).

Entpacken geht mit

tar -xzvf Datei.tar.gz

Dateien im Format .tar.bz2 kann man mit dem Befehl tar -xjvf Datei.tar.bz2 entpacken.

Auch der Midnight Commander (mc -b) kann mit gepackten Dateien umgehen. Er kann sogar einzelne Dateien aus
rpm-Archiven auslesen (dazu siehe unten (-> Midnight Commander)). Mit dem Befehl rpm selbst geht das nicht.

Zum Entpacken von Apple-Macintosh-typischen Archivdateien wie .sit gibt es das Paket macutils...rpm.


33. Packen, Dateien zerteilen

tar -czvf archiv.tar.gz datei.txt

erstellt das Archiv archiv.tar.gz mit dem Inhalt datei.txt.

zip archiv.zip datei.txt

erstellt archiv.zip mit dem Inhalt datei.txt.

zip -r archiv.zip verzeichnis

packt das Verzeichnis "verzeichnis".

lha a archiv.lha datei.txt

erstellt archiv.lha mit dem Inhalt datei.txt. Mit "lha ew=/home/Benutzer/ archiv.lha" oder auch nur "lha e archiv.lha" kann man es wieder entpacken.

Ansonsten kann man die grafischen Werkzeuge ark und file-roller benutzen.

(Noch nicht getestet:) Mit dem Befehl

split

kann man Dateien in kleinere Stücke zerteilen, etwa um diese auf Disketten zu speichern. Die Dateiteile kann man später mit

cat teil2 >> teil1

wieder zusammenfügen.


34. Im Textmodus starten; Bildschirm vor Login löschen

In der Datei

/etc/inittab

gibt es die Zeile

id:5:initdefault

Diese kann man (als root; z.B. mit gedit, kate oder mcedit) zu

id:3:initdefault

editieren.

Dann bootet Linux in den Textmodus. Von dort kommt man mit startx in den Grafikmodus.

Mich hat gestört, daß beim Login im Textmodus immer noch die Bootmeldungen zu sehen waren.
Dies habe ich unter SuSE 8.1 geändert, indem ich der Datei /etc/init.d/rc nach Erstellen einer Sicherungskopie vor der Zeile "For the first logon on a virtual console" als root folgendes angefügt habe:

if test "$RUNLEVEL" = "3" ; then
    clear
fi

Ein einfaches "clear" genügte nicht, da dann auch beim Herunterfahren am Ende der Bildschirm gelöscht wurde.
Die Bootmeldungen können dann immer noch in /var/log/boot.msg eingesehen werden. Daneben gibt es den Befehl "dmesg".


35. Mehrere grafische Oberflächen starten

Etwa mit STRG+ALT+F3 auf andere Textkonsole wechseln, gegebenenfalls als neuer Benutzer anmelden und

startx -- :1

eingeben, während in einer anderen Sitzung bereits ein X-Server läuft.
Dann kann man mit STRG+ALT+F7 und STRG+ALT+F8 zwischen den grafischen Sitzungen hin- und herschalten.


36. Grafische Programme als root in der X-Server-Sitzung eines Benutzers starten

Hierzu muß der Benutzer seine X-Server-Sitzung für andere öffnen (Sicherheitsrisiko):

xhost +localhost

Dann root werden:

su -l

und

export DISPLAY=localhost:0

ausführen.

Dann das Programm ausführen.

Zur Sicherheit immer nach dem Ausloggen als root (STRG+d) die X-Server-Sitzung wieder auf den Benutzer beschränken:

xhost -localhost


37. Einstellungen des Bootmanagers (grub) ändern

In der Datei

/boot/grub/menu.lst

kann man einstellen, wie lange das Bild des Bootmanagers angezeigt werden soll und von welcher Partition, also welche Installation standardmäßig gebootet werden soll.

Die Datei enthält mehrere Boot-Möglichkeiten, die jeweils mit

title ....

bezeichnet sind.

Will man etwa die oberste Möglichkeit (zB. Linux) standardmäßig booten, setzt man

default 0

Soll das Bild des Bootmanagers schnellstmöglich verschwinden, setzt man

timeout 1
(Bei timeout 0 wartet grub, bis eine Taste gedrückt wird.)


38. Tastaturmaus / Tastaturmaus automatisch einschalten / Tastenbelegung der Tastaturmaus umkonfigurieren

Die Tastaturmaus (Mauspfeil mit Zahlenblock der Tastatur bewegen, Linksklick mit 5 im Zahlenblock) kann man in gnome unter Accessibilitiy im Menü aktivieren. Diese Funktion heißt "MouseKeys". Sie ist Teil der Eingabehilfen des X-Servers "AccessX".

Zum Aktivieren genügt oft schon die Tastenkombination

Shift+NumLock oder STRG+Shift+NumLock

("NumLock" findet man links oben im Zahlenblock der Tastatur, in der Regel über der "7").

Auch mit anderen Windowmanagern als gnome und KDE kann man die Tastaturmaus automatisch beim Start des X-Servers einschalten.
Hierfür benötigt man das Programm xkbset, das hier heruntergeladen werden und sodann mit dem Befehl "make" kompiliert werden kann (dazu siehe unten).
Dann kann man die Tastaturmaus neben der oben genannten Tastenkombination mit dem Befehl "xkbset m" ein- und ausschalten. Diesen Befehl kann man als root in die Datei

/etc/X11/xinit/xinitrc

an der Stelle "Add your own lines here" eintragen (dazu hier). Dann wird er bei jedem Start des X-Servers automatisch ausgeführt.

In neueren Versionen der SuSE-Distribution gibt es allerdings schon ein anderes Programm xkbset, das mit dem oben genannten Programm nichts zu tun hat. Um Verwechslungen zu vermeiden, sollte man daher eines der Programme umbenennen, am besten das Tastaturmausprogramm, das nicht von Systemdateien der Distribution verwendet wird, z.B. in xkbset2.

Für diejenigen, die nicht selbst kompilieren möchten, gibt es hier eine ausführbare Datei von xkbset, die ich kompiliert habe.
Die Zip-Datei enthält noch "xsel", das weiter unten beschrieben wird.

Man kann auch die Tastenbelegung der Tastaturmaus umkonfigurieren und so an seine Bedürfnisse anpassen.
Hierzu macht man von der Datei

/etc/X11/xkb/compat/mousekeys

eine Sicherungskopie und editiert diese dann als root.
Wenn man dort z.B. die Zeilen

interpret KP_4 { 
     action = MovePtr(x=-1,y=+0); 
     };

zu

interpret KP_4 { 
     action = PointerButton(button=2);
     };

verändert, hat man auf der Taste "4" des Zahlenblocks der Tastatur statt "Mausbewegung nach links" "Klick mit mittlerer Maustaste".
Das, zusammen mit "Klick mit rechter Maustaste" auf der Taste "6" des Zahlenblocks (Veränderung von

interpret KP_6 {action = MovePtr(x=+1,y=+0);};

zu

interpret KP_6 {action = PointerButton(button=3);};

), ist sehr praktisch.


39. Dateien umbenennen (mmv, rename)

Einzelne Dateien können in einem grafischen Dateimanager (wie nautilus, konqueror, krusader, etc.) oder auf dem Desktop umbenannt werden. Im Terminal geht es mit dem Befehl mv, der eigentlich Dateien verschiebt (move).
Für komplexere Umbenennungen mehrerer Dateien sowie von Verzeichnissen gibt es den Befehl mmv, der aber leider eine etwas komplizierte Syntax aufweist.

Angenommen, in einem Verzeichnis sind die Dateien bild1.jpg, bild2.jpg, bild3.jpg, etc.
Um diese mit mmv zu x1.jpg, x2.jpg, x3.jpg, etc. umzubenennen, gibt man folgendes ein:

mmv -r "bild*.jpg" "x#1.jpg"

#1 im to-Parameter steht dabei also für das Ergebnis des ersten Platzhalters im from-Parameter.

Ein anderes Beispiel: Man kann die Dateinamen in einem Verzeichnis einschließlich aller Unterverzeichnisse in Kleinbuchstaben umwandeln (Vorsicht, gegebenenfalls Gefahr der Verwechslung von Dateien/Dateinamen). Das geht mit:

mmv -r ";*" "#l2"

Neben mmv gibt es noch den Befehl rename. Dieser erwartet drei Parameter:

  1. Die Zeichenfolge, die innerhalb der Dateinamen umbenannt werden soll.
  2. Die Zeichenfolge, in die die Zeichenfolge von 1. umbenannt werden soll.
  3. Die Dateien, die umbenannt werden sollen.

Angenommen, in einem Verzeichnis sind die Dateien bild1.jpg, bild2.jpg, bild3.jpg, etc.
Um das Ergebnis des Beispiels oben mit bild1.jpg, usw. mit rename zu erreichen, gibt man also folgendes ein:

rename bild x *.jpg


40. Eigene Skripte verwenden

Man kann mit einem Editor wie vi oder mcedit -b eigene Skripte erstellen. Das sind Dateien, die beliebig viele hintereinander auszuführende Konsolenkommandos enthalten (vergleichbar autoexec.bat unter DOS; die hier beschriebenen Linux-Skripte sollen aber nicht automatisch beim Systemstart ausgeführt werden).
Die erstellten Skripte kann man dann, wenn man die nötigen Benutzerrechte hat und mit "chmod +x skript" das Attribut "ausführbar" für das Skript gesetzt hat, ausführen. Dies geht entweder mit einem erneuten Aufruf der Shell, also mit

bash skript

oder

sh skript

oder man führt das Skript ohne erneuten Aufruf der Shell aus. Ist das Skript im aktuellen Verzeichnis und ist dieses nicht in PATH enthalten, muß man noch angeben, daß man sich auf das aktuelle Verzeichnis bezieht, das durch "." symbolisiert wird. Zum Aufruf des Skripts im aktuellen Verzeichnis gibt man dann also

./skript

ein.

Man kann die Skripte dann in dem Verzeichnis

/usr/local/bin

ablegen. Da vom System für dieses Verzeichnis bereits standardmäßig die Variable PATH gesetzt ist, lassen sich die Skripte dann von jedem Verzeichnis aus ausführen.
Es ist sinnvoll in dem Skript anzugeben, mit welcher Shell es ausgeführt werden soll. Zur Ausführung mit bash oder sh gibt man dazu in der ersten Zeile des Skripts an:

#!/bin/bash

bzw.

#!/bin/sh

Diese erste Zeile im Skript nennt man "shebang": "sh'" steht für sharp (#), "bang" für das Ausrufezeichen.

Erstellt man also etwa eine solches Skript mit dem Inhalt

#!/bin/sh
startx gnome

nennt dieses x, bringt es nach /usr/local/bin und setzt die Benutzerrechte auf "ausführbar", kann man von jedem Verzeichnis aus einfach x eingeben, um vom Textmodus aus den Grafikmodus mit gnome zu starten.

Näheres zum Erstellen von Bash-Skripten auf der ausgelagerten Seite "Bash-Skripte erstellen - Die Shell als Programmiersprache".


41. Alias-Befehle verwenden

Mit dem Befehl alias kann man eigene Bezeichnungen für Befehle bestimmen. Etwa nach

alias x="startx windowmaker"

kann man x eingeben, um vom Textmodus aus den Grafikmodus mit WindowMaker zu starten.
Damit das System die alias-Befehle schon beim Start erkennt, gibt man die alias-Zeilen in eine etwa mit mcedit zu erstellende Datei

/etc/bash.bashrc.local
(SuSE) ein.
In Mandriva muß man die alias-Befehle in die Datei
/etc/profile.d/alias.sh

eintragen.

Praktisch ist etwa die Zeile

alias m="mc -Pb"

Bei Eingabe von "m" startet dann der Midnight Commander immer mit weißer Schrift auf schwarzem Grund.


42. Variablen im Terminal verwenden

Im Terminal kann man Variablen definieren, etwa für ein Verzeichnis:

HM=/home/Benutzer/

Wenn man diese Variablen in Befehlen verwendet, muß man ein "$" davorsetzen.
Dann kann man die Variable anstelle des definierten Inhalts benutzen. So kopiert dann

cp datei $HM

die Datei "datei" nach /home/Benutzer/.
Variablen werden traditionell großgeschrieben.
Die Variablen stehen zunächst jedoch nur im aktuellen Terminal (in der aktuellen Shell) zur Verfügung.
Um sie systemweit verfügbar zu machen, muß man die Datei

/etc/profile.local
(SuSE) editieren und dieser die Zeile
export HM=/home/Benutzer/

hinzufügen. Mit

set

oder

set | less

(siehe auch hier) kann man sich die vom System vergebenen, allgemein verfügbaren Variablen (die sogenannten Umgebungsvariablen) anzeigen lassen. Hier findet man auch die Variable PATH, die die Verzeichnisse bezeichnet, in denen Linux nach Befehlen sucht und die Variable WINDOWMANAGER, die den zu verwendenden Windowmanager bei Ausführung von startx festlegt.

Befehle, die nicht im PATH des Benutzers sind, können durch Angabe des vollen Pfad ausgeführt werden.
So kann grundsätzlich jeder Benutzer wavplay durch Eingabe von /usr/X11R6/bin/wavplay (SuSE) ausführen.

Zu Variablen in Shell-Skripten siehe hier.


43. Uhr einstellen / Zeit / Falschgehen der Uhr beheben

Zeit und Zeitzone kann man in yast2, bzw. im Mandrake Control Center drakconf einstellen.

Da Linux ein Multiuser-System ist und die Benutzer sich auf der ganzen Welt befinden können, muß man die weltweite Zeit (UTC) von der Zeit in der eigenen Zeitzone unterscheiden. Man stellt die eigene Zeitzone ein, damit dann die lokale Zeit abweichend von der weltweiten Zeit berechnet werden kann.
Die aktuelle Zeitzone ist in /etc/localtime angegeben, alle verfügbaren Zeitzonen in /usr/share/zoneinfo.
Außerdem unterscheidet man die Hardwarezeit, die im BIOS angezeigt und durch eine Batterie aufrechterhalten wird und die Systemzeit.
Das System muß wissen, ob die Hardwarezeit (/usr/sbin/hwclock) die weltweite Zeit oder die lokale Zeit anzeigt. Dies richtet sich nach den Einträgen in /etc/sysconfig/clock, ferner /etc/adjtime.
Die Systemzeit kann dann sowohl als weltweite Zeit (date -u) als auch als lokale Zeit (date) angezeigt werden.

Mit

ntpdate ptbtime2.ptb.de

kann man als root (ggf. -> sudo definieren, um nicht als root online zu sein) die Systemzeit über das Internet einstellen lassen. Auf dem genannten Server (ptbtime2.ptb.de) wird die Zeit von einer Atomuhr zur Verfügung gestellt.

Mit

hwclock --systohc

kann man dann die Systemzeit auch auf die Hardwarezeit übertragen.

Näheres: man hwclock.
Zum Stellen der Systemzeit sollte man im Zweifel lieber yast2, bzw. drakconf als date -s verwenden.

Geht die Uhr auch nach mehrmaligem Stellen falsch, zum Beispiel um 6 Minuten pro Stunde, kann das an fehlerhaften Einstellungen in der Datei

/etc/adjtime

liegen, die eigentlich leichte Abweichungen der Uhr ausgleichen soll.
Man muß dann als root eine Sicherheitskopie der Datei erstellen, dann diese löschen und mit YaST2 die Uhr neu stellen.
Dabei sollte eine neue Datei /etc/adjtime erstellt werden, die dann richtige Einstellungen aufweisen müßte, so daß die Uhr dann richtig gehen sollte.


44. Datum von heute und anderen Tagen anzeigen

Der Befehl "date" zeigt das aktuelle Datum und die aktuelle Zeit an.

date +%x

zeigt das Datum in deutscher Formatierung an, wenn deutsche Locales (siehe Befehl "locale") eingestellt sind.

"date" kann auch Datum, Wochentag, usw. von anderen als dem heutigen Tag anzeigen. Zum Beispiel zeigt der Befehl

date --date="10 days"

die Werte für heute in 10 Tagen an.

date --date="2 days ago"

zeigt die Werte für vorgestern an. Näheres: "man date", "info date".


45. Ausgaben von Befehlen bildschirmweise ansehen oder umleiten

Sind viele Dateien in einem Verzeichnis, scrollt ls den Inhalt zu schnell nach oben.
Mit folgendem Befehl kann man aber die Ausgabe von ls mit dem Tool less bildschirmweise anzeigen lassen:

ls | less

Das Zeichen "|" erhält man durch AltGR+<.
Auf diese Weise kann man ganz allgemein viele Ausgaben von Befehlen auf andere Befehle zur Weiterverarbeitung umleiten.
So zeigt etwa

ls | w3m

den Inhalt eines Verzeichnisses in w3m,

ls | grep x

zeigt nur Dateien an, die "x" enthalten.
Die Umleitung von Befehlsausgaben auf andere Befehle (man nennt dies das Erstellen einer "Pipe") eröffnet Möglichkeiten zur Programmierung von Shell-Skripten.

Mit dem Befehl

ls > Datei

wird die Ausgabe von ls in die Datei "Datei" geleitet. Dort kann sie weiterbearbeitet werden (vgl. auch oben).


46. Im Terminal Berechnungen wie mit einem Taschenrechner durchführen

Dazu läßt man mit "echo" einen Ausdruck ausgeben und leitet diesen in den Befehl "bc" um. So erhält man mit

echo 4+5 | bc

die Ausgabe "9".


47. Bestimmte Zeilen aus Texten und Befehlsausgaben heraussuchen: grep

Der Befehl "grep" durchsucht einen mehrzeiligen Text nach einem Suchwort oder einem Suchmuster und gibt die gefundenen Zeilen auf dem Bildschirm aus.

Der zu durchsuchende Text kann insbesondere die Ausgabe eines anderen Befehls sein, die über eine Pipe "grep" zugeleitet wird (dazu siehe oben). Zum Beispiel gibt ein einfaches "find" die Namen aller Dateien, Verzeichnisse und Unterverzeichnisse im aktuellen Verzeichnis als mehrzeiligen Text aus. Auf diese Ausgabe kann man dann "grep" anwenden, um nur diejenigen Dateien und Verzeichnisse angezeigt zu bekommen, deren Name einen bestimmten Text enthält. So zeigt

find | grep html
nur solche Dateien und Verzeichnisse im aktuellen Verzeichnis, deren Name "html" enthält.

Im obigen Beispiel würden jedoch auch Dateien gefunden, deren Name "html" in der Mitte enthält. Um noch gezielter suchen zu können unterstützt "grep" auch reguläre Ausdrücke als Suchmuster. So findet

find | grep 'html$'
nur Dateien und Verzeichnisse, deren Name auf "html" endet.

Ruft man nur "grep" mit einem Suchwort (oder Suchmuster) und einem Dateinamen auf, so wird die angegebene Datei nach dem Suchstring durchsucht, und die gefundenen Zeilen werden ausgegeben. Der Befehl

grep -ir wort *

durchsucht demnach alle Dateien im aktuellen Verzeichnis und allen Unterverzeichnissen ("grep"-Option "-r"), die den Begriff "wort" enthalten, wobei Groß-/Kleinschreibung ignoriert wird ("grep"-Option "-i"). Die gefundenen Zeilen und der Name der Dateien, in denen sie gefunden wurden, werden ausgegeben. Das ist recht praktisch, wenn man in einem Verzeichnis nach einer (Text-)Datei mit einem bestimmten Inhalt sucht. Der Midnight Commander bietet für diese Funktion eine grafische Suchmaske (Tastenkombination: Shift+Alt+?).


48. Für Fortgeschrittene: Textzeilen zerteilen und ändern: awk und sed

Angenommen, eine Textdatei "datei" enthält eine Zeile mit dem Inhalt:

Anton;Berta;Cäsar;Dora;Emil

Dann gibt

grep Berta datei

diese Zeile aus. Mit "awk" kann man diese Zeile zerteilen. Dazu muß "awk" einen Input erhalten, wissen, bei welchem Zeichen die Trennung vorgenommen werden soll und was es mit dem Ergebnis tun soll. Folgender Befehl gibt in dem Beispiel das Teilstück "Anton" aus:

grep Berta datei | awk -F ";" '{print $1}'

Das Trennzeichen für "awk" wird also mit der Option "-F" angegeben und die speziellen awk-Bearbeitungsbefehle für die Textteile (z.B. "print") in geschweifte Klammern gesetzt, die in einfachen Anführungszeichen eingeschlossen werden.

In dem Beispiel hätte man auch schreiben können:

awk -F ";" '{print $1}' datei

awk kennt so viele Optionen, daß es eigentlich eine eigene Programmiersprache ist. Näheres: "man awk".

Viele Funktionen, die awk bietet, sind in die Programmiersprache "Perl" eingeflossen. Später wurden diese Funktionen auch in die Programmiersprache "Python" übernommen. In Python würde das obige Beispiel z.B. lauten:

python -c 'print file("datei","r").readline().split(";")[0]'

Und in Perl:

perl -e 'open(IN,"datei");my $a=<IN>;my @b=split(";",$a);print $b[0]."\n";close IN;'

Mit dem Streameditor "sed" kann man Input, der z.B. wie oben bei awk über eine Pipe kommen kann, per Befehl editieren.
Ähnlich wie bei awk gibt es hier zahlreiche, zum Teil recht kryptische Optionen, so daß auch dieser Befehl meist bei der Programmierung von Shell-Skripten verwendet wird.


49. Textdateien mit Windows austauschen. Textdateien und Dateinamen umkodieren

Linux verwendet in Textdateien ein anderes Zeilenendezeichen als DOS und Windows. Daher werden Linux-Textdateien unter diesen Betriebssystemen nicht richtig dargestellt. Mit den Programmen

unix2dos

und

dos2unix
kann man Textdateien jedoch in das Zeilenendezeichenformat des jeweils anderen Betriebssystems umwandeln.

Textdateien sind in einer bestimmten Kodierung gespeichert. Dies betrifft insbesondere die deutschen Umlaute "äöüÄÖÜß". Diese sind im ASCII-Zeichensatz ("man ascii") nicht enthalten. Sie werden jedoch im Zeichensatz "ISO-8859-1" (= "Latin-1") richtig dargestellt ("man ISO-8859-1"). Noch mehr Sonderzeichen verschiedener Sprachen können mit dem Unicode-Zeichensatz "UTF-8" ("man UTF-8") dargestellt werden. Jedoch wird in "UTF-8" kodierter Text nicht immer richtig erkannt und dann falsch dargestellt. Mit dem Programm "recode" kann man Textdateien umkodieren. Enthält z.B. die Datei "datei" Unicode-Zeichen, deren Darstellung Probleme bereiten, kann man die Datei mit

recode UTF-8..ISO-8859-1 datei

nach "ISO-8859-1" umkodieren, so daß sie dann wieder richtig dargestellt wird.

Auch bei Dateinamen kann der Zeichensatz Probleme bei der Darstellung bereiten. Dort verwendet man zum Umkodieren den Befehl

convmv

Windows verwendet übrigens in der Regel den Zeichensatz "CP1252" (der "ISO-8859-1" recht ähnlich ist). Mit dem Befehl

recode ISO-8859-1..CP1252/CR-LF datei

kann man eine Textdatei "datei" also hinsichtlich Zeichensatz und Zeilenendezeichen von "Unix/ISO-8859-1" in das Windows-Format bringen.


50. Einfaches Verschlüsseln von Text mit "gpg"

Um beispielsweise den Text

For your eyes only !

mit dem Passwort

Melina

mit dem Programm "gpg" zu verschlüsseln, schreibt man den Text zunächst in eine Datei:

echo 'For your eyes only !' > unencrypted.txt

Dann ruft man "gpg" folgendermaßen auf:

echo 'Melina' | gpg --batch --textmode --passphrase-fd 0 -o encrypted.txt -c unencrypted.txt

Dann findet sich der verschlüsselte Text in der Datei "encrypted.txt". Diese Datei enthält in der Regel zahlreiche nicht-druckbare Zeichen, so daß eine Ausgabe im Terminal, etwa mit "cat", die aktuellen Terminal-Einstellungen beschädigen kann.

Um einen auf diese Weise verschlüsselten Text wieder zu entschlüsseln, ruft man "gpg" so auf:

echo 'Melina' | gpg --batch --textmode --passphrase-fd 0 -d encrypted.txt > decrypted.txt

Der entschlüsselte Text wird dann in der Datei "decrypted.txt" gespeichert.

Für "gpg" ist dieses einfache Verfahren eher die Ausnahme: Normalerweise nimmt es asymmetrische Verschlüsselungen mit öffentlichen und privaten Schlüsseln vor, verwaltet für jeden Benutzer eine Vielzahl solcher Schlüssel und erzeugt gegebenenfalls auch Signaturen.


51. Mit einem Terminal-Befehl auf die Zwischenablage des X-Servers zugreifen

Hierfür benötigt man das Programm xsel, das hier heruntergeladen werden und sodann wie auf der Web-Seite beschrieben kompiliert werden kann (dazu siehe unten).
Dann kann man mit dem Befehl

xsel -c

in die Zwischenablage und mit dem Befehl

xsel -p

den Inhalt aus der Zwischenablage kopieren.

Für diejenigen, die nicht selbst kompilieren möchten, gibt es hier eine ausführbare Datei von xsel, die ich kompiliert habe.
Die Zip-Datei enthält noch "xkbset", das weiter oben beschrieben wird.


52. Befehle beim Start der grafischen Oberfläche automatisch ausführen

Unter SuSE 8.1 liegt im /home/-Verzeichnis des Benutzers die Datei

.xinitrc

In dieser Datei gibt es einen Punkt "Add your own lines here". Dort kann man Befehle eintragen, die dann beim Start des X-Servers automatisch ausgeführt werden.
Wenn man zum Beispiel nur selten auf die Windows-Partition zugreift und deshalb das Icon dieser Partition nicht immer auf dem Desktop angezeigt bekommen möchte, kann man dort die Zeile

umount /windows/C

eintragen (wesentlich eleganter ist es insoweit aber, lediglich in der Datei

/etc/fstab

bei der Windows-Partition die Option noauto anzugeben).


53. Befehle beim Start von Linux automatisch ausführen (SuSE)

Beim Systemstart wird zunächst der Bootmanager (z.B. grub) gestartet.
Danach wird das Skript /etc/init.d/boot ausgeführt.
Befehle, die in diesem Stadium automatisch ausgeführt werden sollen, kann man als root in die Datei

/etc/init.d/boot.local

eintragen.

Danach durchläuft das System mehrere sogenannte Runlevel, in denen von dem Skript

/etc/init.d/rc

verschiedene Dienste gestartet werden. Wenn das System Runlevel 3 erreicht hat, steht der Textmodus zur Verfügung und man kann sich einloggen (siehe oben).

Um in den Runleveln eigene Skripte zu starten, geht man folgendermaßen vor (Achtung ! Das ist etwas für fortgeschrittene Anwender ! Schlimmstenfalls kann es passieren, daß das System nicht mehr startet !):

Man erstellt als root ein eigenes Skript, macht es ausführbar (chmod +x skript) und kopiert es nach

/etc/init.d/

Dann startet man YaST2. Unter "System" findet man einen Runlevel-Editor. Unter Runlevel-Eigenschaften werden die Skripte von /etc/init.d/ angezeigt. Man markiert das eigene Skript und klickt die Runlevel an, in denen es ausgeführt werden soll.
YaST2 erstellt dann etwa in /etc/init.d/rc.3.d einen Link auf das Skript.
Dieser sieht etwa so aus:

@S16skript

"S" steht dabei für "start", "K" für "kill" (stop).
Die Zahl gibt an, in welcher Reihenfolge die Dienste gestartet werden. Durch Umbenennen des Links, etwa zu @S05skript, kann man diese Reihenfolge verändern.


54. Einen neuen Benutzer anlegen, seine Gruppenzugehörigkeiten ändern und ihn wieder löschen

Einen neuen Benutzer kann man als root mit den Installationswerkzeugen der Distribution wie z.B. YaST2 (SuSE) anlegen.

Es geht aber auch im Terminal.
Z.B. wird der Benutzer "myuser" mit dem Passwort "mypassword" und einem Benutzerverzeichnis in "/home" mit folgenden Befehlen angelegt :

useradd -m myuser
echo -n mypassword | passwd myuser --stdin

Die Gruppenzugehörigkeiten des Benutzers, die durch

groups myuser

angezeigt werden können, können durch Bearbeiten der Datei

/etc/group

geändert werden. Dies geht auch mit dem Befehl "groupmod". So fügt

groupmod -A myuser floppy

den Benutzer "myuser" der Gruppe "floppy" hinzu,

groupmod -R myuser floppy

entfernt ihn wieder aus dieser Gruppe.

Der Benutzer einschließlich Benutzerverzeichnis kann mit

userdel -r myuser

wieder insgesamt gelöscht werden.


55. Farbe des Hintergrunds des X-Servers beim Start ändern (teils)

Auch wenn man nicht grafische Logins (wie kdm oder xdm) verwendet, kann man die Farbe des Hintergrunds des Grafikmodus z.B auf schwarz festlegen.
Dies geht als root mit dem Befehl

xsetroot -solid black

Unter Mandriva 10.1 ist dieser Befehl mit einer anderen Farbe auch in den Startdateien des X-Servers zu finden, nämlich in

/etc/X11/xinit/xinitrc

und

/etc/X11/Xsession

Dort kann man die Farbe einstellen (vorher Sicherungskopien der Dateien machen !).
Es muß allerdings noch einen anderen Ort geben, denn die Farbe wird beim Start des X-Servers nochmals geändert.


56. Hintergrundbild in WindowMaker einstellen

Geht auch mit dem Befehl

wmsetbg datei.jpg


57. Dateitypen Anwendungen zuordnen im Dateimanager nautilus (gnome)

Die Datei mit der rechten Maustaste anklicken, im Menü "Open with", "An Application" auswählen.
Ist dem Dateityp noch keine Anwendung zugeordnet, öffnet sich dann ein Fenster, in dem man "Associate Application" auswählen kann.


58. Verwaltung der Linux-Softwarepakete / rpm

Normalerweise sollte man rpm-Software-Pakete mit YaST2 (SuSE) bzw. drakconf (Mandriva) installieren und verwalten.
Unter SuSE kann man konqueror benutzen, um bezüglich einer bestimmten rpm-Datei YaST2 zu starten (dazu siehe unten).
Außerdem gibt es aber auch den Befehl "rpm", der zusätzlich noch weitere Optionen bietet:

rpm -i x.rpm

installiert das Paket x.rpm (Vorsicht ! Lieber drakconf, bzw. YaST2 benutzen !)
Unter SuSE kann man nach "rpm -i" als root gegebenenfalls "/sbin/SuSEconfig" ausführen, damit gewisse Systemeinstellungen auf die neue Software angepaßt werden.

rpm -i x.rpm --nodeps --force

installiert das Paket x.rpm auch dann, wenn "rpm" meint, daß Paketabhängigkeiten verletzt würden oder das Paket bereits installiert ist (Vorsicht ! Lieber drakconf, bzw. YaST2 benutzen !)

rpm -evh x.rpm

löscht das Paket x.rpm (Vorsicht !!)

rpm -qa

zeigt alle rpm-Pakete an, die installiert sind.

rpm -qa | grep ger

zeigt alle installierten rpm-Pakete an, die die Zeichenkette "ger" enthalten.

rpm -ql Paket

zeigt die Dateien an, die das installierte Paket "Paket" (Name ohne .rpm-Endung eingeben) enthält.

rpm -qf /etc/gtk

zeigt das installierte Paket an, das die Datei /etc/gtk enthält. Cool.

rpm -qpi --provides *.rpm | less

durchsucht alle noch nicht installierten rpm-Pakete in einem Verzeichnis, etwa auf einer CD, und zeigt mit "less" alle Dateien an, die die Pakete enthalten. In "less" kann dann mit "/" nach dem Paket gesucht werden, das eine bestimmte gesuchte Datei enthält.

rpm -qpli *.rpm | less

durchsucht alle rpm-Pakete in einem Verzeichnis und zeigt alle enthaltenen Informationen an.

Einzelne Dateien aus einem rpm-Paket herauskopieren kann man mit dem Midnight Commander.
Es geht aber auch mit den Befehlen "rpm2cpio" und "cpio":

rpm2cpio x.rpm | cpio -i --make-directories

entpackt das Paket "x.rpm" in das aktuelle Verzeichnis.


59. Wecker. Chime on the hour. Befehle und Skripte zu bestimmtem Zeitpunkt ausführen.

(Zu crontab frei nach: PC-Welt Linux Extra 05/2004, S. 148)

Einen Wecker verspricht das KDE-Programm khrono; das SuSE-RPM-Paket für 8.1 läuft bei mir aber nicht.
Aber es geht auch ohne khrono, nämlich mit dem Befehl at.

Der Befehl

at 15:20 -f /home/user/alarm

führt /home/user/alarm um 15:20 Uhr aus.

at + 15 min  -f /home/user/alarm

führt /home/user/alarm in 15 Minuten aus.

Nur

at + 15 min

bringt einen zum at-Prompt. Hier kann man eingeben, welche Befehle in 15 Minuten ausgeführt werden sollen. STRG+d bringt einen zurück.

Mit atq kann man sich ansehen, welche Befehle auf diese Weise zeitverzögert ausgeführt werden werden. Links in der von atq angezeigten Liste steht die Befehlsnummer. Mit

atrm Befehlsnummer

also etwa mit "atrm 3" kann man den entsprechenden Befehl wieder löschen.

Eine andere, größer angelegte Methode ist, durch Editieren der Datei

/etc/crontab

einen Timer zu setzen, wann ein bestimmter Befehl als welcher Benutzer ausgeführt werden soll.
Die Zeilen in /etc/crontab haben folgendes Format:

Minute Stunde Tag Monat Wochentag(0-7 (0=Sonntag))  Benutzer Befehl

Die Daten werden jeweils durch Leerzeichen getrennt; * bedeutet beliebig.
Möglich sind auch mehrere Werte pro Angabe, also etwa 2,10-12,25 bei Minute.
Man fügt der Datei crontab also etwa folgende Zeile hinzu:

15 20 * * * root play /opt/kde3/share/sounds/KDE_Notify.wav

Wenn play installiert ist, mit dem Sound und den Benutzerrechten alles klar ist und die angegebene wav-Datei existiert, sollte dann um 20:15 Uhr ein Geräusch zu hören sein.

Auf diese Weise kann man nicht nur zu bestimmten Zeiten Klänge abspielen lassen, sondern auch eigene Skripte ausführen lassen. Man kann etwa eine Datei alarm in /home/user/ mit folgendem Inhalt erstellen:

#!/bin/sh
play /opt/kde3/share/sounds/KDE_Notify.wav

Wenn man alarm mit chmod ausführbar macht, die richtigen Benutzerrechte setzt und /etc/crontab die Zeile

15 20 * * * root /home/user/alarm

hinzufügt, führt das zum selben Ergebnis wie oben.

Unabhängig von /etc/crontab führt SuSE Skripte, die in einem der bereits vorhandenen Verzeichnisse

/etc/cron.hourly/
/etc/cron.daily/
/etc/cron.weekly/
/etc/cron.monthly/

abgelegt sind, automatisch in den angegebenen Abständen aus.


60. Fonts

Leider verstehe ich das Thema "Fonts unter Linux" nicht genau.
Was ich früher dazu geschrieben hatte, befindet sich hier.

Ein schönes Howto befindet sich hier.

Zu Fonts für Konsolen im Grafikmodus siehe unten.


61. Midnight Commander

Der Midnight Commander ist ein Dateimanager, der vage dem "Norton Commander" (DOS) nachempfunden ist.
Die Verzeichnisse werden in zwei Fenstern gleichzeitig dargestellt. Auf diese Weise hat man immer zugleich das
Quell- und das Zielverzeichnis auf dem Bildschirm, so daß die Dateien ungleich schneller bewegt und bearbeitet werden können
als mit nur einem Fenster.
Einige Grundfunktionen haben dieselbe Tastaturbelegung wie der Norton Commander.

F5 Kopieren
F8 Löschen
TAB Zwischen den Fenstern hin- und herwechseln
F9 Menü
F4 Datei editieren (mit mcedit)
F10 Beenden

Schon bei etwas so Grundlegendem wie dem Laufwerkswechsel enden jedoch die Gemeinsamkeiten.

Hier also einige Besonderheiten des Midnight Commanders:

Startet man mit mc -b hat man weiße Schrift auf schwarzem Grund (dazu siehe oben).

Zum Navigieren sollte man lynx-like-motion unter Options, Configuration aktivieren (F9 für Menü). Dann ist Cursortaste links
Verzeichnis nach oben, Cursortaste rechts Verzeichnis nach unten.

Man sollte die Hotlist-Funktion benutzen:
Erst STRG+x, dann h definiert Verzeichnis als neuen Hotlist-Punkt (z.B. /media/cdrom/ für das CD-ROM-Laufwerk);
STRG+AltGR+\ öffnet die Hotlist.

Datei suchen geht mit ALT+Shift+?.

ALT+H läßt einen aus einer Liste bereits eingegebener Befehle einen auswählen (ähnlich Cursortaste hoch im Terminal).
ALT+TAB vervollständigt Eingaben (ähnlich TAB im Terminal. Funktioniert wahrscheinlich nicht unter X).
ALT+RETURN bringt den markierten Dateinamen in die Befehlszeile.

Erst STRG+s, dann der Anfangsbuchstabe eines Dateinamens bringt den Fokus im Fenster zu der ersten Datei, deren Namen
mit dem angegebenen Buchstaben beginnt.

Erst STRG+x, dann o öffnet ein Fenster für chown.
Erst STRG+x, dann c öffnet ein Fenster für chmod.

rpm-Dateien:
Ausführbare Dateien werden mit einem zusätzlichen * angezeigt.
Will man den Inhalt einer rpm-Datei anzeigen lassen, um etwa einzelne Dateien zu extrahieren, muß man die rpm-Datei
auswählen und auf RETURN drücken. Das geht aber nur, wenn für die Datei nicht das Attribut "ausführbar" gesetzt ist, denn
sonst versucht der Midnight Commander, die Datei auszuführen.
Also muß man gegebenenfalls zuvor mit chmod (erst STRG+x, dann c) der Datei das Attribut "ausführbar" nehmen.

Probleme mit Tastatureingaben, insbesondere mit deutschen Umlauten, können wahrscheinlich behoben werden, indem unter
Options, Display bits (F9 für Menü) die Option ISO-8859-1 und zusätzlich "Full 8 bits input" aktiviert wird.

mcedit: Speichern geht mit F2; "Speichern unter"geht mit F12 oder über das Menü (F9).

FTP-Zugriff: Im Menü (F9) unter Links und Rechts. Die FTP-Adresse muß in folgendem Format eingegeben werden:

Benutzername@ftp.adresse.com

Im Anschluß fragt der Midnight Commander nach dem FTP-Passwort, dann sollte das FTP-Verzeichnis im Fenster dargestellt werden.


62. Bildbetrachter gqview / Bildergallerien erstellen / Screenshots machen / Screenshots von Videobildern machen

gqview ist ein guter Bildbetrachter.

Wichtige Tastenkombinationen sind:

f (oder v) Vollbild
x Bild an Bildschirm anpassen
z Originalgröße
Pos1 Erstes Bild im Ordner
Space Nächstes Bild im Verzeichnis (Vollbildmodus)
Backspace Vorgeriges Bild im Verzeichnis (Vollbildmodus)

In den Einstellungen im Menü kann man einstellen, daß Bilder in der Größe wie das vorher angezeigte Bild dargestellt werden sollen.

Der Dateimanager / Browser konqueror bietet über das Menü (Tools / Create Image Gallery) eine praktische Funktion, mit der schnell und einfach von allen Bildern in einem Verzeichnis eine Datei images.html erstellt wird, auf denen Thumbnails der Bilder ausgewählt werden können. Die Thumbnails werden als kleine Bilddateien in einem Verzeichnis thumbs abgelegt.
So etwas kann man auch, und zwar fast noch besser mit dem Programm gthumb machen.

Screenshots kann man in gnome über einen Befehl im Gnome-Menü machen. Es geht aber auch vom Terminal aus. Der Befehl

gnome-panel-screenshot --delay=10

macht nach einer Verzögerung von 10 Sekunden, in der man z.B. das Terminal-Fenster schließen kann, einen Screenshot, der über ein sich dann öffnendes Fenster in einem beliebigen Verzeichnis abgespeichert werden kann.

Auch mit dem KDE-Programm

ksnapshot

kann man bequem Screenshots machen. Dazu klickt man in ksnapshot auf "grab" und danach auf das Fenster, dessen Inhalt man als Bild abspeichern möchte.

Will man Screenshots von Videos machen, die mplayer abspielt, muß man mplayer mit

mplayer -vo x11

starten. Während des Abspielens kann man dann mplayer mit der Leertaste anhalten und weiterlaufen lassen. Hat man ein passendes Bild gefunden, kann man ksnapshot benutzen.


63. Textbrowser w3m

w3m ist ein Nur-Text-Webbrowser, ähnlich lynx.
Nervig ist, daß standardmäßig Cursortaste nach unten zum nächsten Link nach unten springt.

Das kann man aber ändern: In /usr/share/doc/packages/w3m/doc gibt es eine Datei keymap.default. Die muß man in das versteckte Verzeichnis /.w3m im eigenen /home-Verzeichnis kopieren und das .default wegmachen. Also:

cp keymap.default /home/Benutzername/.w3m/keymap

Dann verhält sich w3m einigermaßen vernünftig. Im Zweifel kann man das keymap-file auch nach seinen Vorstellungen editieren.
w3m kann man mit q beenden.


64. Textbrowser lynx

lynx ist der wohl bekannteste Nur-Text-Webbrowser.

Es ist damit auch möglich, Text in Eingabefelder von Webseiten einzugeben und so etwa Google oder mail-Dienste mit Webformularen zu bedienen.
Obwohl das auch mit w3m geht, ist lynx insgesamt etwas schneller, da er die Seite schon anzeigt, bevor ihr gesamter Inhalt geladen ist.
Leider ist die Tastaturbelegung von lynx etwas gewöhnungsbedürftig:

Cursortaste nach unten Springt zum nächsten Link nach unten.
Cursortaste nach rechts Folgt dem Link
Cursortaste nach links Geht zu vorheriger Seite zurück.
STRG+n Scrollt zwei Zeilen nach unten.
STRG+p Scrollt zwei Zeilen nach oben.
STRG+a Zum Dokumentanfang.
Shift+), Shift+( Scrollt halbe Seite nach unten, bzw. oben..
Leertaste, b Scrollt eine Seite nach unten, bzw. oben.
g Gehe zu Seite.
Shift+G Gehe zu Seite, dabei wird Adresse von aktueller Seite als Vorlage übernommen.
d Seite abspeichern, bzw. Datei von Link herunterladen.
a Zu Bookmarks hinzufügen.
v Bookmarks anzeigen.
Enter Eingaben machen, bzw. einem Link folgen.
o Optionsmenü öffnen.
Shift+H Hilfe anzeigen: Dort findet man die weitere Tastaturbelegung.
Shift+Q oder qq lynx beenden.


65. Email unter Linux

Es gibt unter Linux Komplett-Email-Programme wie unter Windows. Zu nennen sind z.B. kmail (KDE), evolution (Gnome) und Mozilla-Mail.

Daneben gibt es aber noch ein anderes, unix-typischeres, vielleicht zunächst etwas gewöhnungsbedürftiges Mail-System, das auf dem Client-Server-Prinzip beruht:

Beim Linux-Systemstart wird der Dienst "postfix", der über das Programm "sendmail" ansprechbar ist, als Dämon gestartet.
Mit dem Befehl

ps xa | grep postfix
kann man überprüfen, ob "postfix" gerade läuft.

Mit dem Programm "fetchmail" kann man dann Emails abholen, sofern "fetchmail" bzgl. der Zugangsdaten des Email-Providers und weiterer Einstellungen in einer Datei

/home/user/.fetchmailrc

eingerichtet ist. Unter SuSE dürfte man "fetchmail" im Netzwerkbereich von "YaST2" konfigurieren können.
Ansonsten hilft bei der Einrichtung auch ein Skript "fetchsetup", das im rpm von fetchmail enthalten sein sollte und z.B. nach

/usr/share/doc/packages/fetchmail/contrib/fetchsetup

installiert worden sein kann.

"fetchmail" liefert eingegangene Emails dann wiederum an das Programm "sendmail". Dieses speichert die Emails über "postfix" dann hintereinander in einer Datei

/var/mail/user
(bzw. genauer in "/var/spool/mail/user"), wobei "user" für den Namen des jeweiligen Benutzers steht, so daß Mails für "root" in
/var/mail/root

abgelegt werden. Dabei handelt es sich um eine ASCII-Textdatei im sog. "mbox"-Format, an die die Nachrichten einfach als bloßer Text jeweils angehängt werden.

Linux-Email-Clients wie "mutt" oder "pine" können diese Textdatei auswerten und Emails so anzeigen, wie man es auch z.B. von "kmail" gewohnt ist.

Mit einem anderen Linux-Email-Client namens "nail" (der "mailx" entspricht) kann man darüber hinaus Emails oder auch nur Teile davon (wie den Nachrichtentext oder die Absenderzeile) auf der Konsole ausgeben, so daß man diese Ausgabe dann gegebenenfalls mit einem anderen Programm weiterverarbeiten kann.

Um Emails zu senden, kann der Benutzer wiederum einen Linux-Email-Client wie "mutt" oder "nail" verwenden. Die Emails werden dann über "sendmail" und "postfix" an den SMTP-Server des Email-Providers gesendet.
Allerdings muß "sendmail" hierzu wiederum hinsichtlich der Zugangsdaten des Email-Providers konfiguriert sein. Unter SuSE kann man die "sendmail"-Einrichtung (die von Hand sehr tückisch wäre) im Netzwerk-Bereich von "YaST2" vornehmen.
Bei "nail" können die Zugangsdaten auch beim jeweiligen "nail"-Befehl mitgegeben werden (siehe "man nail").

Das beschriebene Linux-Mail-System arbeitet auch lokal (in Verbindung mit einem Programm namens "procmail") und ist z.B. für Systemnachrichten an "root" verantwortlich. Deshalb wird es bei der Installation von Linux zumindest für den lokalen Betrieb automatisch konfiguriert und wird bei jedem Systemstart mit gestartet.

Der Befehl

echo "Hallo" | nail -s "Meine Mail" user

schickt daher eine Mail mit der Betreffzeile "Meine Mail" und dem Text "Hallo" an den Benutzer "user".
Wie oben dargestellt, wird diese Nachricht dann in der Datei

/var/mail/user

gespeichert und kann von "user" z.B. mit "mutt" angesehen werden.

Auch "kmail" kann so konfiguriert werden, daß es mit dem Linux-Mail-System zusammenarbeitet und etwa Mails über "sendmail" versendet.

Mit der Programmiersprache "Python" kann man Emails darüber hinaus unabhängig vom Linux-Mail-System versenden, empfangen und verarbeiten. Dazu siehe auf dieser Seite.


66. Downloadmanager wget / Dateien und Verzeichnisse herunterladen

Mit dem Befehl

wget http://www.adresse.com/datei.dat

wird bei bestehender Onlineverbindung die Datei "datei.dat"  in das aktuelle Verzeichnis heruntergeladen. Wird der Download unterbrochen, versucht wget es automatisch erneuert.
Ist bisher nur ein Teil der Datei heruntergeladen worden, kann der Download später mit dem Befehl

wget -c http://www.adresse.com/datei.dat

fortgesetzt werden. Dabei muß der Befehl in dem Verzeichnis eingegeben werden, in dem sich bereits unter dem Namen "datei.dat" ein Teil der Datei befindet.

Ganze Verzeichnisse herunterladen geht mit

wget -rl0 -np http://www.adresse.com/verzeichnis

bzw.

wget -A* -np -nH -P/home/Benutzer/ http://www.adresse.com/verzeichnis

(Tipquelle).


67. Finanzsoftware gnucash

Das Finanzprogramm gnucash entspricht Quicken oder Money. Euro wird unterstützt.
Zur Installation müssen folgende SuSE-Pakete bereits installiert sein: slib, umb-scheme, Guppi.


68. Sprachausgabe (Englisch und Deutsch)

Unter Mandriva 10.1 geht englische Sprachausgabe mit dem Programm festival.
Hierzu müssen folgende Pakete installiert werden: festival, festlex-CMU, festlex-POSLEX, festvox-kallpc16k, festvox-kallpc-common, libgnomespeech, gnome-speech.

Deutsche Sprachausgabe geht mit dem Programm mbrola.
Neben dem Binärprogramm muß man von der Seite noch Stimmen herunterladen. Ich empfehle die Stimmen "de2" (ca. 9,5 MB) und "de4" (ca. 19 MB).
mbrola ist ein Sprachsynthesizer und wandelt sogenannte pho-Dateien in Audiodateien, also z.B. wav-Dateien oder au-Dateien, die man dann mit wavplay, bzw. aplay anhören kann.
Um aus txt-Dateien für mbrola verwertbare pho-Dateien zu erstellen, benötigt man ein zusätzliches Programm, nämlich Txt2Pho.
Bei großen Textdateien, ist es sinnvoll, nicht erst eine sehr große wav-Datei erstellen zu lassen, sondern die Sprache unmittelbar ausgeben zu lassen.
Hierzu muß man bestimmte längere Befehle erstellen. Folgender Befehl liest die Datei /home/benutzer/text.txt:

txt2pho -m -i /home/benutzer/text.txt -o - | /usr/share/mbrola/mbrola /usr/share/mbrola/de4/de4 - -.au | aplay -q

Einem solchen Befehl sollte man ein alias geben, etwa "tts" (für "Text to Speech") (siehe oben).

Deutsche Sprachausgabe in guter Qualität bietet auch das schwer zu beschaffende ViaVoice (siehe unten).


69. wav- und mp3-Dateien von Musik-CDs erstellen

AudioCDs speichern die Musikdaten in besonderer Weise. Die Programme

cdda2wav und cdparanoia

können diese digitalen Daten unmittelbar von den CDs auslesen und in wav-Audiodateien speichern.

Der Befehl

cdda2wav -D /dev/cdrom -t2 1.wav

speichert beispielsweise Lied 2 von der CD in der Datei 1.wav.
Dasselbe tut cdparanoia "2" 1.wav.

cdparanoia -B -w

speichert alle Tracks einer CD.

Man kann auch das grafische Programm grip verwenden.

Die Lautstärke der wav-Datei kann man mit dem Programm, bzw. Befehl

normalize

auf eine durchschnittliche Höhe bringen. Dies glättet manchmal auch Unebenheiten in der Sound-Datei.

Dann kann man die wav-Datei mit dem Befehl

lame -h 1.wav 1.mp3

in eine mp3-Datei umwandeln.

Standardmäßig wird dabei jedoch noch einmal eine Lautstärkeanpassung vorgenommen.
Dies kann man vermeiden, indem man stattdessen den Befehl

lame -h 1.wav 1.mp3 --noreplaygain

verwendet.

Der Befehl

cdda2wav -D /dev/cdrom -q -e -t2 -d0  -N

liest Lied 2 von der CD und überträgt es unmittelbar an die Soundkarte.
So kann man CDs ohne Audiokabel abspielen. Leider ist die Datenübertragung auf diese Weise oft zu langsam, so daß dann der Sound ruckelt.


70. Sound aus Videodateien extrahieren (mpg nach wav umwandeln)

Der Befehl

mplayer film.mpg -ao pcm:file=ton.wav

schreibt den Sound aus der Videodatei film.mpg in die wav-Datei ton.wav, sofern mplayer mit allen nötigen Zusatzdateien installiert ist (früher: "mplayer film.mpg -ao pcm -aofile ton.wav").


71. Streams abspeichern

Der Befehl

mplayer rtsp://....rm -dumpstream -dumpfile /home/Benutzer/1.rm

schreibt den Stream aus der angegebenen Internet-Adresse in die Datei 1.rm, sofern mplayer mit allen nötigen Zusatzdateien installiert ist.

mplayer 1.rm -ao pcm:file=ton.wav

wandelt die Datei 1.rm dann nach ton.wav (früher: "mplayer 1.rm -ao pcm -aofile ton.wav"),

lame -h ton.wav 1.mp3

wandelt ton.wav weiter nach 1.mp3.

Dieses Verfahren darf man aber nur auf Streams anwenden, bei denen man dazu berechtigt ist, sonst macht man sich strafbar.


72. Alles aufnehmen, was gerade über die Soundkarte ausgegeben wird

Es ist möglich, alles aufzunehmen, was gerade über die Soundkarte ausgegeben wird. Hierzu startet man zunächst

alsamixer

Dort wird im oberen Bereich "View:" angezeigt. Mit der Tabulator-Taste wechselt man solange, bis dort "[Capture]" ausgewählt ist.
In den Anzeigerubriken, durch die man mit den Pfeiltasten "links" und "rechts" wechseln kann, sollte irgendwo (in rot) "L R Capture" über dem Namen einer Rubrik angezeigt werden.
Nun wählt man mit den Pfeiltasten die Rubrik "Mix" oder "Mix mono" aus. Dort drückt man einmal die Leertaste: "L R Capture" sollte dann zu der ausgewählten Rubrik wechseln.
Weiterhin gibt es eine eigene Rubrik "Capture" mit einer Lautstärkeanzeige. Nachdem man diese Rubrik ausgewählt hat, kann man die Lautstärke mit den Pfeiltasten "hoch" und "runter" ändern: Bei mir ist "13" ein guter Wert für die Lautstärke. Höhere Werte führen bei mir zu übersteuerten Aufnahmen.
Wenn die Lautstärke eingestellt ist, verläßt man "alsamixer" mit der "Escape"-Taste. Dadurch werden die ausgewählten Aufnahmeeinstellungen gespeichert.

Nun wird mit dem Befehl

arecord -f cd -D copy out.wav

alles, was gerade über die Soundkarte ausgegeben wird, in der Datei "out.wav" aufgenommen.

Allerdings handelt es sich offenbar um eine analoge Aufnahme, nicht um Übertragung der digitalen Daten, die von der Soundkarte verarbeitet werden. Es können daher gewisse Qualitätsverluste auftreten.

Nach Ende der Aufnahme kann man die Datei "out.wav" in "audacity" weiterverarbeiten.
Gegebenenfalls sollte man auch die Aufnahmeeinstellungen in "alsamixer" auf Standardwerte zurückstellen.


73. Nur Teile eines Videos abspielen

Der Befehl

mplayer video.mpg -ss 3:00 -frames 100

spielt aus der Datei "video.mpg" die 100 Frames 3 Minuten nach Videobeginn ab.


74. Mehrere Videos zusammenfügen

Mehrere Videos kann man mit

mencoder -oac copy -ovc lavc -lavcopts vcodec=mpeg4 -idx -o output.mpg input1.mpg input2.mpg

hintereinanderfügen.


75. Videos ohne Bild abspielen und ohne Ton enkodieren

Um Videos mit "mplayer" ohne Bild abzuspielen, muß man "mplayer" mit der Option

-vo null

aufrufen. So kann man sich z.B. von einer Spielfilm-DVD nur eine etwaige Tonspur mit Kommentaren zum Film anhören.

Um Videos mit "mencoder" ohne Ton zu enkodieren, muß man "mencoder" mit der Option

-nosound

aufrufen. So kann man z.B. von Sport-DVDs Ausschnitte mit Bewegungsabläufen platzsparend enkodieren.


76. Installation weiterer Software

Die Distributionen installieren gleich allerhand Software mit.
Vielleicht benötigt man später jedoch weitere Programme und will diese nachinstallieren.
Entweder sind die Programme bereits vorbereitet, dann ist die Installation leicht oder aber sie wird schwieriger.

Den Distributionen liegen Programmpakete in der Regel als "rpm"-Dateien (Redhat-Package-Manager) bei. Das sind Dateien, die speziell für eine bestimmte Distribution vorbereitet sind. Das heißt, einige "rpm"-Dateien für SuSE 8.0 wird man auch mit SuSE 8.1 installieren können, andere dagegen nicht.

Rpm-Pakete für die eigene Distributionsversion sind hingegen sehr leicht installiert: Man startet konqueror und klickt auf die rpm-Datei. Dann erscheint eine Beschreibung und der Knopf "mit Yast installieren". Klickt man darauf, übernimmt Yast, wenn alles gut geht, den Rest.
Oder als root: rpm -i datei...rpm (dazu siehe oben).

Um ein Programm unabhängig von der Distribution zu installieren, muß man den C-Quellcode herunterladen (.src.tar.gz) und ihn dann selbst kompilieren. Dazu müssen die Compiler-Pakete installiert sein, was man mit YaST2 überprüfen und sicherstellen kann.

Entpackt man dann das .src.tar.gz, erscheint gewöhnlich ein Verzeichnis. Dort hinein wechselt man mit cd und liest die dortigen Readme oder Install-Dateien. In der Regel muß man zur Installation nacheinander drei Befehle ausführen:

sh configure
(oder ./configure (./ nicht vergessen, Erläuterung hier))
make
make install

Dabei überprüft "configure" das System, so daß der Compiler später auf Daten über das System zugreifen kann.
Mit "make" wird die Software kompiliert.
Mit "make install" wird die kompilierte Software in die vorgesehenen Stellen des Verzeichnisbaums kopiert. Hierzu muß man root sein.

Auf diese Weise braucht der Programmierer sich nicht so sehr mit den unterschiedlichen Hardwarekonfigurationen zu beschäftigen, auf denen seine Software installiert werden soll. Mit einem guten "configure"-Skript kann der Quellcode auf sehr vielen Systemen installiert werden.

Allerdings kann schon der Quellcode bestimmte Systemanforderungen stellen. Es kann sein, daß er z.B. eine bestimmte Version des Kernels, der Datei glibc oder von KDE oder gnome benötigt, die der Benutzer nicht hat und auch nicht ohne weiteres in das System installieren kann.

Das Kompilieren von Software gelingt mir daher nur selten.
In Mandriva 10.1 kann ich aber viele Programme im rpm-Format von anderen Distributionen installieren, etwa die WindowMaker-Applets, joy2key, frotz oder xgammon von SuSE 8.1.

Auch die spätere Deinstallation eines selbstkompilierten und mit "make install" installierten Programms ist problematisch.
Hierzu gibt es das Tool checkinstall. Ist es installiert, kann man bei der Installation statt "make install" (s.o.) "checkinstall" eingeben. Dann wird ein rpm-Paket von dem kompilierten Programm erstellt, mit dem man dann weiterarbeiten kann.


77. Datensafe einrichten

(Frei nach: LinuxUser 07/2003, S. 42 ff. sowie hier)

Durch die konsequente Vergabe von Benutzerrechten scheinen Daten in Linux recht gut geschützt zu sein.

Es gibt da aber ein Problem: Es gibt Linux-Systeme, die unmittelbar von CD gebootet werden können, insbesondere Knoppix. Geht jemand also mit einer Knoppix-CD an einen Rechner und startet dort von CD, ist er in seinem Knoppix-System root. Das bedeutet, er erlangt vollen Zugriff auf die Festplatte des Computers, ohne das dortige root-Passwort zu kennen: Eine unglaubliche Sicherheitslücke.

Es gibt aber die Möglichkeit, ein Verzeichnis zu erstellen, das mit einem Algorithmus (z.B. twofish, aes) verschlüsselt wird und bei Bedarf durch Eingabe eines besonderen Passworts gemountet werden kann. Im einzelnen wird dabei zunächst eine verschlüsselte Datei in der Größe des Safes erstellt, deren Inhalt dann auf ein Verzeichnis umgeleitet wird.

Unter Mandriva 10.1 gibt es das grafische Programm

drakloop

aus dem Paket mountloop...rpm, mit dem man einfach einen solchen Datensafe erstellen kann.

Dies kann man jedoch auch von Hand tun. Hierzu gibt man als root folgendes ein:

modprobe twofish
modprobe cryptoloop
dd if=/dev/urandom of=/root/cryptfile bs=1024 count=40000
(erstellt eine verschlüsselte Datei von 40 MB in /root)
mkdir /root/safe
losetup -e twofish256 /dev/loop0 /root/cryptfile
(und gibt das Safe-Passwort ein (Achtung, keine Nachfrage))
mke2fs /dev/loop0
mount -t ext2 /dev/loop0 /root/safe

Dann editiert man die Datei /etc/rc.d/rc.local und fügt dieser folgende Zeilen hinzu:

modprobe twofish
modprobe cryptoloop

Dann editiert man die Datei /etc/fstab und fügt dieser die Zeile

/root/cryptfile /root/safe ext2 loop,encryption=twofish,noauto,user 0 0

hinzu.

Nach einem reboot kann man als root das Verzeichnis mit dem Befehl mount /root/safe einhängen und später mit umount /root/safe wieder aushängen und damit verschlüsseln.

Unter SuSE ist als root folgendes einzugeben:

modprobe loop_fish2
dd if=/dev/urandom of=/root/cryptfile bs=1024 count=40000
mkdir /root/safe
losetup -e twofish /dev/loop0 /root/cryptfile
mke2fs /dev/loop0
mount -t ext2 /dev/loop0 /root/safe

Der Datei /etc/init.d/boot.local fügt man die Zeile

modprobe loop_fish2

hinzu. Der Datei /etc/fstab ist wie oben die Zeile

/root/cryptfile /root/safe ext2 loop,encryption=twofish,noauto,user 0 0

hinzuzufügen. Sodann ist entprechend ein reboot vorzunehmen.

Bei dem Verfahren gibt es zwei Schwierigkeiten:
Die verschlüsselte Datei (Container) kann nicht ohne weiteres nachträglich vergrößert werden. Vielmehr müssen die Daten erst aus der Containerdatei herauskopiert werden, dann muß diese gelöscht und mit dem Verfahren neu erstellt werden.
Man kann das Passwort nicht nachträglich ändern. Auch in diesem Fall muß man die Daten sichern und das Verfahren erneut durchführen.


78. Noch freien Festplattenplatz des Datensafes anzeigen. Systemprozesse überwachen: gkrellm

Den noch freien Festplattenplatz des Datensafes kann man sich mit dem Befehl

df

anzeigen lassen.

Es geht auch - umständlicher - mit dem Programm gkrellm (Teil von SuSE 8.1: Ist es nicht auf den Installations-CDs, kann es unter den unten angegebenen Adressen heruntergeladen werden (ca. 329 K)) kann man Systemprozesse überwachen, etwa die CPU-Belastung. Man kann gkrellm aber auch so konfigurieren, daß es einem anzeigt, wieviel Speicherplatz noch in einer bestimmten Partition oder eben dem Datensafe ist. Dazu hängt man den Datensafe ein (im Beispiel oben: mount /root/safe) und startet gkrellm. Dort öffnet man mit F1 das Konfigurationfenster. In Builtins/File System ist unter Primary bei Mount Point ein Drop Down Menu. Dort wählt man den Datensafe (/root/safe/) aus. Unter Label trägt man "Safe" ein und klickt auf "Enter". Unter Setup wählt man unter Format String for Panel Labels "$t - $f free" , das bedeutet "Speicher insgesamt - Freier Speicher". Dann klickt man "Apply", bzw. "Ok". Nun sieht man im gkrellm-Fenster einen Bereich "Safe". Klickt man darauf mit der mittleren Maustaste, wird der noch freie Speicher des Datensafes angezeigt.


79. Ramdisk benutzen

Eine Ramdisk erstellen und benutzen kann man ähnlich wie oben den Datensafe, aber viel einfacher:

Erst erstellt man als root ein Verzeichnis, wohin die Ramdisk gemountet werden soll, z.B. mit

mkdir /mnt/rd

Dann formatiert man den Rambereich mit

mke2fs /dev/ram0

Standardmäßig wird dabei eine Ramdisk von 32 MB angelegt.

Die mountet man dann:

mount /dev/ram0 /mnt/rd

Fertig. Nicht vergessen, daß die Daten in der Ramdisk beim Herunterfahren des Computers automatisch gelöscht werden.


80. Dateien endgültig löschen, schreddern

Mit dem Befehl

shred -uz Datei

soll man die Datei "Datei" so endgültig löschen können, daß andere sie grundsätzlich nicht wiederherstellen können. Leider soll das aber nicht bei jedem Dateisystem funktionieren (man shred).
Außerdem vermisse ich die Funktion, Verzeichnisse rekursiv löschen zu können. Offenbar muß man hier zusammen mit "find" arbeiten.

Mit dem Befehl

wipe
soll man dagegen Dateien und Verzeichnisse auch rekursiv endgültig löschen können, indem die jeweiligen Bereiche auf dem Datenträger mit zufälligen Daten überschrieben werden. Zu etwaigen Dateisystemproblemen wie bei "shred" konnte ich nichts finden.
Von "wipe" gibt es für SuSE 10.0 auch ein rpm-Paket.


81. SuSE 10.0 von nicht benötigten Dokumentationsdateien reinigen

(Tipquelle)

Viele Softwarepakete installieren Dokumentationen in Sprachen, die man nicht spricht (ich kann z.B. kein Dänisch, Polnisch oder Finnisch), so daß diese unnötig Festplattenplatz belegen.
Der User "oc2pus" im Forum "Linux-Club" hat einige Skripte geschrieben, die diese nicht benötigten Dateien unter SuSE 10.0 wieder löschen.
Damit können einige hundert MB Festplattenspeicher wieder zurückgewonnen werden.

Die Benutzung der Skripte erfolgt jedoch auf eigene Gefahr. Ich hafte nicht für Schäden, die hierdurch gegebenenfalls an Ihrem System entstehen können.
Bei mir funktioniert es. Nachteilige Wirkungen sind mir an meinem System bislang nicht aufgefallen.


82. An einer Eingabeaufforderung mehrere Programme benutzen: screen. Windowmanager Ratpoison

screen ist ein ungewöhnliches Programm für das Terminal, bzw. den Textmodus (Konsole).
Damit kann man an einer Eingabeaufforderung mehrere Programme nacheinander starten und dann zwischen diesen hin- und herschalten. Es gibt dann also aktive Programme und solche, die im Hintergrund laufen, fast so, als wäre man auf dem Desktop.
Bei screen wird deutlich, daß Linux, im Gegensatz zu DOS, auch im Textmodus ein Multitasking-Betriebssystem ist.
Nach dem Start von screen erscheint zunächst wieder die einfache Eingabeaufforderung.
Jedoch kann man jetzt auch screen-Kommandos eingeben, indem man erst STRG+a und dann eine weitere Taste drückt:

Erst STRG+a, dann c Erzeugt neues Fenster (es erscheint eine weitere Eingabeaufforderung)
Erst STRG+a, dann w Zeigt erzeugte Fenster in Kurzform am unteren Bildschirmrand an
Erst STRG+a, dann Shift+" Zeigt längere Liste mit erzeugten Fenstern an
Erst STRG+a, dann 1 Wechselt zu Fenster 1
Erst STRG+a, dann STRG+a Wechselt zu vorherigem Fenster
Erst STRG+a, dann n Wechselt zu nächstem Fenster
Erst STRG+a, dann STRG+AltGr+\ Beendet Screen

Beispiel:

screen

(screen startet, den Anfangsbildschirm mit Space beenden)

Erst STRG+a, dann c
mpg123 x.mp3
Erst STRG+a, dann STRG+a
mc

Ergebnis: Man ist im Midnight Commander, während das mp3-file "x.mp3" im Hintergrund spielt.

Es gibt einen Windowmanager für den Grafikmodus namens "ratpoison", der nach dem Prinzip von screen funktioniert.
Das heißt, bei Eingabe von startx erscheint wiederum lediglich eine Eingabeaufforderung, dennoch können mehrere X-Window-Programme gleichzeitig im Vollbildmodus betrieben werden.
Es ist mir nicht gelungen, ratpoison unter SuSE 8.1 zu kompilieren und zum Laufen zu bringen.
Für Mandriva 10.1 gibt es hingegen ein rpm-Paket. Sehr schön.
Man sollte die Datei sample.ratpoison aus /usr/share/doc/ratpoison ins Homeverzeichnis kopieren und in .ratpoisonrc umbenennen, damit man wie in screen die Tastenkombination STRG+a benutzen kann.
Weitere Informationen zu ratpoison hier, hier und hier.


83. xterm umgestalten

xterm ist ein gutes, schnell startendes Terminalprogramm.
Startet man es mit folgenden Optionen, hat man größere Fonts, keine Bildlaufleiste und weiße Schrift auf schwarzem Grund:

xterm -font 10x20 +sb -fg white -bg black

Nicht ganz so groß ist xterm -font 9x15. Das geht auch mit dem Terminalprogramm rxvt.

Bei höheren Auflösungen wie 1024x768 sollte man meiner Meinung nach eine noch größere Schrift, die für die Konsole geeignet ist, verwenden. Hierzu kann man das Paket

terminus-font-4.12-2.noarch.rpm

von SuSE 10.0 installieren und xterm mit

xterm +sb -font '-*-terminus-*-*-*-*-24-*-*-*-*-*-*-*' -fg white -bg black

starten.

Mit

STRG+Maustaste

öffnet man in xterm verschiedene Menüs, in denen man weitere Einstellungen vornehmen kann.


84. Parallelport-Joystick einbinden / Kernel-Module verwalten / joy2key

An die großartigen Heimcomputer vergangener Zeiten wie Amiga 500 und Atari 800 XL konnte man digitale Joysticks anschließen, die nicht kalibriert werden mußten.
Es gibt mehrere Lösungen, um solche digitalen Joysticks an heutige PCs anzuschließen.
Eine davon sieht ein Interface zum Anschluß an die parallele Schnittstelle des PCs vor.
Ein solches, für Linux geeignetes Parallelport-Interface kann man nicht im normalen PC-Laden kaufen. Wenn man einige Elektronikkenntnisse hat, kann man es selbst bauen. Oder man kann ein solches Interface etwa bei eBay ersteigern.

Wenn man die Hardware hat, muß man diese noch in das Betriebssystem einbinden.
Erstaunlicherweise halten SuSE 8.1 und Mandriva 10.1 einen passenden Treiber für das oben genannte Interface bereit.
Er ist als Kernel-Modul sogar Teil des zentralen Linux-Kernel-rpm-Paketes.

Kernel-Module enthalten Systemfunktionen wie Gerätetreiber, die gewissermaßen um den Kernel herum angeordnet sind, und an- und abgekoppelt werden können. Der Befehl

lsmod

, als root ausgeführt, zeigt die derzeit aktiven Kernel-Module an.

modinfo Modul

gibt nähere Informationen über das bezeichnete Modul.

Mit dem Befehl

rmmod Modul

kann ein Kernel-Modul abgekoppelt werden. Dies stellt einen relativ tiefen Eingriff in das System dar, so daß man damit entsprechend vorsichtig sein sollte. Die Geräte, deren Module abgekoppelt wurden, werden vorraussichtlich erst nach einem reboot wieder funktionieren. Schwierig dürfte es werden, wenn man ein Modul abkoppelt, das man benötigt, um reboot durchzuführen zu können.
Der Name des Kernel-Moduls ist ohne Zusätze wie .o anzugeben.
In der Regel wird das Druckermodul lp den Parallelport belegen. Dieses ist zunächst abzukoppeln, damit der Joysticktreiber freien Zugriff auf den Parallelport nehmen kann. Drucken kann man über diese Schnittstelle dann natürlich nicht mehr. Hierzu ist als root entweder

rmmod lp

oder

modprobe -r lp

einzugeben.

Danach ist der Parallelport-Joystick einzubinden. Hierzu gibt man als root unter SuSE 8.1

modprobe db9 db9=0,8

ein (daneben gibt es den Befehl insmod, modprobe geht aber etwas vorsichtiger mit dem System um und ist deshalb vorzuziehen)

Unter Mandriva 10.1 und auch SuSE 10.0 muß man

modprobe db9 dev=0,8

eingeben.
0 bezieht sich dabei auf Parallelport 0, die 8 steht für dieses Parallelport-Joystick-Interface.
Der Autor des Treibers beschreibt weitere Werte für andere unterstützte Interfaces.
Will man an dem beschriebenen Interface zwei Joysticks betreiben, ist statt der 8 die 9 zu verwenden.

Der modprobe-Befehl sollte unter SuSE 10.0 die Devices "js0" und gegebenenfalls "js1" in "/dev/input" erzeugen.
Tut er das nicht, müssen in YaST2 Soundkarte und Joystick (als "Generischer analoger Joystick") neu konfiguriert werden.

Unter Mandriva 10.1 muß man möglicherweise noch den Inhalt von /dev/input mit chown dem passenden Benutzer zuordnen, also

chown Benutzer:Benutzergruppe /dev/input/*

Nun sollte der Parallelport-Joystick funktionieren.

Man kann ihn dann sogar in Spielen und anderen Programmen verwenden, die eigentlich nur Tastatursteuerung vorsehen.
Dies geht mit dem Programm

joy2key

Dieses wandelt Joystickimpulse in Tastatursignale um und sendet diese zu einem angegebenen Fenster unter XWindow.
Daß das stabil und sicher funktioniert, zeigt, daß in Linux Multitasking besonders gut umgesetzt ist.


85. Editor vim

Linux stellt mehrere Programme zum Bearbeiten von Text zur Verfügung.
mcedit, gedit und kate, ferner pico und joe erfüllen die Funktion, und man kann weitgehend windows-typische Tastenbelegungen benutzen.
Wenn man aber Linux besser kennenlernen will, sollte man sich mit einem der beiden mächtigen Linux-Editoren emacs und vim vertraut machen. Deren Bedienung muß man aber erst lernen.

vim ("vi improved") ist ein Open-Source-Clon des Unix-Editors "vi" ("vi" für "visual").
Die Konsolenversion von vim (es gibt daneben auch "gvim", eine Version für den Grafikmodus) ist auf nahezu jedem Linux-System als Standardeditor verfügbar.
"vim"s zunächst umständlich wirkenden Bedienungsfunktionen sind auf möglichst schnelles Editieren von Programmcode optimiert.
Diese Seite wurde weitgehend mit vim erstellt.

vim kennt zwei Modi, einen Kommandomodus und einen Einfügemodus.
vim startet mit

vim Datei

im Kommandomodus. Das bedeutet, um Text eingeben zu können, muß man erst in den Einfügemodus umschalten. Dies macht man mit der Taste "i". Zurück in den Kommandomodus kommt man mit der Taste "Esc".

Um eine Datei zu speichern, gibt man im Kommandomodus ":w" ein, für "Speichern unter" mit Überschreiben bestehender Dateien entsprechend ":w! Datei". Nach Eingabe dieses Befehls bleibt man jedoch in der ursprünglichen Datei, so daß weiteres Editieren und ":w" wiederum diese verändert.
"Speichern als", also Speichern und Editieren der neu abgespeicherten Datei, geht hingegen mit ":sav Datei".
Um vim zu verlassen, ohne abzuspeichern, gibt man im Kommandomodus ":q!" ein, für "Speichern und verlassen" also ":wq". Das ist schnell getippt.

Für "links, runter, hoch, rechts" sind "h, j, k, l" vorgesehen, die Cursortasten gehen jedoch auch.

"^" im Kommandomodus springt zum Zeilenanfang, "$" zum Zeilenende. "w" springt jeweils ein Wort vor, "b" jeweils eins zurück. "gg" im Kommandomodus springt zum Dokumentanfang, "G" zum Dokumentende.

"%" im Kommandomodus auf einer Klammer ausgeführt, springt zu der dazugehörigen Klammer.
"*" springt zu dem nächsten Vorkommen des Wortes, auf dem der Cursor sich gerade befindet.

Text kopieren und einfügen geht folgendermaßen:
"y$" im Kommandomodus kopiert den Text bis zum Ende der aktuellen Zeile, "10y$" kopiert die nächsten 10 Zeilen, "yG" kopiert den Text bis zum Dokumentende. "yw" kopiert ein Wort, "5yw" entsprechend die nächsten 5 Wörter.
"p" fügt dann den kopierten Text ein.

Zusätzlich gibt es einen "visuellen Modus", in den man mit "v" gelangt. In diesem kann man Text etwa mit den Cursortasten markieren und auf diese Markierung "y", aber auch Befehle wie "d", bzw. "x" (löschen, s.u.) anwenden. Will man keinen dieser Befehle anwenden, beendet erneutes Drücken von "v" den visuellen Modus wieder.

Ferner kann man in vim mit "i" in den Einfügemodus wechseln und dann Text aus anderen Anwendungen mit der mittleren Maustaste hineinkopieren (dazu siehe oben).

"dd" löscht die aktuelle Zeile, "dw" das aktuelle Wort bis zum Wortende. Dabei wird der gelöschte Text gleichzeitig kopiert, so daß er mit "p" woanders eingefügt werden kann.

"u" macht die letzte Aktion rückgängig (undo).
"STRG+r" wiederholt die rückgängig gemachte Aktion (redo).

"/Ausdruck" sucht "Ausdruck", "n" findet jeweils den nächsten.
Enthält "Ausdruck" bereits von vim benutzte Sonderzeichen wie "." oder "/", muß man dabei vor diese jeweils ein "\" setzen.

Mit ":set ignorecase" wird Groß- und Kleinschreibung bei der Suche ignoriert. Diese Option kann man auch in der Datei /home/Benutzer/.exrc dauerhaft festlegen. Dabei muß man dort den Doppelpunkt weglassen. Praktisch ist auch ":set ignorecase smartcase": Damit wird Groß- und Kleinschreibung grundsätzlich ignoriert, es sei denn, "/Ausdruck" enthält wenigstens einen Großbuchstaben.

:% s/Ausdruck1/Ausdruck2/gc"

ersetzt im ganzen Text "Ausdruck1" durch "Ausdruck2" mit Nachfrage.
Das "%" steht dabei für den ganzen Text, man kann aber auch kleinere Bereiche definieren: ":1,10" würde z.B. nur die Zeilen 1-10 erfassen.

Zu Sonderzeichen wie "." und "/" gilt das oben zur Suche gesagte.
Reguläre Ausdrücke für Ausdruck1 und Ausdruck2 sind z.B.

":set nu" zeigt die Zeilennummern an ("Zeilennummer gg" springt dahin), ":set nonu" macht das rückgängig.

"a" springt hinter das aktuelle Wort und wechselt zugleich in den Einfügemodus.
"o" springt hinter die aktuelle Zeile und wechselt zugleich in den Einfügemodus.
"x" löscht das aktuelle Zeichen.
"r" läßt einen das aktuelle Zeichen durch ein anderes ersetzen, bleibt dann aber im Befehlsmodus.
"cw" löscht das aktuelle Wort und wechselt zugleich in den Einfügemodus.

"." wiederholt den jeweils letzten Befehl.

"J" fügt die folgende Zeile der aktuellen an und verbindet so die Zeilen miteinander (wichtig !).

Erst "STRG+w", dann "c" schließt das aktuelle Fenster, etwa beim Editieren mehrerer Dateien, aber etwa auch das Fenster des Hilfesystems.

":r Datei" fügt den Inhalt der Datei "Datei" an der aktuellen Cursorposition an.

":! Befehl" führt den Terminal-Befehl "Befehl" aus.
So kann man dann also mit ":r !xsel -p" den aktuellen Inhalt der Zwischenablage in vim einfügen, wenn man das Programm "xsel" installiert hat (dazu siehe oben).

":e Datei" ("edit") schließt die aktuell bearbeitete Datei und lädt stattdessen die Datei "Datei". Auf diese Weise kann man nacheinander mehrere Dateien bearbeiten, ohne vim zu verlassen.

"gU", und dann eine Cursorbewegung (wie "w") macht aus dem Wort in Richtung der Bewegung Großbuchstaben; "gu" und Cursorbewegung entsprechend Kleinbuchstaben.

"ga" zeigt den ASCII-Wert des Zeichens an der Cursorposition an, auch als Hexadezimalzahl (sehr praktisch für Programmierer).

:set encoding=utf-8
setzt die Zeichencodierung der aktuellen Textdatei auf Unicode.
:sav ++enc=utf-8 file.txt

schreibt "file.txt" als Unicode-Textdatei.

Einstellungen für vim kann man in der Datei

/home/Benutzer/.exrc

vornehmen. Trägt man dort die Zeile

abb erf erforderlich

ein, wird das Wort "erf", wenn man es in vim schreibt und dann die Leertaste drückt, durch "erforderlich" ersetzt.
Der Eintrag in /home/Benutzer/.exrc

set backspace=2

bewirkt, daß man wie in vielen anderen Editoren im Einfügemodus die Rücktaste über den Zeilenanfang hinaus zur vorigen Zeile benutzen kann.

Man kann vim-Befehle z.B. in ein Skript "skript.vim" eintragen und dieses dann in vim mit ":source skript.vim", bzw.

:sou skript.vim

ausführen. vim stellt insoweit eine eigene umfangreiche Skriptsprache mit Variablen, Schleifen, Funktionen usw. bereit.
Näheres dazu im Hilfesystem mit ":h 41".

Darüber hinaus bietet vim Syntax-Highlighting für verschiedene Programmiersprachen. Für Python aktiviert man es z.B. mit den Befehlen:

:set syntax=python
:syn on

Eigentlich soll STRG+Rechts zum nächsten Wort und STRG+Links zum vorherigen Wort springen (wie bei kate und Windows). Mit dem Terminal "xterm" funktioniert das aber zunächst nicht. Man kann die Funktionen aber durch folgende Zeilen in der Datei "/home/Benutzer/.exrc" auf die entsprechenden Tasten legen:

map ^[[1;5C <C-Right>
map ^[[1;5D <C-Left>

Hierzu bitte eingeben: "map ", dann STRG+v, dann STRG+Rechts, dann " <C-Right>" als einzelne Buchstaben (und entsprechend bei der zweiten Zeile): STRG+v bewirkt bei der Eingabe, daß das unmittelbar danach eingegebene Zeichen in der Befehlszeile als Zeichencode ausgegeben wird. Auf diese Weise läßt sich auch der Zeichencode ausgefallener Tasten in der Befehlszeile eingeben (näher dazu ":h i_CTRL-V").

Um vim kennenzulernen, sollte man den Befehl

vimtutor ge

ausführen und den dortigen, sehr guten Einführungskurs auf Deutsch machen. Dann kann man noch Tutorials wie dieses oder dieses lesen.

Weitere vim-Befehle werden hier und hier beschrieben.

Zum vi-Modus von bash siehe oben, dort am Ende.

vim gibt es auch für andere Betriebssysteme.


86. Russische (kyrillische) Schrift in gvim eingeben

"gvim" ist eine Version des Editors "vim" mit grafischer Oberfläche. Die von gvim verwendete Schriftart und -größe kann man einstellen, indem man gvim z.B. mit

gvim -font "sans 20"

startet. Um russische (kyrillische) Schrift in gvim einzugeben, muß man zuerst einen Unicode-Zeichensatz einstellen. Dies tut man in gvim mit

:set encoding=utf-8

Zusätzlich muß man nur noch die Tastatur umstellen. Dies tut man, indem man in gvim einen der folgenden Befehle eingibt:

:set keymap=russian-jcuken
:set keymap=russian-jcukenwin
:set keymap=russian-yawerty

Will man, daß diese Befehle beim Start von gvim automatisch ausgeführt werden, kann man diese in eine Datei

/home/Benutzer/.gvimrc

eintragen.

Die Definitionsdateien der Tastatureinstellungen befinden sich z.B. in dem Verzeichnis

/usr/share/vim/vim63/keymap


87. Als einfacher Benutzer root-Befehle ausführen: sudo

root kann festlegen, daß bestimmte einfache Benutzer bestimmte Befehle als root ausführen dürfen.
Dies geschieht durch Bearbeiten der Datei /etc/sudoers. Hierzu benutzt man stets den Befehl

visudo

Dazu muß man den Editor vim bedienen können (hierzu siehe oben).

Die Einträge der Datei /etc/sudoers haben folgendes Format:

Benutzername Rechnername= NOPASSWD: Befehl

Rechnername erfährt man dabei über den Befehl

hostname

Gibt man in visudo also

Ben linux= NOPASSWD: /usr/sbin/userdel

ein, kann der Benutzer Ben auf dem Rechner linux den Befehl /usr/sbin/userdel als root ausführen, indem er

sudo /usr/sbin/userdel

eingibt.


88. Den gnome-Desktop verschönern

Hier und hier werden zum Teil sehr schöne Themen für den gnome-Desktop angeboten.
Das Aussehen der Fenster wird durch das gnome-Thema und durch das Thema für das Programm "Metacity" bestimmt.
In SuSE 8.1 (gnome 2.0) müssen die Themen in folgende Verzeichnisse kopiert werden:

/usr/share/themes (gnome-Themen) und
/opt/gnome2/share/themes (Metacity-Themen).

Dann geht man im gnome-Menü zu

Applications/Desktop Preferences/Theme und
Applications/Desktop Preferences/Metacity Setup

und wählt dort die Themen aus.

Der gnome-Desktop wird von nautilus gezeichnet. Themen für nautilus kopiert man nach

/opt/gnome2/share/pixmaps/nautilus/

Dann startet man nautilus, geht dort in das Menü

Edit/Preferences/Appearance

und wählt dort das Thema aus.

Die Buttons in nautilus werden durch das gnome-Thema bestimmt.
Änderungen werden erst wirksam, wenn man im gnome-Menü einen Logout aus dem X-Server ausführt und dabei auf "Save current Setup" klickt und dann mit "startx gnome" den X-Server neu startet.

Icons befinden sich in

/opt/gnome2/share/pixmaps/ und

/usr/share/icons.

Es gibt weitere Icons in /opt/kde3/icons.

Skins für xmms werden in /usr/share/xmms/Skins gespeichert.

Das Aussehen des gnome-Startbildes und des gnome-Menü-Buttons werden von den Dateien

/opt/gnome2/share/pixmaps/splash/gnome-splash.png und
/opt/gnome2/share/pixmaps/gnome-logo-icon-transparent.png

bestimmt.

Man kann in gnome in den Titelleisten von Fenstern einen anderen Font als den Systemfont erscheinen lassen.
Hierzu installiert man das Programm gconf-editor (Teil von SuSE 8.1) und startet dieses.
Unter "apps/metacity/general" entfernt man dann den Haken vor "titlebar_uses_system_font" und gibt einen
anderen, von gnome unterstützten font unter "titlebar_font" ein.

Auf diese Weise kann man das Aussehen des gnome-Desktops so verändern, daß er kaum noch wiederzuerkennen ist.


89. Meine WindowMaker-Anpassungen

Nach vielen Versuchen mit KDE, gnome und anderen Windowmanagern benutze ich WindowMaker.

Mein Desktop ist schlicht schwarz, in der linken, unteren Ecke werden lediglich eine Uhr und die Lautstärkeregelung angezeigt. Programme werden über das an meine Bedürfnisse angepaßte Anwendungsmenü sowie durch zugeordnete Tastenkombinationen gestartet.
Das ist sehr effektiv, schnell und stabil, und ich bin damit sehr zufrieden.

Einen Screenshot meines WindowMaker-Desktops findet man hier.

Diese Anpassungen kann man erreichen, indem man folgende Einstellungen vornimmt:

Im Anwendungsmenü (einmal auf den Desktop klicken) wählt man /Erscheinungsbild/Stile/Autumn und dann /Erscheinungsbild/Hintergrund/Einfarbig/Schwarz.

Man editiert die Datei "/home/Benutzer/GNUstep/Defaults/WindowMaker".
Dort setzt man

DisableDock = Yes;
DisableClip = Yes;

Im Anwendungsmenü wählt man /WindowMaker/WPrefs. Dort legt man über das Tastatursymbol folgende Tastenkombinationen fest:

Öffne Anwendungsmenü: ALT+ p (Mod1+P).
Schließe aktives Fenster: ALT+F4 (Mod1+F4).
Maximiere aktives Fenster: ALT+x (Mod1+X).

Für Uhr und Lautstärkeregelung benötigt man die WindowMaker-applets (pclock und wmmixer). Sollten diese nicht Teil der Distribution sein, kann man sich das rpm-Paket von SuSE 8.1 hier herunterladen und als root mit "rpm -i WindowMaker-applets-1.0-197.i586.rpm" installieren.

Sodann editiert man die Datei "/home/Benutzer/GNUstep/Library/WindowMaker/autostart" und fügt dieser folgende Zeilen an:

/usr/share/doc/packages/WindowMaker-applets/pclock/demos/round-3d &
wmmixer -w -c -s &

Damit wmmixer nicht alle Lautstärkeregler, sondern nur den benötigten PCM-Regler anzeigt, führt man noch folgendes aus:

cp /usr/share/doc/packages/WindowMaker-applets/wmmixer/home.wmmixer /home/Benutzer/
mv /home/Benutzer/home.wmmixer /home/Benutzer/.wmmixer

Dann editiert man /home/Benutzer/.wmmixer und setzt vor alle addchannel-Zeilen ein #, nur nicht vor die Zeile addchannel 4.

Nun verändert man das Anwendungsmenü:
Von der Datei "/home/Benutzer/GNUstep/Defaults/WMRootMenu" macht man zunächst eine Sicherungskopie.
Dann lädt man sich meine Datei

WMRootMenu

herunter und kopiert diese nach "/home/Benutzer/GNUstep/Defaults/".
Ein xterm sollte jetzt etwa schnell mit "ALT+d" zu öffnen sein.
Man editiert die neue Datei "/home/Benutzer/GNUstep/Defaults/WMRootMenu" und paßt diese an seine Bedürfnisse an.
Die Syntax der Datei ist leicht zu verstehen. Fehler in dieser Syntax, insbesondere ein Komma oder eine Klammer zuwenig, zuviel oder an der falschen Stelle, werden jedoch von WindowMaker nicht verziehen.

Weiterhin empfehle ich, Linux standardmäßig im Textmodus zu starten, ein alias für "startx windowmaker" zu definieren und die Tastaturmaus zu benutzen.

Außerdem kann man das Aussehen des Terminals ändern und, wenn man will, ein anderes Hintergrundbild auswählen.

Insgesamt machen die oben beschriebenen Anpassungen WindowMaker zu einem derart leistungsstarken Windowmanager, daß man keine umfangreichere Systemoberfläche mehr braucht.
Außerdem läuft SuSE 8.1 (abgesehen von KDE-Programmen) mit diesen Einstellungen im Grafikmodus sogar auch auf meinem alten Pentium II 233 mit 64 MB RAM.


90. Spracherkennung, xvoice, Deutsche Version

Das Open-Source-Projekt Sphinx ist mit seinen verschiedenen Programmversionen jedenfalls bis heute (12.8.2007) noch nicht so weit, daß man es so gut benutzen könnte wie kommerzielle Produkte.

Im wesentlichen stellen heute zwei Firmen kommerzielle Spracherkennungssoftware her, nämlich "Dragon Software" mit "Dragon Naturally Speaking" und IBM mit "ViaVoice".
Die Firma Dragon Software wurde meines Wissens von Microsoft gekauft, so daß für Linux grundsätzlich nur ViaVoice verbleibt.

Nach zahlreichen Bemühungen ist es jedoch gelungen, "Dragon Naturally Speaking für Windows", Versionen 4, 5 und 7, auf Linux mit aktuellen Wine (= Windows-Emulator)-Versionen zu installieren und zu betreiben.

IBM hat um das Jahr 2000 herum ViaVoice für Linux entwickelt und als kommerzielles Produkt mit bestimmten Linux-Distributionen vertrieben. Das Open-Source-Programm xvoice setzt die Installation von ViaVoice voraus, kann also nicht ohne das IBM-Produkt verwendet werden, sondern ergänzt dieses lediglich.
Leider hat IBM in der Zwischenzeit sein Linux-Engagement abgebrochen, so daß in keiner aktuellen Distribution ViaVoice mehr enthalten ist.
Will man diesen Weg gehen, muß man daher auf eine Distribution aus der Zeit um das Jahr 2000 zurückgreifen, die ViaVoice noch enthält. Problematisch ist außerdem, daß die meisten ViaVoice-Pakete nur englische Sprache unterstützen. Unter bestimmten Umständen soll es möglich sein, deutsche Sprachdateien aus der "Millenium-Edition" von ViaVoice für Windows zu übertragen, die man dann aber auch erst mal haben muß.
Die meines Wissens einzige Linux-Distribution, die derzeit deutsche Spracherkennung mit eigenen Sprachpaketen für ViaVoice unter Linux ermöglicht, ist das

Mandrake Linux PowerPack deluxe 7.2,

das man vielleicht mit etwas Glück bei ebay finden kann.

Wenn man diese Distribution hat, stellt sich allerdings das Problem der Installation der 6 Jahre alten, kommerziellen Software auf einer aktuellen Linux-Distribution. Die Fenster von ViaVoice für Linux sind in Java programmiert und setzen daher ein Paket "Java Runtime Environment" voraus, und zwar eines in einer alten Version.
Nach vielen Versuchen mit dieser Anleitung und diesen Erläuterungen läuft bei mir die ViaVoice-Version des Mandrake PowerPacks 7.2 (enthält die deutsche und die englische Version) auf meiner SuSE 10.0-Distribution.

Ich benutze auch die deutsche Version von ViaVoice mit xvoice. Dazu mußte ich den Code von xvoice anpassen.
Meine Veränderungen von xvoice für die deutsche Version von ViaVoice kann man hier herunterladen.
In der dort enthaltenen Datei "readme.txt" findet man auch weitere Erläuterungen hierzu sowie zum Kompilieren von xvoice und zur Installation von ViaVoice für Linux auf SuSE 10.0.


91. OpenOffice schneller starten

In OpenOffice sollte unter "Extras / Optionen / Arbeitsspeicher" 50 MB "für OpenOffice verwenden" und 2 MB "Speicher pro Objekt" eingestellt sein. Dann startet OpenOffice deutlich schneller.


92. OpenOffice Writer - Makros beim Programmstart ausführen

Neben der Zuweisung von Makros mit der Funktion "Extras / Anpassen / Ereignisse" kann man oowriter auch von der Konsole aus anweisen, beim Programmstart ein bestimmtes Makro auszuführen:

oowriter dokument.odt macro:///Standard.Module1.Makro1

Daraus ergeben sich außerordentliche Gestaltungsmöglichkeiten.
Man kann dem Makro gegebenenfalls sogar Parameter übergeben:

oowriter dokument.odt macro:///Standard.Module1.Makro1("abc")


93. Spiele

Um 3D-Spiele zu betreiben, muß ein 3D-Treiber für die Grafikkarte installiert werden. Das kann sich als schwierig erweisen.

Für meine S3 ProSavageDDR (KM 266)-Grafikkarte ist der erforderliche DRI-Treiber erst in Arbeit.
Der Treiber muß dann sowohl zu der Kernel-Version als auch zu der Version des X-Servers passen. Es gibt eine vorläufige Lösung, bei der man X-Server und Kernel selbst neu kompilieren muß. Ich habe das erfolglos versucht und mußte am Ende mein System ohne 3D-Unterstützung neu installieren.

Es gibt von mehreren größeren 3D-Spielen auch Linux-Versionen, etwa von Doom, Quake I-III, Unreal Tournament und Doom III. Für Quake I gibt es die Dateien squake und quake.x11, mit denen man die DOS-Version von Quake I auf Linux laufen lassen können soll.

Manche versuchen, Windows-Versionen von Spielen mit wine zum Laufen zu bringen.

Grafisch einfach gehaltene, aber sehr herausfordernde Spiele sind

xgammon (Backgammon)

xskat (Skat)

xboard (Schach) (Die Schachuhren kann man ausschalten mit: "xboard -clockMode false").

mahjongg (unter gnome)

same-gnome (Im Menü von gnome), same-game (KDE (Im Menü unter Help die Spielregeln lesen.))

xpat2, kpat (Kartenspiel Patience, z.B. Klondike)

xhextris (Tetris mit Hexagrammen: Vielleicht das Linux-Spiel schlechthin: Unbedeutende Grafik, kein Sound, vi-Tasten, aber stabil und enorm schwer.)

Weitere, sehr gute 2D-Spiele für Linux sind: lbreakout2 (wie Arkanoid), powermanga, supertux (wie Giana Sisters), rocksndiamonds (wie Boulder Dash), skobo (neue Idee), Maelstrom (wie Asteroids), burgerspace (wie Burger Time), frozen-bubble, xarchon, raptor.
Für die meisten dieser Spiele ist es sehr wichtig, daß der X-Server auf eine Farbtiefe von 16 Bit eingestellt ist. Sonst laufen sie nur langsam, mit stockendem Sound oder ruckelig.


94. Programmieren

Man kann mit Linux leichter in die Programmierung einsteigen als mit anderen Betriebssystemen. Denn die erforderlichen und sonst teuren Entwicklungswerkzeuge sind kostenlos verfügbar.

Programme können etwa in folgenden Sprachen erstellt werden: C/C++, Perl, Perl/Tk, Python, Java, Tcl/Tk, Lisp, Basic, Ruby.

Wie man programmiert, wird in zahlreichen Tutorials und Büchern erklärt, die zum Teil auch im Internet im Volltext heruntergeladen werden können. Besser ist es aber, dazu Bücher aus Papier zu haben. Noch besser sind Lehrveranstaltungen im Rahmen eines Informatikstudiums.

Es geht aber auch ohne. Hier ein kurzes Beispiel zum Einstieg:
Man installiert mit YaST2 die Auswahl "C/C++ Compiler und Werkzeuge", öffnet dann einen beliebigen Editor (z.B. vim und erstellt eine Datei "prog.cpp" mit den folgenden kurzen fünf Zeilen als Inhalt:

#include <iostream>
int main()
{
    std::cout << "Hallo Welt !\n";
}

Die geschweiften Klammern erhält man dabei mit AltGr+7 und AltGr+0. Dann führt man

g++ prog.cpp

aus. Dadurch erhält man eine ausführbare Datei "a.out". Diese führt man mit

./a.out

aus. Ergebnis: Hallo Welt !

Das war C++.

Zu einigen Sprachen habe ich noch genauere Informationen geschrieben.
Es gibt hier also noch Seiten zu Python, Perl und bash.


95. Linux-Kernel kompilieren, neuere Linux-Kernels verwenden

Um einen Linux-Kernel selbst zu kompilieren, etwa um Unterstützung für bestimmte Hardware hinzuzufügen, müssen die C-Entwicklungswerkzeuge (gcc, make, usw.) installiert sein, außerdem benötigt man die Kernel-Quellen, z.B. aus dem Paket "kernel-source...rpm".

Nach Installation dieses rpm-Pakets sind die Quellen dann in dem Verzeichnis

/usr/src/linux

Dorthin wechselt man. Man kann zahlreiche Einstellungen für den neuen Kernel vornehmen. Hierzu gibt es ein Hilfsprogramm, das man in dem genannten Verzeichnis mit

make xconfig

aufrufen kann. Bei der Auswahl der Einstellungen kann man viel falsch machen, so daß der neu erstellte Kernel dann unbrauchbar ist und das System später nicht richtig funktioniert. Also ist hier Vorsicht geboten.

Hat man seine Einstellungen vorgenommen, kann man den Kernel mit

make dep
make clean
make bzImage

kompilieren. Das ist ein umfangreicher Vorgang, der etwa eine halbe Stunde Rechenzeit benötigt.

Das Ergebnis ist eine Datei

/usr/src/linux/arch/i386/boot/bzImage

Diese Datei entspricht der Datei des aktuellen Linux-Kernels

/boot/vmlinuz

und kann diese gegebenenfalls unmittelbar ersetzen.

Bootet man seinen Rechner über DOS mit LOADLIN, ist zu beachten, daß zum Booten die Kerneldatei von der DOS / Windows-Partition, in der Regel

C:\LOADLIN\vmlinuz

sowie die Datei

C:\LOADLIN\initrd

verwendet wird. Will man den neuen Kernel einsetzen, müssen diese Dateien also durch die jeweiligen Dateien aus dem Verzeichnis

/boot

ersetzt werden.

Weiterhin ist zu beachten, daß die Kernel-Module, die zahlreiche Gerätetreiber enthalten, nicht an den neuen Kernel angepaßt sind und deshalb ebenfalls neu kompiliert werden müssen. Dies tut man wiederum im Verzeichnis

/usr/src/linux

mit dem Befehl

make modules

Das Kompilieren der Kernel-Module dauert noch etwas länger als das Kompilieren des Kernels selbst.

Nach dem Kompilieren können die neuen Module dann in dem genannten Verzeichnis mit dem Befehl

make modules_install

installiert werden. Zu diesem Zeitpunkt sollte bereits der neue Kernel aktiv sein, da die neuen Module nicht mit dem alten Kernel laufen würden.


96. Standardsoftware unter Linux

Die Distributionen scheinen auf den ersten Blick sehr verschieden zu sein. Programmdateien werden in unterschiedlichen Verzeichnissen installiert, Installationsprogramme sind verschieden und Programmpakete nicht immer kompatibel.
Wenn das System aber erst einmal installiert ist, erscheinen die Distributionen aber doch wieder recht einheitlich.

Am Ende läuft doch wieder eine KDE oder Gnome-Oberfläche, und Texte werden mit openoffice geschrieben.

Vielleicht kann man daher sagen, daß Linux letztlich doch nur ein Erscheinungsbild bietet, das mit der Benutzung bestimmter Programme verbunden ist. Hier einige dieser Standardprogramme:

Textverarbeitung openoffice, abiword, textmaker, kword
Finanzen gnucash
Bildbetrachter gqview, kuickshow
Bildbearbeitung gimp, xpaint
Bildergallerien erstellen gthumb, konqueror
In Fraktale (Apfelmännchen) hineinfliegen (sehr cool) xaos
Packer ark, file-roller, tar, gzip, zip, unzip, bzip2, bunzip2, unarj, lha
Dateimanager mc, konqueror, nautilus (gnome), krusader, worker
Editoren vim, emacs, mcedit, gedit, kate, kwrite, cooledit, joe
pdf-Betrachter acroread (Acrobat Reader), pv
Internet-Einwahl (mit analogem Modem) Modem mit YaST2, bzw. drakconf konfigurieren, dann mit kinternet, kppp Verbindung herstellen. Daneben gibt es unter SuSE den Terminalbefehl "cinternet" mit den Optionen --start, --stop und --status. Um "cinternet" auch als normaler Benutzer verwenden zu können, gegebenenfalls sudo für "/user/sbin/cinternet" konfigurieren. Außerdem sollte der Benutzer in der Gruppe "dialout" sein.
Browser mozilla (temporäre Dateien (Cache) sind im /home-Verzeichnis des Benutzers), firefox, galeon, konqueror, w3m (Text), lynx (Text), opera
Email kmail (KDE), evolution (Gnome), mutt (Text), nail (Text)
Downloadmanager wget (Textmodus)
FTP-Zugriff Am besten mit konqueror, ansonsten mit kbear, über Midnight Commander, ferner mit Befehl ftp, auch mit mozilla.
Mixer gnome-volume-control, gamix, wmmixer, alsamixer (Textmodus), amixer (z.B. amixer sset PCM 77%. Siehe gegebenenfalls "amixer scontrols")
Soundtracking schismtracker, soundtracker, cheesetracker

Mods abspielen

xmms kann mods in den Formaten mod, xm, s3m und it abspielen, wenn das Paket xmms-plugins...rpm installiert ist, mikmod (Mandriva), modplugplay: Liefert ausgezeichnete Tonqualität. Erstaunlicherweise kann auch timidity (siehe sogleich) Mods abspielen.
Midis abspielen timidity: Wandelt mid intern in wav. Wenn das Instrumenten-rpm installiert ist, klingt das mit jeder Soundkarte ganz ausgezeichnet. Mit "timidity -in" kann man das Programm im Textmodus mit bestimmten Tasten steuern. So kann man etwa Lautstärke, Geschwindigkeit und Tonhöhe einstellen. Zusätzliche grafische Oberflächen können mit "timidity -ia" oder "timidity -ig" gestartet werden.
mp3-Player mp3blaster (Text, dennoch viele Playlist-Funktionen), mpg123, xmms, auch mplayer.
mp3-Encoder "lame -h 1.wav 1.mp3": Erstellt aus der wav-Datei 1.wav die mp3-Datei 1.mp3.
mp3-Decoder "lame 1.mp3 1.wav --decode": Erstellt aus der mp3-Datei 1.mp3 die wav-Datei 1.wav.
Musikstücke von Musik-CDs in Dateien umwandeln cdda2wav, cdparanoia, grip
Sound-Dateien (wav) an Standard-Lautstärke anpassen normalize
Videos abspielen mplayer: Unter Umständen werden zusätzliche Codecs benötigt. Options: "mplayer -fs -nosound -loop 0". Film von DVD in normaler Lautstärke abspielen: "mplayer dvd://1 -chapter 1 -af volnorm". Mit grafischem Frontend: gmplayer. Auch: kaffeine, xine
Systeminformationen df, du, dmesg, xdpyinfo, lspci -vvv, hwinfo, kcontrol, gkrellm, siga
Taschenrechner galculator, kcalc. Befehl bc: "echo 4+5 | bc" ergibt "9". Auch mit dem interaktiven Modus von Python kann man rechnen.
C64-Musikstücke abspielen sidplay2
Manche Windows-Programme unter Linux laufen lassen wine


97. Probleme und Lösungen zu Mandriva Community 10.1

Die Community-Version der Mandriva-Distribution ist eine Testversion, die vor der eigentlichen Official-Version günstig abgegeben, bzw. zum Download angeboten wird. Sie kann also noch einige Fehler enthalten. Tut sie bei mir aber kaum.

Nach Durchführung der normalen Mandrivainstallation hat das Tool PTS-Partition-Manager angezeigt, daß eine bestehende Windows 98-Partition "überschrieben" worden sei. Nach Löschen der Mandriva-Partition war das Problem wieder weg, die Windows 98-Partition also offenbar intakt. Ich habe schließlich die Partitionierung von einem SuSE-Installationsprogramm durchführen lassen und Mandriva in die so erstellte Partition hineininstalliert. Für Loadlin war dann die neue initrd erforderlich.

Das Mandriva-Installationsprogramm installiert immer den Bootmanager Lilo. Diesen sollte man durch "lilo -u" wieder loswerden können. Oder man installiert Grub drüber und führt dann unter DOS "fdisk /mbr" aus (wenn man Pech hat, kann man dann aber nicht mehr booten).

Beim Booten werden bei mir oft die Mixereinstellungen der Soundkarte nicht erkannt. Diese kann man durch den Befehl "/usr/sbin/alsactl restore" aus der Datei /etc/asound.state zurückladen. Um das nicht bei jedem Hochfahren von Hand machen zu müssen, habe ich den Befehl in die Datei /etc/rc.d/init.d/atd eingetragen. Das ist ein Dienst, der eigentlich für etwas ganz Anderes bestimmt ist, aber bei jedem Hochfahren in Runlevel 3 ausgeführt wird.

Den Namen des Rechners (siehe Befehl hostname) kann man in der Datei /etc/rc.d/rc.sysinit eintragen, bzw. ändern. Manche Programme meckern dann aber immer noch. Offenbar sollte er zusätzlich noch woanders eingetragen werden.

Das Acer-56K-Modem an der ersten seriellen Schnittstelle wurde bei mir nach dem Hochfahren nicht mehr erkannt. Das liegt offenbar daran, daß /dev/modem nicht vorhanden ist. Man kann das Modem aber in kppp (Configure/Device) auf /dev/ttyS0 (die erste serielle Schnittstelle) legen. Dann geht es wieder.

Fonts sind selten so, wie man sie haben will. Die Mandriva-Default-Fonts sind aber eigentlich gar nicht so schlecht.


98. Probleme und Lösungen zu SuSE 10.0

Für die Performance von KDE-Anwendungen wichtige Einstellungen vornehmen

Unter SuSE 10.0 lief KDE bei mir sehr langsam, vor allem beim Starten neuer Anwendungen.
Dies lag an dem Indexierungsprogramm "beagle". Dieses habe ich mit YaST2 vollständig deinstalliert.

Das Starten von KDE-Anwendungen wie kmail unter WindowMaker war jedoch weiterhin langsamer als nötig.
Dies lag daran, daß konqueror jeweils im Hintergrund mitgeladen wurde.
Um dies abzuschalten, muß man in konqueror unter

Einstellungen / Konqueror einrichten / Leistung

unter

Im Hintergrund laden

die Option

Beim KDE-Start eine Ausgabe im Hintergrund laden

ausschalten.

Geringe Datenübertragungsrate bei Schreibzugriff auf USB-Sticks und Floppy-Laufwerk erhöhen

Bei der Standardinstallation von SuSE 10.0 ist der Schreibzugriff auf USB-Sticks und Floppy-Laufwerk ungewöhnlich langsam.
Es handelt sich um einen Bug im Hotplug-Dienst hal bei Verwendung von sync (info sync), der sicherlich in späteren Versionen von SuSE-Linux behoben werden wird.
Wenn man die Geräte als root umountet und dann wieder von Hand mountet, ist der Schreibzugriff wieder schnell. Eine Lösung ist also, vom automatischen Mounten mit hal wieder zum klassischen Mounten zurückzukehren.
Da hal jedoch zum Einbinden bestimmter Geräte wie der Soundkarte beim Systemstart benötigt wird, muß man weiterhin hal verwenden, diesen jedoch anders konfigurieren. Das tut man folgendermaßen:

Zuerst macht man als root eine Sicherungskopie des Verzeichnisses

/usr/share/hal/fdi/policy

mit allen Unterverzeichnissen.

Im Verzeichnis

/usr/share/hal/fdi/policy/10osvendor

gibt es mehrere Konfigurationsdateien für hal.

In jeder davon sucht man alle Zeilen, die "should_mount" enthalten, z.B. die Zeile

<merge key="storage.policy.should_mount" type="bool">true</merge>

In allen diesen Zeilen in allen Dateien setzt man den Wert von >true< auf >false<. Dies kann man auch mit folgenden Befehlen erledigen:

perl -pi -e 's/should_mount" type="bool">true</should_mount" type="bool">false</g' *
perl -pi -e 's/should_mount" bool="true"/should_mount" bool="false"/g' *

Wenn man das also getan hat, werden die Geräte (nach einem Neustart von hal) nicht mehr automatisch gemountet.

Allerdings wird zum Beispiel das Floppy-Laufwerk trotzdem noch angesprochen, wenn eine neue Diskette eingelegt wird.
Dies vermeidet man, indem man zusätzlich in der Datei

/usr/share/hal/fdi/policy/10osvendor/90-block-subfs.fdi

aus den Zeilen

<append key="info.callouts.add" type="strlist">hald-subfs-mount</append>
<append key="info.callouts.remove" type="strlist">hald-subfs-mount</append>

jeweils das "hald-subfs-mount" entfernt.

Diese beiden Zeilen kommen zweimal vor, beide Varianten sollten geändert werden.
Nun startet man hal mit dem Befehl

rchal restart

neu und ändert gegebenenfalls noch die Einträge in der Datei "/etc/fstab". Meine Datei "/etc/fstab" sieht beispielsweise folgendermaßen aus:

/dev/hda6 / reiserfs   acl,user_xattr        1 1
/dev/hda1 /windows/C  vfat noauto,users,gid=users,umask=0002,utf8=true 0 0
/dev/hda5 swap swap defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs noauto 0 0
usbfs /proc/bus/usb usbfs noauto 0 0
devpts /dev/pts devpts mode=0620,gid=5 0 0
/dev/cdrom /media/cdrom auto noauto,user,exec,ro 0 0
/dev/fd0 /media/floppy auto noauto,user,exec 0 0
/dev/sda1 /media/stick vfat noauto,user,exec 0 0

Was derartige Einträge in dieser Datei bedeuten, wird etwa hier oder hier sowie in "man fstab" erklärt.

Auf diese Weise kann man unter SuSE 10.0 wieder traditionell mounten und auf die Laufwerke mit gewohnt hoher Geschwindigkeit schreiben.

Den ALSA-Sequencer aktivieren

Um bestimmte Soundprogramme wie rosegarden, muse (MIDI) oder jack (zu kontrollieren mit qjackctl) zu verwenden, benötigt man in der Regel den ALSA-Sequencer (siehe "man aconnect"). Dieser ließ sich bei meiner AC'97-Soundkarte zunächst nicht aktivieren. Stattdessen wurde (auch bei Ausführung als root) folgende Fehlermeldung ausgegeben:

ALSA lib seq_hw.c:455:(snd_seq_hw_open) open /dev/snd/seq failed: Keine Berechtigung

Das Problem war, daß ein bestimmtes Kernel-Modul fehlte. Dieses kann man aber als root problemlos mit

modprobe snd-seq

nachladen. Dann wird auch automatisch die erforderliche Datei "/dev/snd/seq" erstellt, und der ALSA-Sequencer kann gestartet werden.

SDL-Fehlermeldung: "Audio write: Invalid argument"

Manche Programme, die mit SDL arbeiten, geben manchmal mit SuSE 10.0 und meinem VIA-Sounchip keinen Ton aus.
Es geht doch, wenn man das jeweilige Programm mit

export SDL_AUDIODRIVER=alsa ./Programm

startet.

In vim unter xterm die Tasten "STRG+Rechts" und "STRG+Links" auf "zum nächsten Wort" und "zum vorherigen Wort" legen

Dazu siehe oben Abschnitt "Editor vim" sowie hier.


99. Weitere Links

Ein grundlegender Artikel zum Verhältnis von Linux und Windows:
http://www.felix-schwarz.name/files/opensource/articles/Linux_ist_nicht_Windows/

Nach Themenbereichen geordnete Zusammenstellung verfügbarer Linux-Software:
http://www.linuxlinks.com/Software/

Foren:
Mandrivauser.de (gut, spezielles Mandriva-Forum)
Linux-club.de (gut, spezielles SuSE-Forum)
Linuxquestions.org
Linux-user-Forum

Themes für den Desktop:
http://art.gnome.org
http://freshmeat.net

Hilfe zu Fonts:
http://convexhull.com/mandrake_fonts.html

Bücher (leider zum Teil recht groß) und weitere Informationen:
http://www.netzmafia.de/skripten/unix/   Ein hervorragendes Skript, komplett als Download (nur ca. 794 K).
http://www.galileocomputing.de/artikel/gp/artikelID-237    Das komplette Buch "Knoppix kompakt" als pdf (ca. 5,5 MB).
http://www.linux-ag.de/linux/LHB/LHB.html   Ein ganzes Buch zum Lesen oder als Download.
http://www.linuxbu.ch   Noch ein ganzes Buch zum Download (Rubrik "Lesen")).
http://www.oreilly.de/openbook/    Mehrere Bücher komplett.
http://debiananwenderhandbuch.de/    Ein Buch über die Distribution Debian GNU/Linux.
Windows-nach-Linux-HOWTO

Noch mehr Tips, Tricks und Antworten auf häufig gestellte Fragen:
FAQ (= frequently asked questions) von de.comp.os.unix.linux
LinuxGuruz FAQ

Wem diese Seite nicht genügt, dem sei zum Schluß noch folgendes Standardwerk empfohlen:
Kofler, Michael: Linux - Installation, Konfiguration, Anwendung, ca. 60,- EUR.



Email: abgdf {at-symbol} gmx.net
Zurück

(Mein System: Elitegroup K7VMM+ Mainboard (Fast alles onboard: KM 266 Chipsatz, Grafik S3 ProSavage 32 MB Shared Video Memory, VIA VT 8235 AC'97 Sound), AMD Athlon 2200 XP @ 1.800 MHz, 256 MB DDR-RAM, 40 GB Maxtor HD)