12 Gründe die Kommandozeile zu lernen

Der Wechsel von grafischen Benutzeroberflächen (GUIs) zur Kommandozeile ist für viele Programmieranfänger nicht leicht. Außerdem fühlt es sich an, als könnte man hier schnell etwas kaputt machen oder das Betriebssystem zum Abrauchen bringen. Das ist jedoch nicht der Fall, denn die Kommandozeile ist ein sehr effizientes Werkzeug für jeden Benutzer und insbesondere für Programmierer.

In diesem Artikel zeige ich dir 12 Gründe, warum du unbedingt die Kommandozeile (Bash) lernen solltest. Legen wir los:

1. Erfahrene Bash-Benutzer stehen hoch im Kurs und werden gut bezahlt

Laut der Stack Overflow's Developer Survey gehört die Shell (Kommandozeile / Bash) zu den beliebtesten Sprachen (Skills). Jemand der gute Kommandozeilen-Fähigkeiten mitbringt, kann sich über höhere Gehälter als die von Python sowie R-Programmierern freuen.

Auch wenn sich diese Umfrage hauptsächlich auf Entwickler bezieht, ist die Kommandozeile besonders im Bereich Data Science interessant. Bash arbeitet Hand in Hand mit Programmiersprachen sowie Data-Science Technologien wie Python, IPython, Jupyter, TensorFlow, PyTorch und viele weitere.

2. Lästige wiederkehrende Prozesse automatisieren

Ein Data-Scientist hat die Aufgabe, bestimmte Informationen regelmäßig zur Verfügung zu stellen. Je nach Datenquelle müssen diese Daten mehrmals täglich bereitgestellt werden. Die Art und Weise, wie diese Daten erfasst, verarbeitet und angezeigt werden ist meist identisch.

Die Kommandozeile ist für diesen Zweck sehr gut geeignet, da Befehle leicht automatisiert und repliziert werden können.

Schauen wir uns folgendes Szenario an:

Dein Arbeitgeber hat sich entschieden, eine Investition in die Datenanalyse zu tätigen. Mehrere Datenprofis werden dem Team beitreten. Du bist dafür zuständig, sämtliche Computer mit allen Programmen so einzurichten, dass die neuen Mitarbeiter sofort loslegen können.

Wenn du mit einem CLI (Command Language Interpreter) arbeiten kannst, kannst du ein paar simple Skripte schreiben, die alles automatisch installieren, konfigurieren und testen.

Wenn du das nicht kannst, musst du auf ein GUI zurückgreifen und die gleichen Maus- und Klickbewegungen, wiederholt, über mehrere Computer hinweg ausführen. Dieser manuelle Prozess wird schnell lästig, langweilig und ist zeitaufwendig.

Das ist nur ein Beispiel dafür, wie einfache Skills im Umgang mit der Kommandozeile dazu beitragen können, datenwissenschaftliche Prozesse zu skalieren und zu automatisieren.

3. Bash-Fähigkeiten machen dich flexibler

In einer datenwissenschaftlichen Rolle wirst du oft feststellen, dass du mehr Flexibilität hast, wenn du das Terminal, anstelle von GUI's benutzt.

Da die Kommandozeile ein Programm ist, das andere Programme ausführt (daher der Name "Shell"), ist die Interaktion zwischen Programmen oft einfacher in der Kommandozeile einzustellen.

Sobald du die notwendigen Befehle beherrschst, ist es relativ einfach, Skripte zu schreiben. Shell-Skripte machen das Erstellen aller möglichen Data-Pipelines und Arbeitsabläufe viel einfacher.

Vereinfacht gesagt, ermöglichen dir diese Fähigkeiten besser und effizienter mit deinem Computer zu interagieren. Du kannst immer wieder auf die GUI's zurückgreifen, aber die Kommandozeile kann dir mehr direkte Kontrolle geben, wenn du sie brauchst.

4. Arbeiten mit Textdateien ist einfacher

Textdateien gehören zu den gebräuchlichsten Methoden, um Daten zu speichern und zu verarbeiten. Fast jedes datenwissenschaftliche Projekt wird irgendwo Textdateien beinhalten. Die Fähigkeit, Textdateien schnell und effizient zu handhaben, ist daher eine sehr nützliche Fertigkeit für einen Datenwissenschaftler.

Die Shell verfügt über sehr mächtige Textverarbeitungswerkzeuge wie AWK und sed, die beim Kennenlernen von Dateien helfen und die Datenbereinigung erleichtern. Alles, was es meist braucht, ist eine Zeile Code!

5. Die Shell ist ressourcenfreundlich

Wenn du mit begrenzten Computing-Ressourcen arbeitest oder einfach nur deinen Output maximieren möchtest, wird die Benutzung der Kommandozeile praktisch immer vorteilhafter sein als die Benutzung einer GUI. Der Grund dafür ist, dass auf GUI's Ressourcen für das Rendern des grafischen Outputs aufgewendet werden müssen.

Das gilt sowohl für die Arbeit auf lokaler als auch auf Remote-Ebene. Wenn eine Remote-Verbindung hergestellt wird, verbrauchen GUIs viel mehr Bandbreite als Terminals und "verschwenden" Ressourcen.

