Kapitel 30. Spezielle Funktionen von SUSE Linux

Inhaltsverzeichnis

30.1. Informationen zu speziellen Software-Paketen
30.2. Virtuelle Konsolen
30.3. Tastaturzuordnung
30.4. Sprach- und länderspezifische Einstellungen

Zusammenfassung

In diesem Kapitel erhalten Sie zunächst Informationen zu den verschiedenen Software-Paketen, zu den Virtuellen Konsolen und zur Tastaturbelegung. Hier finden Sie Hinweise zu Software-Komponenten, wie bash, cron und logrotate, da diese während der letzten Veröffentlichungszyklen geändert oder erweitert wurden. Selbst wenn die Änderungen nur klein sind oder als weniger wichtig eingestuft werden, können die Benutzer ihr Standardverhalten ändern wollen, da diese Komponenten häufig eng mit dem System verbunden sind. Das Kapitel endet mit einem Abschnitt zu sprach- und landesspezifischen Einstellungen (I18N und L10N).

30.1. Informationen zu speziellen Software-Paketen

Die Programme bash, cron, logrotate, locate, ulimit und free sowie die Datei resolv.conf spielen für Systemadministratoren und viele Benutzer eine wichtige Rolle. Manualpages und Info-Seiten sind hilfreiche Informationsquellen zu Befehlen; sie sind jedoch nicht immer verfügbar. GNU Emacs ist ein verbreiteter und sehr anpassungsfähiger Texteditor.

30.1.1. Das Paket bash und /etc/profile

Bash ist die Standard-Shell in SUSE Linux. Wenn sie als Login-Shell verwendet wird, werden mehrere Initialisierungsdateien gelesen. Bash verarbeitet sie in der Reihenfolge der folgenden Liste.

  1. /etc/profile

  2. ~/.profile

  3. /etc/bash.bashrc

  4. ~/.bashrc

In ~/.profile oder in ~/.bashrc können benutzerdefinierte Einstellungen vorgenommen werden. Um die richtige Verarbeitung der Dateien zu gewährleisten, müssen die Grundeinstellungen aus /etc/skel/.profile oder /etc/skel/.bashrc in das Home-Verzeichnis des Benutzers kopiert werden. Es empfiehlt sich, die Einstellungen aus /etc/skel nach einer Aktualisierung zu kopieren. Führen Sie die folgenden Shell-Befehle aus, um den Verlust persönlicher Einstellungen zu vermeiden:

mv ~/.bashrc ~/.bashrc.old
cp /etc/skel/.bashrc ~/.bashrc
mv ~/.profile ~/.profile.old
cp /etc/skel/.profile ~/.profile

Kopieren Sie anschließend die persönlichen Einstellungen zurück aus den *.old-Dateien.

30.1.2. Das cron-Paket

Wenn Sie Befehle regelmäßig und automatisch im Hintergrund zu bestimmten Zeitpunkten ausführen möchten, verwenden Sie in der Regel das Werkzeug cron. cron wird durch speziell formatierte Zeittabellen gesteuert. Einige sind bereits im Lieferumfang des Systems enthalten, bei Bedarf können Benutzer jedoch auch eigene Tabellen erstellen.

Die cron-Tabellen befinden sich im Verzeichnis /var/spool/cron/tabs. Als systemübergreifende cron-Tabelle dient /etc/crontab. Geben Sie den Namen des Benutzers, unter dem der Befehl ausgeführt werden soll, vor den Befehl an. In Beispiel 30.1, „Eintrag in /etc/crontab“, wird root angegeben. Die paketspezifischen Tabellen in /etc/cron.d weisen alle dasselbe Format auf. Informationen hierzu finden Sie auf der Manualpage zu cron (man cron).

Beispiel 30.1. Eintrag in /etc/crontab

1-59/5 * * * *   root   test -x /usr/sbin/atrun && /usr/sbin/atrun

/etc/crontab kann nicht mit dem Befehl crontab -e bearbeitet werden. Die Datei muss direkt in einem Editor geladen, geändert und dann gespeichert werden.

