Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
Über die Autoren
Über dieses Buch
Linux vs. BSD
1 Der Kernel
2 Die Grundlagen aus Anwendersicht
3 Die Shell
4 Reguläre Ausdrücke
5 Tools zur Dateibearbeitung
6 Die Editoren
7 Shellskriptprogrammierung
8 Benutzerverwaltung
9 Grundlegende Verwaltungsaufgaben
10 Netzwerk-Grundlagen
11 Anwendersoftware für das Netzwerk
12 Netzwerkdienste
13 Mailserver unter Linux
14 LAMP
15 DNS-Server
16 Secure Shell
17 Die grafische Oberfläche
18 Window-Manager und Desktops
19 X11-Programme
20 Multimedia und Spiele
21 Softwareentwicklung
22 Crashkurs in C und Perl
23 Sicherheit
24 Prozesse und IPC
25 Bootstrap und Shutdown
26 Dateisysteme
27 Virtualisierung und Emulatoren
A Die Installation
B Lösungen zu den einzelnen Aufgaben
C Kommandoreferenz
D X11-InputDevices
E MBR
F Die Buch-DVDs
G Glossar
H Literatur

Download:
- ZIP, ca. 6,3 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Linux von Johannes Plötner, Steffen Wendzel
Das distributionsunabhängige Handbuch
Buch: Linux

Linux
2., aktualisierte und erweiterte Auflage
1119 S., 39,90 Euro
Galileo Computing
ISBN 978-3-8362-1090-4
gp 5 Tools zur Dateibearbeitung
  gp 5.1 head, tail und nl – den Dateiinhalt zeigen
  gp 5.2 cut, paste, tac und tr – den Dateiinhalt ändern
  gp 5.3 sort und uniq – sortiert und einzigartig
  gp 5.4 wc – Dateiinhalt zählen
  gp 5.5 Dateien finden mit find
    gp 5.5.1 Festlegung eines Auswahlkriteriums
    gp 5.5.2 Festlegung einer Aktion
  gp 5.6 split – Dateien aufspalten
  gp 5.7 Midnight Commander (mc)
    gp 5.7.1 Die Bedienung
    gp 5.7.2 Verschiedene Ansichten
  gp 5.8 Spezielle Tools
    gp 5.8.1 bc – der Rechner für die Konsole
    gp 5.8.2 dd – blockweises Kopieren
    gp 5.8.3 od und hexdump – Dateidumping
    gp 5.8.4 script – Terminal-Sessions aufzeichnen
  gp 5.9 Zusammenfassung
  gp 5.10 Aufgaben


Galileo Computing

5.8 Spezielle Tools  downtop

Eben betrachteten wir die grundlegenden Tools zur Arbeit mit Dateien. Nun werden wir uns etwas spezielleren Tools widmen, die im Prinzip grundverschieden in ihren Nutzen sind.


Galileo Computing

5.8.1 bc – der Rechner für die Konsole  downtop

Kommen wir nun zu einem weiteren sehr nützlichen Tool der Kommandozeile: dem bc. Dabei handelt es sich um ein Rechenprogramm. Der bc kann Ihnen zwar nicht wie die meisten Grafiktaschenrechner eine grafische Funktionsausgabe bieten, <In Verbindung mit dem Tool gnuplot ist aber auch dies überhaupt kein Problem mehr. Die meisten Distributionen beinhalten ein gnuplot-Package.> er verfügt dafür aber im Gegensatz zu den Produkten von Casio und Co. über eine hübsche Syntax in der Programmierung.

Doch wollen wir uns hier nicht zu sehr auf die Programmierung des bc stürzen, sondern primär nur zeigen, wie man dieses Programm überhaupt verwendet. Denn programmieren können Sie ja schließlich bereits mit awk und bald auch mit Shellskripten. <Falls Ihnen dies nicht reicht, sollte das Kapitel zur Programmierung in C und Perl weiterhelfen. Zudem gibt es für die Programmierung des bc zahlreiche Webseiten, die Google kennt.>

