schulen:kmg:linux:shell_aufgaben:start

Schnappe dir ein Blatt Papier und notiere dir deine Erkenntnisse zu den nachfolgenden Aufgaben!

Öffne ein Terminal und bearbeite die folgenden Aufgaben, um die wichtigsten Befehle kennenzulernen. Übrigens: Innerhalb des Terminals (des geöffneten Fensters) läuft wiederum die sogenannte shell, mit der du dann interagierst.

(A1) whoami

Aufgabe: Finde heraus, unter welchem Benutzer du aktuell angemeldet bist.
Erklärung: Der Befehl whoami zeigt den Benutzernamen des aktuell angemeldeten Benutzers an.


(A2) pwd

Aufgabe: Zeige das aktuelle Verzeichnis an, in dem du dich befindest
Erklärung:

  • Der Befehl pwd (print working directory) zeigt den vollständigen Pfad des aktuellen Arbeitsverzeichnisses an (also des Verzeichnisses, in dem die shell / das Terminal gerade geöffnet ist).
  • In Linux beginnt der Dateipfad immer beim Root-Verzeichnis, das durch einen Schrägstrich (/), auch Slash genannt, dargestellt wird.
  • Im Gegensatz zu Windows, wo Pfade mit einem Laufwerksbuchstaben beginnen (z.B. C:\), gibt es in Linux kein Konzept von Laufwerksbuchstaben. Alle Dateien und Verzeichnisse befinden sich in einer einzigen hierarchischen Struktur unterhalb des Root-Verzeichnisses.

(A3) ls

Aufgabe: Liste alle Dateien und Verzeichnisse im aktuellen Verzeichnis auf.
Erklärung:

  • Nutze den Befehl ls.
  • Die bisherigen Befehle haben keine Parameter genutzt. Du hast also einfach nur den Namen des Befehls eingetippt und das hat genügt. Häufig benötigst du aber Parameter, um bestimmte Dinge zu erreichen. Tippe zuerst den Befehl, dann ein Leerzeichen und dann die gewünschten Parameter ein:
    • -l: Zeigt die Liste im Langformat, inklusive Details wie Berechtigungen, Anzahl der Links, Besitzer, Größe und Änderungsdatum.
    • -a: Zeigt alle Dateien an, inklusive versteckter Dateien, die mit einem Punkt (.) beginnen.
    • -h: Zeigt die Dateigrößen in einem menschenlesbaren Format (nur in Kombination mit -l sinnvoll).

Weitere Aufgaben (mit Parametern):

  • Liste alle Dateien und Verzeichnisse im Langformat auf.

Lösung

  • Liste alle Dateien und Verzeichnisse im Langformat und in menschenlesbarem Format auf. Erkennst du den Unterschied?

Lösung

  • Hänge jetzt zuletzt noch den Parameter -a an den Befehl an und schaue, was du dann alles siehst.

Lösung


(A4) cd

Aufgabe: Wechsle in das Verzeichnis /home.
Erklärung:

  • Der Befehl cd (change directory) wird verwendet, um in ein anderes Verzeichnis zu wechseln.
  • Nach dem Befehl musst du bei cd noch mit einem Argument angeben, wo du hinmöchtest. Dieses Argument benötigt, anders als die Parameter, keinen Bindestrich zu Beginn.

Lösung

Absolute und relative Pfade:

  • Absoluter Pfad: Ein absoluter Pfad beginnt immer mit dem Root-Verzeichnis (/) und gibt den vollständigen Pfad zu einer Datei oder einem Verzeichnis an. Beispiel: /home/benutzername/Dokumente
  • Relativer Pfad: Ein relativer Pfad gibt den Pfad relativ zum aktuellen Verzeichnis an. Er beginnt nicht mit einem Schrägstrich. Beispiel: Wenn du dich im Verzeichnis /home/benutzername befindest, ist Dokumente ein relativer Pfad, der zum Verzeichnis /home/benutzername/Dokumente führt.

Weitere Aufgaben zu cd:

  • Bist du noch immer in /home? Dann bewege dich wieder relativ zu /home/<user>, wobei mit <user> dein Benutzername gemeint ist.

Lösung

  • Wechsel zum absoluten Pfad /var/log

Lösung

  • Wechsel zum absoluten Pfad /home/<user>/Dokumente

Lösung

  • Wechsel eine Ebene nach oben, also zu /home/<user>. Das kannst du mit einem absoluten Pfad machen, es gibt aber auch den relativen Pfad-Befehl .., mit dem du dich relativ in das darüberliegende Verzeichnis begibst.

Lösung

  • Wechsel wieder relativ ins Verzeichnis Dokumente. Fachlich korrekt müsste man vom Verzeichnis ./Dokumente reden. Wenn man vor einen Pfad einen Punkt . schreibt, dann ist damit immer der Pfad ausgehend vom aktuellen Verzeichnis gemeint. Man stellt mit dem Punkt also klar, dass der Pfad wirklich als relativer Pfad zum aktuellen Verzeichnis zu interpretieren ist.