Einige Pakte installieren Shell-Skripte in die Verzeichnisse /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly und /etc/cron.monthly, deren Anweisungen durch /usr/lib/cron/run-crons gesteuert werden. /usr/lib/cron/run-crons wird von der Haupttabelle (/etc/crontab) alle 15 Minuten ausgeführt. Hiermit wird gewährleistet, dass vernachlässigte Prozesse zum richtigen Zeitpunkt ausgeführt werden können.

Zum Ausführen der Skripte hourly, daily oder von Skripten für regelmäßige Wartungsarbeiten zu benutzerdefinierten Zeitpunkten werden die Zeitstempeldateien durch Einträge in /etc/crontab-Einträgen entfernt (siehe Beispiel 30.2, „/etc/crontab: Entfernen von Zeitstempeldateien“, wo z. B. hourly vor jeder vollen Stunde und daily einmal täglich um 2:14 entfernt werden).

Beispiel 30.2. /etc/crontab: Entfernen von Zeitstempeldateien

59 *  * * *     root  rm -f /var/spool/cron/lastrun/cron.hourly
14 2  * * *     root  rm -f /var/spool/cron/lastrun/cron.daily
29 2  * * 6     root  rm -f /var/spool/cron/lastrun/cron.weekly
44 2  1 * *     root  rm -f /var/spool/cron/lastrun/cron.monthly

Die täglichen Systemwartungsaufträge wurden zum Zwecke der Übersichtlichkeit auf mehrere Skripts verteilt. Sie sind im Paket aaa_base enthalten. /etc/cron.daily enthält beispielsweise die Komponenten suse.de-backup-rpmdb, suse.de-clean-tmp oder suse.de-cron-local.

30.1.3. Protokolldateien: Paket logrotate

Zahlreiche Systemdienste (Daemons) und auch der Kernel selbst, zeichnen regelmäßig den Systemstatus und spezielle Ereignisse in Protokolldateien auf. Auf diese Weise kann der Administrator zuverlässig feststellen, in welchemd Zustand sich das System zu einem bestimmten Zeitpunkt befand, Fehler oder Fehlfunktionen erkennen und gezielt beheben. Die Protokolldateien werden in der Regel, wie im FHS (File Hierarchy Standard) angegeben, unter /var/log gespeichert und werden täglich größer. Mit logrotate kann die Größe der Dateien gesteuert werden.

30.1.3.1. Konfiguration

Konfigurieren Sie Logrotate mit der Datei /etc/logrotate.conf. Die Dateien, die zusätzlich gelesen werden sollen, werden insbesondere durch die include-Spezifikation konfiguriert. Mit SUSE Linux wird sichergestellt, dass Programme, die Protokolldateien erstellen, einzelne Konfigurationsdateien in /etc/logrotate.d installieren. Solche Programme sind beispielsweise in den Paketen apache2 (/etc/logrotate.d/apache2) und syslogd (/etc/logrotate.d/syslog) enthalten.

Beispiel 30.3. Beispiel für /etc/logrotate.conf

# see "man logrotate" for details
# rotate log files weekly 
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones 
create

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own lastlog or wtmp - we'll rotate them here
#/var/log/wtmp {
#    monthly
#    create 0664 root utmp
#    rotate 1
#}

# system-specific logs may be also be configured here.

logrotate wird über cron gesteuert und täglich durch /etc/cron.daily/logrotate aufgerufen.

[Important]Wichtig

Mit der Option create werden alle vom Administrator in /etc/permissions* vorgenommenen Einstellungen gelesen. Stellen Sie sicher, dass durch persönliche Änderungen keine Konflikte auftreten.

30.1.4. Der Befehl "locate"

locate, ein Befehl zum schnellen Suchen von Dateien, ist nicht im Standardumfang der installierten Software enthalten. Bei Bedarf installieren Sie das Paket find-locate. Der updatedb-Vorgang wird dann jede Nacht oder etwa 15 Minuten nach dem Booten des Systems automatisch gestartet.

