Dr. Linux

Aus LinuxUser 03/2000

Dr. Linux

Der Nächste bitte

Komplizierte Organismen, wie Linuxsysteme es nun einmal sind, haben so ihre ganz eigenen Wehwehchen. Dr. Linux beobachtet die Patienten in den Linux-Newsgruppen, stellt an dieser Stelle Rezepte für aktuelle Probleme aus und alternative Heilmethoden vor.

Zwei Schritte vor und einen zurück

Wenn ich mein Linux hochfahre, dann rauschen die Meldungen so schnell an mir vorbei, dass ich sie nicht lesen kann. Wie kann ich diese wichtigen Informationen über mein System zurückrufen, um sie genau betrachten zu können?

Dr. Linux Grundsätzlich verwendet man zum “Blättern” unter Linux die Tastenkombination Shift+Bild hoch/Shift+Bild runter. Damit können Sie zum Beispiel auch die gesamte Informationsausgabe des Startvorgangs betrachten.

Leider funktioniert diese einfache Methode nach dem Hochfahren des Rechners nur, wenn Sie währenddessen keinen Konsolen-Font einstellen lassen und die Konsole damit beim Booten die Anzeigeform für die Schriftgröße nicht wechseln muss. Die erkannte Hardware wird jedoch in Form eines Puffers gespeichert, der sich auch im Nachhinein noch mit

user$ dmesg

abfragen lässt.

Noch mehr Informationen finden Sie in den Log(buch)-Dateien, die jedes Linux-System anlegt. Sie finden Informationen über den Systemstart je nach Distribution zum Beispiel unter /var/log/boot.msg oder /var/log/boot.log.

Künstlernamen und profilierte User

In der täglichen Routine mit Linux muss ich immer wieder die gleichen länglichen Befehle eintippen, das finde ich sehr lästig. Kann ich diese Eingaben mit einem Trick verkürzen?

Dr. Linux In Ihrem Homeverzeichnis finden Sie die Datei .bash_history, in der die Eingaben, die Sie in der Bash vorgenommen haben, gespeichert werden. In dieser “Historie” können Sie auf der Kommandozeile mit Ihren Cursortasten zurückblättern und auf diese Weise schon einmal gemachte Eingaben erneut nutzen und ggf. abändern.

Neben der bash stehen unter Linux u.a. Unixbetriebssystemen zum Beispiel folgende Shells zur Auswahl:

  • Die csh oder C-Shell, deren Syntax der Programmiersprache C ähnelt.
  • tcsh, eine erweiterte C-Shell mit der Möglichkeit, die Befehlszeile zu editieren.
  • Die sh oder Bourne-Shell. Sie hat keine editierbare Befehlszeile.
  • Die mit der Bourne-Shell weitgehend abwärtskompatible ksh oder Korn-Shell stellt eine editierbare Kommandozeile bereit.
  • Die zsh (Z-Shell) ist die jüngste unter den aufgeführten Shells und ebenfalls editierbar. Obwohl sie weitgehend der ksh ähnelt, besitzt sie einige Besonderheiten und weitergehende Features.

Falls Sie sich an ein Bruchstück der gesuchten Befehlszeile erinnern, können Sie dies nach einem Strg-R eingeben: Die Shell “erweitert” es durch einen passenden Befehl. Sofern der erste Vorschlag nicht gefällt, sollte man einfach unbeirrt weitere Zeichen des gewünschten Kommandos eintippen – ggf. schlägt die Bash dann weitere Alternativen vor. Ist der richtige Befehl dabei, schickt man ihn entweder sofort durch Enter ab oder drückt eine Pfeiltaste, um anschließend noch Dateinamen auszutauschen, eine Option zu ändern o.ä.

Allerdings ist die Puffergröße der Bash nicht unbegrenzt: Wie viele Befehle in der “History” aufgehoben werden, ist in den Variablen HISTSIZE (Anzahl der zu merkenden Befehle) und HISTFILESIZE (maximale Zeilenlänge von .bash_history) festgelegt, deren Inhalt sich mit

user$ echo $HISTFILESIZE
user$ echo $HISTSIZE

ansehen lässt. Wer mehr oder weniger möchte, tippt die Zeile(n)

user$ export HISTFILESIZE=Wert
user$ export HISTSIZE=Wert

