Als Programmieranfänger stösst man in Tutorials oft auf die Aufforderung die Command Line zu öffnen und Befehl xy einzugeben. Als ich noch in den Anfängen steckte, öffnete ich dann jeweils die Kommando Zeile und dachte mir… „Nein, das sieht zu gefährlich aus.“ Tatsächlich ist das schwarze Fenster (ok, auf dem Mac ist es weiss) nicht gerade vertrauenserweckend. Grundsätzlich muss man erst mal wissen, dass Windows und die Unixoiden Welt (also Linux, Mac OS, Free BSD usw.) zwei vollkommen verschiedene Systeme haben.
Auch die Gerüchte, dass man mit der Kommandozeile mit einem Befehl den gesamten Computer zerstören kann, stimmen. Wenn man das unabsichtlich tun will, braucht es allerdings schon eine gehörige Portion Pech. Vor allem aber Befehle die man als Root (tiefste Admin Rechte) ausführt, sollte man zwei mal ansehen bevor man sie ausführt. Denn anders als in vielen Grafischen Oberflächen bekommt man auf der Kommandozeile keine Warnung, wenn man zum Beispiel wichtige Systemdaten löschen will. Vor allem auf Linux gibt es sehr selten Rückfragen wie: „Wollen Sie wirklich…“ Deswegen ist eine gewisse Vorsicht angebracht, aber man muss nicht gleich eine Command Line Phobie entwickeln.
Nun habt ihr also dieses schwarze, unsympathische Fenster vor euch und da kommt natürlich die Frage auf, für was soll ich das brauchen? Weshalb tun sich das Programmierer an, auf einem so schwer verständlichen System zu arbeiten? Sind die tatsächlich in den 80ern stehen geblieben? Kein normaler Anwender würde heute auf eine Graphische Oberfläche verzichten. Wollen die Linux Programmierer damit zeigen, dass sie den anderen technisch überlegen sind?
Nein, der Grund liegt wohl an einem ganz anderen Ort. Sowohl beim programmieren als auch bei Server warten gibt es immer wieder Aufgaben die man ständig wiederholen muss. Diese möchte man natürlich automatisieren. Dies macht man dann mit kleinen Scripts. Ein Script für die Kommandozeile ist viel einfacher zu schreiben als ein kleines Progrämmchen für eine Graphische Oberfläche. Weil man genau für so automatisierte Aufgaben die Kommando Zeile sowieso braucht, wird sie auch sonst oft mal verwendet.
Kommandozeile ist nicht Liebe auf den ersten Blick, denn man muss sie erst mal verstehen und daran scheitern schon viele. Der folgende Befehl gibt eine liste der aktuellen Verzeichnisse und Dateien aus:
ls
Stop! ls ist kein Befehl. Der vermeintliche Befehl ist eigentlich ein kleines Programm. In der Kommandozeile gibt man also keine Befehle ein, sondern man startet Programme. Die Kommandozeile ist also eine Schnittstelle die es ermöglicht, Programme zu starten und eine Interaktion mit den Programmen zu haben. Ls macht nichts anderes als schauen welche Dateien und Verzeichnisse in dem aktuellen Verzeichnis sind, und gibt dann die Namen an die Kommandozeilen Ausgabe zurück. Ls kan aber mehr wie der folgende Befehl zeigt.
ls -l
Damit bekommt man eine erweiterte Liste mit mehr Informationen. Dem Programm kann man einen Parameter übergeben, dass das Programm beeinflusst. Fast alle Commandline Programme haben Parameter. Welche das sind kann man mit
programm --help
herausfinden. „programm“ ist natürlich ein Platzhalter für das aufgerufene Programm. (z.B ls, cp, rm, mv, find, apt usw.