30.1.5. Der Befehl "ulimit"

Mit dem Befehl ulimit (user limits) können Grenzwerte für die Verwendung der Systemressourcen festgelegt und angezeigt werden. ulimit ist insbesondere für die Begrenzung des für Anwendungen verfügbaren Speichers hilfreich. Hiermit kann verhindert werden, dass eine Anwendung zu viel Speicher belegt, wodurch es zu einem Stillstand des Systems kommen kann.

ulimit kann mit verschiedenen Optionen verwendet werden. Verwenden Sie zum Begrenzen der Speicherauslastung die in Tabelle 30.1, „ulimit: Festlegen von Ressourcen für Benutzer“ aufgeführten Optionen.

Tabelle 30.1. ulimit: Festlegen von Ressourcen für Benutzer

-m

Maximale Größe des physischen Arbeitsspeichers

-v

Maximale Größe des virtuellen Arbeitsspeichers

-s

Maximale Größe des Stapels

-c

Maximale Größe der Core-Dateien

-a

Anzeigen der festgelegten Grenzwerte

In /etc/profile können Sie systemübergreifende Einstellungen vornehmen. Aktivieren Sie hier die Erstellung der Core-Dateien, die Programmierer für die Fehlersuche benötigen. Ein normaler Benutzer kann die in /etc/profile vom Systemadministrator festgelegten Werte nicht erhöhen, er kann jedoch spezielle Einstellungen in ~/.bashrc vornehmen.

Beispiel 30.4. ulimit: Einstellungen in ~/.bashrc

# Limits of physical memory:
ulimit -m 98304
 
# Limits of virtual memory:
ulimit -v 98304

Die Speicherangaben müssen in KB erfolgen. Weitere Informationen erhalten Sie mit man bash.

[Important]Wichtig

ulimit-Direktiven werden nicht von allen Shells unterstützt. PAM (beispielsweise pam_limits) bietet umfassende Anpassungsmöglichkeiten, wenn Sie Einstellungen für diese Beschränkungen vornehmen müssen.

30.1.6. Der Befehl "free"

Der Befehl free ist leicht irreführend, wenn Sie herausfinden möchten, wie viel Arbeitsspeicher zurzeit verwendet wird. Die entsprechenden Informationen finden Sie in /proc/meminfo. Heute müssen sich Benutzer, die ein modernes Betriebssystem wie Linux verwenden, in der Regel kaum Gedanken über den Arbeitsspeicher machen. Das Konzept des verfügbaren Arbeitsspeichers geht auf Zeiten vor der einheitlichen Speicherverwaltung zurück. Bei Linux gilt der Grundsatz freier Arbeitsspeicher ist schlechter Arbeitsspeicher. Daher wurde bei Linux immer darauf geachtet, die Caches auszugleichen, ohne freien oder nicht verwendeten Arbeitsspeicher zuzulassen.

Der Kernel verfügt nicht direkt über Anwendungs- oder Benutzerdaten. Stattdessen verwaltet er Anwendungen und Benutzerdaten in einem Seiten-Cache. Falls nicht mehr genügend Arbeitsspeicher vorhanden ist, werden Teile auf der Swap-Partition oder in Dateien gespeichert, von wo aus sie mithilfe des Befehls mmap abgerufen werden können. (siehe man mmap).

Der Kernel enthält zusätzlich andere Caches, wie beispielsweise den slab-Cache, in dem die für den Netzwerkzugriff verwendeten Caches gespeichert werden. Hiermit können die Unterschiede zwischen den Zählern in /proc/meminfo erklärt werden. Die meisten, jedoch nicht alle dieser Zähler können über /proc/slabinfo aufgerufen werden.

30.1.7. Die Datei /etc/resolv.conf

Die Auflösung von Domänennamen erfolgt über die Datei /etc/resolv.conf. Informationen hierzu erhalten Sie in Kapitel 40, Domain Name System.