In diesem Kapitel verwenden wir nicht den originalen bc aus AT&Ts Unix-Version 6, sondern die komplett neu geschriebene Version des OpenBSD-Projekts. <Diese Version gibt es seit OpenBSD 3.5.>

Erstes Rechnen

Gestartet wird der Rechner über seinen Namen, beendet hingegen wird er durch die Tastenkombination Strg+D oder den Befehl »quit«.

Den bc füttert man einfach mit der Rechenaufgabe der Wahl, worauf dieser meistens das gewünschte Ergebnis ausgibt ...

$ bc 
4+4 
8 
1049*(5-4)-1 
1048 
^D

Listing 5.17    bc

scale

... die Betonung liegt nun allerdings auf dem Wort meistens. Dazu sei gesagt, dass der bc Ergebnisse von Divisionen, wenn man es ihm nicht explizit befiehlt, nur als Ganzzahlen ausgibt. Um dies zu ändern, muss die Anzahl der Nachkommastellen mit dem Befehl scale angegeben werden.

$ bc 
7/2 
3 
scale=1 
7/2 
3.5 
scale=10 
1904849/103941494 
.0183261652 
quit

Listing 5.18    bc mit scale

Die Math-Library

Übergibt man dem bc beim Start den Parameter -l, lädt er die mathematische Bibliothek, wodurch Funktionen wie s() (Sinus), c() (Kosinus), e() (Exponentialfunktion) und l(x) (Logarithmus) zur Verfügung stehen. Diese Funktionen verwendet man, indem man sie – ähnlich den Sprachen awk oder C – in der Form Funktion(Wert) aufruft.

$ bc -l 
s(3.141592) 
.00000065358979323841

Listing 5.19    bc -l: Sinus von einem Wert nahe PI berechnen

Das letzte Ergebnis

Das Ergebnis der letzten Rechnung wird in eine neue Berechnung symbolisch durch einen Punkt (.) eingebunden. Möchte man beispielsweise den obigen Sinus-Wert zu der Zahl 1 addieren, addiert man den Punkt zur 1:

.+1 
1.00000065358979323841 
.+1 
2.00000065358979323841 
.+3 
5.00000065358979323841 
.*0 
0.00000000000000000000

Listing 5.20    .+1

Programmierung

Wie bereits erwähnt wurde, werden wir an dieser Stelle nicht näher auf die Programmierung mit dem bc eingehen. Doch sei zumindest gesagt, dass Ihnen Schleifen und die Möglichkeit, eigene Funktionen zu implementieren, zur Verfügung stehen.

$ bc 
for(x=0;x<6;++x){ 
   "Der Wert von x ist: "; x; 
} 
Der Wert von x ist: 0 
Der Wert von x ist: 1 
Der Wert von x ist: 2 
Der Wert von x ist: 3 
Der Wert von x ist: 4 
Der Wert von x ist: 5

Listing 5.21    Ein einfaches Programmierbeispiel im bc

Zudem kann man sehr einfach Variablen verwenden:

a=3 
b=100 
a*b 
300 
x=(a*b)*394.13+4919489 
x 
5037728.00

Listing 5.22    Variablen im bc


Galileo Computing

5.8.2 dd – blockweises Kopieren  downtop

Mit dem Programm dd (»dump device«) werden Dateien blockweise kopiert. Da unter Unix und Linux Geräte ebenfalls Dateien sind, können mit dd aber auch ganze Speichermedien kopiert werden. So ist es beispielsweise problemlos möglich, eine ganze Diskette oder Festplatte zu klonen.

Mit if wird dabei die Eingabe-Datei und mit of die Ausgabedatei angegeben. Beides können sowohl Geräte als auch reguläre Dateien sein.

$ dd if=/dev/hda of=/dev/hdb

Listing 5.23    Festplatte klonen

Mit bs lässt sich die Größe der zu lesenden bzw. schreibenden Blöcke angeben, und mit count kann die Anzahl dieser Blöcke limitiert werden.

$ dd if=/datei of=/datei_1m_kopiert bs=1M count=1

