
DARUM GEHT ES

Wenn du Filme über Hacker siehst, dann fallen dir bestimmt diese schwarzen Fenster auf, in die die “Könner” in rasender Geschwindigkeit irgendwelche Befehle eingeben. Dieses schwarze Fenster ist die Linux-Shell, auch Konsole genannt. Im Programm “FIT4LINUX-SHELL” trainierst du Umgang mit der Linux-Shell “Bash”. Die Befehle funktionieren auf jeder Linux-Distribution – egal ob Ubuntu oder Raspberry Pi. Mit über 20 geführten Übungen beginnst du dein Training in der Konsole. Zum Abschluss kannst du dein Wissen in einem Quiz überprüfen.
Weitere Informationen zur Shell und zu den Befehlen findest du im Ubuntu-Wiki .
DAS BRAUCHST DU

Einen Computer mit dem Betriebssystem Linux.

Tipp: Auch der Raspberry Pi mit dem Linux Raspian ist gut geeignet.
TRAINIEREN

EINLEITUNG UND REGELN

Die Shell ist eine Arbeitsumgebung, allerdings nicht so schön bunt wie der grafische Arbeitsplatz von GNOME (siehe UBUNTU-BOX – ERSTE SCHRITTE). Sie verwendet nämlich Text für die Ein- und Ausgabe. Die Standard-Shell unter Linux ist die “Bash”. Nach dem Start wartet die Shell auf deine Befehle und zeigt eine Eingabeaufforderung ($ = Prompt) an.
Für das Üben in der Shell solltest du ein paar Regeln kennen:
- Die Eingabe eines Befehls wird mit der Eingabetaste <⏎> abgeschlossen.
- Die Linux-Shell unterscheidet zwischen Groß- und Kleinschreibung – unter Windows ist das i.d.R. egal!
- Einige Zeichen wie “&”, “>”, “|” haben eine besondere Bedeutung. Benutze sie nicht für Dateinamen.
- In diesem Tutorial stellen wir Befehlseingaben mit Schriftart “Courier New” dar:
Befehl Optionen Argumente
- Einzelne Tastatureingaben werden in spitze Klammern <> und in Schriftart “Courier New” gesetzt, z.B. <STRG> für die Taste “STEUERUNG”:
<STRG>
Jetzt leg los und gib auf deinem Computer die Befehle so in die Shell ein, wie sie dir hier angezeigt werden. Schließe die Eingaben mit der Eingabetaste <⏎> ab. Schau dir danach unsere Erklärungen an – so lernst du die Shell Stück für Stück kennen.
LOSLEGEN…
- 1.) Starte die Shell in einem Terminal mit der Tastenkombination <STRG> + <ALT> + <T> oder über den Anwendungsstarter deines Desktops:
<STRG> + <ALT> + <T>
- 2.) Prüfe mit Befehl echo, mit welcher Shell du arbeitest:
echo $0
Erklärung:
echo zeigt die Eingabe oder den Wert von Variablen an. $0 ist eine spezielle Variable der bash. Ihr Wert ist entweder die aktuelle Shell (i.d.R. “bash”) oder ein aktuell laufendes Skript.
- 3.) Zeige mit Befehl pwd an, in welchem Arbeitsverzeichnis du dich befindest:
pwd
Erklärung:
Befehl pwd zeigt das aktuelle Arbeitsverzeichnis des Benutzers mit absoluter Pfadangabe an. Eine absolute Pfadangabe auf Linux zeigt den Weg zu einer Datei/Verzeichnis vollständig und beginnt beim Stammverzeichnis “/”.
- 4.) Rufe die Hilfe zum Befehl pwd auf:
pwd --help
Erklärung:
Hilfe unter Linux ist die Hilfe zur Selbsthilfe. Die Hilfe für interne (eingebaute) Befehle der Shell wird mit help Befehlsname aufgerufen. Externe Befehle der Shell unterstützen häufig den Aufruf der Hilfe über Befehlsname –help.
- 5.) Wechsel innerhalb deines Homeverzeichnisses in das Unterverzeichnis “Dokumente” oder “Documents”:
cd Dokumente
oder
cd Documents
Erklärung:
Mit Befehl “cd” wird das aktuelle Arbeitsverzeichnis gewechselt. Ein Standardverzeichnis für Dokumente im Homeverzeichnis eines Benutzers ist das Unterverzeichnis “Dokumente” oder “Documents” (z.B. Raspberry Pi). Falls keines dieser Verzeichnisse existiert, erstelle dir das Verzeichnis “Dokumente”. Unter Punkt 6. beschreiben wir, wie das geht.

Tipp: Die Shell vervollständigt Befehle und Dateinamen automatisch. Bei Pfadangaben schreibe die ersten Zeichen und drücke die TAB-Taste <⇆>. Wenn ein entsprechender Pfad existiert, ergänzt die Shell die restlichen Zeichen.
- 6.) Erstelle im Verzeichnis “Dokumente” (oder “Documents”) mit Befehl “mkdir” das Unterverzeichnis “fit4linux” mit weiteren Unterverzeichnissen:
mkdir -p fit4linux/uvz fit4linux/UVz fit4linux/uvz2
Erklärung:
Der Befehl mkdir mit Option -p erstellt zu den Unterverzeichnissen das übergeordnete Verzeichnis “fit4linux” gleich mit. Linux unterscheidet, im Gegensatz zu Windows, zwischen Groß- und Kleinschreibung. Deshalb sind die Verzeichnisse “uvz” und “UVz” unterschiedliche Verzeichnisse.
- 7.) Zeige das Verzeichnis “fit4linux” und die Unterverzeichnisse mit Befehl “ls” an:
ls -l
ls fit4linux
Erklärung:
Der Befehl ls zeigt Informationen zu Dateien und Verzeichnissen an. Mit Option -l (langes Listenformat) zeigt ls die Dateiberechtigungen, den Besitzer und die Gruppe, sowie Dateigröße und das Datum der letzten Änderung an. Wenn als Argument “fit4linux” angegeben wird, zeigt ls die Inhalte des Verzeichnisses “fit4linux” an.
- 8.) Prüfe mit Befehl “type”, was für ein Typ die Befehle “cd” und “mkdir” sind:
type cd
type mkdir
Erklärung:
Mit Befehl “type” prüfst du, ob Befehle interne Shell-Befehle oder externe Befehle sind. Befehl “cd” ist ein interner Shell-Befehl, der in der Shell eingebaut ist. Interne Shell-Befehle werden zum Beispiel zum Verändern der Shell-Umgebung genutzt. “mkdir” ist ein externer Befehl, das heißt der Befehl wird durch eine externe ausführbare Datei realisiert. Die ausführbare Datei “mkdir” ist im Verzeichnis “/bin” gespeichert.
- 9.) Zeige mit Befehl “man” die Handbuchseiten zu Befehl “mkdir” an. Scrolle mit den Pfeiltasten durch das Dokument und beende die Ansicht mit Taste <q>
:
man mkdir
Erklärung:
Ein weitere Hilfe für Befehle bieten die Handbuchseiten. Über den Befehl “man Befehlsname” werden die Handbuchseiten zu einem Befehl aufgerufen. Zusätzlich gibt es die Möglichkeit, mittels Befehl “info” die Infoseiten zu einem Befehl anzuzeigen.
- 10.) Wechsel mit Befehl “cd” in das Unterverzeichnis “uvz”. Nutze dabei die komfortable Vervollständigung von Angaben, indem du erst “fi” (Anfangszeichen von fit4linux) eingibst und die TAB-Taste drückst. Danach hängst du “uvz” an:
cd fit4linux/uvz
Erklärung:
Mit Befehl “cd” wird das aktuelle Arbeitsverzeichnis gewechselt. Die Autovervollständigung mit der TAB-Taste kann viel Tipparbeit abnehmen.
- 11.) Erstelle vier leere Dateien (“testdatei”, “testdatei2”, “testdatei3”, “murks”) mit Befehl “touch” und zeige danach mit Befehl “ls” die Dateien mit ihrem Änderungsdatum an, die mit “test” beginnen:
touch testdatei testdatei2 testdatei3 murks
ls -l test*
Erklärung:
Befehl “touch” erzeugt neue Dateie(n), wenn unter dem angegebenen Namen noch keine Datei existiert. Der Befehl “ls -l” wird mit einem Argument eingegeben, das mit dem Jokerzeichen “*” endet. “*” hinter der Zeichenfolge “test” wird von der Shell durch alle passenden Zeichen ersetzt. Die Zeichenfolge “test” wird so zu “testdatei”, “testdatei2” und “testdatei3” ergänzt.
- 12.) Warte eine Minute und führe erneut die Befehle “touch” und “ls -l” in einer Befehlszeile aus. Drücke die Pfeiltaste <↑> um den touch-Befehl aus der Historie zu übernehmen. Setze ein Semikolon “;” ein, um die Befehle aneinander zu reihen:
touch testdatei testdatei2 testdatei3 murks; ls -l
Erklärung:
Mit den Tasten Pfeil-Auf ↑ und Pfeil-Ab ↓ navigierst du vor- und rückwärts in der Befehlshistorie. Bei existierenden Dateien ändert Befehl “touch” den Zeitpunkt der letzten Änderung. Mit “;” werden Befehle aneinandergereiht. In der Ausgabe von Befehl “ls -l” kannst du sehen, dass die Dateien ein neues Änderungsdatum haben.
- 13.) Kopiere alle Dateien, die mit “test” beginnen, mittels Befehl “cp” ins Unterverzeichnis “UVz”:
cp test* ../UVz
Erklärung:
Befehl “cp” kopiert Dateien. Das Jokerzeichen “*” wird von der Shell durch alle passenden Zeichen ersetzt. Der Zielpfad für das Kopieren wird als relativer Pfad, d.h. in Bezug auf das aktive Verzeichnis angegeben. Dazu wird mit “..” eine Ebene hoch und mit “UVz” auf das gewünschte Verzeichnis verwiesen. Alternativ kannst du auch einen absoluten Pfad angeben. In unserem Beispiel würde der “/home/DeinBenutzername/Dokumente/fit4linux/UVz” heißen und diese Eingabe ist uns zu lang.
- 14.) Verschiebe “testdatei2” und “testdatei3” mit Befehl “mv” ins Verzeichnis “uvz2” und prüfe das Ergebnis mit Befehl “ls”:
mv testdatei? ../uvz2
ls ../uvz2
Erklärung:
Befehl “mv” verschiebt Dateien zwischen verschiedenen Verzeichnissen. Das Jokerzeichen “?” wird von der Shell durch genau ein passendes Zeichen, hier die Ziffern “2” und “3”, ersetzt. Befehl “ls” erhält als Argument den relativen Pfad zum Verzeichnis “uvz2”. Dazu muss erst eine Ebene hoch “..” gewechselt werden, um dann auf das Verzeichnis zu zeigen.
- 15.) Erstelle mit Befehl “cat” die Textdatei “idee.txt”:
cat > idee.txt
Mein Computer war der beste Kauf ever!
Mein Geld ist jetzt weg.
<STRG> + <C>
Erklärung:
Befehl “cat” mit der Umlenkung “>” erstellt eine Textdatei und wartet auf die Texteingabe. Du gibst direkt den Text ein. Jede Zeile wird mit Taste ⏎ beendet. Die Eingabe schließt du mit der Tastenkombination <STRG> + <C> ab.
- 16.) Zeig den Inhalt der Textdatei “idee.txt” mit Befehl “cat” an:
cat idee.txt
Erklärung:
Der Aufruf von Befehl “cat” mit der Angabe einer vorhandenen Datei zeigt den Inhalt der Datei an.
- 17.) Zeig den Besitzer und die Dateiberechtigungen für Datei “idee.txt” mit Befehl “ls” an:
ls -l idee.txt
Erklärung:
Der Befehl “ls -l” (lange Listenansicht) zeigt Dateiberechtigungen und den Besitzer an. In der Regel erhält der Ersteller/Besitzer die umfassendsten Berechtigungen. Er darf die Datei lesen und schreiben, sowie die Dateiberechtigungen ändern. Die Hauptgruppe (primäre Gruppe) des Erstellers und alle anderen Gruppen dürfen nur lesen. Um mehr über Berechtigungen zu erfahren, gehe auf die Seite Rechte im Ubuntu-Wiki.
- 18.) Setze die Dateiberechtigung für Datei “idee.txt” mit Befehl “chmod” auf nur “Lesen” für den Benutzer und die Gruppe. Andere Gruppen erhalten keinen Zugriff. Prüfe die veränderte Einstellung mit Befehl “ls”:
chmod 440 idee.txt
ls -l idee.txt
Erklärung:
Mit Befehl “chmod” werden Dateiberechtigungen verändert. Nur Besitzer können für eigene Dateien die Berechtigungen ändern. Einstellungen für fremde Dateien können nur Administratoren bearbeiten. Dateiberechtigungen können über Ziffern festgelegt werden. Ziffer 4 bedeutet Lesen, 2 = Schreiben, 1 = Ausführen. Die Stelle der Ziffer gibt an, für wen die Berechtigung gilt. 1. Stelle = Berechtigung des Besitzers, 2. Stelle = Berechtigung der Hauptgruppe des Benutzers, 3. Stelle = Berechtigung für alle anderen Gruppen. 440 bedeutet, der Besitzer und seine Hauptgruppe dürfen lesen, alle anderen Gruppen haben keinen Zugriff. Siehe die Seite Rechte im Ubuntu-Wiki.
- 19.) Zeige mit Befehl “id” die IDs deines Benutzerkontos an:
id
Erklärung:
Jeder Benutzer und jede Gruppe auf einem Linux-System haben eine eigene Identifikationsnummer (ID). Der Befehl “id” zeigt die Benutzer-ID (UID) und die Gruppen-IDs (GID) des aktuellen Benutzers an.
- 20.) Erstelle Datei “meintext.txt” mit Texteditor “nano” und gib einen Text ein. Falls “nano” noch nicht installiert ist, installiere den Editor mit deinem Paketmanager (z.B. sudo apt install nano) oder überspringe die Übung. Zum Speichern drückst du die Tastenkombination <STRG> + <O> und <⏎>. Beende nano mit <STRG> + <X>:
nano meintext.txt
Dieses ist ein toller Text!
<STRG> + <O>
<⏎>
<STRG> + <X>
Erklärung:
Texteditoren sind wichtig zum Ändern von Konfigurationsdateien und zum Programmieren. “nano” ist ein einfach zu bedienender Texteditor. Du kannst dich mittels Pfeiltasten im Text bewegen. Die beiden wichtigsten Tastenkombinationen sind <STRG> + <O> zum Speichern und <STRG> + <X> zum Beenden.
- 21.) Wechsel innerhalb deines Homeverzeichnisses in das Verzeichnis “Dokumente” oder “Documents”:
cd ~/Dokumente
oder
cd ~/Documents
Erklärung:
Die Tilde “~” ist bei einer Pfadangabe in der Bash der Platzhalter für das Homeverzeichnis des aktuellen Benutzers.
- 22.) Such im aktuellen Verzeichnis und den Unterverzeichnissen mit Befehl “find” nach Dateien, in deren Dateinamen die Zeichenfolge “text” vorkommt:
find . -name *text*
Erklärung:
Der Befehl “find” sucht rekursiv (d.h. inklusive aller Unterverzeichnisse) von einem angegebenen Verzeichnis aus nach Dateien, die bestimmte Kriterien erfüllen. Der Punkt “.” steht für das aktuelle Verzeichnis, in unserem Fall das Verzeichnis “Dokumente”. Mit Option -name werden angegebene Dateinamen gesucht. Wir suchen nach der Zeichenfolge “text” im Dateinamen. Durch den Einsatz des Jokerzeichens “*” vor und nach der Zeichenfolge, kann “text” irgendwo im Dateinamen stehen. In der Ausgabe wird der relative Pfad zu gefundenen Dateien angegeben.
- 23.) Such im aktuellen Verzeichnis und den Unterverzeichnissen mit Befehl “grep” nach einer Datei, in deren Inhalt das Wort “Kauf” vorkommt:
grep -r "Kauf"
Erklärung:
Der Befehl “grep” durchsucht die Inhalte von Textdateien und zeigt die gefundenen Ergebnisse an. Die Option -r (rekursiv) wird benötigt, damit “grep” Unterverzeichnisse durchsucht. Wir suchen nach der Zeichenfolge “Kauf”, die irgendwo im Inhalt steht. In der Ausgabe wird der relative Pfad zu gefundenen Dateien mit den Zeilen angezeigt, die den gesuchten Text enthalten.
- 24.) Lösche mit Befehl “rm” das Unterverzeichnis “fit4linux” mit allen Unterverzeichnissen und Dateien:
rm -rf fit4linux
Erklärung:
Der Befehl “rm” hat ein hohes Zerstörungspotential. Vor allen Dingen dann, wenn er mit den Optionen “r” und “f” eingesetzt wird. Mit der Option “-r” löscht rm alle Dateien und Unterverzeichnisse. Die Option “-f” erzwingt das Löschen ohne Nachfrage. Da für Datei “idee.txt” nur Leseberechtigung erteilt ist, erscheint ohne Option “-f” eine Nachfrage, die mit “j” (“y”) oder “n” beantwortet werden muss. Der Befehl “rmdir” dagegen ist ein “sicherer” Löschbefehl und löscht nur Verzeichnisse, aus denen vorher alle Dateien entfernt wurden.
- 25.) Zeige deine bisher eingegebenen Befehle mit Befehl “history” an. Suche in der Liste den Befehl “find” und rufen ihn auf, indem du ein “!” mit der entsprechenden Befehlsnummer eingibst:
history
Bei der nächsten Eingabe setzt du die entsprechende Nummer deiner Liste ein:
!29
Erklärung:
Mit Befehl “history” zeigst du deine bisher eingegebenen Befehle in einer Liste an. Die Befehle sind dort durchnummeriert. Um einen Befehl aus der Liste nochmal auszuführen, gibst du ein “!” gefolgt von der Nummer des Befehls an. Um einen Befehl nur aufzurufen ohne ihn auszuführen, hängst du die Option “:p” an (z.B. “!29:p”).
- 26.) Beende die Shell mit Befehl “exit”:
exit
Erklärung:
Mit Befehl “exit” wird die aktuelle Shell-Sitzung beendet. Falls du in einer Shell eine weitere Shell gestartet hast, beendet “exit” erst die “zweite” Shell.
QUIZ
Hast du Lust auf ein Quiz? Prüfe mit unseren 15 Fragen, was du über die Shell so weißt. Tipp: Wenn du dir bei den Antworten nicht sicher bist, gib sie doch einfach mal auf deinem Linux in eine Konsole ein!
Was du in diesem Programm kennenlernst:
- Den Aufbau von Befehlszeilen mit Befehl Option(en) Argument(e).
- Relative und absolute Pfadangaben.
- Die Befehle echo, pwd, cd, mkdir, ls, type, man, touch, cp, mv, cat, chmod, id, nano, find, grep, rm, history und exit.
- Das Anzeigen von Hilfen über Option –help und Befehl man.