Meine IDE: Die Eingabeaufforderung und Notepad!

Ich mag Integrierte Entwicklungsumgebungen (Integrated Development Environments, IDEs) nicht. Zu viele Mausklicks, zu komplex und wenn etwas schief läuft, kann ich es nicht reparieren - Weil ich nicht gelernt habe, wie ich die Dinge von Hand erledigen kann. Außerdem bewege ich mich auf verschiedensten Computern - meinen eigenen und denen meiner Kunden - und nicht auf allen Computern sind alle IDEs installiert, die ich gerne verwenden würde.

Doch auf jedem Computer gibt es eine Eingabeaufforderung und einen einfachen Editor und es ist eine sehr gute Idee, mit diesen Werkzeugen umgehen zu können. Doch viele Programmierer die mit graphischen Benutzeroberflächen aufgewachsen sind, haben Probleme mit diesen beiden einfachen Werkzeugen. Darum will ich hier beschreiben, wie ich auf meinem Windows 8.1 System die Eingabeaufforderung und Notepad als Editor zum Programmieren verwende.

Die Eingabeaufforderung

Die Eingabeaufforderung - oft auch Kommandozeile oder Shell (Oberfläche) genannt - ist ein kleines schwarzes Fenster, in das ich Befehle eintippen kann. Sie ermöglicht es mir, mich schnell und einfach durch die Verzeichnishierarchie zu bewegen, Verzeichnisse zu erstellen und zu löschen und Programme zu starten. Da ich als Programmierer sowieso viel tippen muss und mich daher blind auf meiner Tastatur zurechtfinde, bin ich damit wesentlich schneller, als den Explorer mit der Maus zu bedienen.

Unter Windows 8.1 starte ich die Eingabeaufforderung, indem ich auf dem Startbildschirm in die Tastatur greife und dort cmd (für command, Kommando) eingebe. Es erscheint der Suchen-Dialog mit einer Liste der Treffer. Ganz oben sollte die Eingabeaufforderung zu sehen sein. Rechtsklick auf den Eintrag zeigt ein Kontextmenü, über das ich die Eingabeaufforderung an den Startbildschirm (An Start anheften)oder die Taskleiste (An Taskleiste anheften) anheften kann. Das mache ich, damit ich später die Eingabeaufforderung schneller wieder finde.

Klicke ich auf In neuem Fenster öffnen wird die Eingabeaufforderung gestartet. In den ersten beiden Zeilen wird eine Versionsnummer und ein Copyright ausgegeben, danach kommt eine Leerzeile und dann der sogenannte Prompt (deutsch: Aufforderung), der bei Windows standardmäßig das aktuelle Verzeichnis (in unserem Fall also C:\Users\Michael) und dann ein > anzeigt. Hinter diesem > kann ich nun meine Befehle eingeben.

Fangen wir damit an, uns in der Verzeichnishierarchie zu bewegen. Wenn ich in das Unterverzeichnis Documents wechseln will, dann tippe ich cd Documents ein. cd steht für change directory, englisch für wechsle (das) Verzeichnis.

Dabei muss ich das Wort Documents nicht austippen, sondern kann mir vom Computer helfen lassen. Ich tippe nur cd Do gefolgt von der Tabulatortaste (das ist die Taste links neben dem q, die große mit den beiden Pfeilen nach links und nach rechts). Windows ergänzt dann das, was ich eingetippt habe zu cd Documents. Wenn es mehrere Unterverzeichnisse gibt die mit Do beginnnen, dann kann ich durch weitere Betätigung der Tabulatortaste durch diese Unterverzeichnisse blättere.

Meine Eingabe schließe ich dann mit der Eingabetaste (Enter-Taste) ab. Das ist hohe die Taste ganz rechts mit dem Hakenpfeil.

Nun gehe ich mit cd Javascript weiter ins Unterverzeichnis Javascript und lasse mir mit dir den Inhalt dieses Verzeichnisses anzeigen.

Die Unterverzeichnisse und Dateien in diesem Verzeichnis werden mir in einer Liste angezeigt. In der ersten Spalte sehe ich das Erstellungsdatum, in der zweiten die Erstellungszeit. In der dritten Spalte deutet <DIR> an, dass es sich um ein Verzeichnis und nicht um eine Datei handelt. In der vierten Spalte wird die Größe der Datei in Bytes angegeben (ein Byte umfasst acht Bits, ein Bit kann eine Null oder eine Eins speichern. Ein Byte kann damit einen von insgesamt 255 verschiedene Werte beinhalten). In der letzten Spalte wird schließlich der Name des Unterverzeichnisses oder der Datei angezeigt.

In meinem Fall gibt es genau eine Datei namens empty.js im Verzeichnis C:\Users\Michael\Documents\Javascript. Diese Datei ist 3 Byte groß. Alles andere sind Unterverzeichnisse.

Oben in der Liste werden die Namen von zwei speziellen Verzeichnissen angezeigt: . bezeichnet das aktuelle Verzeichnis (also C:\Users\Michael\Documents\Javascript), .. das übergeordnete Verzeichnis (das Elternverzeichnis, als C:\Users\Michael\Documents). Wenn ich also von einem Verzeichnis in das übergeordnete Verzeichnis wechseln will, tippe ich einfach cd .. ein.

