Kommandozeilenparameter erklärt

Auch in Zeiten überladener grafischer Benutzeroberflächen (GUIs) ist die Kommandozeile (CLI) unersetzlich. Gerade wenig technikaffine Nutzer einsteigerfreundlicher Betriebssysteme haben jedoch so gut wie keinen Kontakt mit der Kommandozeile und sind daher auch immer dann aufgeschmissen, wenn es trotz der grafischen Oberfläche nötig wird eine Aufgabe über die Kommandozeile zu erledigen. Dieser Artikel soll daher an allgemeinen und Warzone-2100-Beispielen die Benutzung der Kommandozeile erklären.

Hinweis: Ich selbst würde mich nicht als sonderlich erfahren im Umgang mit der Kommandozeile bezeichnen und es kann daher sein, dass der erfahrene Leser hier einige unzulässige Vereinfachungen findet. In diesem Fall bitte ich Sie sich einfach bei mir zu melden.

Theorie und Aufbau

Bevor grafische Benutzeroberflächen weite Verbreitung fanden, wurden Computer über eine Kommandozeile bedient. Es handelt sich dabei um eine Eingabezeile, die Befehle vom Benutzer in Textform entgegennimmt. Man sollte allerdings nicht dem Trugschluss erliegen grafische Benutzeroberflächen wären grundsätzlich besser als die Kommandozeile: Beide haben auch heute noch ihre Daseinsberechtigung. Da es nicht das Ziel dieses Artikels ist, werde ich nicht auf Vor- und Nachteile der beiden Bedienkonzepte eingehen.

Kommandozeilen können sehr unterschiedlich aussehen und lassen sich auch individuell anpassen. Allen gemein ist eine blinkende Eingabemarke und in vielen Fällen findet sich eine Angabe über das Arbeitsverzeichnis. Dies ist wichtig, um zu wissen an welcher Stelle im Verzeichnisbaum man eine Aktion ausführt.

Unabhängig vom Arbeitsverzeichnis können gewisse Befehle eingegeben werden. Zum Beispiel kann man sich mit dem Befehl cd im Verzeichnisbaum bewegen. Der eingetippte Befehl ist im Endeffekt nichts anderes als ein Programm, das ausgeführt wird. Gibt man einen Befehl ein, so sucht die Kommandozeile an definierten Stellen nach dem dazugehörigen Programm und führt dieses dann aus. Befindet man sich im Verzeichnis, in dem die warzone2100.exe liegt, und tippt warzone2100.exe ein, so wird diese Datei ausgeführt. Dies ist zu vergleichen mit einem Doppelklick auf die warzone2100.exe im Windows-Explorer.

Möchte man, dass ein Programm eine bestimmte Aufgabe durchführt, so muss man dies dem Programm irgendwie mitteilen können. Da man außer Text nichts eingeben kann, muss dies also auch über Texteingaben funktionieren. Und genau so ist es auch. Dazu ein Beispiel: Nehmen wir eine Verzeichnisstruktur an, in der wir ein Verzeichnis „spiele“ haben, in dem sich das Unterverzeichnis „warzone“ befindet. Unser Arbeitsverzeichnis ist „spiele“, das heißt wir befinden uns momentan in diesem Verzeichnis, und wir möchten nach „spiele/warzone“, also eine Ebene im Verzeichnisbaum hinabsteigen. Dazu müssen wir cd sagen, dass wir in eben jenes Verzeichnis „warzone“ wollen. Dies tun wir, indem wir an den Befehl selbst mit einem Leerzeichen getrennt das Verzeichnis anhängen: cd warzone.

Damit haben wir bereits etwas Fundamentales gelernt: Programme, die über die Kommandozeile aufgerufen werden, können über nachgestellte Argumente in ihrem Verhalten beeinflusst werden. Programme können mit mehreren Argumenten aufgerufen werden, jedes einzelne ist mit einem Leerzeichen vom vorherigen getrennt. In modernen Programmen – Warzone 2100 zählt dazu – wird die Verarbeitung der übergebenen Argumente von speziellem Code übernommen, der dafür sorgt, dass auch komplexere Ausdrücke korrekt verstanden und in sinnvolle Aktionen umgesetzt werden können. In der Windows-Welt wird zu Argumenten überwiegend Parameter gesagt, womit sich auch der Titel dieses Artikels erklärt.

Befinden sich im Argument selbst Leerzeichen, so muss deutlich gemacht werden, dass dieses Leerzeichen nicht zur Abtrennung verschiedener Argumente dient. Je nach Kommandozeile und Betriebssystem kann dies durch ein Einfassen des gesamten Argumentes in Anführungszeichen (") oder in Apostrophe (') oder durch eine Maskierung des Leerzeichens mit einem Backslash (\) geschehen. Würde unser Verzeichnis aus dem vorherigen Beispiel „war zone“ heißen, so wären cd "war zone", cd 'war zone' oder cd war\ zone gültige Angaben.

Der bereits erwähnte Code zur Verarbeitung der übergebenen Argumente erlaubt es bestimmte Schalter zu setzen oder Optionen anzuschalten, sodass das Programm anders reagiert, und sogar diesen Schaltern/Optionen an sich Argumente zuzuweisen. Diese Doppelbelegung des Wortes „Argument“ mag verwirrend erscheinen, weshalb ich im folgenden zwischen „Argument“ und „Schalterargument“ oder „Optionsargument“ unterscheiden werde.

warzone2100.exe --mod_mp "toller mod.wz" --cheats

Das obige Bild soll verdeutlichen welcher Teil des Beispielaufrufs warzone2100.exe --mod_mp "toller mod.wz" --cheats wie bezeichnet wird. Auf der obersten Ebene wird dem aufzurufenden Programm eine Reihe von Argumenten übergeben. Eine Ebene tiefer wird dies dann vom Programm selbst in interne Anweisungen übersetzt. Der Unterschied ist wichtig: Während das Programm zuerst mit bestimmten Argumenten aufgerufen wird, ist es danach die Aufgabe des laufenden Programms selbst diese Argumente zu verarbeiten. Das bedeutet, dass die Kommandozeile nur weiß, dass sie gerade drei Argumente an die warzone2100.exe übergeben hat, sie hat absolut keine Ahnung davon was jedes einzelne dieser Argumente für die warzone2100.exe bedeutet. Die Bedeutung wird erst durch das Programm selbst festgelegt. In diesem Beispiel wird für den Mehrspielermodus der Mod „toller mod.wz“ (Argument 1 und 2) und im Spiel selbst die Nutzung von Cheats (Argument 3) aktiviert. Ebenso wie die Kommandozeile in definierten Verzeichnissen nach dem auszuführenden Programm sucht, hat auch Warzone 2100 definierte Verzeichnisse, die es nach dem angegebenen Mod absucht. Befindet sich der Mod in keinem dieser Verzeichnisse, so wird Warzone 2100 ab Version 2.2 eine entsprechende Meldung ausgeben. Erhält man in Hilfeforen die Aufforderung ein Programm „mit --mod_mp "toller mod.wz" --cheats“ zu starten, so ist damit gemeint das Programm mit den entsprechenden Argumenten aufzurufen.

Dass ein Schalter mit einem oder zwei Bindestrichen beginnt, ist nicht zwingend vorgeschrieben. Historisch gewachsene Programme wie dd werden zum Beispiel mit dd if=/dev/zero of=/dev/null& pid=$! aufgerufen. Es ist daher sinnvoll sich vor der Benutzung eines Programms über Hilfeseiten zu vergewissern in welcher Form Argumente vom Programm verstanden werden.

zurück zum Seitenanfang


Benutzung

Es gibt grundsätzlich zwei Möglichkeiten einen entsprechenden Aufruf zu starten. Zum einen kann die Kommandozeile direkt genutzt werden und man kann mit Aufrufen wie im obigen Beispiel Warzone 2100 mit allen Wunschargumenten starten. Die zweite Möglichkeit besteht darin das Wissen um die Nutzung der Kommandozeile in Verknüpfungen (Windows), Starter (GNOME) oder Aliase (Mac OS X) zu übertragen und so ein doppelklickbares Symbol zu haben, das das Spiel mit den Wunschargumenten startet. Beide Möglichkeiten werden in diesem Artikel für verschiedene Betriebssysteme vorgestellt.

Aufruf über die Kommandozeile

Windows 98

Die Kommandozeile lässt sich auf drei Arten aufrufen:

MS-DOS-Eingabeaufforderung

Mit cd in das Warzone-2100-Verzeichnis wechseln und dort dann die warzone2100.exe aufrufen. In ein übergeordnetes Verzeichnis gelangt man durch cd .., ein anderes Laufwerk erreicht man durch Eintippen des Laufwerksbuchstaben gefolgt von einem Doppelpunkt.

C:\Programme\Spiele\Warzone 2100 2.2>warzone2100.exe --mod_mp mod.wz --cheats

Windows XP

Die Kommandozeile lässt sich auf drei Arten aufrufen:

Eingabeaufforderung

Mit cd in das Warzone-2100-Verzeichnis wechseln und dort dann die warzone2100.exe aufrufen. In ein übergeordnetes Verzeichnis gelangt man durch cd .., ein anderes Laufwerk erreicht man durch Eintippen des Laufwerksbuchstaben gefolgt von einem Doppelpunkt.

C:\Programme\Spiele\Warzone 2100 2.2>warzone2100.exe --mod_mp mod.wz --cheats

Windows Vista

Die Kommandozeile lässt sich auf drei Arten aufrufen:

C:\Windows\system32\cmd.exe

Mit cd in das Warzone-2100-Verzeichnis wechseln und dort dann die warzone2100.exe aufrufen. In ein übergeordnetes Verzeichnis gelangt man durch cd .., ein anderes Laufwerk erreicht man durch Eintippen des Laufwerksbuchstaben gefolgt von einem Doppelpunkt.

C:\Programme\Spiele\Warzone 2100 2.2>warzone2100.exe --mod_mp mod.wz --cheats

Ubuntu

Warzone 2100 kann bei korrekter Konfiguration direkt aus dem Home-Verzeichnis heraus mit den Wunschargumenten gestartet werden.

kreuvf@ubuntu:~$ warzone2100 --mod_mp mod.wz --cheats

Aufruf über eine Verknüpfung

Windows 98

Im ersten Schritt auf eine freie Fläche auf dem Desktop oder dem Ordner, in dem die Warzone-2100-Verknüpfung entstehen soll, rechtsklicken und eine neue Verknüpfung anlegen.

Kontextmenü --> Neu > Verknüpfung

Es erscheint ein Fenster, das das Verknüpfungsziel erwartet. Wer weiß, wo die warzone2100.exe liegt, kann dies direkt eintragen. An dieser Stelle müssen bereits die Argumente eingetragen werden. Enthält der Pfad Leerzeichen, so muss der komplette Pfad in Anführungszeichen eingeschlossen werden, erst dann dürfen die einzelnen Argumente folgen. Es sollte das Leerzeichen vor dem ersten Argument nicht vergessen werden.

Befehlszeile: "C:\Programme\Warzone 2100 2.2\warzone2100.exe"

Befehlszeile: "C:\Programme\Warzone 2100 2.2\warzone2100.exe" --mod_mp mod.wz --cheats

Im letzten Schritt möchte Windows einen Namen für die Verknüpfung haben. Es empfiehlt sich im Namen festzuhalten mit welchen Argumenten das Spiel gestartet wird, sodass man bei mehreren Verknüpfungen nicht durcheinanderkommt.

Programmbezeichnung: WZ2100 2.2 mit mod.wz und Cheats

Windows XP

Im ersten Schritt auf eine freie Fläche auf dem Desktop oder dem Ordner, in dem die Warzone-2100-Verknüpfung entstehen soll, rechtsklicken und eine neue Verknüpfung anlegen.

Kontextmenü --> Neu > Verknüpfung

Es erscheint ein Fenster, das das Verknüpfungsziel erwartet. Wer weiß, wo die warzone2100.exe liegt, kann dies direkt eintragen. An dieser Stelle müssen bereits die Argumente eingetragen werden. Enthält der Pfad Leerzeichen, so muss der komplette Pfad in Anführungszeichen eingeschlossen werden, erst dann dürfen die einzelnen Argumente folgen. Es sollte das Leerzeichen vor dem ersten Argument nicht vergessen werden.

Speicherort des Elements: "C:\Programme\Warzone 2100 2.2\warzone2100.exe"

Speicherort des Elements: "C:\Programme\Warzone 2100 2.2\warzone2100.exe" --mod_mp mod.wz --cheats

Im letzten Schritt möchte Windows einen Namen für die Verknüpfung haben. Es empfiehlt sich im Namen festzuhalten mit welchen Argumenten das Spiel gestartet wird, sodass man bei mehreren Verknüpfungen nicht durcheinanderkommt.

Name für die Verknüpfung: WZ2100 2.2 mit mod.wz und Cheats

Windows Vista

Im ersten Schritt auf eine freie Fläche auf dem Desktop oder dem Ordner, in dem die Warzone-2100-Verknüpfung entstehen soll, rechtsklicken und eine neue Verknüpfung anlegen.

Kontextmenü --> Neu > Verknüpfung

Es erscheint ein Fenster, das das Verknüpfungsziel erwartet. Wer weiß, wo die warzone2100.exe liegt, kann dies direkt eintragen. An dieser Stelle müssen bereits die Argumente eingetragen werden. Enthält der Pfad Leerzeichen, so muss der komplette Pfad in Anführungszeichen eingeschlossen werden, erst dann dürfen die einzelnen Argumente folgen. Es sollte das Leerzeichen vor dem ersten Argument nicht vergessen werden.

Speicherort des Elements: "C:\Programme\Warzone 2100 2.2\warzone2100.exe" --mod_mp mod.wz --cheats

Im letzten Schritt möchte Windows einen Namen für die Verknüpfung haben. Es empfiehlt sich im Namen festzuhalten mit welchen Argumenten das Spiel gestartet wird, sodass man bei mehreren Verknüpfungen nicht durcheinanderkommt.

Name für die Verknüpfung: WZ2100 2.2 mit mod.wz und Cheats

Ubuntu

Im ersten Schritt auf eine freie Fläche auf dem Desktop oder dem Verzeichnis, in dem der Warzone-2100-Starter entstehen soll, rechtsklicken und einen neuen Starter anlegen.

Kontextmenü --> Starter anlegen...

Der zweite Schritt besteht darin alle Felder korrekt auszufüllen.

Typ: Anwendung; Name: WZ2100 mit mod.wz und Cheats; Befehl: /usr/games/warzone2100 --mod_mp mod.wz --cheats

zurück zum Seitenanfang

Kommentare zu diesem Artikel abgeben (benötigt Boardaccount)

Dieses Werk ist unter einer Creative Commons-Lizenz (Namensnennung + nicht kommerziell + Weitergabe unter gleichen Bedingungen) lizenziert.


Valid XHTML 1.0 TransitionalValid CSS!Impressum