Aaron Fischer Ingenieur, Vater, Heimwerker, Problemlöser

28 August, 2012

Die Angst vor der Console

Technologie

Ich habe schon unzählige Male erlebt, wie gestandene Programmierer sich vor einem schwarzen Fenster mit weißer Schrift fürchten. Meistens zu beobachten bei Windows-Usern mit rudimentären DOS-Erfahrungen.

omg wtf?

Da kommen dann meist Sprüche wie Das nutzt man doch heutzutage nicht mehr, oder Aus dem Alter bin ich raus. Auch vage Annahmen wie Da bin ich mit einer GUI viel schneller, das ist doch alles viel zu umständlich gibt es oft zu hören.

Besonders interessant wird es, wenn ein langjähriger Eclipse-Nutzer auf Git umsteigen will und im Internet nur Anleitungen für die Console findet. Schnell macht sich wieder die Angst breit und man distanziert sich gekonnt mit Ist doch eh nur für die Linux-Freaks, Subversion tut wenigstens. Warum müssen wir nochmal Git verwenden?.

Ich habe mich eine Zeit lang auch sehr schwer mit der Console getan, besonders was das Datei-Handling angeht. Nachdem ich dann eines Nachts mein komplettes ~/ mit einem unüberlegten rm -rf beerdigt hatte, war es vorbei mit dem Vertrauen. Ich vermute mal, so ein ähnliches Unglück ist jedem schon einmal passiert, der täglich mit einer Console zu tun hat. Doch ich denke genau das sensibilisiert die Nutzung der Console. Jemand, der noch nie etwas durch einen unüberlegten Befehl kaputtgemacht oder anderweitig versemmelt hat, hat vermutlich keinerlei Skrupel Befehle einzugeben, von denen er nicht weiß was sie bewirken.

Um gerne mit einer Console zu arbeiten muss man zuerst ein paar Hürden nehmen. (Leichter tut sich vermutlich jener, der früher Textadventures gespielt hat, in MUDs abgehangen hat oder seine Kindheit im IRC verbracht hat)

(1) Die erste Hürde ist die Console an sich. Unter DOS gab es keinen Umweg um sie, mit Windows braucht man die Console heute nur noch um die eigene IP zu ermitteln oder mit dem net-Befehl rumzuspielen. Ansonsten ist sie weitgehend bedeutungslos. Was also mit einer Console unter einem Unix/Linux/BSD-System anfangen? Wie sind die Befehle, wie navigiere ich in den Verzeichnissen, was sind Berechtigungen, wie breche ich einen Befehl wieder ab, ... und was bringt mir das alles wenn ich doch den Windows Explorer und das Kontextmenü habe?

(2) Ist die erste Hürde genommen und die Console in den Grundzügen beherrscht, passiert meist das unvermeidliche: Man löscht versehentlich eine wichtige Datei (wo ist der Bin ich mir sicher?-Dialog?), sperrt sich mit falsch gesetzten Berechtigungen aus oder vermurkst mit grub seinen MBR. Man verflucht dieses elende Consolen-Gefrickel und ist schon kurz davor mit Thunar und gEdit eine längere Beziehung einzugehen.

(3) Ist diese Hürde auch überstanden, fängt man an seine Finger für die kritischen Befehle zu sensibilisieren. Bei rm oder mv atmet man nochmal durch bevor man dann zuversichtlich auf die [RETURN]-Taste drückt. bei find wird nicht lange überlegt, außer man nutzt den -exec Parameter. Bei ls, tree oder less kann nichts schlimmes passieren, egal wie sehr man sich anstrengt. Zur Not hämmert man eben ein paar mal CTRL+C. Zugleich hat man begriffen, wie Pipes funktionieren und welche Programme wie zusammengesteckt werden können.

Hat man dieses Level an Zuversicht erreicht, ist alles Andere nur Zeitverschwendung, total umständlich und nervig. Einige GUI-Programme gehen mittlerweile soweit, das Verhalten und den Workflow der Console nachzuahmen und sich möglichst nahtlos in den Consolen-Workflow zu integrieren (zathura, Quicksilver, oder das Nostalgy-Plugin für Thunderbird). Mal schnell ein 200MB Logfile nach ein paar Keywords filtern, nach Datum sortieren, einen Teil davon herausschneiden und die dritte Spalte davon zusammenzählen? Eine Sache von 20 Sekunden (incl. Rechenzeit!). Das ganze alle 30 Minuten machen und per E-Mail versenden? 30 Sekunden. Jedes grafische Tool wird mit ein paar Zeilen Bash-Script abgelöst und man kann sich endlich mit den wirklich anspruchsvollen Dingen beschäftigen.