Diese Datei sollte ausschließlich mit dem Skript /sbin/modify_resolvconf aktualisiert werden. Kein anderes Programm darf direkte Änderungen an /etc/resolv.conf vornehmen. Das Erzwingen dieser Regel ist die einzige Möglichkeit, um die Konsistenz der Netzwerkkonfiguration und der relevanten Dateien des Systems zu gewährleisten.

30.1.8. Manualpages und Info-Seiten

Für einige GNU-Anwendungen (wie beispielsweise tar) sind keine Manualpages mehr vorhanden. Verwenden Sie für diese Befehle die Option --help, um eine kurze Übersicht über die info-Seiten zu erhalten, in der Sie detailliertere Anweisungen erhalten. info befindet sich im Hypertextsystem von GNU. Eine Einführung in dieses System erhalten Sie durch Eingabe von info info. Info-Seiten können durch Eingabe von emacs -f info mit Emacs oder mit info direkt in einer Konsole angezeigt werden. Sie können auch tkinfo, xinfo oder das Hilfesystem von SUSE zum Anzeigen von info-Seiten verwenden.

30.1.9. Einstellungen für GNU Emacs

GNU Emacs ist eine komplexe Arbeitsumgebung. In den folgenden Abschnitten werden die beim Starten von GNU Emacs verarbeiteten Dateien beschrieben. Weitere Informationen hierzu erhalten Sie online unter http://www.gnu.org/software/emacs/.

Beim Starten liest Emacs mehrere Dateien, in denen die Einstellungen von den Benutzer, den Systemadministrator und den Distributor zur Anpassung oder Vorkonfiguration enthalten sind. Die Initialisierungsdatei ~/.emacs ist in den Home-Verzeichnissen der einzelnen Benutzer von /etc/skel installiert. .emacs wiederum liest die Datei /etc/skel/.gnu-emacs. Zum Anpassen des Programms kopieren Sie .gnu-emacs in das Home-Verzeichnis (mit cp /etc/skel/.gnu-emacs ~/.gnu-emacs) und nehmen Sie dort die gewünschten Einstellungen vor.

In .gnu-emacs wird die Datei ~/.gnu-emacs-custom als custom-file definiert. Wenn Benutzer in Emacs Einstellungen mit den customize-Optionen vornehmen, werden die Einstellungen in ~/.gnu-emacs-custom gespeichert.

Bei SUSE Linux wird mit dem emacs-Paket die Datei site-start.el im Verzeichnis /usr/share/emacs/site-lisp installiert. Die Datei site-start.el wird vor der Initialisierungsdatei ~/.emacs geladen. Mit site-start.el wird unter anderem sichergestellt, dass spezielle Konfigurationsdateien mit Emacs-Zusatzpaketen, wie psgml, automatisch geladen werden. Konfigurationsdateien dieses Typs sind ebenfalls unter /usr/share/emacs/site-lisp gespeichert und beginnen immer mit suse-start-. Der lokale Systemadministrator kann systemweite Einstellungen in default.el festlegen.

Weitere Informationen zu diesen Dateien finden Sie in der Info-Datei zu Emacs unter Init File: info:/emacs/InitFile. Informationen zum Deaktivieren des Ladens dieser Dateien (sofern erforderlich) stehen dort ebenfalls zur Verfügung.

Die Komponenten von Emacs sind in mehrere Pakete unterteilt:

  • Das Basispaket emacs.

  • emacs-x11 (in der Regel installiert): das Programm mit X11-Unterstützung.

  • emacs-nox: das Programm ohne X11-Unterstützung.

  • emacs-info: Onlinedokumentation im Info-Format.

  • emacs-el: Die nicht kompilierten Bibliotheksdateien in Emacs Lisp. Sie sind während der Laufzeit nicht erforderlich.

  • Falls erforderlich, können mehrere Zusatzpakete installiert werden: emacs-auctex (für LaTeX), psgml (für SGML und XML), gnuserv (für den Client- und Serverbetrieb) und andere.