Lösung

  • Wechsel abschließend zum benachbarten Verzeichnis /home/<user>/Schreibtisch. Du musst dazu keinen absoluten Pfad eingeben, sondern kommst durch die Kombination der letzten Befehle mit einem einzigen Befehl zu diesem Pfad!

Tipp

Lösung


(A5) mkdir

Aufgabe: Erstelle ein neues Verzeichnis namens Projekttage im aktuellen Verzeichnis.

Erklärung: Der Befehl mkdir (make directory) wird verwendet, um ein neues Verzeichnis zu erstellen. Du musst (genau wie bei cd) noch ein Argument nach dem mkdir-Befehl eingeben.

Lösung

Weitere Aufgabe:

  • Prüfe in der shell, ob der Ordner auch tatsächlich erstellt wurde! (Nutze einen der zuletzt kennengelernten Befehle.)

(A6) rm

Aufgabe: Lösche den soeben erstellten Ordner wieder.
Erklärung: Der Befehl rm löscht Dateien. Wenn du zusätzlich den Parameter -r verwendest, dann können auch Verzeichnisse gelöscht werden.

ACHTUNG: Bei der Benutzung von rm gibt es weder eine Nachfrage, ob du die Datei/Verzeichnis wirklich löschen willst, noch gibt es einen Papierkorb. Wenn du etwas gelöscht hast, dann ist es weg - für immer!
Gehe also mit dem Befehl rm sehr vorsichtig um!

Lösung


(A7) nano

Aufgabe: Erstelle die Textdatei hallo.txt mit beliebigem Text.
Erklärung: Mit dem Befehl nano startest du einen simplen Texteditor, also ein Programm, mit dem du (Text-)Dateien bearbeiten kannst. Als Argument benötigst du den Dateinamen der Datei, die du erstellen oder bearbeiten willst.

Wenn du den Text getippt hast, dann kannst du mit der Tastenkombination Strg + X schließen. Anschließend musst du dann zusätzlich noch mit der Taste Y (für Yes) bestätigen, dass du die Änderungen speichern willst und anschließend ENTER drücken.

Lösung

Zusatzaufgabe: Öffne die Datei anschließend erneut mit nano, um zu prüfen, ob der Inhalt auch wirklich gespeichert wurde. Nimm Änderungen am Text vor und schließe danach nano, ohne die Änderungen zu speichern.

Lösung


(A8) mv

Aufgabe: Nenne die soeben erstellte Datei hallo.txt in projekttage.txt um.
Erklärung: Mit dem Befehl mv (move) kannst du Dateien oder auch Verzeichnisse umbenennen und/oder verschieben. Achtung: Das ist der erste Befehl, der immer zwei Argumente benötigt. Bsp.: mv alterName privat/neuerName.txt → Mit diesem Befehl wurde die Datei alterName sowohl in den (bereits vorhandenen!) Unterordner privat verschoben und zusätzlich wurde der Dateiname zu neuerName.txt geändert.

Lösung


(A9) cp

Aufgabe: Kopiere die Datei projekttage.txt und nenne die neue Datei linux.txt. Erklärung: Nutze den Befehl cp (copy). Bsp.: cp original kopie → Mit diesem Befehl kopierst du die Originaldatei original und erstellst direkt nebenan eine Kopie namens kopie. Du könntest die Kopie auch direkt in anderen Verzeichnissen erstellen (… ./ordner/kopie).

Wenn du ein ganzes Verzeichnis kopieren willst, dann benötigst du nach dem Befehlsnamen noch den Parameter -r (für rekursiv).

Lösung

Zusatzaufgabe: Lösche die erstellte und unnötige Kopie wieder.

Lösung


🥳 Super! Damit hast du die wichtigsten Befehle für die Linux-Shell kennengelernt! 🎉

(A10) Ausprobieren

Probiere nun die kennengelernten Befehle selbstständig weiter aus! Erstelle Dateien und Verzeichnisse, kopiere sie, nenne sie um, ändere den Inhalt von Dateien, lösche sie wieder, lass dir den Inhalt der Verzeichnisse ausgeben usw…

Tipp: Wenn du für einen Befehl weitere Parameter kennenlernen/nutzen willst, dann kannst du das Manual (die Anleitung) für jeden einzelnen Befehl anzeigen lassen. Tippe dazu man ls um z. B. das Manual für den Befehl ls angezeigt zu bekommen. Im Manual kannst du dann hoch und runter scrollen. Tippe abschließend die Taste q (quit), um das Manual wieder zu verlassen.

  • schulen/kmg/linux/shell_aufgaben/start.txt
  • Zuletzt geändert: 19.07.2024 08:37
  • von Marco Kuemmel