Listing 5.24    Ein Megabyte einer Datei kopieren

Wie Sie sehen, müssen Sie die Größe der Blöcke nicht unbedingt in Byte angeben. Mit der Endung »k«, »M« und »G« können Kilo-, Mega- und Gigabyte-Angaben verwendet werden. <Es gibt noch weitere Möglichkeiten, die Blocksize anzugeben. Werfen Sie dazu einmal einen Blick in die zugehörige Manpage.>


Galileo Computing

5.8.3 od und hexdump – Dateidumping  downtop

Die nächsten zwei Tools, die wir uns anschauen wollen, sind od und hexdump. Beide geben den Inhalt einer Datei auf verschiedene Weisen, standardmäßig in einer Hex-Form, wieder. Je nachdem, welches der beiden Tools man verwendet, werden durch verschiedene Parameterübergaben verschiedene Ausgabeformate erzielt. So bewirkt beispielsweise -b bei od die Ausgabe im 1-Byte-Oktalformat: <Die Listing-Ausgabe wurde von uns wegen der Begrenzung der Seitenbreite abgeschnitten.>

$ od -b /bin/ls | head 
0000000  177 105 114 106 001 001 001 000 000 000 ... 
0000020  002 000 003 000 001 000 000 000 140 001 ... 
0000040  320 272 002 000 000 000 000 000 064 000 ... 
0000060  016 000 015 000 001 000 000 000 000 000 ... 
0000100  000 000 000 034 206 114 002 000 206 114 ... 
0000120  000 020 000 000 001 000 000 000 000 120 ... 
0000140  000 000 000 074 273 107 000 000 273 107 ... 
0000160  000 020 000 000 001 000 000 000 000 240 ... 
0000200  000 120 000 074 074 032 000 000 074 032 ... 
0000220  000 020 000 000 001 000 000 000 074 272 ...

Listing 5.25    od -b


Galileo Computing

5.8.4 script – Terminal-Sessions aufzeichnen  toptop

Mit script(1) stellt erstmals 3.0BSD eine Möglichkeit bereit, mit der die Aus- und Eingaben einer Terminal-Session aufgezeichnet werden können. Diese Textströme werden dabei in einer Datei mit dem Namen typescript im aktuellen Arbeitsverzeichnis geschrieben. In dieser Datei finden Sie übrigens auch alle Sonderzeichen der Eingabe in Binärform vor – zum Beispiel die Betätigung der Return-Taste bei jedem Kommandoabschluss.

$ cd /tmp 
$ script 
Script started, output file is typescript 
$ ... 
... 
$ exit 
Script done, output file is typescript

Listing 5.26    script nutzen

Die Session finden Sie in der typescript-Datei vor, die Sie sich beispielsweise mit einem Editor oder cat ansehen können:

$ cat /tmp/typescript 
Script started on Fri Apr 22 17:02:16 2005 
swendzel> ls 
kde-cdp_xe ksocket-cdp_xe sylpheed-1000 typescript 
swendzel> ls -l /*bsd* 
-rwx------ 1 root wheel 5441490 Feb  7 10:27 /bsd 
-rw-r--r-- 1 root wheel 4710072 Dec 11 23:37 /bsd.rd 
-rw-r--r-- 1 root wheel 5298400 Dec 11 23:37 /obsd 
swendzel> exit 
exit 
 
Script done on Fri Apr 22 17:02:44 2005

Listing 5.27    typescript



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






 <<   zurück
  
  Zum Katalog
Zum Katalog: Linux






 Linux
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Katalog: Einstieg in Linux






 Einstieg in Linux


Zum Katalog: Debian GNU/Linux






 Debian GNU/Linux


Zum Katalog: Ubuntu GNU/Linux






 Ubuntu GNU/Linux


Zum Katalog: Shell-Programmierung






 Shell-Programmierung


Zum Katalog: Linux-UNIX-Programmierung






 Linux-UNIX-
 Programmierung


Zum Katalog: Praxisbuch Netzwerk-Sicherheit






 Praxisbuch
 Netzwerk-Sicherheit


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de