ein. Soll die Änderung auch beim nächsten Einloggen Bestand haben, tragen Sie sie am Ende der Datei .bash_profile im Homeverzeichnis ein.

Wegen dieser Begrenzung kann es natürlich passieren, dass ein wichtiger, komplizierter, aber selten gebrauchter Befehl aus der History herausfällt, weil zwischenzeitlich zuviele andere Kommandos eingegeben wurden. Das können Sie zwar ändern, indem Sie die Datei ~/.bash_history mit einem Schreibschutz versehen – dann werden keine neuen Einträge mehr hinzugefügt, und Sie haben Ihre Standardeingaben immer abrufbar.

Diese Lösung ist aber weder elegant noch sehr praktisch. Auf Dauer mehr Komfort bietet das Erzeugen von Aliasen. Mit dem Anlegen von Alias-Befehlen können Sie Programmaufrufe und einzeilige Befehlseingaben durch Kürzel ersetzen.

Geben Sie einmal nach dem Login (oder wenn Sie an einer grafischen Oberfläche arbeiten, in einem xterm) den Befehl

user$ alias

Ihr System zeigt nun, welche Aliase schon vorhanden sind. Das könnte etwa so aussehen:

alias ..='cd ..'
alias ...='cd ../..'
alias dir='ls -l'
alias dos2unix='recode ibmpc:lat1'
alias md='mkdir -p'
alias rd='rmdir'
alias unix2dos='recode lat1:ibmpc'
alias unzip='unzip -L'

Diese vorgefertigten Aliasse werden beispielsweise beim Einloggen aus der Datei /etc/profile eingelesen, in der für alle Benutzer gültige Einstellungen getroffen werden. Die /etc/profile sollten Sie als Systemverwalter nur editieren, wenn Sie genau im Bilde sind, was Sie dort gerade tun.

Erst nachdem die /etc/profile abgearbeitet wurde, liest die Login-bash (oder eine andere sh-kompatible Login-Shell) die persönlichen Initialisierungsdateien (zum Beispiel ~/.profile und – bash-spezifisch – ~/.bash_profile) in den Homeverzeichnissen. C-Shells und ihre Abkömmlinge benutzen stattdessen zum Beispiel die Inititialisierungsdateien /etc/csh.login und ~/.login, die Z-Shell /etc/zprofile und – so nicht anders definiert – ~/.zprofile.

Diese persönlichen Initialisierungsdateien sind Skripte, die sich mit einem Editor bearbeiten lassen. Hierin können Sie sogar systemweite Einstellungen rückgängig machen bzw. zusätzliche persönliche Einstellungen vornehmen.

Um speziell die interaktiven Nicht-Login-Bashs zu konfigurieren (die Sie zum Beispiel durch den Aufruf eines xterms oder einer KDE-konsole über ein Menü oder den entsprechenden Kommandozeilenaufruf erhalten), suchen Sie in Ihrem Homeverzeichnis nach der Datei .bashrc.

Auch dieses Skript lässt sich mit einem Editor bearbeiten. Beachten Sie bei der Suche nach dieser Datei, dass es sich um eine versteckte Datei handelt. Finden Sie in Ihrer ~/.bashrc den Eintrag

test -e ~/.alias && . ~/.alias

dann besteht die Möglichkeit, eine spezielle .alias-Datei in Ihrem Homeverzeichnis anzulegen und Ihre privaten Aliase dahinein zu schreiben. Ich bevorzuge diese Vorgehensweise, denn es erleichtert das spätere Wiederfinden Ihrer Konfigurationen.

Nach der kleinen Besichtigung Ihres Homeverzeichnisses und der Entscheidung, wo Sie Ihre Alias-Liste eintragen wollen, schreiten Sie zur Tat. Legen Sie Ihre Alias-Liste an, indem Sie die ausgesuchte Datei editieren. Vorangestellt wird zunächst der Befehl alias, gefolgt vom Kürzel ihrer Wahl; ein = verbindet schließlich den am besten in Hochkommata gefassten ursprünglichen Befehl. Bei einer csh-kompatiblen Shell lassen Sie das Gleichheitszeichen weg.

Um das ewige Tippen von startx auf der Konsole zu einem schlichten sx zu verkürzen, könnte Ihr Eintrag so aussehen:

alias sx='startx'

Möchten Sie auf die Bildschirm-Ausgaben des Kommandos verzichten, erweitern Sie die Eingabe:

alias sx='startx > /dev/null &'

Müssen Sie sich durch Verzeichnisse hangeln, um Text-Dateien zu bearbeiten, können Sie diese Tipparbeit ebenfalls mit einem Kürzel zum Vergnügen umgestalten. Das folgende Beispiel wechselt nicht nur in das angegebene Verzeichnis /text/mailbox/downloads, sondern listet auch gleich dessen Inhalt auf.

alias downs='cd /text/mailbox/downloads/ && ls -a'

Anhänger grafischer Oberflächen können sich mit einem schnell getippten Alias-Kürzel in einem xterm das Herumsuchen in Menüleisten sparen. Meine .alias enthält zum Beispiel folgende Abkürzungen:

# Kommentare, denen ein # vorangestellt
# ist, werden nicht weiter beachtet.
# Für die grafische Oberfläche
alias jo='xtetris'
alias net='netscape'
# Für meine Konsole
alias sx='startx > /dev/null &'
# Für beliebige Kommandozeilen
alias bye='exit'

Sollten Sie nun begeistert Ihre persönlichen Initialisierungsdateien mit Aliasen versehen, dann beachten Sie bitte, dass diese Dateien erst beim nächsten Login gelesen werden und erst dann ihre ganze Pracht entfalten.

Wenn Sie nicht gleich Skripte editieren möchten, können Sie die Wirkung von alias-Eingaben auch an der Konsole ausprobieren. Der Alias-Befehl bleibt bis zum Ende Ihrer Sitzung erhalten, wird aber nicht gespeichert. Mit unalias aliasname können Sie einen unerwünschten Alias aber auch während einer Sitzung wieder loswerden.

Geht’s auch größer?

Ich habe mit dem Kommando xterm & ein X-Terminal gestartet, aber da ist die Schriftgröße zu klein. Kann man dem abhelfen?

Dr. Linux Fahren Sie den Mauszeiger in die xterm-Fläche, drücken und halten Sie die [Strg]-Taste, und drücken Sie die rechte Maustaste. Flugs erscheint ein Menü, mit dem Sie die Schriftgröße von unlesbar klein bis ziemlich groß einstellen können.

Linux in der DOSe

Die Linux-Kommandozeile erinnert mich an meine alten DOS-Zeiten, und die DOS-Befehle beherrsche ich noch recht gut. Kann ich mir den Einstieg erleichtern, indem ich die Befehlseingabe der Bash auf DOS-Befehle umstelle?

Dr. Linux Eine Voreinstellung, mit der Sie ihre gewohnten Befehle einfach aktivieren könnten, existiert nicht. Es wäre auch recht unsinnig, die bash auf die Stufe der COMMAND.COM (ja, auch DOS besitzt eine Shell!) “herunterzufahren”, denn die bash kann viel mehr. Wieviel mehr, können Sie zum Beispiel im DOS-nach-Linux-HOWTO nachlesen, das im Internet unter http://www.datapro.bm/doc/HOWTO/translations/de/DE-DOS-nach-Linux-HOWTO.txt zu finden ist.

Allerdings haben Sie mit den oben beschriebenen Aliasen die Möglichkeit, sich Gedankenbrücken zu bauen, zum Beispiel alias del='rm'. Aber auch das ist nur bedingt sinnvoll: Das Kommando type existiert nämlich beispielsweise auch unter Linux, es listet Ihnen jedoch nicht den Inhalt einer Datei auf, sondern zeigt zum Beispiel, ob ein Befehl ein Alias oder ein “richtiges” Binärprogramm ist.

Dennoch gibt es noch eine Möglichkeit, bei der Sie Ihre DOS-Kenntnisse “recyceln” können: die MTools. Das ist eine Sammlung von Programmen, deren Kommandos die entsprechenden DOS-Befehle emulieren. Wenn sie auf Ihrem System schon installiert sind, bringt die Eingabe mtools an der Befehlszeile folgendes Ergebnis:

Supported commands:
mattrib, mbadblocks, mcat, mcd, mcopy, mdel, mdeltree, mdir
mdoctorfat, mdu, mformat, minfo, mlabel, mmd, mmount, mpartition
mrd, mread, mmove, mren, mshowfat, mtoolstest, mtype, mwrite
mzip

Das ist zu schön, um wahr zu sein? Sie haben Recht, es gibt tatsächlich einen Haken: Die MTools ermöglichen lediglich den Zugriff auf MS-DOS-formatierte Disketten und -Festplatten ohne mounten und unmounten.

Wenn Sie dies gleich probieren möchten, legen Sie eine MS-DOS-Diskette ein und schreiben den Befehl

mdir A:

in eine Kommandozeile. Damit wird Ihnen der Inhalt Ihrer Diskette aufgelistet.

Grundsätzlich gilt: m + DOS-Befehl = MTools-Kommando. Über die genaue Handhabung der einzelnen Befehle gibt man mtools auf acht Seiten Aufschluss. Sollte Ihnen eine deutschsprachige Anleitung lieber sein, werden Sie im Internet fündig (siehe Kasten “MTools aus dem Internet”). In der Datei /etc/mtools.conf oder /etc/mtools finden Sie die aktuelle Konfiguration und weitere Beispiele für die Konfiguration dieser nützlichen Werkzeuge.

MTools aus dem Internet

Hier finden Sie eine ausführliche Beschreibung der MTools-Befehle: http://www-cip.physik.uni-bonn.de/pool/soft/mtools/.

Sollten Ihnen diese Informationen für den Anfang nicht ausreichen, bekommen Sie ein reichhaltiges Angebot an Informationsquellen, wenn Sie den Suchbegriff mtools in eine Suchmaschine eingeben.

Downloaden können Sie die MTools zum Beispiel unter http://mtools.linux.lu/mtools-3.9.6.tar.gz oder ftp://www.tux.org/pub/knaff/mtools/mtools-3.9.6.tar.gz.

Glossar

Konsole
Einer der Textbildschirme, zwischen denen man unter Linux mit der Tastenkombination Alt plus Funktionstaste (meistens F1 bis F6) umschalten kann.
Bash
Die “Born Again Shell” ist derzeitig die meisteingesetzte Shell unter Linux. Eingegebene Kommandos lassen sich auf der Befehlszeile mit den Cursortasten zurückblättern und somit erneut nutzen bzw. editieren.
Shell
Ein Kommandointerpreter. Dieses Programm wird zum Beispiel bei der Anmeldung am System gestartet (“Login-Shell”) und nimmt die vom Benutzer eingegebenen Kommandos entgegen (“interaktive Shell”). Shells haben in der Regel Programmiersprachenelemente (Variablen, Schleifen, konditionale Abfragen etc.) eingebaut, sodass man auch Anweisungen zu sogenannten Shell-Programmen alias Shell-Skripten zusammenstellen und ausführen lassen kann.
xterm
Eine Terminalemulation, die eine Shell startet. Der Begriff Terminalemulation stammt aus der Zeit, als raumfüllende Server sämtliche Rechentätigkeiten ausführten, die die Benutzer von einer räumlich entfernten Bildschirm-Keyboard-Kombination namens Terminal aus anforderten. Obwohl es sich bei xterm um ein spezielles Programm handelt, wird der Begriff XTerm oder X-Terminal oft als Synonym für jedwedes Fensterchen auf der grafischen Oberfläche benutzt, das eine Shell bereit stellt. Am X-Terminal-Prompt können Sie Linux-Befehle eingeben, Programme starten, und Texte kopieren und einige Dinge mehr.
versteckte Datei
Dateien, deren Namen ein Punkt (“.”) vorangestellt ist, versteckt Linux vor Ihnen, wenn Sie ein Verzeichnis mittels ls ohne die Option -a (“alle) auflisten. Um versteckte Dateien zu sehen und ihre Schreib- und Leserechte zu ermitteln, verwenden Sie ls -al.
mounten und unmounten
Das Einbinden von Datenträgern in den Linux-Dateibaum geschieht mit dem root-vorbehaltenen mount-Befehl. Ehe man eine gemountete CD oder Diskette wieder aus dem Laufwerk entnehmen kann, ist ein umount-Befehl zwingend nötig. Auch Festplattenpartitionen lassen sich so dem Zugriff unter Linux wieder entziehen.
LinuxUser 03/2000 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben