Ü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:
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
- Ihrem Benutzernamen (im Beispiel:
ke
). - einem
@
-Zeichen. - dem Namen des Computers (im Beispiel:
unut
). - einem Doppelpunkt.
- 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. - einem Dollarzeichen.
- 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:
cd
.cd
steht für change directory. Es ist ein Kommando, mit dem man in ein anderes Arbeitsverzeichnis wechselt. Sie merken das daran, dass sich der entsprechende Teil des Prompts verändert.ls
.ls
steht für list. Es zeigt eine Liste der Dateien und Unterverzeichnisse im Arbeitsverzeichnis an.
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: