Druckversion | |||||||||||||||||||||||||||||||||||||||||||||||
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.
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.
Die Informationen sind Jobnummer, Zeitpunkt des Auftrags und Name der Warteschlange. Eine analoge Ausgabe liefert at -l.
Aufträge können anhand ihrer Jobnummer gelöscht werden:
at -r arbeitet analog.
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.
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:
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):
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:
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:
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:
Mit dem Kommando lässt sich die Systemzeit anzeigen und (falls man die Rechte des Administrators besitzt) ändern.
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:
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.
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:
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.
mdel Löscht Dateien auf einem DOS-Dateisystem:
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:
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 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:
mmd Erzeugt ein Verzeichnis auf einem DOS-Dateisystem.
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.
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.
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. |
|||||||||||||||||||||||||||||||||||||||||||||||
Korrekturen, Hinweise? |