Eine kleine Bash Fibel — Wie alles begann

Ich mache das mal nicht wie im Film, wo zuerst die eigentliche Geschichte kommt und dann, wenn es gut läuft und die 5. Fortsetzung nicht mehr passend erscheint, eine Vorgeschichte groß aufgezogen wird.

Ich fange vorn an.

Allgemeines zur Einleitung

Linux-Benutzer werden der Kommandozeile früher oder später über den Weg laufen, früher, wenn es Probleme gibt, die gelöst werden wollen, später, wenn man die Probleme hinnimmt.

In dem normalerweise als “Konsole” oder “Terminal” bekannten Fenster, welches mit blinkendem Cursor und schwarzem Hintergrund hungrig auf Eingaben wartet, läuft das Programm der Standart-Shell. Eigentlich braucht die Shell kein Fensterchen, aber ist ja hübscher so…

Das ist jedenfalls dasjenige Stück Software, welches bei unixoiden Systemen zwischen dem Betriebsystem mit seinen Benutzern und dem Kernel, also dem Kern des Betriebsystems, steht. Mit der Shell lässt sich demnach der Rechner komplett steuern, wenn man über die entsprechenden Kenntnisse von Strukturen und Befehlen verfügt.

Grafik von http://en.kioskea.net/contents/linux/linshell.php3

Wozu kann man das gebrauchen? — Der Teaser

Naja, mit einigen Kenntnissen über die Befehlssyntax in der Kommandozeile und den grundlegenden Umgang mit einigen Programmen lassen sich diverse, meist stupide Aufgaben ganz einfach effizient beschleunigen. Nehmen wir mal an wir haben 1000 Dateien 1.dat, 2.dat usw., in denen wir jeweils Punkte durch Kommata ersetzen wollen. In der Shell geht das mit einer For-Schleife:

for file in $(ls *.dat); do
sed -i 's/./,/g' $file;
done
  • Die Variable $(ls *.dat) beinhaltet alle Dateien im aktuellen Verzeichnis, deren Namen mit .dat enden.
  • Das Programm sed wird hier benutzt, um Punkte durch Kommata zu ersetzen.
  • Die Variable $file enthält in jedem Schleifendurchlauf einen Dateinamen aus der Liste $(ls *.dat)

Ihr seht: Eine Befehlseingabe kann die Ersetzung in allen Dateien vornehmen. Die Ausgaben von verschiedenen Programmen können als Variableninhalt benutzt und weiterverarbeitet werden. Es gibt keine Dateitypen.

To be continued….

wen’s schon jetzt gepackt hat…

About

Peter Pan. Kann fliegen mit Feenstaub.

Tagged with: , , ,
Posted in Linux, Technik
3 comments on “Eine kleine Bash Fibel — Wie alles begann
  1. Adoa says:

    Hey jetzt habe ich sogar endlich mal verstanden, warum es „Kernel“ und „Shell“ heißt. Voll gut!
    Aber bist du sicher, dass das mit dem Punkt funktioniert? Der Punkt ist doch immer ein beliebiges Zeichen der RegExps

    • laclaro says:

      Jap, das funktioniert. In $(ls *.dat) ist der Punkt wirklich ein Punkt. Hab’s ausprobiert. Dateien wie “blapdf” sind nicht in der Liste.

  2. […] Abfolgen von Befehlen als das obige Beispiel kann man allerdings besser in eine Textdatei schreiben, die man mit chmod o+x <DATEI> […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Posts by topic…
…by month
Have a look at…


%d bloggers like this: