Übungsaufgaben 01

Erste Schritte mit der Kommandozeile

Um die Unix-Programmierumgebung zu nutzen, müssen wir zunächst einen Terminal-Emulator starten oder kurz gesagt „ein Terminal öffnen“. Unter Ubuntu geht das am einfachsten mit der Tastenkombination Strg+Alt+T. Dann erscheint ein Fenster, das in etwa so aussieht:

Terminal-Emulator mit Bash, direkt nach dem Start.
Terminal-Emulator mit Bash, direkt nach dem Start.

Der Terminal-Emulator startet automatisch eine Shell. Eine Shell ist ein interaktives, textbasiertes Programm, das auf Ihre Kommandos wartet und sie ausführt. Es gibt viele Shells, zwischen denen man wählen kann, aber die Standard-Shell heißt Bash. Nun wartet Bash auf Ihr erstes Kommando. Dass Bash auf Ihr Kommando wartet, können Sie an dem sogenannten Prompt erkennen. In dem obigen Beispiel lautet das Prompt:

ke@unut:~$ 

Das Prompt liefert Ihnen einige nützliche Informationen. Es besteht aus

  1. Ihrem Benutzernamen (im Beispiel: ke).
  2. einem @-Zeichen.
  3. dem Namen des Computers (im Beispiel: unut).
  4. einem Doppelpunkt.
  5. dem Verzeichnis (Ordner), in dem Sie sich gerade befinden, dem sogenannten Arbeitsverzeichnis. Anfänglich befinden Sie sich immer in Ihrem Home-Verzeichnis, das mit der Tilde (~) abgekürzt wird.
  6. einem Dollarzeichen.
  7. einem Leerzeichen.

In den folgenden Beispielen werden wir das Prompt mit abkürzen.

Eine Kommandozeile besteht aus dem Prompt und einem Kommando, das der Benutzer erteilt. Jetzt sind Sie an der Reihe.

Übungsaufgabe 01.01: Ihr erstes Kommando

Für diese Übung benötigen Sie das folgende Standardprogramm:

  • echo. echo ist ein nichtinteraktives Programm, das nichts weiter macht, als als Output auszugeben, was man ihm als Input mitgibt.

Öffnen Sie ein Terminal und geben Sie den folgendes Kommando ein. Denken Sie daran, dass das für das Prompt steht und also nicht mit eingegeben wird. Schließen Sie die Eingabe mit der Enter-Taste ab.

$ echo Hallo Welt!

Sie erhalten folgenden Output (und danach ein neues Prompt):

Hallo Welt!

Probieren Sie es mit weiteren Inputs Ihrer Wahl.

echo ist genau genommen eigentlich kein Programm, sondern ein eingebautes Shell-Kommando. Der Unterschied ist für unsere Zwecke allerdings nicht sehr wichtig.

Übungsaufgabe 01.02: Verzeichnisse und Dateien

Für diese Übung benötigen Sie folgende neuen Programme bzw. Shell-Kommandos:

Stecken Sie Ihren USB-Stick in eine freie USB-Buchse Ihres Rechners. Warten Sie, bis Ubuntu den Stick erkannt hat. Das merken Sie daran, dass sich ein grafisches Fenster öffnet, in dem der Inhalt des Sticks angezeigt wird. Wechseln Sie zurück zum Terminal und geben Sie folgendes Kommando ein:

$ cd /media/$USER

Damit wechseln Sie in das Verzeichnis /media/$USER, wobei Bash $USER automatisch durch Ihren Benutzernamen ersetzt. Es handelt sich bei diesem Verzeichnis um ein Systemverzeichnis, in dem Ubuntu automatisch Ihre externen Laufwerke, wie z.B. USB-Sticks, einhängt.

Ein Shell-Kommando besteht aus dem Namen des Programms bzw. eingebauten Shell-Kommandos (z.B. echo, cd, ls), gefolgt von 0 oder mehr Argumenten, getrennt durch Leerzeichen. Zum Beispiel haben Sie echo mit den Argumenten Hallo und Welt! aufgerufen und cd mit dem Argument /media/$USER.

Erteilen Sie nun folgendes Kommando – bestehend nur aus dem Namen des Programms ls, ohne Argumente:

$ ls

Damit zeigen Sie den Inhalt des Verzeichnisses an. Der besteht wahrscheinlich aus genau einem Unterverzeichnis, das den Namen Ihres USB-Sticks trägt. Geben Sie nun wieder cd ein, diesmal mit diesem Namen als Argument, um den USB-Stick zu Ihrem Arbeitsverzeichnis zu machen.

Das Argument für cd ist ein absoluter Pfad oder ein relativer Pfad. Absolute Pfade beginnen mit einem Schrägstrich, relative nicht. Mit einem relativen Pfad wechselt man in ein Unterverzeichnis des aktuellen Arbeitsverzeichnisses, wie Sie es gerade gemacht haben. Mit einem absoluten Pfad beginnt man im obersten Verzeichnis, dem sogenannten Wurzelverzeichnis. Der Pfad /media/$USER führt zum Beispiel vom Wurzelverzeichnis aus in dessen Unterverzeichnis media und von dort aus in das Unterverzeichnis, das Ihren Benutzernamen als Namen trägt.

Benutzen Sie erneut ls, um den Inhalt Ihres USB-Sticks anzuzeigen. Wenn sich schon Dateien und/oder Verzeichnisse darauf befinden, werden diese jetzt angezeigt. Sie werden sehen, dass Dateien von Verzeichnissen durch Farben unterschieden werden. Versuchen Sie auch einmal das Kommando ls -l.

Argumente, die mit dem Zeichen - beginnen, heißen Optionen (engl. options, auch flags). Optionen sind „Schalter“, mit denen man das Verhalten von Programmen modifizieren kann. Jedes Programm hat andere Optionen. Bei ls bewirkt die Option -l, dass mehr Details angezeigt werden, z.B. wie groß Dateien sind (in Bytes) und wann sie zuletzt geändert wurden. Eine andere Option, -a, sorgt dafür, dass auch versteckte Dateien angezeigt werden.

Wenn ein Kommando sowohl Optionen als auch andere Argumente hat, kommen die Optionen normalerweise vor den anderen Argumenten.

Übungsaufgabe 01.03: Verzeichnisse und Dateien erstellen

In dieser Übung erstellen Sie ein Verzeichnis für die Arbeit in diesem Kurs. Sie erstellen auch eine Textdatei und geben diese aus. Sie brauchen die folgenden neuen Programme:

  • mkdir. mkdir erstellt ein neues Verzeichnis.
  • cat. cat gibt den Inhalt von Textdateien aus.

Stellen Sie sicher, dass Ihr Arbeitsverzeichnis Ihr USB-Stick ist. Rufen Sie dann das Programm mkdir auf, um ein Verzeichnis zu erstellen, in dem Sie Dateien für diesen Kurs aufbewahren. Sie können es zum Beispiel python nennen. mkdir wird mit einem Argument aufgerufen, das den Namen des zu erstellenden Verzeichnisses angibt.

Wechseln Sie mit einem passenden cd-Kommando in das neu erstellte Verzeichnis und erstellen Sie dort eine Datei. Verwenden Sie dazu dieses Kommando:

$ echo Hallo Welt! > test.txt

Es ist dasselbe echo-Kommando wie vorhin, aber erweitert um eine Umleitung. Durch das Zeichen >, gefolgt von einem Dateinamen, wird der Output des Kommandos in die angegebene Datei umgeleitet. Das heißt, dass er nicht durch die Shell angezeigt wird, sondern stattdessen in die Datei geschrieben wird. Um sich zu überzeugen, dass das tatsächlich passiert ist, verwenden Sie nun das cat-Kommando, um den Inhalt der Datei test.txt auszugeben. Das sollte dann so aussehen:

$ cat test.txt
Hallo Welt!

Umleitungen überschreiben die Ziel-Datei ohne nachzufragen, wenn sie schon existiert. Seien Sie also vorsichtig damit.

Übungsaufgabe 01.04

Beantworten Sie folgende Frage: Was ist der Unterschied zwischen echo und cat?

Übungsaufgabe 01.05: Einen Editor benutzen

Stellen Sie sicher, dass Ihr aktuelles Arbeitsverzeichnis das python-Verzeichnis auf Ihrem USB-Stick ist. Erstellen Sie hier eine neue Textdatei mit dem Namen test.txt mit Hilfe des Texteditors gedit. Erteilen Sie dazu folgendes Kommando:

$ gedit test.txt

Ein gedit-Fenster öffnet sich, in dem Sie jetzt den Inhalt der neuen Datei test.txt bearbeiten können. Geben Sie zum Beispiel ein Gedicht oder ein Zitat ein. Speichern Sie die Datei, aber schließen Sie den Editor noch nicht.

Wenn Sie zurück in das Terminal-Fenster wechseln, werden Sie feststellen, dass kein Prompt angezeigt wird, also können Sie im Moment keine Kommandos erteilen. Das liegt daran, dass die Shell darauf wartet, dass das laufende Programm beendet wird, und das ist in diesem Fall gedit.

Öffnen Sie daher ein neues Terminal – entweder in einem neuen Fenster (Strg+Shift+N) oder in einem neuen Tab (Strg+Shift+T). In beiden Fällen wird die neue Shell automatisch mit demselben Arbeitsverzeichnis gestartet wie die alte, wie Sie an dem Prompt erkennen können.

Benutzen Sie die neue Shell, um den Inhalt der Datei auszugeben, die Sie im Editor erstellt haben:

$ cat test.txt

Parallel mit Editor und Shell zu arbeiten, ist sehr nützlich beim Programmieren.

Es gibt auch textbasierte Editoren, die innerhalb des Terminals laufen. Damit kann man vermeiden, ständig zwischen verschiedenen Fenstern wechseln zu müssen. Wenn Sie möchten, probieren Sie einmal so einen Editor aus, z.B. nano, vim oder emacs.

Lektüre und weitere Übungen zur Vertiefung

Wenn Sie schon jetzt mehr wissen und üben möchten, probieren Sie eine der zahlreichen Unix/Linux-Tutorial-Sammlungen im Web aus, zum Beispiel diese hier: