<p>Hier kannst du vollkommen frei mit dem Linux-Terminal auf der linken Seite herumexperimentieren. Das Terminal läuft isoliert in diesem Browsertab, <strong>du kannst also absolut nichts kaputt machen</strong> (weder auf deinem Rechner, noch bei uns) – im schlimmsten Fall lädst du die Seite neu und alles ist vergessen ;)</p>
<p>Es gibt ein paar Aufgaben im Übungsmodus, diese sind allerdings komplett freiwillig. Falls du sie bearbeitest, solltest du sie allerdings in der angegebenen Reihenfolge lösen, da die Aufgaben aufeinander aufbauen.</p>
<p>Zögere nicht, dich <strong>bei Fragen und Problemen jederzeit an uns zu wenden</strong> (<code>technik@cl.uni-heidelberg.de</code>) – wenn dir etwas sehr komisch vorkommt, kann es gut sein, dass das Problem bei YALIKEJAZZ liegt und nicht bei dir 😉.</p>
awaitthis.prepareWith("if [[ ! -d /root/tux ]]; then mkdir /root/tux; fi; cd /root/tux; echo Colorless green ideas sleep furiously > saetze; echo The cat is on the mat >> saetze; chmod 644 saetze")
awaitthis.prepareWith("if [[ ! -d /root/tux ]]; then mkdir /root/tux; fi; cd /root/tux; if [[ ! -f saetze ]]; then echo Colorless green ideas sleep furiously > saetze; echo The cat is on the mat >> saetze; fi; chmod 460 saetze")
this.describe(`Wir haben leider keine weiteren Übungsaufgaben mehr vorbereitet, aber fühle dich frei, noch weiter herumzuspielen (zum Beispiel mit Dateirechten).`)
<p>In diesem Test sollst du nachweisen, dass du grundlegende Linux-Kenntnisse besitzt und diese auch anwenden kannst. Der Test besteht aus <strong id="exerciseCnt"></strong> Aufgaben, dauert etwa eine Stunde und wir empfehlen, ihn am Stück durchzuarbeiten.</p>
<p>Jede Aufgabe läuft nach dem gleichen Prinzip ab: Links siehst du ein Linux-Terminal, in dem du Befehle eingeben kannst. Rechts steht eine Aufgabenstellung mit einem Ziel, das du erreichen sollst. Wie du das tust, ist dir überlassen (es gibt oft mehr als einen Weg zum Ziel). Sobald du denkst, dass du mit einer Aufgabe fertig bist, drücke auf den Knopf, um deine Lösung zu überprüfen. Falls sie richtig war, wird die Aufgabe als gelöst markiert, ansonsten kannst du es beliebig oft erneut versuchen.</p>
</p>
<p><strong>Du kannst nichts kaputt machen!</strong> Das Linux-Terminal läuft sicher und isoliert nur in deinem Browser und hat auf nichts Zugriff außerhalb von diesem Tab. Wenn du denkst, dass du in einer Sackgasse gelandet bist, kannst du über „Aufgabe neu beginnen“ das Terminal neustarten. Ist in einer Aufgabe von einer Datei die Rede, aber es wird kein Pfad zu dieser Datei genannt, so bleibe einfach in dem Verzeichnis, in dem du dich befindest.</p>
<p>Du kannst Aufgaben auch überspringen und später wieder zu ihnen zurückkehren. Sobald du alle Aufgaben gelöst hast, kannst du durch Klick auf den stilisierten Papierflieger (<i class="bi bi-send"></i>) am linken Rand abgeben. Falls du eine Aufgabe partout nicht gelöst bekommst, kannst du auch unvollständig abgeben (sag dann am besten dazu, mit welchen Aufgaben du Probleme hattest). Wir schauen uns deinen Test dann an, und sofern er ansonsten einen guten Eindruck macht, bestehst du ihn trotzdem :)</p>
<p>Zögere nicht, dich <strong>bei Fragen und Problemen jederzeit an uns zu wenden</strong> (<code>technik@cl.uni-heidelberg.de</code>) – ganz gleich, ob das Problem eine zu schwere oder leichte Aufgabe ist oder ein Programmierfehler in YALIKEJAZZ, wir schauen uns das an und finden gemeinsam eine Lösung.</p>
`)
this.welcome(t("exercises:test_welcome"))
this.exercise("Datei anlegen",asyncfunction (){
this.describe(`Erstelle eine Datei mit dem Namen "botschaft" und dem Inhalt
this.describe(`Ändere die Dateirechte von "herausforderung" so, dass der Besitzer die Datei nur lesen kann, die besitzende Gruppe die Datei lesen und schreiben kann und alle anderen gar nichts dürfen.`)
this.describe(`Um Zugang zu unseren Serven zu bekommen, benötigst du einen SSH Key.
Erstelle einen neuen Key und kopiere den Inhalt des public keys in eine neue Datei "gt_mail.txt".
Sobald du den Pooltest bestanden hast musst du auch auf deinem eigenen Gerät ein SSH Key erstellen und uns den public key zusammen mit dem Token aus dem Pooltest zuschicken.`)
constprivKey="IN DIESER DATEI WIRD DEIN PRIVATE KEY GESPEICHERT, TEILE DIESEN NIEMALS MIT ANDEREN! ---- THIS IS WHERE YOUR PRIVATE KEY IS STORED! NEVER SHARE IT WITH ANYONE"