Schlagwort-Archive: Linux

Sich mit der Kommandozeile anfreunden

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.

Linux Subsystem auf Windows als Webserver missbrauchen

Nicht Techniker brauchen diesen Blog nicht zu lesen.

Wer beruflich mit Linux Webserver zu tun hat und aber zum Entwickeln lieber Windows als Plattform verwendet, kennt das Problem. Man möchte die Website gerne lokal bearbeiten und testen, doch was verwende ich dafür? Eine Möglichkeit ist XAMPP, das ich in einem Blog auch schon vorstellte. Das Problem: Die Programme Apache, MySQL und PHP sind nicht komplett identisch auf allen Plattformen. In details kann es zu Abweichungen kommen. Wenn also eine Web Applikation auf XAMPP läuft, ist man nie ganz sicher ob sie dann auch auf dem Webserver läuft.

Seit mehr als einem Jahr gibt es für Windows ein Linux Subsystem. Dieses wurde vorwiegend für Administratoren von Linux Servern hinzugefügt. Denn es bringt die Linux Commandline endlich auch auf Windows. Das Linux Subsystem ist allerdings mehr als nur ein SSH Client. Es ist ein komplettes Command Line Linux auf einem Windows Rechner. Ich habe sogar munkeln hören, dass sogar XWindow Systeme darauf laufen sollten. Probiert hab ich es selbst noch nie und bestimmt ist es auch nicht dafür gedacht. Beziehen kann man das Ganze über den Microsoft Store, ist kostenlos und hat einige Linux Distros zur Auswahl.

Mich hat es letzthin wunder genommen, ob man auf das Linux Subsystem auch einen kompletten Webserver draufbringt. So dass man auf Windows einen LAMP Server hat. Die Antwort ist ja, man kann das. Man muss halt einfach in der Lage sein ein Webserver auf Linux von der Command Line aus einzurichten.

Doch was ist daran besser als eine VM zu nutzen? Man muss beim Subsystem nicht bridgen. Der Server ist direkt auf localhost verfügbar. Was ich allerdings bis jetzt noch nicht hingekriegt habe, war eine SFTP Verbindung zu dem Subsystem aufzubauen. Ich hab allerdings auch nicht lange versucht, da wir eh GIT nutzen, und ich dann jederzeit die aktuelle Version vom Internet holen kann.

Man muss natürlich darauf achten, dass man nicht gleichzeitig ein XAMPP am laufen hat, da es sonst zu Port Konflikten kommt. Das Subsystem ist zwar nicht das schnellste, das will gesagt sein, funktioniert aber wirklich gut. Ein Kuriosum gibt es allerdings. Will man das Subsystem ausschalten braucht man dafür die Windows PowerShell.

net stop LxssManager

Dieser Befehl stoppt dann das Subsystem. Ich finde das eine spannende Alternative, vor allem wenn man hin und wieder auch noch Shell Scripte und cmd Programme braucht. Viel Spass beim ausprobieren.