Kapitel 10. Systemmerkmale

Inhaltsverzeichnis

10.1. Hinweise zu speziellen Softwarepaketen
10.2. Virtuelle Konsolen
10.3. Tastaturbelegung
10.4. Sprach- und landesspezifische Anpassungen

Zusammenfassung

In diesem Kapitel finden Sie Hinweise zu einzelnen Softwarepaketen sowie zu den virtuellen Konsolen und zur Tastaturbelegung. Den Abschluss bildet ein Abschnitt zu sprach- bzw. landesspezifischen Anpassungen (I18N/L10N).

10.1. Hinweise zu speziellen Softwarepaketen

10.1.1. Das Paket bash und /etc/profile

In dieser Reihenfolge wertet die bash die Initialisierungsdateien aus, wenn sie als Login-Shell aufgerufen wird:

  1. /etc/profile

  2. ~/.profile

  3. /etc/bash.bashrc

  4. ~/.bashrc

Eigene Einträge können Benutzer in ~/.profile bzw. ~/.bashrc vornehmen. Um ordnungsgemäßes Abarbeiten dieser Dateien zu gewährleisten, ist es erforderlich, dass die aktuellen Grundeinstellungen von /etc/skel/.profile bzw. /etc/skel/.bashrc in das Benutzerverzeichnis übernommen werden. Nach einem Update empfiehlt sich deshalb, die Einstellungen aus /etc/skel zu übernehmen. Um keine eigenen Anpassungen zu verlieren, führen Sie bitte die folgenden Shellbefehle aus:

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

Danach sind die eigenen Anpassungen aus den Dateien *.old zurückzuschreiben.

10.1.2. Das Paket cron

Die cron-Tabellen liegen unter /var/spool/cron/tabs. Als systemweite Tabelle wird die Datei /etc/crontab eingerichtet. In der Datei /etc/crontab muss zusätzlich nach der Zeitangabe eingetragen werden, unter welchem Benutzer der jeweilige Auftrag ausgeführt werden soll (vgl. Beispiel 10.1, „Beispiel eines Eintrags in /etc/crontab“, dort ist root angegeben); dem gleichen Format folgen paketspezifische Tabellen, die in /etc/cron.d liegen – vgl. die Manualpage man cron.

Beispiel 10.1. Beispiel eines Eintrags in /etc/crontab

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

/etc/crontab kann nicht mit crontab -e bearbeitet werden, sondern muss direkt in einen Editor geladen, bearbeitet und gespeichert werden.

Einige Pakete installieren in den Verzeichnissen /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly und /etc/cron.monthly Shellskripten, deren Abarbeitung von /usr/lib/cron/run-crons gesteuert wird. /usr/lib/cron/run-crons wird alle 15 Minuten von der Haupt-Tabelle (/etc/crontab) aufgerufen. So wird sichergestellt, dass eventuell versäumte Läufe rechtzeitig nachgeholt werden.

Die täglichen Wartungsarbeiten am System sind aus Gründen der Übersichtlichkeit auf mehrere Skripten verteilt worden. Sie sind im Paket aaa_base enthalten. In /etc/cron.daily gibt es zum Beispiel die Komponenten backup-rpmdb, clean-tmp oder clean-vi.

10.1.3. Protokoll-Dateien — das Paket logrotate

Zahlreiche System-Dienste (engl. Daemons) und auch der Kernel selbst protokollieren regelmäßig Systemzustände oder besondere Vorkommnisse in Protokoll-Dateien (engl. logfiles). So kann der Administrator zuverlässig feststellen, in welchem Zustand sich das System zu einem bestimmten Zeitpunkt befand, Fehler oder Fehlfunktionen erkennen und gezielt beheben. Diese Protokoll-Dateien werden in der Regel gemäß FHS unter /var/log abgelegt und werden von Tag zu Tag größer. Mit Hilfe von logrotate ist es möglich, das Wachsen der Protokoll-Dateien zu steuern.

10.1.3.1. Konfiguration

In der Konfigurationsdatei /etc/logrotate.conf wird das generelle Verhalten festgelegt. Mit der include-Angabe wird insbesondere konfiguriert, welche weiteren Dateien ausgewertet werden sollen. Bei SUSE LINUX ist vorgesehen, dass die einzelnen Pakete in /etc/logrotate.d Dateien installieren (beispielsweise syslog oder yast).

Beispiel 10.2. 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 selbst wird über cron gesteuert und einmal täglich von /etc/cron.daily/logrotate angestoßen.

[Important]Wichtig

Die Option create liest etwaige Einstellungen des Administrator in den Dateien /etc/permissions* ein. Stellen Sie bitte sicher, dass es bei eigenen Anpassungen zu keinen Konflikten kommt.

10.1.4. Manualpages

Für einige GNU-Programme (zum Beispiel tar) werden die Manualpages nicht mehr weiter gepflegt. An ihre Stelle treten als Schnellübersicht die --help-Ausgabe sowie als ausführliche Handbücher die Info-Dateien. info ist GNUs Hypertext-System. Mit info info erhält man erste Hilfe zur Benutzung; info kann entweder über Emacs emacs -f info aufgerufen werden, oder direkt mit dem Befehl info. Angenehm zu bedienen sind tkinfo, xinfo oder der Zugriff über das Hilfesystem.

10.1.5. Der Befehl locate

locate zum schnellen Finden von Dateien gehört nicht zum Standardumfang der installierten Software. Bei Bedarf bitte nachinstallieren (find-locate) — dann wird entweder täglich in der Nacht oder ca. 15 Minuten nach dem Einschalten automatisch der updatedb-Prozess gestartet.

10.1.6. Der Befehl ulimit

Mit dem Befehl ulimit (engl. user limits) ist es möglich, Limits für die Nutzung von Systemressourcen zu setzen, bzw. sich diese anzeigen zu lassen. Insbesondere ist ulimit dazu geeignet, den zur Verfügung stehenden Speicher für Anwendungen zu begrenzen. Dadurch wird verhindert, dass eine Anwendung übermäßig viel (allen) Speicherplatz für sich beschlagnahmt und das System zum Stillstand kommt.

Der Aufruf von ulimit kann mit verschiedenen Optionen erfolgen. Um den Speicherverbrauch zu begrenzen, sind zum Beispiel die Optionen in Tabelle 10.1, „ulimit: Ressourcen für den Anwender einstellen“ tauglich.

Tabelle 10.1. ulimit: Ressourcen für den Anwender einstellen

-m

max. Größe des physikalischen Speichers

-v

max. Größe des virtuellen Speichers

-s

max. Größe des Stacks

-c

max. Größe der Core-Dateien

-a

Anzeige der gesetzten Limits

Systemweit können die Einstellungen in /etc/profile vorgenommen werden. Dort muss beispielsweise das Erzeugen von Core-Dateien freigeschaltet werden, die Programmierer zum „Debuggen“ benötigen. Als Anwender kann man die vom Systemadministrator in /etc/profile vorgegebenen Werte nicht erhöhen, aber man kann spezielle Einstellung in die eigene ~/.bashrc eintragen.

Beispiel 10.3. ulimit-Einstellungen in ~/.bashrc

# Begrenzung des realen Speichers
ulimit -m 98304

# Begrenzung des virtuellen Speichers
ulimit -v 98304

Die Speicherangaben müssen in KB gemacht werden. Für detailliertere Informationen werfen Sie bitte einen Blick in die Manualpage man bash.

[Important]Wichtig

Nicht alle Shells unterstützen ulimit-Angaben. Wenn Sie auf übergreifende Einstellungen für derartige Beschränkungen angewiesen sind, dann bietet PAM (zum Beispiel pam_limits) weitgehende Einstellmöglichkeiten.

10.1.7. Der Befehl free

Der Befehl free ist etwas irreführend, wenn es darum geht herauszufinden, wie der Arbeitsspeicher gerade verwendet wird. Informationen findet man in /proc/meminfo. Heutzutage sollte sich eigentlich kein Anwender darum Gedanken machen, dem ein modernes Betriebssystem wie Linux zur Verfügung steht. Das Konzept vom „freien Arbeitsspeicher“ datiert von der Zeit her, als es noch keine vereinheitlichte Speicherverwaltung (engl. unified memory management) gab – unter Linux gilt das Motto: „freier Speicher ist schlechter Speicher“ (engl. free memory is bad memory). Infolgedessen ist Linux immer bestrebt, verschiedene Caches auszubalancieren, nie aber wirklich freien (= ungenutzten) Speicher zuzulassen.

Der Kernel weiß im Grunde nichts direkt von Programmen oder Benutzerdaten. Er verwaltet Programme und Benutzerdaten im so genannten „Page Cache“. Wenn der Speicher knapp wird, werden Teile davon entweder in den Swapbereich oder in die Dateien geschrieben, aus denen sie ursprünglich mit Hilfe des Systemaufrufs mmap gelesen wurden; vgl. die Manualpage von mmap.

Des Weiteren hält der Kernel auch noch andere Zwischenspeicher, wie den „slab cache“, der zum Beispiel die für den Netzwerkzugriff benutzten Puffer enthält. Dadurch werden eventuelle Differenzen zwischen den Zählern in /proc/meminfo erklärt. Die meisten, aber nicht alle, sind über /proc/slabinfo abfragbar.

10.1.8. Die Datei /etc/resolv.conf

Die Namensauflösung wird über die Datei /etc/resolv.conf geregelt; vgl. Kapitel 24, Domain Name System .

Diese Datei wird stets nur von dem Skript /sbin/modify_resolvconf aktualisiert. Es ist keinem Programm erlaubt, /etc/resolv.conf direkt zu manipulieren. Nur wenn diese Regel beachtet wird, kann sichergestellt werden, dass die Netzwerkkonfiguration und die zugehörigen Daten konsistent gehalten werden.

10.1.9. Einstellungen für GNU Emacs

GNU Emacs ist eine komplexe Arbeitsumgebung. Weiterführende Informationen finden Sie unter http://www.gnu.org/software/emacs/.

In den folgenden Absätzen werden die Konfigurationsdateien genannt, die GNU Emacs beim Start abarbeitet. Beim Start liest Emacs mehrere Dateien ein, um gemäß den Vorgaben des Benutzers, des Systemadministrators und oder des Distributors für die jeweilige Bedürfnissen angepasst oder vorkonfiguriert zu werden.

Für jeden Benutzer wird im Home-Verzeichnis die Initialisierungsdatei ~/.emacs von /etc/skel installiert; .emacs wiederum liest die Datei /etc/skel/.gnu-emacs ein. Wenn ein Benutzer eigene Anpassungen vornehmen möchte, empfiehlt es sich, diese Datei .gnu-emacs in das eigene Home-Verzeichnis zu kopieren und dort die gewünschten Einstellungen vorzunehmen:

cp /etc/skel/.gnu-emacs ~/.gnu-emacs

In .gnu-emacs wird die Datei ~/.gnu-emacs-custom als custom-file festgelegt; wenn der Benutzer mit den customize-Möglichkeiten eigene Einstellungen vornimmt, werden diese in ~/.gnu-emacs-custom gespeichert.

Mit dem Paket emacs wird bei SUSE LINUX die Datei site-start.el im Verzeichnis /usr/share/emacs/site-lisp installiert. Die Datei site-start.el wird vor der Initialisierungsdatei ~/.emacs geladen. site-start.el sorgt beispielsweise dafür, dass besondere Konfigurationsdateien automatisch geladen werden, die mit Emacs-Zusatzpaketen der Distribution installiert werden (zum Beispiel Paket psgml). Derartige Konfigurationsdateien befinden sich gleichfalls in /usr/share/emacs/site-lisp und beginnen stets mit suse-start-. Der lokale Systemadministrator kann in default.el systemweite Einstellungen vornehmen.

Mehr Informationen zu diesen Dateien finden Sie in der Info-Datei zu Emacs, im Knoten Init File: info:/emacs/InitFile. Dort ist auch beschrieben, wie man — falls notwendig — das Laden dieser Dateien verhindern kann.

Die Bestandteile des Emacs' sind auf mehrere Pakete verteilt:

  • Basispaket emacs

  • Dazu ist in der Regel das Paket emacs-x11 zu installieren, in dem das Programm mit X11-Unterstützung enthalten ist.

  • Im Paket emacs-nox ist das Programm ohne X11-Unterstützung enthalten.

  • Das Paket emacs-info stellt Online-Dokumentation im Info-Format bereit.

  • Das Paket emacs-el enthält die nicht kompilierten Bibliotheksdateien in Emacs Lisp — zur Laufzeit nicht erforderlich!

  • Zahlreiche Zusatzpakete, die nach Bedarf installiert werden können: Paket emacs-auctex (für LaTeX); psgml (für SGML/XML); gnuserv (für Client-/Serverbetrieb) usw.

10.1.10. Kurzeinführung in den vi

Für viele Arbeiten am System, aber für Programmierarbeiten werden auch heute noch Texteditoren verwendet. Im Unix Bereich hat sich im Laufe der Zeit der vi als Editor herauskristallisiert, der neben komfortablen Funktionen zum Editieren auch noch im Hinblick auf Ergonomie so manchen Editor in den Schatten stellt, der mit Maus bedient wird.

10.1.10.1. Betriebsmodi

Grundsätzlich unterscheidet man beim vi drei verschiedene Betriebsmodi: Den Insert-Modus, den Command-Modus und den Extended-Modus. Die Tasten haben je nach Modus verschiedene Auswirkungen. Nach dem Start ist der vi normalerweise im Command-Modus. Zunächst sollte man lernen, wie man zwischen den Modi umschaltet:

Command-Modus nach Insert-Modus

Hier gibt es eine große Anzahl von Möglichkeiten. Gebräuchlich sind A wie append, I wie insert, oder O für eine neue Zeile unter der aktuellen Zeile.

Insert-Modus nach Command-Modus

Um den Insert-Modus zu verlassen benötigen Sie die Taste Esc. Im Insert-Modus ist es nicht möglich, den vi zu beenden. Daher ist es wichtig, Esc zu verinnerlichen.

Command-Modus nach Extended-Modus

Der Extended-Modus des vi kann durch einen vorangestellten Doppelpunkt (:) erreicht werden. Der Extended-Modus oder auch ex-Modus entspricht einem eigenen zeilenorientierten Editor. Mit ihm können vielfältige, auch kompliziertere Aufgaben erledigt werden.

Extended-Modus nach Command-Modus

Nach dem Ausführen eines Befehls im Extended-Modus befindet man sich grundsätzlich wieder im Command-Modus. Wenn man im Extended-Modus doch keinen Befehl ausführen möchte, kann man mit Hilfe von den Doppelpunkt wieder löschen, und kommt ebenfalls zurück in den Command-Modus.

Beachten Sie, dass ein Wechsel vom Insert-Modus in den Extended-Modus immer den Zwischenschritt Command-Modus benötigt. Ein direkter Wechsel ist nicht vorgesehen.

Wie andere Editoren hat auch vi einen eigenen Weg, um das Programm zu verlassen. Der vi kann im Insert-Mode nicht verlassen werden. Sie müssen also den Insert-Mode zunächst mit der Taste Esc verlassen. Danach unterscheidet man zwei Fälle:

  1. Beenden ohne Speichern: Wenn Sie den Editor beenden möchten, ohne die Änderungen zu speichern, geben sie im Command-Modus : Q ! ein. Das Ausrufezeichen ! bewirkt, dass der vi die gemachten Änderungen ignoriert.

  2. Beenden mit Speichern: Um Ihre Änderungen zu speichern und dann den Editor zu beenden haben Sie mehrere Möglichkeiten. Im Command-Modus benutzen Sie Z Z. Im Extended-Modus lautet der Befehl : W Q. Wie Sie leicht sehen, steht im Extended-Modus das W für „write“ (schreiben) und das Q für „quit“ (beenden).

10.1.10.2. Der vi im Alltag

Der vi kann wie ein ganz normaler Editor verwendet werden. Sobald Sie im Insert-Modus sind, können Sie Text eingeben, und mit Hilfe von und ist auch das Löschen von Text möglich. Um den Cursor zu bewegen, können Sie die Steuerungstasten für Cursor verwenden.

Oftmals gibt es aber gerade mit diesen Steuerungstasten Probleme. Diese kommen daher, dass es sehr viele verschiedenen Terminal Typen gibt, die jeweils ihre ganz speziellen keycodes verwenden. An dieser Stelle kommt nun der Command-Modus ins Spiel. Drücken Sie die Taste Esc, um aus dem Insert-Modus in den Command-Modus zu gelangen. Im Command-Mode können Sie mit den Tasten H, J, K, und L den Cursor bewegen. Hierbei bedeuten:

H

ein Zeichen nach links

J

eine Zeile nach unten

K

eine Zeile nach oben

L

ein Zeichen nach rechts

Die Befehle im Command-Modus des vi kennen verschiedene Variationen. Wenn Sie einen Befehl mehrfach ausführen wollen, so können Sie die Anzahl der Wiederholungen einfach als Zahl eingeben, und danach den eigentlichen Befehl aufrufen. Wenn Sie also die Befehlsfolge 5L eingeben, dann wird der Cursor fünf Zeichen nach rechts wandern.

10.1.10.3. Weitere Informationen

Der vi kennt sehr viele Befehle. Man kann für ihn Macros schreiben, man kann Abkürzungen verwenden, es gibt benannte Puffer, und viele andere nützliche Dinge. Diese ausführlich zu beschreiben führt an dieser Stelle zu weit. Unter SUSE LINUX kommt als vi eine verbesserte Version zum Einsatz, der vim (vi improved). Zu diesem Programm gibt es zahlreiche Informationsquellen:

[Important]Die VIM Lizenz

vim ist so genannte „Charityware“. Dies bedeutet, dass die Autoren kein Geld für die Software haben möchten, Sie aber dazu anhalten, ein gemeinnütziges Projekt mit einer Spende zu unterstützen. Bei diesem Projekt sollen Kinder in Uganda unterstützt werden. Weitere Informationen hierzu erhalten Sie im Internet unter http://iccf-holland.org/index.html, http://www.vim.org/iccf/ und http://www.iccf.nl/.


SUSE LINUX Administrationshandbuch 9.3