Praktikumsanleitung
Copyrightvermerk: Dieses Praktikum basiert auf dem Linux Einführung Praktikum von Prof. U. Schneider. Einige Inhalte wurden direkt übernommen oder abgewandelt.
Praktikum - Linux Schnellkurs
In diesem und dem folgenden Praktikum befassen wir uns mit der Linux Kommandozeile.
Das Praktikum ist zum selbstständigen Durcharbeiten ausgelegt, da Sie am Anfang von Praktikum 2 noch verschiedene Arbeitsstände haben. Praktikum 3 wird dann “semi-hands on” sein, also ich werde Ihnen ausgewählte Aspekte live vorstellen.
Falls Sie es noch nicht getan haben:
Laden Sie sich das Linux Mint ISO unter https://www.linuxmint.com/edition.php?id=281 hterunter. Wählen Sie dazu unter in der Liste (“Download mirrors”) einen Server aus Deutschland/Germany aus, z.B. “FH Aachen”.
Das ISO ist gut 2 GB groß, der Download dauert daher einen Moment.
Installieren Sie im Anschluss Linux Mint, dies ist über mehrere Videos auf Moodle dargelegt.
Problembehandlung
Windows: Es werden nur 32bit-Systeme angezeigt
Falls Sie nur 32bit Linux Systeme auswählen können, ist an Ihrem Computer die Hardwarevirtualisierung deaktiviert.
Diese müssen Sie in der Firmware Ihres Computers anschalten. (Diese Anleitung an einem anderen Computer öffnen)
Wenn Sie ein aktuelles Windows verwenden:
- Halten Sie die Linke Umschalttaste gedrückt und klicken Sie auf “Neu Starten”
- Es erscheint “Einen Moment Bitte”
- Sie wählen Problembehandlung -> Erweiterte Optionen -> UEFI Firmware Starten
Falls diese Option nicht existiert:
Starten Sie Ihren Computer neu und drücken Sie mehrmals die ENTF-Taste sobald das Hersteller-Logo erscheint.
Falls dies nicht funktioniert probieren Sie “ESC” oder “F2”.
Virtualisierung anschalten
Sie sind nun in der Firmware Ihres Computers.
Irgendwo sind die CPU-Einstellungen, (in der Regel unter “System Configuration” oder “Advanced Settings”), dort müssen sie die Virtualisierung (“Virtualisation”) anschalten (Enabled).
Wenn Sie sich unsicher sind, schauen Sie in das Handbuch Ihres Herstellers (bei Desktop-Systemen das Handbuch Ihres Mainboards oder Youtube-Videos.
Die Option ist bezeichnet als:
- Virtualisation Technology
- VT-d
- SVM
Bei “MSI” müssen Sie oben den “Advanced Mode” aktivieren und unter “Overclocking” die Option aktivieren.
Verlassen Sie im Anschluss die Firmware mittels Exit -> Save and Exit.
Das Setup bleibt schwarz oder die VM startet nicht
In diesem Fall ist in den VM-Optionen unter “System -> Beschleunigung” die Paravirtualisierung deaktiviert. Stellen Sie diese auf “voreingestellt” bzw, wenn dies nicht hilft, unter Windows auf “Hyper-V”.
Unter macOS kommt ein Fehler wie “-1019”
Wenn Sie einen “-1019” o.ä. Fehler beim Start der VM bekommen, müssen Sie in macOS unter Systemeinstellungen -> Sicherheit das Oracle VM Modul zulassen.
Die Linux-Tastatur ist “komisch”
In diesem Fall ist das Tastaturlayout nicht auf Deutsch gestellt.
Gehen Sie auf Einstellungen -> Tastatur -> Tastaturbelegung und fügen Sie mit “+” die deutsche Tastatur hinzu. Löschen Sie im Anschluss die andere mit “-”.
Die VM kann nicht erstellt werden
Sie haben keine Schreibrechte auf den eingestellten Ordnerpfad.
Verwenden Sie einen anderen Ordner. Stellen Sie auch sicher, dass der Pfad zum gewählten Ordner existiert.
Praktikumsanleitung
Beachten Sie, dass das Praktikum nicht prüfungsrelevant ist. Es dient aber dem tieferen Verständnis bei einigen Vorlesungsinhalten und Sie bekommen einen Einblick in andere Systeme außer Windows und macOS.
Die Kommandozeile (bzw. Terminal) ist ein schwarzes Fenster mit weißem Text in dem Befehle eingegeben werden können.
Der Fachbegriff ist die “Shell” und unter Linux ist die Standard-Shell in der Regel die Bash oder die Dash (Ubuntu). Diese Shells sind POSIX-kompatibel (siehe Vorlesung), d.h. die POSIX-Standard-Befehle funktionieren in beiden gleichermaßen.
Der Prompt
Wenn Sie die Shell starten sehen Sie links vom Textcursor die Meldung nutzer@computer:~
. Dies ist der Prompt. Die Tilde (~) steht dabei für das aktuelle Verzeichnis, hier ihr Home-Verzeichnis (siehe Vorlesung 2).
Mit der TAB-Taste wird ein Befehl vervollständigt, z.B. wenn Sie cd Dok
schreiben wird er zu cd Dokumente
ergänzt.
Die “Pfeil Hoch”-Taste ruft die letzten Befehle ab.
Hinweise zu Kommandos
Wenn ein Befehl erfolgreich war, gibt er in der Regel keine Ausgabe zurück. Destruktive Befehle wie löschen, fragen vorher nicht nach und es gibt auch keinen Papierkorb. Seien Sie bei der Eingabe also vorsichtig.
Ein Befehl kann sogenannte Kommandozeilenparameter bzw. Argumente übergeben bekommen. Diese werden durch Leerzeichen getrennt:
ls
Den aktuellen Ordnerinhalt ausgebenls -l
Das l ist ein Argument. Detaillierte Informationen werden ausgegeben.ls -l -a
Zwei Argumente. Wie der vorherige, aber versteckte Dateien (beginnen mit “.”) werden auch ausgegeben.ls -la
Äquivalent zum vorherigen
Wenn ein Argument in Anführungsstrichen ist, zählt es als eins:
ls haus 8
Gibt den Ordnerinhalt der Ordner “haus” und “8” ausls "haus 8"
Gibt den Ordnerinhalt des Ordners “haus 8” aus
Information
Generell gilt “Learning by Doing”
-
Lesen Sie die angegebenen Hinweise zu den Kommandos, informieren Sie sich dazu bei Bedarf in zusätzlichen Quellen (Vorlesungsskript, Bücher, Web/Online…)
-
Geben Sie die nachfolgenden Beispiel-Kommando im Terminalfenster der bash (Konsole) ein, beachten Sie die Ergebnisse/Anzeigen und versuchen Sie, die Wirkung der Kommandos zu verstehen und sich zu merken! Schreiben Sie sich ggf. eigene “Merkhilfen” zu den Kommandos auf.
Das Dollar-Zeichen ($) ist Teil des Prompts, geben Sie dieses nicht mit ein!
Hilfe zu Befehlen
Detaillierte Hilfe zu Befehlen bekommen Sie mit man BEFEHL
, z.B. man ls
. Eine kompaktere Darstellung gibt es mit ls --help
bzw ls -h
. Help und h funktionieren bei fast allen Programmen.
man
öffnet einen Pager (die Terminalausgabe wird am unteren Fensterrand pausiert und Sie können mit den Pfeiltasten scrollen). Diesen Pager können Sie mit der Taste q verlassen.
Führen Sie die nachfolgenden Befehle aus
$ whoami
Ihr Benutzername
$ id
Ihre Gruppenzugehörigkeit
$ pwd
Das aktuelle Verzeichnis
Das Verzeichnis kann mit cd ORDNER
gewechselt werden. Probieren Sie die folgenden Ordner aus und überprüfen Sie die Pfadangabe im Prompt und von pwd
nach jedem Ordnerwechsel:
cd /
cd
ohne Parametercd .
cd Dokumente
cd ~
cd ..
Wechseln Sie zurück in Ihr Home-Verzeichnis und geben Sie den Ordnerinhalt aus:
ls -l
ls -al
Welche Unterschiede fallen Ihnen auf?
In der Vorlesung wurden die Linux-Dateiattribute erläutert. Interpretieren Sie diese für .bashrc
und Dokumente
.
Mit Dateien arbeiten
Leere Dateien erzeugen Sie mit touch NAME
. Einen neuen Ordner mit mkdir NAME
. Erzeugen Sie nun einen neuen Ordner praktikum
und in diesem Ordner, mit touch
eine neue Datei datei
. Verifizieren Sie, dass die Dateien da sind.
Bearbeiten Sie nun die gerade erzeugte Datei mit dem Kommandozeilen-Texteditor nano
. Dieser funktioniert wie notepad
. Gespeichert wird aber mit STRG+O und beendet mit STRG+X. Das ^ (Zirkumflex) steht dabei immer für STRG.
Schreiben Sie den folgenden Inhalt in die Textdatei:
Hallo Welt!
Schönes Wetter heute.
Lass uns Baden gehen!
(Diese drei Sätze stammen aus einem C-Lehrbuch, dass ich zu Hause liegen habe)
Speichern und Schließen Sie die Datei.
Führen Sie head -2 datei
und tail -2 datei
aus. Was sehen Sie?
Der Befehl wc
gibt Informationen über den Dateiinhalt aus. Können Sie die drei Zahlen interpretieren? (die manpage kann helfen)
Verwenden Sie cat datei
um die Datei auf der Konsole auszugeben. Probieren Sie auch mal cat
ohne Parameter. In dem Fall blockiert Ihr Terminal, da cat von Ihrem Terminal liest. Um diesen Modus zu verlassen, müssen Sie mit STRG+C (^C) das Unterbrechungssignal senden.
Geben Sie mit cat
die lange Datei /etc/passwd
(enthält alle Benutzer) aus. Übersichtlicher wird es mit dem Pager less /etc/passwd
.
Legen Sie einen neuen Ordner an. Löschen Sie diesen Ordner mit rmdir
.
Legen Sie noch einen Ordner an und erzeugen Sie in diesem eine Datei. Führen Sie erneut rmdir
aus, was fällt Ihnen auf?
Mit cp
können Sie Dateien kopieren. Kopieren Sie die Datei datei
nach datei2
.
Benennen Sie mit mv
die datei2
in dateikopie
um. Ordner lassen sich auf die selbe Art umbenennen.
Bestätigen Sie mit ls
die korrekte Benennung der Datei.
Dateirechte
Ermitteln Sie mit ls -l
die Dateirechte der Datei datei
.
Entfernen Sie das Leserecht mit chmod -r
und versuchen Sie nun die Datei zu lesen.
Setzen Sie das Leserecht zurück mit chmod +r
. Entziehen Sie nun das Schreibrecht mit chmod -w
und verifizieren Sie, dass nano nicht mehr die Datei schreiben kann.
Sie können aber weiterhin mit rm
die Datei selbst löschen, da Dateien erzeugen und löschen eine Modifikation des Ordners und nicht der Datei ist.
Sortieren
Erzeugen Sie eine neue Datei farben
mit folgendem Inhalt:
rot
blau
gelb
blau
Verwenden Sie sort
um die Datei zu sortieren.
Die Ausgabe kann mit >
in eine neue Datei umgeleitet werden:
$ sort farben > farben.sortiert
Mit sort -u
werden nur einzigartige Zeilen ausgegeben.
Sie können weitere Farben an die Datei anhängen:
echo "schwarz" >> farben
- Wichtig ist das
>>
. Bei einem einzelnen>
wird die Datei geleert!
Pipes
Mit Pipes können Befehle kombiniert werden:
Verdeutlichen Sie sich die Wirkung der folgenden Pipes:
$ ls | sort
Pipe aus ls und sort mit Ausgabe auf dem Bildschirm$ ls | sort –r
Pipe aus ls und sort –r mit Ausgabe auf dem Bildschirm$ ls | sort -r >inhalt
Pipe aus ls und sort –r mit EA-Umlenkung in Datei$ ls | wc -w
Pipe aus ls und wc –w liefert die Anzahl der Dateien im akt. Verzeichnis$ ls | tee inhalt | wc -w
wie eben, aber Ausgabe von ls wird zusätzl. in die Datei inhalt kopiert (tee als “T-Stück” in der Pipe)
Dateien suchen
… geht mit dem find
Befehl:
Das Kommando find durchsucht das angegebene Verzeichnis incl. aller seiner Unterverzeichnisse nach Dateien, die bestimmten Bedingungen genügen.
$ find . -type f
Suche im aktuellen Ordner nach Dateien (f = reguläre Dateien)$ find . -type d
Suche im aktuellen Ordner nach Ordnern (d = Ordner)$ find . -name susi
Suche nach Dateien mit dem Namen susi$ find . -name hans -delete
Lösche alle Dateien mit dem Namen hans
Aufgaben zur Selbstkontrolle
-
Lassen Sie Ihren Loginnamen anzeigen.
-
Ermitteln Sie Ihr Home-Verzeichnis
-
Erzeugen Sie eine Datei
dat1
mit folgendem Inhalt:
A
BB
ccc
dddd
-
Bestimmen Sie mit Hilfe eines Kommandos die Anzahl der Zeilen der gerade erzeugten Datei dat1!
-
Lassen Sie nur die erste Zeile der Datei dat1 anzeigen.
-
Entfernen Sie das Schreibrecht (Ihr Eigenes) der Datei dat1 und kontrollieren Sie das.
-
Versuchen Sie mit Hilfe des Kommandos
echo
folgende Zeile an die Datei dat1 anzuhängen:
eeeee
-
Setzen Sie Ihr Schreibrecht für dat1 wieder und versuchen Sie es erneut.
-
Sortieren Sie die Datei dat1, die sortierte Datei soll dat1sort heissen. Lassen Sie den Inhalt anzeigen.
-
Löschen Sie die Dateien dat1 und dat1sort.