Verfügbare Informationen zu "STRG+V"
Qualität des Beitrags: Beteiligte Poster: nossinger - Juliaaan - Wilhelm von Nassau - pflaume - L!edL - gietschess - Tim - fL0r!4N Forum: 10er Forum RS Rennerod Forenbeschreibung: 10er-Forum aus dem Unterforum: Spam Antworten: 26 Forum gestartet am: Sonntag 25.02.2007 Sprache: deutsch Link zum Originaltopic: STRG+V Letzte Antwort: vor 16 Jahren, 10 Monaten, 26 Tagen, 20 Stunden, 43 Minuten
Alle Beiträge und Antworten zu "STRG+V"
Re: STRG+V
nossinger - 11.04.2007, 12:28STRG+V
zeigt ma her was ihr da so habt ;>
ich mach ma den anfang: http://10erforum.de.ki/
man muss ya auch irgendwie hier hin kommen ;>
Re: STRG+V
Juliaaan - 11.04.2007, 20:15
1Z0V97666859019767 :D
Re: STRG+V
nossinger - 11.04.2007, 20:40
woho der 1. der hier ma was schreibt..scheint ja wohl nich so der bringer zu sein ;<strg>
Re: STRG+V
Wilhelm von Nassau - 11.04.2007, 21:09
In meiner Zwischenablage ist:
willauchwillauchwillauchwillauchwillauch
von einem eben geschriebenen Beitrag ^^
Re: STRG+V
pflaume - 11.04.2007, 21:55
Kapitel 5. Kommandozeilenwerkzeuge
Wir möchten Ihnen in diesem Kapitel einige Werkzeuge für die Kommandozeile vorstellen, die sich im täglichen
Einsatz als hilfreich erweisen können. Wenn Sie ausschließlich die grafische Oberfläche bevorzugen,
können Sie dieses Kapitel sicher überspringen. Allerdings könnte ein kurzer Einblick Ihre Meinung auch ändern.
Jeder Befehl wird durch Beispiele erläutert. Dieses Kapitel ist aber auch als Übung für Sie gedacht um Funktionen
und die Benutzung der Befehle zu verstehen.
5.1 Dateioperationen und Filter
Die meisten Operationen auf der Kommandozeile beziehen sich auf Dateien. In diesem Abschnitt behandeln
wir das Betrachten und Filtern von Dateiinhalten, holen uns durch einfache Befehle benötigte Informationen
aus Dateien und sortieren den Inhalt einer Datei.
5.1.1 cat, tail, head, tee: Befehle zur Dateiausgabe
Alle diese Befehle haben fast die gleiche Syntax: befehls_name [Option(en)] [Datei(en)]. Sie können auch
mittels einer Pipe miteinander verbunden werden. Diese Befehle haben das gleiche Ziel: das Darstellen einer
Datei nach bestimmten Kriterien.
Das Werkzeug cat verbindet Dateien und gibt das Resultat auf der Standardausgabe aus. Es ist eines der
meistgenutzten Werkzeuge. Schreiben Sie beispielsweise
# cat /var/log/mail/info
um den Inhalt des Mailtransport-Logs auf der Standardausgabe darzustellen1. cat besitzt eine sehr hilfreiche
Option (-n), mit der bei der Ausgabe die Zeilen nummeriert werden.
Da einige Dateien, speziell Log-Dateien von Diensten (wenn diese aktiv sind), gewöhnlich recht umfangreich
sind2, ist die Ausgabe der gesamten Datei auf dem Bildschirm nicht sehr hilfreich. Normalerweise benötigen
Sie nur die Ansicht einiger Zeilen aus solch einer Datei. Dazu können Sie den Befehl tail benutzen. Das
folgende Kommando gibt standardgemäß die letzten 10 Zeilen der Datei (also etwa /var/log/mail/info)
aus:
# tail /var/log/mail/info
Mit der Option -n zeigen Sie die letzten n Zeilen einer Datei an, etwa die letzten beiden Zeilen:
# tail -n2 /var/log/mail/info
Der Befehl head ist dem Befehl tail sehr ähnlich, zeigt aber die ersten Zeilen einer Datei. Mit dem folgenden
Befehl zeigen Sie die ersten 10 Zeilen der Datei /var/log/mail/info an:
# head /var/log/mail/info
Wie bei tail können Sie auch hier die Option -n zur Angabe der anzuzeigenden Zeilenanzahl einsetzen. Die
ersten beiden Zeilen werden mit diesem Befehl angezeigt:
# head -n2 /var/log/mail/info
Sie können diese beiden Befehle gemeinsam nutzen. Um etwa die Zeilen 9 und 10 anzuzeigen, lassen Sie head
die ersten 10 Zeilen der Datei auswählen und schicken das Ergebnis dann durch eine Pipe zum Befehl tail.
# head /var/log/mail/info | tail -n2
1. Einige Beispiele dieses Abschnitts basieren auf realistischen Arbeitsgängen mit Log-Dateien und Servern (Systemdiensten,
Daemons). Dabei muss der Protokolldienst syslogd (er steuert die Logfunktion der Dienste) laufen. Für obiges
Beispiel muss auch der E-Mail Dienst (etwa Postfix) laufen und Sie müssen als root angemeldet sein. Natürlich können
Sie unsere Beispiele auch auf andere Dateien anwenden.
2. So enthält beispielsweise die Datei /var/log/mail/info Informationen über alle gesendeten E-Mails, über den Empfang
der Mails von Benutzern des POP-Protokolls, usw.
41
Kapitel 5. Kommandozeilenwerkzeuge
Der zweite Teil des Kommandos wählt dann die letzten beiden Zeilen aus und stellt sie auf dem Bildschirm
dar. In gleicher Weise wählen Sie die Zeile 20, gezählt vom Ende der Datei:
# tail -n20 /var/log/mail/info |head -n1
In diesem Beispiel weisen wir tail an, die letzten 20 Zeilen der Datei auszuwählen und sie durch eine Pipe
an head zu übergeben. Der Befehl head zeigt dann die erste Zeile der ihm übergebenen Auswahl an.
Nehmen wir an, wir wollen das Resultat des letzten Beispiels auf dem Bildschirm darstellen und es gleichzeitig
in der Datei results.txt speichern. Dabei hilft uns das Werkzeug tee. Dessen Syntax wie folgt lautet:
tee [Option(en)] [Datei]
Jetzt können wir den vorherigen Befehl ändern:
# tail -n20 /var/log/mail/info |head -n1|tee results.txt
Lassen Sie uns ein weiteres Beispiel ansehen. Wir wollen die letzten 20 Zeilen auswählen, sie in der Datei
results.txt speichern, aber nur die erste der 20 Zeilen am Bildschirm ansehen. Dazu geben wir ein:
# tail -n20 /var/log/mail/info |tee results.txt |head -n1
Der Befehl tee besitzt eine hilfreiche Option (-a), die das Anhängen von Daten an eine existierende Datei
ermöglicht.
Gehen wir zurück zum Befehl tail. Da laufende Dienste kontinuierlich neue Aktionen und Ereignisse in ihren
Log-Dateien speichern, ändern sich diese Dateien dauernd. Wenn Sie diese Veränderungen der Log-Datei in
Echtzeit verfolgen wollen nutzen Sie die Option -f von tail:
# tail -f /var/log/mail/info
Hier werden alle Änderungen der Datei /var/log/mail/info sofort auf dem Bildschirm angezeigt. Diese
Vorgehensweise ist besonders hilfreich, wenn man die Arbeitsweise des Systems beobachten will. Man kann
beispielsweise bei der Verfolgung der Datei /var/log/messages die Meldungen des Systems und verschiedener
Systemdienste beobachten.
Im nächsten Abschnitt werden wir zeigen, wie man mit Hilfe des Befehls grep die Meldungen des Postfix
Dienstes aus allen anderen Meldungen herausfiltert.
5.1.2 grep: Auffinden von Textfolgen in Dateien
Weder der Name noch die Abkürzung („General Regular Expression Parser“) sind sehr intuitiv, um so einfacher
ist das, was dieser Befehl macht und wie er benutzt wird: grep durchsucht eine oder mehr Dateien nach einem
angegebenen Muster. Die Syntax lautet:
grep [Option(en)] <muster> [Datei(en)]
Werden mehrere Dateien angegeben, so wird im Suchergebnis der Name der jeweiligen Datei vor der jeweiligen
Fundstelle angezeigt. Mit der Option -h schalten Sie diese Anzeige aus. Die Option -l bewirkt, dass nur
die auf das Suchmuster passende Dateinamen ausgegeben werden. Das Muster ist ein regulärer Ausdruck,
wenn es auch meist nur aus einem einfachen Wort besteht. Es folgen die meistgenutzten Optionen von grep:
• -i: führt eine case insensitive Suche durch, d.h. Unterschiede in der Groß-/Kleinschreibung werden ignoriert;
• -v: umgekehrte Suche. Zeigt die Zeilen an, die das Muster nicht enthalten;
• -n: zeigt die Zeilennummer für jede Fundstelle an;
• -w: weist grep an, nur nach dem Muster als ganzem Wort zu suchen.
Lassen Sie uns zur Untersuchung der Log-Datei des E-Mail-Dienstes zurückkehren. Wir wollen alle Zeilen in
der Datei /var/log/mail/info finden, die das Muster „postfix“ enthalten. Dazu geben wir folgendes Kommando
ein:
# grep postfix /var/log/mail/info
42
Kapitel 5. Kommandozeilenwerkzeuge
Der grep-Befehl kann auch in einer Pipe benutzt werden. Daher bekommen wir das gleiche Resultat wie eben
auch mit diesem Kommando:
# cat /var/log/mail/info | grep postfix
Wenn wir alle Zeilen auflisten wollen, die das Muster „postfix“ nicht enthalten, benutzen wir die Option -v:
# grep -v postfix /var/log/mail/info
Nehmen wir an, wir wollen alle Meldungen über erfolgreich versandte Mails finden. In diesem Fall müssen
wir alle Zeilen der Log-Datei ausfiltern, die vom E-Mail Dienst stammen (also das Muster „postfix“ enthalten)
und diese Zeilen nach der Meldung über einen erfolgreichen Versand („status=sent“) durchsuchen:
# grep postfix /var/log/mail/info |grep status=sent
Hier wird grep zweimal nacheinander benutzt. Das ist zwar erlaubt aber nicht besonders elegant.Wir erreichen
das gleiche Ergebnis mit dem Befehl fgrep. Zuerst müssen wir eine Datei mit den Suchmustern erstellen. Die
Muster müssen darin in einer Spalte untereinander angeordnet sein. Diese Datei (wir benutzen den Namen
patterns.txt) wird mit dem folgenden Kommando erstellt:
# echo -e ’status=sent\npostfix’ >./patterns.txt
Nun rufen wir das nächste Kommando auf, bei dem wir die Datei patterns.txt mit ihrer Liste der Suchmuster
an das Werkzeug fgrep übergeben anstatt die „Doppelnutzung“ von grep anzuwenden:
# fgrep -f ./patterns.txt /var/log/mail/info
Die Datei ./patterns.txt darf beliebig viele Suchmuster enthalten, wobei jedes Muster in einer Zeile für
sich stehen muss. Um nun beispielsweise alle erfolgreich abgesandten Mails an peter@mandrakesoft.com zu
finden, genügt es, mit folgendem Befehl die Mailadresse in die Datei ./patterns.txt einzufügen:
# echo ’peter@mandrakesoft.com’ >>./patterns.txt
Natürlich können Sie grep mit tail und head kombinieren. Die vorletzte Mail an peter@mandrakesoft.com
finden Sie mit der folgenden Kommandozeile:
# fgrep -f ./patterns.txt /var/log/mail/info | tail -n2 | head -n1
Hier wenden wir den oben beschriebenen Filter an und schicken das Resultat über eine Pipe an die Befehle
tail und head. Diese suchen dann den vorletzten Eintrag aus.
5.1.3 wc: Z¨ahlen von Elementen in Dateien
Der Befehl wc (Word Count) wird zum Erfassen der Anzahl von Zeichenfolgen und Wörtern in Dateien benutzt.
Er hilft auch beim Zählen von Bytes, einzelnen Zeichen und beim Auffinden der längsten Zeile. Die Syntax ist
wie folgt:
wc [Option(en)] [Datei(en)]
Einige hilfreiche Optionen:
• -l: gibt die Anzahl der Zeilen aus;
• -w: gibt die Anzahl der Wörter aus;
• -m: gibt die Gesamtzahl der Zeichen aus;
• -c: gibt die Anzahl der Bytes aus;
• -L: gibt die Länge der längsten Zeile des jeweiligen Textes aus.
Standardmäßig gibt der Befehl wc die Anzahl der Zeilen, Wörter und Zeichen aus. Es folgen einige Anwendungsbeispiele:
Gesucht wird die Anzahl der Benutzer in unserem System:
# wc -l /etc/passwd
43
Kapitel 5. Kommandozeilenwerkzeuge
Gesucht wird die Anzahl der Prozessoren in unserem System:
# grep "model name" /proc/cpuinfo |wc -l
Im vorigen Abschnitt ließen wir uns eine Liste der erfolgreich versandten Mails an Adressen in der Datei
./patterns.txt anzeigen. Wenn wir nun die Anzahl dieser Mails wissen wollen, können wir das Resultat
des Filters durch eine Pipe an den Befehl wc schicken:
# fgrep -f ./patterns.txt /var/log/mail/info | wc -l
5.1.4 sort: Sortieren des Datei-Inhaltes
Hier die Syntax dieses mächtigen Sotierwerkzeugs3:
sort [Option(en)] [Datei(en)]
Lassen Sie uns einen Teil der Datei /etc/passwd sortieren. Wie Sie sehen können, ist der Inhalt nicht sortiert:
$ cat /etc/passwd
Zur Sortierung nach dem Feld login verwenden wir den folgenden Befehl:
$ sort /etc/passwd
Der Befehl sort sortiert, ohne Optionen gestartet, Daten in aufsteigender Folge, beginnend beim ersten Feld
(in unserem Fall das Feld login). Wenn wir die Daten in absteigender Folge sehen wollen müssen wir die
Option -r verwenden:
$ sort -r /etc/passwd
Jeder Benutzer hat seine eigene UID in der Datei /etc/passwd. Lassen Sie uns die Datei in absteigender Folge
nach dem Feld UID sortieren:
$ sort /etc/passwd -t":" -k3 -n
In diesem Beispiel werden die folgenden sort Optionen verwendet:
• -t":": legt fest, dass das Trennungszeichen zwischen den Feldern das Zeichen ":" ist;
• -k3: die Sortierung soll nach dem dritten Feld erfolgen;
• -n: die Sortierung soll nur numerische Daten umfassen, keine alphabetischen Daten.
Das Gleiche kann man natürlich auch in umgekehrter Folge machen:
# sort /etc/passwd -t":" -k3 -n -r
sort hat zwei weitere wichtige Optionen:
• -u: führt eine strikte Sortierung durch, doppelte Felder werden missachtet;
• -f: ignoriert Groß-/Kleinschreibung.
Wenn wir schließlich den Benutzer mit der höchsten UID finden wollen, benutzen wir diese Befehlskette:
$ sort /etc/passwd -t":" -k3 -n |tail -n1
wobei wir die Datei /etc/passwd in aufsteigender Folge nach dem Feld UID sortieren und das Resultat durch
eine Pipe an das Programm tail übergeben. Dieses gibt den ersten Wert der Liste aus.
3. Wir behandeln sort hier nur kurz, man könnte aber über die gesamten Eigenschaften ganze Bücher schreiben.
44
Kapitel 5. Kommandozeilenwerkzeuge
5.2 find: Sucht nach Dateien, die vorgegebenen Kriterien entsprechen
find ist eines der althergebrachten UNIX®-Werkzeuge. Seine Aufgabe ist es, rekursiv ein oder mehrere Verzeichnisse
nach Dateien zu durchsuchen, die ein gegebenes Muster aufweisen. Einerseits ist das Werkzeug
sehr hilfreich, andererseits ist seine Syntax nicht einfach und es braucht einige Übung bevor man es richtig
anwenden kann. Die allgemeine Syntax lautet:
find [Verzeichnis] [Option(en)] [Test] [Aktion]
Ohne Angabe eines Verzeichnisses wird das aktuelle Verzeichnis durchsucht. Ohne spezielle Suchkriterien
wird das Ergebnis wie „vorhanden“ gewertet und daher alle vorhandenen Dateien aufgelistet. Die möglichen
Optionen, Tests und Aktionen sind derart zahlreich, dass wir hier nur einige wenige behandeln. Lassen Sie
uns mit den Optionen beginnen:
• -xdev: keine Suche in Verzeichnissen, die auf anderen Dateisystemen liegen.
• -mindepth <n>: Beginn der Suche erst n Stufen unterhalb des angegebenen Verzeichnisses.
• -maxdepth <n>: Suche nach Dateien in maximal n Stufen unterhalb des angegebenen Verzeichnisses.
• -follow: Verfolgen von symbolischen Links falls diese auf Verzeichnisse zeigen. Standardmäßig folgt find
den Links nicht.
• -daystart: bei zeitbezogenen Tests (siehe unten) wird der aktuelle Tag als Zeitmarke benutzt anstelle des
standardmäßigen Zeitstempels, der 24 Stunden zur aktuellen Zeit zurück liegt.
Ein Test kann einer oder mehrere elementare Eigenschaften umfassen. Einige dieser Eigenschaften sind:
• -type <file_type>: Suche nach einem angegebenen Dateityp. Der Dateityp kann einer der folgenden sein:
f (normale Datei), d (Verzeichnis), l (symbolischer Link), s (Socket), b (blockorientierte Datei), c (zeichenorientierte
Datei) oder p (eine „named Pipe“).
• -name <pattern>: findet Dateien, die dem gegebenen Muster entsprechen. Mit dieser Optionwird das Muster
wie ein Muster für Shell Namenserweiterung angesehen (siehe Kapitel Platzhalter in der Shell, Seite 26).
• -iname <pattern>: gleiche Wirkung wie -name, allerdings ohne auf Groß-/Kleinschreibung zu achten.
• -atime <n>, -amin <n>: findet Dateien, die zuletzt vor n Tagen (-atime) oder vor n Minuten (-amin) geöffnet
wurden. Sie können auch die Optionen <n> oder <n> angeben, wobei die Suche nach Dateien ausgeführt
wird, die vor höchstens oder mindestens n Tagen/Minuten geöffnet wurden.
• -anewer <a_file>: sucht nach Dateien, die später als die Datei a_file geöffnet wurden.
• -ctime <n>, -cmin <n>, -cnewer <file>: gleiche Wirkung wie bei den Optionen -atime, -amin und -
anewer, bezieht sich aber auf den Zeitpunkt der letzten Änderung des Inhaltes der Datei.
• -regex <pattern>: gleicheWirkung wie die Option -name. Allerdings wird pattern als regulärer Ausdruck
behandelt.
• -iregex <pattern>: wie -regex, allerdings ohne Beachtung von Groß-/Kleinschreibung.
Es gibt zahlreiche andere Tests, die Sie in find(1) finden können. Zusammengesetzte Tests können Sie in dieser
Art anwenden:
• <c1> -a <c2>: ist wahr, wenn sowohl c1 als auch c2 zutreffen; -a ist sowieso vorgegeben, also können Sie
<c1> <c2> <c3> schreiben, wenn c1, c2 und c3 zutreffen sollen.
• <c1> -o <c2>: ist wahr, wenn entweder c1 oder c2 zutreffen oder beide. Beachten Sie, dass -o eine niedrigere
Priorität als -a besitzt. Daher müssen Sie bei der Suche nach Dateien, die entweder auf c1 oder c2
und auf c3 passen, eine Klammerkonstruktion verwenden: ( <c1> -o <c2> ) -a <c3>. Klammern als Teil
eines Ausdrucks müssen maskiert werden, da sie sonst von der shell interpretiert werden!
• -not <c1>: kehrt Bedingungen um, also ist -not <c1> wahr, wenn c1 nicht zutrifft.
Schließlich können Sie für jede gefundene Datei auch eine Aktion festlegen. Die meist genutzten Aktionen
sind:
• -print: gibt einfach den Namen der Datei auf der Standardausgabe an. Das ist die Standard-Aktion.
• -ls: gibt auf der Standardausgabe das Äquivalent des Befehls ls -ilds für jede gefundene Datei aus.
45
Kapitel 5. Kommandozeilenwerkzeuge
• -exec <command_line>: wendet die Befehlszeile command_line auf jede gefundene Datei an. Die Befehlszeile
command_line muss mit dem Zeichen ; enden, das allerdings wieder maskiert werden muss um nicht
von der shell interpretiert zu werden. Der Dateiname wird dabei von {} eingefasst. Siehe Beispiele.
• -ok <command>: identisch mit -exec. Allerdings wird bei jeder Datei eine Bestätigung verlangt.
Am besten kann man all diese Optionen und Parameter mit einigen Beispielen darstellen. Nehmen wir an, Sie
wollen alle Unterverzeichnisse im Verzeichnis /usr/share auflisten. Die Eingabe dazu lautet:
# find /usr/share -type d
Angenommen, Sie betreiben einen HTTP Server und alle Ihre HTML-Dateien liegen im Verzeichnis /var/
www/html, das auch das aktuelle Verzeichnis ist. Jetzt wollen Sie alle Dateien finden, die seit einem Monat
nicht verändert wurden. Da die Seiten von verschiedenen Autoren stammen gibt es sowohl Dateien mit der
Endung html als auch solche mit der Endung htm. Sie wollen all diese Dateien in das Verzeichnis /var/www/
obsolete verlinken. Dazu geben Sie ein4:
# find \( -name "*.htm" -o -name "*.html" \) -a -ctime -30 -exec ln {} /var/www/obsolete \;
Dies ist ein recht komplexes Beispiel, das wir jetzt genauer erklären werden. Die Tests lauten wie Folgt:
\( -name "*.htm" -o -name "*.html" \) -a -ctime -30
wodurch das erreicht wird, was wir wollen: es findet alle Dateien, die auf .htm oder .html enden („\( -name
"*.htm" -o -name "*.html" \) “) und (-a) die innerhalb der letzten 30 Tage nicht verändert wurden (-ctime
-30). Beachten Sie die Klammern: sie müssen hier angewendet werden, da -a eine höhere Priorität hat. Ohne
Klammern würden alle Dateien aufgelistet, die mit .htm enden und dazu alle Dateien, die mit .html enden
und in den letzten 30 Tagen nicht geändert wurden. Das ist aber nicht genau das, was wir wollten. Beachten
Sie auch, dass die Klammern maskiert wurden: Wenn wir ( .. ) anstelle von \( .. \) schreiben würden,
hätte die shell die Klammern interpretiert und versucht, den Befehl -name "*.htm" -o -name "*.html" in
einer Sub-Shell auszuführen... Weitere mögliche Arten der Maskierung bestehen in der Einfassung mit Anführungszeichen,
jedoch ist hier ein Backslash vorzuziehen, da nur ein einzelnes Zeichen maskiert werden
muss.
Schließlich fehlt noch der für jede Datei auszuführende Befehl:
-exec ln {} /var/www/obsolete \;
Hier muss das Zeichen ; vor der shell maskiert werden, da die Shell das Zeichen anderenfalls als Befehlstrenner
interpretieren und find das Fehlen eines Argumentes für -exec melden würde.
Ein letztes Beispiel: Sie haben ein ausgedehntes Verzeichnis (/shared/images) mit allen möglichen Arten von
Bilddateien. Sie benutzen regelmäßig den Befehl touch um den Zeitstempel der Datei stamp in diesem Verzeichnis
als Zeitreferenz zu aktualisieren. Sie wollen nun alle JPEG-Bilder finden, die neuer als die Datei
stamp sind. Da Ihre Bilder aus verschiedenen Quellen stammen, besitzen diese Bilder die Endungen jpg,
jpeg, JPG oder JPEG. Natürlich wollen Sie auch keine Suche im alten Verzeichnis durchführen. Die Dateiliste
soll per Mail an Sie geschickt werden (Ihr Kennzeichen ist birgit):
# find /shared/images -cnewer \
/shared/images/stamp \
-a -iregex ".*\.jpe?g" \
-a -not -regex ".*/old/.*" \
| mail birgit -s "New images"
Natürlich ist es nicht gerade effizient, diese Befehlszeile jedes Mal neu eingeben zu müssen. Außerdem soll
der Befehl regelmäßig ausgeführt werden. Hier ist eine einfache Lösung zur regelmäßigen Ausführung des
Befehls:
4. Beachten Sie, dass sowohl /var/www als auch /var/www/obsolete im gleichen Dateisystem liegen müssen!
46
Kapitel 5. Kommandozeilenwerkzeuge
5.3 Planung der Ausf¨uhrung von Befehlen
5.3.1 crontab: Auflisten und Editieren der Datei crontab
crontab ist ein Hilfsprogramm mit dem Sie Befehle in regelmäßigen Zeitintervallen starten können ohne
dabei selbst am System angemeldet sein zu müssen. crontab wird die Ausgabe Ihres Befehls per Mail an
Sie schicken. Sie können die Zeitintervalle in Minuten, Stunden, Tagen und sogar Monaten festlegen. Je nach
angegebener Option verhält sich crontab unterschiedlich:
• -l: gibt den Inhalt Ihrer aktuellen Datei crontab aus.
• -e: damit starten Sie das Editieren der Datei crontab.
• -r: entfernt Ihre aktuelle crontab-Datei.
• -u <user>: führt eine der oben genannten Optionen für den Benutzer <user> aus. Das darf natürlich nur
root.
Fangen wir mit dem Editieren einer crontab-Datei an.Wenn Sie die Umgebungsvariable EDITOR oder VISUAL
gesetzt haben befinden Sie sich nach der Eingabe von crontab -e in Ihrem bevorzugten Editor, anderenfalls
wird Vi geöffnet. Eine Zeile in der crontab-Datei besteht aus sechs Feldern. Die ersten fünf Felder bestehen aus
den Angaben für die Minuten, Stunden, Tage undWochentage des Intervalls. Das sechste Feld beinhaltet den
auszuführenden Befehl. Zeilen, die am Anfang das Zeichen # aufweisen, werden als Kommentar betrachtet
und von crond (dem Programm, das für die Ausführung der crontab-Dateien verantwortlich ist) ignoriert.
Hier ist ein Beispiel einer crontab:
Um das Folgende in lesbarer Form darzustellen, mussten einige lange
Zeilen umbrochen und in einer neuen Zeile fortgesetzt werden.
Wenn also am Ende einer Zeile das Zeichen \ steht, bedeutet das,
dass die Zeile nach einem Umbruch fortgesetzt wird. Diese Konvention
wird in Makefiles, in der shell und auch in anderen F¨allen
eingesetzt.
# Falls Sie nicht per Mail benachrichtigt werden wollen
# kommentieren Sie die folgende Zeile aus:
#MAILTO="your_email_address"
#
# Bericht ¨uber neue Bilder alle 2 Tage um 2 Uhr nachmittags,
# ausgehend vom oben genannten Beispiel - danach soll die
# "stamp"-Datei wieder aktualisiert werden.
# Das Zeichen "%" wird als neue Zeile interpretiert.
# Dadurch k¨onnen Sie mehrere Befehle in eine Zeile schreiben.
0 14 */2 * * find /shared/images \
-cnewer /shared/images/stamp \
-a -iregex ".*\.jpe?g" \
-a -not -regex \
".*/old/.*"%touch /shared/images/stamp
#
# Am ersten Weihnachtsfeiertag eine Melodie spielen :)
0 0 25 12 * mpg123 $HOME/sounds/merryxmas.mp3
#
# Drucke jeden Dienstag um 17 Uhr die Einkaufsliste aus...
0 17 * * 2 lpr $HOME/shopping-list.txt
Es gibt ausser den hier gezeigten noch mehrere andere Arten, die Zeitintervalle anzugeben. Sie können etwa
eine durch Kommata getrennte Folge von bestimmten Zahlen (1,14,23) oder einen Zahlenbereich (1-15), ja,
sogar eine Kombination von beiden (1-10,12-20), optional mit einer Schrittangabe (1-12,20-27/2), angeben.
Jetzt ist es an Ihnen, hier hilfreiche und sinnvolle Befehle einzugeben!
47
Kapitel 5. Kommandozeilenwerkzeuge
5.3.2 at: Planen eines nur einmal auszuf¨uhrenden Befehls
Sie möchten vielleicht auch einen Befehl eingeben, der einmal zu einer vorbestimmten Zeit, aber nicht regelmäßig
ausgeführt wird. Lassen Sie sich beispielsweise an eine Verabredung um 18:00 Uhr erinnern. Sie
arbeiten mit X, das Paket X11R6-contrib ist installiert und Sie wollen um 17:30 Uhr an den Aufbruch erinnert
werden. Dann ist at das richtige Programm:
$ at 5:30pm
# Sie befinden sich jetzt am "at"-Prompt
at> xmessage "Zeit, aufzubrechen! Verabredung um 18:00"
# Dr¨ucken Sie Strg-d zum Verlassen
at> <EOT>
$
Die Zeit kann in mehreren Varianten angegeben werden:
• now + <interval>: jetzt plus dem angegebenen Intervall (Optional. Ohne angegebenes Intervall bedeutet
es: Jetzt.). Die Syntax für das Interval ist <n> (minuten|stunden|tage|wochen|monate). Sie könnten beispielsweise
angeben: now + 1 hour (in einer Stunde ab jetzt), now + 3 days (in drei Tagen ab heute), usw.
• <zeit> <tag>: damit wird der Zeitpunkt genau festgelegt. Die Angabe des Parameters <zeit> ist vorgeschrieben.
at ist bei der Formatierung sehr liberal: Sie können beispielsweise 0100, 04:20, 2am, 0530pm, 1800
oder einen von drei festgelegten Zeitpunkten angeben: noon, teatime (16:00) oder midnight. Die Angabe
des Parameters <tag> hingegen ist optional. Auch diese Angabe kann in verschiedenen Arten erfolgen:
12/20/2001 (also der 20. Dezember 2001) oder in europäischer Art 20.12.2001. Wenn Sie die Jahresangabe
weglassen wollen ist nur die europäische Angabe erlaubt: 20.12. Den Monat können Sie auch in Form von
Buchstaben eingeben: Dec 20 oder 20 Dec sind beide gültig.
at akzeptiert verschiedene Optionen:
• -l: gibt eine Liste der aktuell anliegenden Jobs aus, in der das erste Feld die Nummer des Jobs angibt. Das
ist das Äquivalent zum Befehl atq.
• -d <n>: entfernt den Job Nummer <n> aus der Warteschlange. Die Jobnummern bekommen Sie mit dem
Befehl atq. Das ist das Äquivalent zu dem Befehl atrm <n>.
Wie gewohnt finden Sie weitere Optionen in der manpage von at(1).
5.4 Archivieren und Datenkomprimierung
5.4.1 tar: Tape ARchiver
Wie find ist auch tar eines der älteren UNIX®-Werkzeuge. Dementsprechend „speziell“ ist die Syntax:
tar [Option(en)] [Datei(en)]
Hier finden Sie eine Liste mit einigen Optionen. Alle Optionen haben auch eine längere Schreibweise, die Sie
aber bitte in der man page von tar nachlesen wollen.
der den kurzen Optionsangaben vorangehende Strich (-) kann bei
der aktuellen Version von tar weggelassen werden, es sei denn, es
folgt eine kurze Schreibweise nach einer Langversion.
• c: erstellt ein neues Archiv.
• x: extrahiert Dateien aus einem bestehenden Archiv.
• t: listet die Dateien eines bestehenden Archives auf.
• v: listet die einem Archiv hinzugefügten oder daraus extrahierten Dateien auf. In Verbindung mit der Option
t (siehe oben) wird eine lange Liste von Dateien anstelle einer Kurzform ausgegeben.
48
Kapitel 5. Kommandozeilenwerkzeuge
• f <datei_name>: erstellt ein Archiv mit dem Namen datei_name, extrahiert Dateien aus einem Archiv mit
diesem Namen oder listet die Dateien eines Archivs mit dem Namen file_name auf.Wird dieser Parameter
weggelassen so wird als Standard /dev/rmt0 angenommen, da dies im Allgemeinen der spezielle Dateiname
für einen Streamer ist. Ist der Parameter für die Datei ein - (ein Strich) so wird die Ein- oder Ausgabe
(je nachdem, ob es sich um eine Erstellung eines Archivs oder eine Extrahierung aus einem Archiv handelt)
auf die Standard-Ein-/Ausgabe geleitet.
• z: weist tar an, das zu erstellende Archiv mit gzip zu komprimieren. Bei einer Extraktion wird damit
angegeben, dass das Archiv mit gzip komprimiert wurde.
• j: bedeutet das Gleiche wie z, nur, dass es sich bei dem Komprimierungsprogramm um bzip2 handelt.
• p: bei der Extraktion von Dateien aus einem Archiv werden alle Dateiattribute beibehalten (Besitzrechte,
letzter Zugriff, usw.). Sehr hilfreich bei Sicherungen eines Systems.
• r: fügt eine auf der Kommandozeile angegebene Liste von Dateien zu einem existierenden Archiv hinzu.
Beachten Sie hierbei, dass das Archiv, dem Sie die Dateien hinzufügen wollen, nicht komprimiert sein darf!
• A: fügt auf der Kommandozeile angegebene Archive zu einem mit der Option f erstellten Archiv hinzu.Wie
bei der Option r dürfen auch hier die Archive nicht komprimiert sein.
Es gibt eine Unmenge weiterer Optionen, die Sie ihrer Gesamtheit in tar(1) finden können. Schauen Sie sich
dort beispielsweise die Option d an. Lassen Sie uns mit einem kleinen Beispiel fortfahren. Sie wollen ein Archiv
erstellen, dass alle Bilder im Verzeichnis /shared/images enthält, mit bzip2 komprimiert ist, den Namen
images.tar.bz2 trägt und in Ihrem persönlichen Verzeichnis gespeichert wird. Dazu verwenden Sie die folgende
Befehlszeile:
#
# Achtung: Sie m¨ussen sich dazu in dem Verzeichnis befinden, aus dem
# die zu archivierenden Dateien stammen!
#
$ cd /shared
$ tar cjf ~/images.tar.bz2 images/
Wie Sie sehen, haben wir hier drei Optionen benutzt: c zur Erstellung des Archivs, j zur Komprimierung mit
bzip2 und f ~/images.tar.bz2 zur Angabe, dass das Archiv den Namen images.tar.bz2 bekommt und in
Ihrem persönlichen Verzeichnis abgelegt wird. Nun prüfen wir, ob das Archiv valide ist und lassen uns dazu
die archivierten Dateien auflisten:
#
# Gehen Sie dazu in Ihr pers¨onliches Verzeichnis
#
$ cd
$ tar tjvf images.tar.bz2
Wir weisen also tar an, die Dateien des Archivs images.tar.bz2 (f images.tar.bz2) aufzulisten (t), teilen
ihm mit, dass das Archiv mit bzip2 komprimiert wurde (j) und dass wir eine ausführliche Liste sehen wollen
(v). Angenommen, Sie haben das Verzeichnis mit den Bildern mittlerweile gelöscht. Glücklicherweise ist das
Archiv in Ordnung und Sie können es wieder an den ursprünglichen Platz (/shared) entpacken. Dabei wollen
Sie aber die Funktionalität Ihres find-Befehls für neue Bilder nicht durcheinander bringen. Daher müssen Sie
nun die Option zur Erhaltung aller Dateiattribute benutzen:
#
# Wechseln Sie zum Zielverzeichnis
#
$ cd /shared
$ tar jxpf ~/images.tar.bz2
Das wars!
Als Nächstes wollen Sie vielleicht das Verzeichnis images/cars aus dem Archiv extrahieren, aber nur dieses
Verzeichnis, sonst nichts. Dazu geben Sie die folgende Befehlszeile ein:
$ tar jxf ~/images.tar.bz2 images/cars
Falls Sie versuchen, spezielle Dateien zu archivieren wird tar die Dateien behandeln, als das, was sie sind
(spezielle Dateien) und ihren Inhalt nicht sichern. Daher können Sie beispielsweise die Datei /dev/mem in ein
Archiv einfügen. tar geht auch korrekt mit Links um, also brauchen Sie sich darum ebenfalls keine Sorgen
machen. Zum Thema „symbolische Links“ sollten Sie sich die Option h im Handbuchauszug ansehen.
49
Kapitel 5. Kommandozeilenwerkzeuge
5.4.2 bzip2 und gzip: Programme zur Datenkompression
Wir haben diese beiden Programm bereits bei der Behandlung von tar erwähnt. Entgegen der Funktionsweise
von WinZip® unter Windows® wird das Archivieren und Komprimieren von Daten von zwei verschiedenen
Programmen erledigt – tar zur Archivierung und die die zwei Programme, über die wir jetzt schreiben, zur
Datenkompession: bzip2 und gzip. Sie können auch andere Komprimierungs-Programme benutzen: zip, arj
oder rar existieren auch unter GNU/Linux, werden aber seltener benutzt.
Am Anfang wurde bzip2 eigentlich als Nachfolger für gzip entwickelt. Seine Kompressionsrate war im Allgemeinen
besser als bei gzip, dafür braucht es mehr Arbeitsspeicher zur Bearbeitung der Daten. gzip wird
allerdings aus Kompatibilitätsgründen immer noch oft benutzt.
Beide Programme haben eine ähnliche Syntax:
gzip [Option(en)] [Datei(en)]
Wenn kein Dateiname angegeben wird warten beide Befehle auf Daten von der Standardeingabe und geben
das Resultat ihrer Verarbeitung an die Standardausgabe aus. Daher können beide Programme auch in Pipes
benutzt werden. Beide Programme besitzen auch eine Reihe von gemeinsamen Optionen:
• -1, ..., -9: setzt die Kompressionsrate fest. Je höher die Ziffer, desto stärker die Komprimierung, aber auch
desto langsamer die Verarbeitung.
• -d: de-komprimieren von Dateien. Ein Äquivalent zu den Befehlen gunzip oder bunzip2.
• -c: gibt das Ergebnis der Kompression/Dekompression von als Parameter angegebenen Dateien an die
Standardausgabe.
Standardm¨aßig l¨oschen beide Programme ohne die Angabe der Option
-c die Dateien, die sie komprimiert oder dekomprimiert haben.
Bei bzip2 k¨onnen Sie das durch die Benutzung der Option -k vermeiden.
gzip besitzt keine ¨ahnliche Option.
Es folgen ein paar Beispiele. Nehmen wir an, Sie möchten alle Dateien im aktuellen Verzeichnis mit der Endung
.txt komprimieren und benutzen dazu bzip2 mit maximaler Kompressionsrate. Dazu geben Sie diesen
Befehl ein:
# bzip2 -9 *.txt
Nun wollen Sie Ihr Bildarchiv jemandem zeigen, der aber anstelle von bzip2 nur gzip benutzen kann. Dazu
müssen Sie das ganze Archiv nicht entpacken und wieder komprimieren. Entpacken Sie es auf die Standardausgabe,
nutzen eine Pipe, komprimieren die Daten der Standardeingabe und leiten die Ausgabe in das neue
Archiv. Und das geht so:
bzip2 -dc images.tar.bz2 | gzip -9 >images.tar.gz
Sie könnten auch bzcat anstelle von bzip2 -dc nehmen. Es gibt ein Äquivalent für gzip, der Name ist aber
zcat, nicht gzcat. Sie können auch bzless statt bzip2 Datei und zless statt gzip verwenden, falls Sie die
komprimierten Dateien direkt ansehen wollen anstatt sie erst zu dekomprimieren. Als Übung sollten Sie jetzt
den Befehl finden, mit dem Sie – ohne bzless oder zless zu benutzen – komprimierte Dateien direkt ansehen
können, ohne sie vorher zu entpacken.
5.5 Viel, viel mehr...
Es gibt derartig viele Befehle, dass ein umfassendes Buch darüber die Größe einer Enzyklopädie erreichen
würde. Dieser Abschnitt hat nicht einmal ein Zehntel des gewählten Themas behandelt, trotzdem können Sie
mit dem, was Sie hier gelernt haben, schon Einiges anfangen.Wenn Sie daran interessiert sind, sollten Sie sich
einige Handbuchauszüge ansehen: sort(1), sed(1) und zip(1) (ja, genau das, was Sie annehmen: Sie können
unter GNU/Linux auch .zip-Archive anlegen), convert(1), usw. Die beste Art, sich mit diesen Werkzeugen
vertraut zu machen ist ständiges Üben und Experimentieren. Sie werden sicher eine Menge Möglichkeiten
dazu finden, sogar einige unerwartete. Viel Spaß!
das befand sich in meiner zwischenablage^^
@noss: du hast es anscheinend so gewollt
Re: STRG+V
nossinger - 11.04.2007, 22:23
aaaaaaahja :D
meine zwischenablage :D:
www.nix-pop.dl.am
Re: STRG+V
L!edL - 12.04.2007, 12:35
meine is leer =(
Re: STRG+V
nossinger - 12.04.2007, 13:36
Ein Mädchen und ein Junge dachten sich mal bei dem schönen Wetter mit dem Motorrad zu fahren.
Jedoch hatten sie nur einen Helm dabei, doch es war ihnen egal und sie fuhren los. Sie genossen es den
sanften Wind auf der Haut zu spüren und einfach diesen gemeinsamen Moment zu genießen. Nach einiger Zeit
fiel dem Mädchen auf, dass der Junge immer schneller fuhr...
Sie schaute auf den Tacho und sah, dass es mittlerweile schon 180 km/h waren. Deshalb bat sie den Jungen langsamer zu fahren, weil sie Angst hatte.
Der Junge sagte *Umarme mich und sage, dass du mich liebst!*
Das Mädchen antwortete *Ich liebe dich über alles, mein Schatz, aber fahre jetzt bitte langsamer...*
Der Junge sagte darauf nur *Nimm erstmal meinen Helm und setze ihn bitte auf, bitte!*
Einen Tag später steht in der Zeitung:
UNFALL
Zwei Jugendliche fuhren mit 180km/h auf ein Haus zu. Nur einer überlebte.
ERKLÄRUNG
Nur das Mädchen hat überlebt. Dem Junge wurde beim Fahren bewusst, dass die Bremsen nicht mehr
funktionierten, dass das Gaspedal hängen geblieben ist und sie nicht mehr langsamer fahren können.
Deswegen hat der Junge dem Mädchen seinen Helm gegeben und gesagt sie soll ihn umarmen
und I LOVE YOU SAGEN!!!
Re: STRG+V
pflaume - 13.04.2007, 00:16
Asus V9999GT
Re: STRG+V
gietschess - 13.04.2007, 11:21
172.24.7.66
tolle ip. :D
[ DER NOSS KLAUT SPAM-THREADS AUS ANDEREN FOREN! :D ]
Re: STRG+V
L!edL - 13.04.2007, 11:36
für schönheit un weisheit un sexyheit
[NOSS DU DIEB :!: :lol: ]
Re: STRG+V
gietschess - 13.04.2007, 17:19
willst du mit mir gehn???
[ ] ja
[ ] nein
[ ] vielleicht
Re: STRG+V
L!edL - 13.04.2007, 18:13
http://10erforum.de.ki/
Re: STRG+V
pflaume - 13.04.2007, 22:01
Sturmwehr
Re: STRG+V
nossinger - 14.04.2007, 14:05
gietschess hat folgendes geschrieben: 172.24.7.66
tolle ip. :D
[ DER NOSS KLAUT SPAM-THREADS AUS ANDEREN FOREN! :D ]
ja und :roll: ? :>
Re: STRG+V
Juliaaan - 14.04.2007, 18:21
http://addons.miranda-im.org/feed.php?dlfile=2103
Re: STRG+V
L!edL - 15.04.2007, 13:38
http://10erforum.de.ki/
Re: STRG+V
L!edL - 15.04.2007, 18:15
Pimp! Code - Wicked Body Moves
Re: STRG+V
L!edL - 16.04.2007, 20:20
Madsen - Die Perfektion
Re: STRG+V
L!edL - 18.04.2007, 14:42
Bloodhound Gang - The Vagina Song
Re: STRG+V
L!edL - 18.04.2007, 17:00
7CH45-89I1P-Z89NE-902D8-3Q84F
nero serial :wink:
Re: STRG+V
Tim - 18.04.2007, 17:57
Tim (17:55:00 18/04/2007)
Re: STRG+V
Juliaaan - 18.04.2007, 21:34
http://xeem.to/prsgRuRsJj
Re: STRG+V
fL0r!4N - 23.05.2007, 16:21
http://www.bilder-speicher.de/07052316575603.vollbild.html
Re: STRG+V
gietschess - 23.05.2007, 18:39
BEST-CARD15
Re: STRG+V
Wilhelm von Nassau - 31.05.2007, 22:07
Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken
Weitere Beiträge aus dem Forum 10er Forum RS Rennerod
ffg4ming - gepostet von PuN!C4 am Sonntag 25.02.2007
In welchem Forum darf ich was posten? - gepostet von fL0r!4N am Freitag 07.09.2007
Das Aus für unsere Gäste! - gepostet von fL0r!4N am Donnerstag 24.05.2007
1. Mai - gepostet von fL0r!4N am Montag 12.03.2007
Ähnliche Beiträge wie "STRG+V"
Strg + V ... - myratess (Donnerstag 20.04.2006)
Für die neuen - darknes (Montag 19.01.2009)
Welche nette Frau begeleitet mich am Mittwoch in den Club? - knuffi39 (Montag 01.08.2011)
Strg - V - Zorngiebel (Montag 27.03.2006)
Strg+V - Thread - Che_Guevara (Donnerstag 09.02.2006)
Strg+V - specoperator (Samstag 05.05.2007)
[Konzert-Tipp] Maximo Park - Thomas (Montag 19.01.2009)
STRG+UNTBR ? - alesch (Samstag 12.08.2006)
das strg+v spiel :-D - oszy112 (Mittwoch 30.01.2008)
"Strg+V" ~ Was kopierst du? - ~Resü~ (Mittwoch 15.11.2006)