<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>Aufgaben gibt es im Übungsmodus nicht (du kannst den leeren Abschnitt „Aufgaben“ also ignorieren).</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>Wir verwenden dieses Semester zum ersten Mal YALIKEJAZZ, also zögere nicht, dich <strong>bei Fragen und Problemen jederzeit an uns zu wenden</strong> (<code>technik@cl.uni-heidelberg.de</code>) – wir schauen uns das an und finden gemeinsam eine Lösung.</p>
this.describe(`Füge die Zeile "The cat is on the mat." ans Ende der Datei "saetze" an.`)
awaitthis.prepareWith("if [[ ! -d /root/tux ]]; then mkdir /root/tux; fi; cd /root/tux; echo Colorless green ideas sleep furiously. > saetze")
awaitthis.manualConfirmation()
this.verify("cat saetze").hasOutput(["Colorless green ideas sleep furiously.","The cat is on the mat."])
})
this.exercise("Inhalt anzeigen",asyncfunction (){
this.describe(`Zeige den Inhalt der Datei "saetze" auf der Konsole an.`)
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")
awaitthis.manualConfirmation()
this.verify().hasOutput(["Colorless green ideas sleep furiously.","The cat is on the mat."])
this.describe(`Ändere die Dateirechte von "saetze" 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.`)
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")
this.describe(`Lass dir die aktuellen Berechtigungen für die Datei "saetze" anzeigen.`)
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")
awaitthis.manualConfirmation()
this.verify().hasOutput((outputLines)=>{
for(constlineofoutputLines){
if(line.match(/.*-r--rw----.*/)){
returntrue
}
}
returnfalse
})
})
this.exercise("Datei löschen",asyncfunction (){
this.describe(`Lösche die Datei "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).`)
awaitthis.clear()
awaitthis.manualConfirmation()
alert("Prima :) Viel Erfolg dann beim Pooltest, sobald du ihn schreibst.")