|
Der Kernel gibt im Laufe der Zeit eine Menge Informationen
an den klogd,
den kernel log daemon weiter.
dmesg zeigt die aktuellsten Meldungen an. Hier sind z. B.
die Bootmeldungen nachzulesen, aber auch das Einlegen einer
neuen CD wird hier vermerkt. Weil in diesen Meldungen auch
all die Hardwareinformationen enthalten sind, die beim
Hochfahren des Systems anfallen, ist dmesg für die
Fehlersuche oder die Konfiguration sehr nützlich.
|
Wer möchte nicht gerne wissen, welcher Tag heute ist (vor
allem nach stundenlangem Programmieren, vorzugsweise
nachts). Dazu gibt date
das aktuelle Datum und die Uhrzeit aus:
user@linux $
date
Fr Jan 21 22:57:58 CET 2000
|
Manchmal kann es aber notwendig sein, sich das Datum in einem
individuellem Format ausgeben zu lassen. Wenn dies der Fall ist,
sieht der Befehl folgendermaßen aus:
date +'Format'
Format ist eine Zeichenfolge, die angibt, wie das ausgegebene
Datum aussehen soll. Dabei stehen dem Benutzer verschiede Platzhalter,
die durch aktuelle Werte ersetzt werden, zur Verfügung.
Die wichtigsten sind unter anderem:
-
%d: Aktueller Tag des Monats von 01 bis 31
-
%H: Aktuelle Stunde von 00 bis 23
-
%m: Aktueller Montag von 01 bis 12
-
%M: Aktuelle Minute von 00 bis 59
-
%Y: Aktuelles Jahr von 1970 bis ...
Beispiel:
user@linux $
date +'%Y-%m-%d'
2000-01-21
|
Von Zeit zu Zeit will man sich aber auch das Datum in einem bestimmten
standarisiertem Format ausgeben lassen. Dazu stehen folgen Optionen
zur Verfügung:
-
-I[TIMESPEC], --iso-8601[=TIMESPEC]
Gibt das Datum im ISO 8601 Format aus. Als TIMESPEC kann
date (gibt nur das Datum aus), hours
(gibt zudem noch die Stunde an), minutes
(die Minuten werden noch zusätzlich angezeigt) oder
seconds (die Sekunden werden auch noch angezeigt)
sein. Als Default für TIMESPEC ist date
eingestellt.
-
-R, --rfc-822
Gibt das Datum im RFC 822 Format aus.
-
-u, --utc, --universal
Gibt das Datum im UTC Format aus.
Besitzt man die nötigen administrativen Rechte, kann man mit date
auch Datum und Uhrzeit ändern. Dazu gibt es die Option -s.
Wichtig dabei ist dennoch ein Format anzugeben. Das Format gibt
dann an in welcher Form das Datum übergeben wird. Die genaue
Syntax lautet wie folgt:
date +'Format' -s "Datum"
bzw.
date +'Format' --set="Datum"
Dabei gibt 'Datum' das neue Datum an. Selbstverständlich kann
anstelle von +'Format' auch eine der Optionen -I,
-R oder -u verwendet werden.
|
Die primäre Aufgabe von dd ist es Daten zu kopieren und
entsprechend zu konvertieren. Dabei kopiert dd die Daten
nicht Dateiweise, sondern Blockweise. Das Haupteinsatzgebiet
von dd ist es Kopien von ganzen Devices auf einem anderen
(physikalischen) Device anzulegen. Somit eignet sich dd auch
dafür, ein ISO-Abbild von einer CD auf der Festplatte zu
sichern.
dd besitzt eine Reihe von verschiedenen Optionen, die
verschiedene Möglichkeiten der Konvertierung darstellen. Die
beiden wichtigsten Optionen sind allerdings if=DATEI und
of=DATEI. if=DATEI gibt
dabei die Datei an, von der gelesen werden soll.
of=DATEI gibt die Datei an, in die
geschrieben werden soll.
Ein Beispiel, um ein ISO-Abbild auf der Festplatte anzulegen, lautet:
root@linux #
dd if=/dev/cdrom of=cdrom.iso
|
Wie schon angesprochen kopiert dd nicht Dateiweise sondern
Blockweise. Aus diesem Grund ist es auch möglich Daten zu
kopieren und dabei die Blockgröße zu ändern. Ebenso ist es
auch möglich nur bestimmte Blöcke von einem Device zu
kopieren.
Um die Blockgröße für die Ein- und Ausgabe festzulegen,
stehen drei Optionen zur Verfügung:
-
ibs=n: Legt die Eingabeblockgröße auf n Bytes fest.
-
obs=n: Legt die Ausgabeblockgröße auf n Bytes fest.
-
bs=n: Legt die Ein- und Ausgabeblockgröße auf n Bytes
fest. bs hat Vorrang von ibs und obs.
-
cbs=n: Legt die Datensatzlänge auf n Bytes fest.
Die voreingestellte Größe für die Ein- und Ausgabeblöcke ist 512
Byte.
Um nur bestimmte Blöcke zu kopieren, stehen folgende Optionen
zur Verfügung:
-
skip=n: Überspringt n-Blöcke am Anfang der Eingabedatei.
-
seek=n: Überspringt n-Blöcke am Anfang der Ausgabedatei
-
count=n: Kopiert nur n Eingabeblöcke.
Als Blockgröße wird logischerweise, der durch bs,
ibs, bzw. obs
angegeben Wert genutzt.
Eine weitere wichtige Option ist conv=Key. Wenn diese
Option angegeben ist, wird die Eingabedatei entsprechend
durch das mit Key angegeben Schlüsselwort in die
Ausgabedatei konvertiert. Als Key können auch mehrere
Schlüsselwörter, durch Kommata getrennt angeben werden.
Unter anderem stehen dem Benutzer dabei folgenden
Schlüsselwörter zur Verfügung:
-
block/unblock
Es gibt Datensätze fester Länge und es gibt Datensätze
mit variabler Länge, deren Ende durch einen Zeilenumbruch
markiert ist.
Das Schlüsselwort block füllt einen Datensatz,
der kleiner als cbs-Bytes ist mit Leerzeilen auf, bis die
entsprechende Datensatzlänge erreicht ist. Somit
wandelt block Datensätze variabler Länge in Datensätze
mit fester Länge um.
Entsprechend entfernt unblock die nachfolgenden Leerzeilen
und wandelt somit Datensätze mit fester Länge in
Datensätze mit variabler Länge um.
-
lcase
Sämtliche Großbuchstaben werden in Kleinbuchstaben
umgewandelt
-
ucase
Sämtliche Kleinbuchstaben werden in Großbuchstaben
umgewandelt
-
noerror
Die Verarbeitung wird auch nach einem Fehler fortgesetzt.
|
Wenn Sie auf der Shell einen Befehl eingeben, werden der Reihe nach
alle Verzeichnisse in $PATH nach diesem Befehl durchsucht. Nachdem
der Befehl in einem Verzeichnis gefunden wurde, wird die Suche
abgebrochen. Dabei kann allerdings das Problem auftreten, dass Sie
ein anderes Kommando meinen, das sich in einem anderen
Verzeichnis befindet. Um heraus zufinden, wo sich nun das
Programm befindet, das ausgeführt wird, gibt es das Werkzeug which.
which durchsucht alle Verzeichnisse, die in der
Umgebungsvariablen $PATH aufgelistet sind, nach einer
ausführbaren Datei mit dem angegebenen Namen:
user@linux $
which man
/usr/bin/man
|
Auf diese Weise finden Sie heraus, ob das seltsame Verhalten
eines Kommandos dadurch verursacht wird, dass ein anderes
Programm in ein Verzeichnis geraten ist, das sich im Pfad
weiter vorne befindet:
user@linux $
man ls
cat: ls: No such file or directory
user@linux $
which man
/usr/local/bin/man
|
Hier ist ein Programm namens man
in dem Verzeichnis /usr/local/bin, das im Suchpfad vor dem Verzeichnis
/usr/bin steht, in dem sich das gewünschte Kommando
man befindet. Durch den
Aufruf:
user@linux $
/usr/bin/man ls
|
können Sie jetzt das richtige Programm aufrufen.
which" kann zudem nützlich sein, um festzustellen, ob ein
bestimmtes Programm vorhanden ist ohne dieses Programm
gleich ausführen zu müssen.
|
|
|