Ich kann auch direkt in ein bestimmtes Verzeichnis wechseln, indem ich den vollständigen Pfad zu einem Verzeichnis angebe also beispielsweise cd C:\Users\Michael\Documents\Javascript . Der Pfad besteht aus dem Pfad des Elternverzeichnisses, gefolgt von einem \ (umgekehrter Schrägstrich, engl. Backslash), gefolgt vom Namen des Verzeichnisses. Der Pfad des Elternverzeichnisses wiederum besteht aus dem Pfad des Großelternverzeichnisses, gefolgt von einem \ (Backslash), gefolgt vom Namen des Elternverzeichnisses. So geht das immer weiter rekursiv hoch bis hin zum Wurzelverzeichnis, C:\. Die einzelnen Verzichnisnamen im Pfad werden also immer durch einen Backslash voneinander getrennt. Auf Unix-Systemen wird für denselben Zweck ein / (Schrägstrich, engl. Slash) verwendet.

Ein Unterverzeichnis erstelle ich mit dem mkdir-Befehl (make directory, erstelle Verzeichnis). In der Abbildung habe ich mit mkdir demo das Unterverzeichnis demo erstellt.

Mit rmdir demo kann ich das Unterverzeichnis wieder löschen. Dabei steht rmdir für remove directory (entferne Verzeichnis). Dazu muss das Verzeichnis aber leer sein, d.h. es darf keine Dateien oder Unterverzeichnisse enthalten. Einen ganzen Verzeichnisbaum samt aller Dateien und Unterverzeichnisse kann ich mit rmdir /S <dir>löschen. Hier ist <dir> ein Platzhalter für einen Verzeichnisnamen. Wenn ich den Befehl verwenden will, muss ich diesen Platzhalter durch den Namen eines Verzeichnisses ersetzen.

Mit rmdir /? oder help rmdir bekomme ich eine Hilfe zum Befehl rmdir angezeigt.

Außer der Option /S um einen ganzen Verzeichnisbaum zu löschen gibt es auch noch die Option /Q. Mit dieser Option kann ich die Nachfrage unterdrücken, ob ich wirklich den ganzen Verzeichnisbaum entfernen will. Die eckigen Klammern um die Optionen und um Laufwerk: sollen andeuten, dass diese Befehlsbestandteile optional sind, d.h. nicht angegeben werden müssen.

Mit help bekommt ich übrigens eine Liste aller Befehle, die die Eingabeaufforderung versteht. Mit rename, move, copy und del zum Umbenennen, Verschieben, Kopieren und Löschen von Dateien werden wir uns nachher noch befassen. Doch zuerst wollen wir Dateien erstellen.

Notepad

Zugegeben, Notepad ist sicher nicht mein Lieblingseditor, aber es gibt ihn auf allen Windows-Systemen. Daher stelle ich ihn ganz kurz vor. Ich starte Notepad und erstelle gleichzeitig eine Datei (z.B. die Datei empty.js), indem ich folgenden Befehl eintippe:

notepad empty.js

Der Editor startet und fragt mich, ob ich eine neue Datei erstellen will. Ich drücke die Eingabetaste (oder klicke auf Ja). Nun kann ich anfangen, den Inhalt meiner Datei zu tippen. Wenn ich fertig bin, dann wähle ich aus dem Datei-Menü den Eintrag Speichern unter ... oder betätige einfach hintereinander die Tasten Alt, d und u (oft geschrieben als Alt+D+U).

Hier sind jetzt zwei Dinge ganz wichtig!

  1. Aus der Dropdownliste Dateityp muss ich den Eintrag Alle Dateien auswählen. Wenn ich das nicht tue, hängt Notepad unweigerlich die Dateiendung .txt (für Text) an den Dateinamen. Ich will aber eine Datei mit der Dateiendung .js (für JavaScirpt) erstellen.

  2. Aus der Dropdownliste Codierung wähle ich UTF-8 aus. Die Codierung gibt an, wie die Zeichen, die ich eingetippt habe, als Bytefolge in der Datei gespeichert werden sollen. Die UTF-8 Codierung ist eine weitverbreitete Codierung, mit der ein Unicode-Zeichen in ein, zwei oder mehr Byte gespeichert wird. UTF-8 ist vor allem im Internet von großer Bedeutung, denn mehr als 80% aller Websites nutzen UTF-8.

Damit ich nicht jedesmal diese beiden Einträge aus den Dropdownlisten auswählen muss (zu viel Mausklicks!), speichere ich mir oft eine leere Datei und kopiere die dann bei Bedarf:

copy empty.js .\assets\app.js
notepad .\assets\app.js

Allerdings, ganz leer ist die Datei nicht! Sie ist 3 Bytes groß. Diese ersten drei Bytes sind die Byte Order Mark (BOM, Bytereihenfolge-Markierung), die von Notepad an den Anfang der Datei gestellt wird um die verwendete Codierung zu verschlüsseln. Für UTF-8 besteht die BOM aus der Byte-Folge EF BB BF (in hexadezimaler Notation). Nun ist es leider so, dass nicht jede Software mit der BOM umgehen kann. Etliche Unix- und Java-Programme haben damit Probleme. Notepad ist also nicht ideal, sondern nur eine Notlösung.

Kopieren, Veschieben, Umbenennen und Löschen

Nachdem wir nun mit Notepad die erste Datei erstellt haben, fehlen uns noch vier Befehle für die Eingabezeile, um Dateien zu kopieren, zu verschieben, umzubenennen und zu löschen.

copy File.txt CopyOfFile.txt

Dieser Befehl kopiert die Datei File.txt in die neue Datei CopyOfFile.txt

Will ich die Datei File.txt in ein das Unterverzeichnis assets verschieben, dann tippe ich

move File.txt ./assets

Umbenennen geht so:

rename File.txt Datei.txt

Die Datei File.txt hat nun den neuen Namen Datei.txt.

Und Löschen geht folgendermassen:

del File.txt