Außerdem ist die Latenzzeit, d.h. das "Zeitintervall zwischen dem Input und dem Output", höher, wenn man ein GUI benutzt. Das kann frustrierend sein, wenn du versuchst, eine Maus zu steuern, diese aber 1-2 Sekunden später reagiert. Wenn du primär die Kommandozeile benutzt, ist die Latenzzeit niederiger. Die Prozesse werden einfacher zuhandhaben sein, da du keinen Maus-Cursor bedienen und an die richtige Stelle ziehen musst.

6. Cloud-Dienste

Cloud Services werden oft mit einem Kommandozeileninterface verbunden und über dieses bedient.

Dies ist besonders wichtig für fortgeschrittenere Arbeiten wie z.B. Deep Learning, bei denen dein lokaler Rechner meist durch fehlende Hardware-Ressourcen nicht geeignet ist, um die anstehenden Aufgaben zu bewältigen. Laut mehrerer Studien aus 2018 werden nur noch 4 Prozent der Machine Learning und Deep Learning Projekte vor Ort durchgeführt.

Falls du also mit Deep Learning oder Machine Learning arbeitest, bist du auf die Cloud und somit auf die Kommandozeile angewiesen.

7. Einmal lernen, überall anwenden

Es gibt viele verschiedene Shells wie bspw. bash, zsh, fish, ksh, tcsh, cmd, Windows PowerShell, uvm. Wenn du dich mit einer Shell auskennst, ist es sehr leicht mit anderen Shells zu arbeiten. Dies ist besonders nützlich, wenn du Online-Dienste nutzt, die zweingend eine Art CLI benötigen.

Hingegen sehen alle GUI's anders aus. Wenn du mit 10 Programmen arbeitest, musst du zunächst alle 10 GUI's kennenlernen. Auch das ist zeitintensiver, als die Arbeit mit einer Shell.

8. Du tippst schneller, als du klickst

Während es definitiv länger dauert, schnell auf der Tastatur zu tippen (10-Finger-System) als eine Maus zu bedienen, zahlt sich die höhere Lernkurve der Tastatur schnell aus.

Es gibt mehrere Studien zu Microsoft-Office Nutzern, die gezeigt haben, dass der Großteil der Anwender eher mit der Maus klicken, anstatt die effizienteren Tastatur-Kürzel zu benutzen. Selbst wenn du das Gefühl hast, dass du super schnell in einem GUI arbeitest, besteht eine hohe Wahrscheinlichkeit, dass du zumindest für einige Aufgaben effizienter in der Kommandozeile bist.

9. Auditing und Debugging ist einfacher

Weil es so einfach ist, alle deine Aktivitäten auf der Kommandozeile zu verfolgen, ist das Auditing und Debugging viel einfacher.

Du kannst das Kommandozeilenfenster als Historie benutzen, um jede einzelne Aktion, die du in der Shell gemacht hast, zu verfolgen. Hingegen kann in einem GUI ein Fehlklick zu einem Fehler führen, den du nicht auf Anhieb nachverfolgen kannst, da es keine Historie gibt.

10. Die Unix-Shell ist überall verfügbar

Obwohl die Unix-Shell nur auf MacOS- und Linux-Rechnern installiert ist, können Windows-Benutzer mit Tools wie WSL, Cygwin und MinGW trotzdem von der Unix-Shell profitieren.

Das bedeutet, dass Du die Skills, die du z.B. in unserem Kommandozeilen Schnellstart-Kurs lernst, auf praktisch jedem Computer, nutzen kannst (auch auf deinem PC, egal welches Betriebssystem du benutzt).

11. Mit dem Computer "sprechen"

Wenn wir über ein Terminal mit dem Computer interagieren, benutzen wir Befehle.

Diese Befehle sind Teil einer Sprache und diese haben eine enorme Ausdruckskraft. Die Kommandozeile erlaubt es uns, die Macht der Sprache zu nutzen, um mit dem Computer auf eine elegante und effiziente Art und Weise zu interagieren.

Die höchste Effizient wirst du durch eine ausgewogene Kombination aus einem CLI und GUIs erreichen. Der Sinn einer Kommandozeile besteht nicht darin, gänzlich auf GUI's zu verzichten. Vielmehr geht es darum, ein weiteres Werkzeug in deiner Werkzeugkiste zu haben, um bestimmte Aufgaben besser und zeitsparender durchzuführen.

12. Die Kommandozeile ist einfacher als du denkst

Es gibt immer noch einen großen Irrglauben, dass man für die Benutzung der Kommandozeile mehrere hundert Befehle kennen muss.

Ja, es gibt viele Hunderte Befehle, die du lernen kannst. Aber du wirst nur eine Handvoll Befehle brauchen, um bereits komplexe Automatisierungen in der Shell erstellen zu könenn.

Habe ich dich überzeugen können, der Kommandozeile eine Chance zu geben? Lege direkt los in unserem Kommandozeile lernen Tutorial oder belege den LerneProgrammieren Kommandozeile-Schnellstart, um die Shell zu meistern.

  • 10. August 2020
Click Here to Leave a Comment Below 0 comments

Leave a Reply: