Anfang
Inhalt
Einleitung
Erste
Schritte
Die Bash
Das
Dateisystem
Nutzerkommandos
Archivierung
Datei &
Verzeichnis
Hilfe
Kommunikation
Netzwerkkommandos
Nutzer-Informationen
Prozesssteuerung
System-Informationen
Textbearbeitung
Weiteres
Installation
Shells
Unix-Werkzeuge
System-Administration
X Window
System
Der Kernel
Netzwerk
Grundlagen
Netzwerk
Clients
Netzwerk
Server
Netzwerk
Sicherheit
Anhang
Register
|
Nutzerkommandos - Weiteres
|
|
Aufruf: at [-V] [-q queue] [-f file] [-mldbv]
ZEIT |
Mit at lassen sich Kommandos zu einem späteren Zeitpunkt
ausführen.
Der Zeitpunkt lässt sich in verschiedenen Formaten angeben:
17:23 |
|
17.23 Uhr des heutigen Tages |
midnight |
|
0.00 Uhr |
noon |
|
12.00 Uhr |
teatime |
|
16.00 Uhr |
10:30pm |
|
22.30 Uhr, mit dem Suffix am anstatt »pm« 10:30 Uhr |
1204 |
|
Am 4. Dezember dieses Jahres, alternative Angaben sind 12.04 und
12/04 |
7/12/05 |
|
Am 12. Juli 2005, alternative Angaben sind 7.12.05 und
71205. |
Zeitpunkt + Zeitspanne |
|
Als Zeitpunkt kann jede oben beschriebene Angabe stehen und now
(»jetzt«), als Zeitspanne kommt ein Wert gefolgt von minutes
(Minuten), hours (Stunden), days (Tage) und weeks (Wochen) in
Frage. |
tomorrow, today |
|
Spezifizieren den Zeitpunkt »Morgen« und »heute«. |
Die Berechtigung zur Benutzung von at kann durch die beiden Dateien /etc/at.allow und /etc/at.deny
beeinflusst werden. Existieren die Dateien nicht, sind alle Nutzer zum Aufruf des
Kommandos berechtigt. Im Falle einer existierenden /etc/at.allow sind nur die dort
aufgeführten Nutzer zur Benutzung zugelassen, die /etc/at.deny wird dann
nicht ausgewertet. Gibt es nur letztere Datei, so sind die enthaltenen Nutzer von der
Verwendung des Kommandos ausgeschlossen.
at liest die zu startenden Kommandos von der Standardeingabe oder aus einer
Datei, falls eine solche mit der Option "-f" angegeben wurde. Alle Kommandos werden in
eine Warteschlange eingereiht, deren Name aus einem einzelnen Buchstaben besteht. Die
Voreinstellung "a" kann mit der Option "-q" überschrieben werden. Die alphabetische
Reihenfolge der Queues gibt die Priorität ihrer Bearbeitung vor.
Nach Beendigung eines Jobs versendet at die Ausgaben des Kommandos per Mail
(sendmail muss installiert sein!) an den Auftraggeber. Für Kommandos, die keine
Ausgaben erzeugen, kann mit der Option "-m" eine Mail-Benachrichtigung über den
erfolgten Abschluss der Bearbeitung erzwungen werden.
user@sonne> at teatime tomorrow
at> echo "Wieder mal Feierabend"
at> [Ctrl]-[D] <EOT>
warning: commands will be executed using /bin/sh
job 3 at 2000-06-07 16:00
user@sonne> at now +30 weeks
at> mail -s "Wunschliste" Weihnachtsmann@weissnicht.wo < liste.txt
at> [Ctrl]-[D] <EOT>
warning: commands will be executed using /bin/sh
job 5 at 2001-01-02 09:12 |
Aufruf: atq [-V] [-q queue] |
Der Inhalt der Warteschlange ausstehender at-Jobs wird angezeigt. Sollen nur die
Aufträge einer bestimmten Queue betrachtet werden, muss mit der Option "-q" der Name
der Warteschlange angegeben werden.
user@sonne> atq
1 2000-06-06 16:00 a
3 2000-06-07 16:00 a
4 2001-01-02 09:07 a
5 2001-01-02 09:12 a
6 2000-06-11 10:16 b |
Die Informationen sind Jobnummer, Zeitpunkt des Auftrags und Name der Warteschlange.
Eine analoge Ausgabe liefert at -l.
Aufruf: atrm [-V] job [job...] |
Aufträge können anhand ihrer Jobnummer gelöscht werden:
user@sonne> atrm 3 4 5 6
user@sonne> atq
1 2000-06-06 16:00 a
|
at -r arbeitet analog.
Aufruf: batch [-V] [-q queue] [-f file] [-mv]
[ZEIT] |
Batch arbeitet analog zum Kommando at mit dem einzigen Unterschied,
dass batch den Start des Kommandos soweit zurückstellt, bis die Auslastung
des Systems eine gewisse Grenze (load average < 0.8) unterschritten hat.
Das Kommando wird man bspw. dazu benutzen, eine langwierige und ressourcenintensive
Berechnung erst nach Feierabend zu starten (wenn normalerweise die Rechner nicht mehr
benötigt werden). Sollte aber dennoch ein Kollege Überstunden scheffeln (das
soll es wohl geben;-) und den Rechner benutzen, wird die Bearbeitung des Jobs
zurückgestellt...
Verwendung und Optionen des Kommandos sind exakt wie bei at
beschrieben.
Aufruf: bc [ -lwsqv ] [long-options] [ file ...
] |
bc ist ein Kommandozeilenrechner, der mit beliebiger (!) Genauigkeit zu rechnen
vermag. Die Bedienung des Rechners erinnert stark an die Programmiersprache C. Für
komplexere Berechnungen wird man deshalb den Algorithmus in eine Datei schreiben und
diese als Argument übergeben.
Der bc wird mit der Option -l angewiesen, die
Standard-Mathematik-Bibliothek zu verwenden, mit -q verschwindet die lästige
Copyright-Ausgabe. Die anderen Optionen betreffen die Kompatibilität zum
POSIX-Standard, -w gibt Warnungen bei Nicht-POSIX-konformen Erweiterungen und
-s lässt nur POSIX-konforme Funktionen zu.
Ohne eine Dateiangabe im Argument, startet der bc im interaktiven Modus und
erwartet die Eingaben. Mit "quit" kann der Rechner wieder verlassen werden:
user@sonne> bc -l
bc 1.05
Copyright 1991, 1992, 1993, 1994, 1997, 1998 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
scale=20
variable=5625
sqrt(variable)
75.00000000000000000000
quit
user@sonne> |
Im Beispiel wurde die Genauigkeit der Ausgabe auf 20 Nachkommastellen gesetzt
scale=20, anschließend einer Variablen ein Wert zugewiesen
variable=5625 und die Quadratwurzel dieser Variable berechnet
sqrt(variable).
Um den Rechner auf der Kommandozeile benutzen zu können, muss er seine Eingaben
aus einer Pipe erhalten. Das obige Beispiel hätte man auch so formulieren
können (die Skalierung der Ausgabe wurde bewusst weggelassen):
user@sonne> echo
"variable=1764;sqrt(variable)" | bc -ql
42
user@sonne> |
42 ist die Lösung! Wie lautete eigentlich die Frage?
Zahlen werden immer im Format Vorkommastellen.Nachkommastellen
angegeben, wobei die Vorkommastellen für sich allein stehen können und diese im
Falle des Wertes "0" auch entfallen dürfen. Gültige Angaben sind somit:
12.476212, 42, 0.12 oder kurz .12.
Variablen werden durch beliebig lange Kombinationen aus Buchstaben, Ziffern und
dem Unterstrich benannt, wobei das erste Zeichen ein Buchstabe sein muss. Es gibt vier
spezielle Variablen, scale setzt die Genauigkeit der Ausgabe, ibase die
Basis der Eingabe und obase die Basis der Ausgabe. last enthält immer
den zuletzt berechneten Wert.
Um z.B. eine binäre Zahl in eine hexadezimale umzurechnen, geben wir Folgendes
ein:
user@sonne> echo
"obase=16;ibase=2;1100;" | bc -l
C |
Für komplexere Algorithmen sind Kommentare sicherlich hilfreich. Alle
Eingaben des bc, die zwischen /* und */ eingeschlossen sind, werden
von diesem ignoriert.
Zur Berechnung stehen zahlreiche Ausdrücke zur Verfügung. An dieser
Stelle kann nur auf einige wenige eingegangen werden. Wer sich mit C auskennt, wird die
Feinheiten der Verwendung mancher Ausdrücke beurteilen können.
Nachfolgend kann expr eine Variable, eine Zahl oder wiederum ein Ausdruck
sein. var bezeichnet immer eine Variable.
-expr |
|
Negation |
++var, var++ |
|
Inkrement-Operatoren |
--var, var-- |
|
Dekrement-Operatoren |
expr [+-*/] expr |
|
Addition / Subtraktion / Multiplikation / Division |
expr % expr |
|
Modulo-Operator |
expr ^ expr |
|
Potenzieren |
( expr ) |
|
Klammerung zur Änderung der Vorangregeln |
var = expr |
|
Einfache Zuweisung |
var <Operation>= expr |
|
Andere Schreibweise für "var = var <Operation> expr |
expr1 < expr2 |
|
Kleiner-als Vergleich, analog dazu ">", "<=" (Kleiner oder gleich),
">=", "==" (Gleichheit), "!=" (Ungleichheit) |
!expr |
|
Negation |
expr && expr |
|
Logisches UND, analog "||" (logisches ODER) |
length( expr ) |
|
Anzahl Zeichen in expr |
read ( ) |
|
Liest einen Wert von der Standardeingabe |
sqrt( expr ) |
|
Quadratwurzel von expr |
Weiterhin stehen die bedingte Ausführung if ( expr ) tu_etwas [else
tu_etwas], die Schleifen while ( expr ) tu_etwas und for ( [expr1] ;
[expr2]; [expr3] ) tu_etwas zur Verfügung. Die weiteren Steuerkonstrukte
(return, break, continue, halt) sind exakt wie in C zu handhaben.
Bevor einige Beispiele das Verständnis fördern sollen, folgt noch eine
Auflistung mathematischer Funktionen, die verfügbar sind, wenn der bc mit der
Option -l gestartet wird:
s (x) |
|
Den Sinus von x |
c (x) |
|
Den Cosinus von x |
a (x) |
|
Den Arcustangens von x |
l (x) |
|
Den natürlichen Logarithmus von x |
e (x) |
|
e hoch x |
j (n,x) |
|
Besselfunktion |
Und nun noch einige Beispiele, die auch eine Funktionsdefinition beinhalten:
user@sonne> echo "scale=50; 4*a(1)" | bc
-l
3.14159265358979323846264338327950288419716939937508
user@sonne> bc -l
define f (x) {
if (x <= 1) return (1);
return (f(x-1) * x);
}
f(7)
5040
quit
|
Aufruf: cal [-mjy] [month [year]] |
Der Standardkalender glänzt zwar nicht gerade mit einer besonderen Optik,
dafür beherrscht er die Berechnung der Tage vom 1.1.0001 bis 31.12.9999.
Per Voreinstellung wird der Sonntag als erster Tag der Woche dargestellt, mit der
Option -m kann es der Montag sein. Wer an den julianischen Kalenderdaten
interessiert ist, der wähle die Option -j und den Kalender für ein
ganzes Jahr zaubert -y hervor.
Vergessen Sie nicht, das Jahr mit 4 Ziffern zu benennen, sonst landen Sie knappe 2000
Jahre in der Vergangenheit. Wird als Argument nur eine Zahl angegeben, so wird diese als
Jahr interpretiert, bei zweien steht die erste Zahl für den Monat und die zweite
fürs Jahr:
user@sonne> cal 7 2000
Juli 2000
So Mo Di Mi Do Fr Sa
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
user@sonne> cal 9 1752
September 1752
So Mo Di Mi Do Fr Sa
1 2 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30 |
Aufruf: date [OPTION]... [+FORMAT] |
Mit dem Kommando lässt sich die Systemzeit anzeigen und (falls man die Rechte des
Administrators besitzt) ändern.
user@sonne> date
Fre Jun 9 14:08:51 MEST 2000 |
Als Optionen sind u.a. nützlich: die Anzeige der Modifikationszeit einer Datei
mit der Option -r Dateiname, die Anzeige der »Universal Time«
-u, das Setzen der Systemzeit -s und die Formatierung der Ausgabe mittels
der Option -d Format.
Um die Ausgabe, vor allem für die Verwendung in Shellskripten, zu manipulieren,
stehen eine Reihe von Platzhaltern zu Verfügung. Ein solcher Formatstring muss durch
ein Plus + eingeleitet werden:
user@sonne> date "+Es ist der %d Tag im
Monat %m des Jahres %Y."
Es ist der 26 Tag im Monat 11 des Jahres 2000. |
Solche Platzhalter gibt es sprichwörtlich »wie Sand am Meer«, die
Interessanteren enthält nachfolgende Tabelle:
%% |
|
Das Prozentzeichen selbst |
%n |
|
Zeilenumbruch |
%t |
|
Tabulator |
%H bzw. %I |
|
Stunden 24 bzw. 12 Stunden-Format |
%M |
|
Minuten |
%r bzw. %X |
|
Zeit im 12 bzw. 24 Stunden-Format (Stunden/Minuten/Sekunden [am|pm]) |
%s |
|
Sekunden seit dem 01.01.1970 |
%S |
|
Sekunden der aktuellen Minute |
%b bzw. %B |
|
Name des Monats mit 3 Stellen bzw. ausgeschrieben |
%c |
|
Datum und Zeit im lokalen Format |
%d |
|
Tag des Monats |
%j |
|
Tag im Jahr |
%m |
|
Monat des Jahres (numerisch) |
%U |
|
Nummer der Woche im Jahr |
%w bzw. %W |
|
Wochentag (0..6) erster Tag ist Sonntag bzw. Montag |
%y bzw, %Y |
|
Jahreszahl 2- bzw. 4-stellig |
Der Austausch von Daten zwischen Windows-Systemen und Linux erfordert die Festlegung
auf ein von beiden Seiten verstandenes Format. Und da sich Windows mit der
Unterstützung von Fremdformaten etwas bedeckt hält, ist es an Linux, die Daten
entsprechend abzuspeichern.
Für den Zugriff auf MSDOS-Dateien entwickelte man eine ganze Kollektion von
Werkzeugen, die sich in Sachen Bedienung stark an den (fast gleichnamigen) DOS-Kommandos
orientieren, daher auch der Begriff der m-Tools (MSDOS-Tools). Bedeutung erlangt die
Sammlung vor allem beim Zugriff auf DOS-Disketten; die nachfolgenden Beispiele beziehen
sich auf dieses Medium.
mattrib |
|
Dient zum Ändern der Attribute einer DOS-Datei. Ein führendes Plus "+"
setzt eine Option; ein Minus "-" entfernt sie.
Als Attribute sind a (Archivbit), r (Nur-Lese-Bit), s
(Systembit) und h (Hidden-Bit) erlaubt. Ohne Angabe einer Option zeigt das
Kommando die Attribute der angebenen Dateien an. Um Attribute rekursiv auf
Unterverzeichnisse anzuwenden, kann die Option -/ verwendet werden.
user@sonne> mattrib
a:\hash.h
A A:/hash.h
user@sonne> mattrib -a a:\hash.h
A:/hash.h |
|
mbadblocks |
|
Überprüft eine DOS-Diskette auf fehlerhafte Blöcke. Solche werden
in der FAT (File Allocation Table) markiert und bei einer späteren
Neuformatierung (mit mformat) ausgeblendet.
|
mcd |
|
Wechselt das Verzeichnis in einem DOS-Dateisystem; bzw. zeigt - bei Aufruf ohne
Argument - das aktuelle Arbeitsverzeichnis an:
# Ohne Angabe des Dateisystems wird immer A:
angenommen
user@sonne> mmd tmp
user@sonne> mcd tmp
user@sonne> mcd
A:\tmp |
|
mcopy |
|
Dateien werden mit diesem Kommando kopiert, dabei können sowohl Quelle(n)
als auch Ziel DOS- oder Unix-Dateien sein. Eine DOS-Datei muss daher explizit durch
die Laufwerksangabe spezifiziert werden. Die Angabe des Ziels kann entfallen, dann
wird das aktuelle Verzeichnis angenommen. Die wichtigen Optionen sind -/ zum
rekursiven Kopieren von Verzeichnisinhalten und -t zur Transformation der
DOS-Dateienden in das Unixformat.
# Datei(en) auf Diskette im Laufwerk
a:
user@sonne> mcopy foo.* a:
# Alle Dateien von Diskette ins aktuelle
Verzeichnis
user@sonne> mcopy a:* |
|
mdel |
|
Löscht Dateien auf einem DOS-Dateisystem:
# Datei auf Diskette B löschen:
user@sonne> mdel b:foo.bar
# Alle Dateien auf Diskette A löschen:
user@sonne> mdel \* |
Anmerkung: Das Quoten des Metazeichens (*) ist notwendig, damit es nicht
von der lokalen Shell ausgewertet wird.
|
mdeltree |
|
Dient zum rekusrsiven Löschen von Verzeichnissen auf einem
DOS-Dateisystem.
|
mdir |
|
Zeigt den Inhalt eines Verzeichnisses auf einem DOS-Dateisystem an:
user@sonne> mdir
Volume in drive A has no label
Directory for A:\tmp
. <DIR> 04-14-1999
9:51
.. <DIR> 04-14-1999 9:51
2 files 0 bytes
484 864 bytes free |
|
mdu |
|
Das Kommando zeigt - analog zum Unixkommando "du" - die Belegung des
DOS-Dateisystems an. Die Angabe erfolgt in so genannten Clustern, deren
Größe u.a.m. das Kommando minfo offenbart.
|
mformat |
|
Erzeugt ein DOS-Dateisystem auf einer Diskette. In den meisten Fällen
genügt die Angabe des Laufwerks; anhand des Laufwerktyps werden Default-Werte
verwendet. Benötigt man abweichende Werte, genügt die Angabe dieser.
Für alle nicht spezifizierten Parameter werden automatisch die
Voreinstellungen gewählt. Das Kommando selbst versteht (fast) dieselben
Optionen, wie das Kommando mkdosfs. Im Zusammenhang
mit der Systemadministration (Dateisysteme anlegen)
wird näher darauf eingegangen.
|
minfo |
|
Zeigt die Parameter eines DOS-Dateisystems an.
|
mkmanifest |
|
Der aus Anwendersicht wohl gravierendste Unterschied zwischen klassischem DOS-
und Unix-Dateisystemen ist die DOS-Beschränkung der Dateinamen auf bestimmte
Zeichen und Länge (auch unter FAT16 und FAT32 bestehen Unterschiede bez.
Unix-Dateisystemen).
Die verschiedenen Mtools-Werkzeuge mappen nun Unixnamen, die nicht in das
8:3-DOS-Schema passen, auf einen unter DOS gültigen Namen. Lesen Sie diese
Diskette später wiederum mit mtools aus, werden die alten Namen rekonstruiert.
Ein Problem haben Sie jedoch, falls Sie solche Dateien in einem Zwischenschritt mit
einem Nicht-Mtools-Werkzeug kopieren, da die Information zur Namensumsetzung nun
verloren geht. Und genau hier setzte mkmanifest an.
Das Kommando erzeugt aus den eingegebenen Namen ein kleines Shellskript, mit dem
sich die "alten" Dateinamen auf jeden Fall rekonstruieren lassen:
user@sonne> mkmanifest
Ein_langer_Dateiname Zu.viele.Punkte illegal: okay.c prn.dev >
manifest
user@sonne> cat manifest
mv ein_lang Ein_langer_Dateiname
mv zuxviele.pun Zu.viele.Punkte
mv illegalx illegal:
mv xrn.dev prn.dev |
Die Datei "okay.c" ist nicht enthalten, da sie der DOS-Konvention für
Dateinamen genügt und somit nicht umbenannt wird. Kopieren Sie die Datei
"manifest" ebenso auf Diskette, dann sind Sie jederzeit in der Lage, die originalen
Dateinamen wieder herzustellen.
|
mlabel |
|
Setzt den Namen eines DOS-Dateisystems bzw. liest diesen aus:
user@sonne> mlabel a:
Volume has no label
Enter the new volume label : test
user@sonne> mlabel a:
Volume label is TEST |
|
mmd |
|
Erzeugt ein Verzeichnis auf einem DOS-Dateisystem.
user@sonne> mmd
b:\directory |
|
mmount |
|
Es ist eine Erweiterung des Unix-Mount-Befehls und "mountet" ein
DOS-Dateisystem. Alle Optionen, die "mount" versteht, sind zulässig. Für
weitere Informationen lese man den Abschnitt Mounten
eines Dateisystems (Systemadministration-Dateisysteme).
|
mmove |
|
Verschiebt Dateien in einem DOS-Dateisystem und/oder benennt sie um. Werden
mehrere Dateien angegeben, muss das letzte Argument ein Verzeichnis sein (reines
Verschieben). Es lassen sich ebenso Verzeichnisse samt Inhalt verschieben.
|
mrd |
|
Entfernt ein leeres Verzeichnis aus einem DOS-Dateisystem.
user@sonne> mrd
b:\directory |
|
mread |
|
Kopiert eine Datei eines DOS-Dateisystems in ein Unix-Dateisystem. Mit -t
wird das Format automatisch konvertiert (CF/LF nach LF).
|
mren |
|
Dient zum Umbenennen von Dateien oder Verzeichnissen.
user@sonne> mren a:foo.bla
a:foo.old |
|
mtoolstest |
|
Mit diesem Kommando kann die Konfiguration der Mtools überprüft
werden. Die Ausgabe des Kommandos kann als Ausgangspunkt für eigene
Konfigurationsdateien dienen.
|
mtype |
|
Dient zum Betrachten des Inhalts einer DOS-Datei.
|
|
|