Befehl (Computer)
Ein Befehl oder Kommando ist ein definierter Einzelschritt, der von einem Computer ausgeführt werden kann. Befehle können mehr oder weniger mächtig sein.[1]
Algorithmus
[Bearbeiten | Quelltext bearbeiten ]Ein Algorithmus ist eine vollständige und eindeutige Beschreibung eines Arbeitsvorgangs, der in einer endlichen Anzahl von Einzelschritten die Lösung einer definierten Aufgabe zeigt. Ein maschinell ausgeführter Algorithmus muss in Einzelschritte, die von einem Computer verstanden werden, zerlegt werden. Jeder dieser Einzelschritte ist dabei ein Befehl oder Kommando, wobei mächtigere Befehle/Kommandos einfachere Befehle zur Ausführung nutzen.[1]
Arten von Befehlen
[Bearbeiten | Quelltext bearbeiten ]Befehle bzw. Kommandos folgen einem definierten Syntax, es gibt jedoch auch alleinstehende Befehle ohne Parameter bzw. Kommandozeilenparameter. Bei der Mensch-Computer-Interaktion wird ein Befehl meist durch Betätigung der Eingabetaste zur Ausführung gebracht.[2]
- Maschinenbefehl – ein Befehl, den ein Computer direkt ausführen kann.[1] Je nach Design des jeweiligen Prozessors stützen sich Maschinenbefehle ihrerseits auf Mikrobefehle.
- Anweisung oder Instruktion – ein Programmierbefehl; Befehle in Programmiersprachen werden jedoch normalerweise nicht sofort ausgeführt.[3]
- Kommandozeileninterpreter und Betriebssystem-Shells – eine Benutzerschnittstelle, auf der definierte Kommandos vom Benutzer eingegeben und zur Ausführung gebracht werden können. Dazu zählen sowohl von der Shell direkt verarbeitete Befehle („interne Kommandos") als auch zum Betriebssystem gehörende Kommandozeilenprogramme bzw. Systemprogramme („externe Kommandos").[4] Zur Automatisierung werden Stapelverarbeitungsdateien und Shellskripte verwendet.
- Anwendungssoftware und Computerprogramme – Befehle finden sich oft eingebettet (z. B. in Form von Formeln und Funktionen einer Tabellenkalkulation), obwohl es manchmal auch die Unterscheidung zwischen einem Kommando und einer Anweisung gibt: ein Kommando ist ein Befehl, der z. B. auf einer Kommandozeile sofort ausgeführt wird.[5] Zur Automatisierung werden u. a. Makros verwendet.
Computerprogramm
[Bearbeiten | Quelltext bearbeiten ]Auf Betriebssystemen werden Computerprogramme auf einem Computerterminal oder einer Shell (wie einem Kommandozeileninterpreter) über Kommandos gestartet, die dem Namen des Computerprogramms, genauer gesagt der Programmdatei, entsprechen.[6] [7]
Kommandosprache
[Bearbeiten | Quelltext bearbeiten ]Einige Betriebssysteme bieten eine eigene Kommandosprache, die meist auf einem primären Kommandointerpreter, auch „Shell" genannt, für den Benutzer zur Verfügung steht. Auf einem Kommandozeileninterpreter (englisch Command-Line Interpreter, kurz CLI) können Kommandos direkt zur Ausführung gebracht werden, wobei auch eine mehr oder minder mächtige Interpretersprache integriert ist. Beispiele dafür sind die Unix-Shell, wie sie unter Unix und Unix-artigen Betriebssystemen zu finden ist, oder die Eingabeaufforderung der Windows-Betriebssysteme von Microsoft. Historisch waren Kommandosprachen die einzige Möglichkeit der Mensch-Maschine-Interaktion, und damit die primäre bzw. meist einzige Shell des Betriebssystems. Auf modernen grafischen Benutzeroberflächen (englisch Graphical User Interface oder kurz GUI) werden Kommandointerpreter und deren Kommandosprache in einer Terminalemulation ausgeführt, sind optional und – je nach System – auch nicht mehr die primäre Shell.
Obwohl jedes System seine eigene Kommandosprache hervorgebracht hat, gibt es einige Gemeinsamkeiten.
Verb Parameter ...
Oft werden die Kommandos auch als Verb bezeichnet und erhalten einen oder mehrere Parameter. Dieser kann z. B. der Name einer oder mehrerer Dateien sein, aber auch ein weiterer Kommandozeilenparameter, der meist durch ein vorangestelltes Sonderzeichen gekennzeichnet wird.[8] Beispielsweise gibt üblicherweise unter DOS der Parameter /h
oder /?
einen Hilfetext aus, während unter Unix --help
oder -h
üblich ist.
Zudem bieten die meisten Kommandointerpreter Umgebungsvariablen und einen Stapelbetrieb, bei dem die normalerweise interaktiv einzugebenden Kommandos stattdessen aus einer Datei gelesen und hintereinander ausgeführt werden. Diese Dateien werden u. a. unter DOS als Stapelverarbeitungsdateien, unter Unix hingegen üblicherweise als Shellskripte bezeichnet.
Die Art der Ausführung von Kommandos kann in interne und externe Kommandos unterschieden werden. Während interne Kommandos von der jeweiligen Shell als Interpreter direkt ausgeführt werden, sind externe Kommandos separate Kommandozeilenprogramme, die nur bei Bedarf geladen werden. Ob ein Kommando als separate Konsolenanwendung sinnvoll ist oder nicht, hängt u. a. auch davon ab, ob das Kommando die Umgebung des Kommandointerpreters selbst beeinflusst oder nicht. So ist es für den Kommandointerpreter wesentlich zu wissen, in welchem Arbeitsverzeichnis er sich gerade befindet, sodass auch der Befehl zum Wechsel desselben, cd
für englisch change directory, als internes Kommando ausgeführt sein muss.[9] Bei anderen Kommandos wie der Ausgabe einer Dateiliste ist z. B. unter Unix ls
traditionell als externes Kommando (bei BusyBox in Form eines Applets: obwohl weiterhin ein externes Kommando, ist es technisch wie ein internes Kommando ausgeführt[10] ), unter DOS hingegen dir
als internes Kommando enthalten. Ein weiteres Beispiel ist das DOS-Kommando zum Kopieren von Dateien: während copy
ein internes Kommando von COMMAND.COM ist, ist das mächtigere xcopy
(ab PC DOS 3.2 bzw. MS-DOS 3.3) als externes Kommando beigelegt – da unter DOS der konventionellen Speicher begrenzt ist, wird das größere XCOPY als externes Kommando nur bei Bedarf in den Arbeitsspeicher geladen.[9]
Siehe auch
[Bearbeiten | Quelltext bearbeiten ]Einzelnachweise
[Bearbeiten | Quelltext bearbeiten ]- ↑ a b c Wilhelm Gaus: Dokumentations- und Ordnungslehre. Zweite, völlig neubearbeitete Auflage. Springer-Verlag, 1995, ISBN 978-3-540-58117-8, Glossar zur Informatik, S. 351 (eingeschränkte Vorschau in der Google-Buchsuche): „Befehl, Kommando – Soll ein Algorithmus maschinell ausgeführt werden, so muss er in eine endliche Anzahl von Einzelschritten so zerlegt werden, dass jeder Einzelschritt vom Computer ausgeführt werden kann. Ein definierter Einzelschritt, der von einem Computer ausgeführt werden kann, heißt Befehl oder Kommando. Befehle und Kommandos können mehr oder weniger mächtig sein. Z. B. ist der Befehl „addiere zwei ganze Zahlen" sehr viel weniger mächtig als der Befehl „suche in einem Text das Wort ‘Indexierungsgenauigkeit’"."
- ↑ Saskia Reither: Computerpoesie – Studien zur Modifikation poetischer Texte durch den Computer. transcript Verlag, 2003, ISBN 3-89942-160-4, 3. Modifikationen I. Codierungen, S. 219 (eingeschränkte Vorschau in der Google-Buchsuche): »[...] mit der Enter-Taste des Computers, die alle vorigen Eingaben zum Befehl erklärt, entstand, was vor Zeiten nur Magie vermocht haben soll: Das Wort wird wahr.« (Kittler 2000a, 51.)
- ↑ Norbert Welsch: Entwicklung von Media-Projekten mit Macromedia Director und Lingo für Macintosh und Windows. Springer-Verlag, 1996, ISBN 978-3-662-01186-7, 10 Grundlagen der Programmierung, S. 235 (eingeschränkte Vorschau in der Google-Buchsuche): „Ein wesentlicher Unterschied zwischen Benutzeroberflächen und Programmiersprachen besteht nun allerdings darin, dass erstere die Befehle einzeln sofort ausführen, während Befehle bei einer Programmiersprache normalerweise zunächst einmal nur notiert und gespeichert werden. Ob und wann sie zur Ausführung kommen, hängt von ... weiteren ... Bedingungen ab."
- ↑ Manfred Precht, Nikolaus Meier, Dieter Tremel: EDV-Grundwissen – Eine Einführung in Theorie und Praxis der modernen EDV. 7., aktualisierte Auflage. Addison-Wesley, 2004, ISBN 3-8273-2129-8, 7 Arbeiten mit Kommandozeilen, S. 299 (eingeschränkte Vorschau in der Google-Buchsuche): „In den ersten Jahrzehnten der EDV wurden Computer durch die Eingabe von Befehlen über die Tastatur bedient. Erst in den Achtzigerjahren erfolgte allmählich der Übergang von der Befehlseingabe per Tastatur zur mausgesteuerten Anforderung von Aktionen. Besonders bei der Arbeit mit Betriebssystemen erweist sich die Kenntnis einzelner Befehle und ihrer Syntax aber immer noch als hilfreich, manchmal sogar als erforderlich. Auch andere Administrationsaufgaben, etwa zum Start eines einzelnen Dienstes, werden häufig noch über einfache Tastaturkommandos wahrgenommen. Am bekanntesten aber dürfte sicher immer noch die Kommandozeile von DOS sein."
- ↑ Alfred Moos, Gerhard Daues: Datenbank-Engineering. 2., überarbeitete und erweiterte Auflage. Vieweg, 1997, ISBN 978-3-528-15183-6, Die Datenbanksprache SQL, S. 168 (eingeschränkte Vorschau in der Google-Buchsuche): „Eine weitere Besonderheit von SQL liegt darin, dass viele SQL-Befehle sowohl als Kommando als auch als Anweisung verwendet werden können. Ein Befehl wird als Kommando eingesetzt, wenn er sofort nach seiner Eingabe in den Computer von diesem ausgeführt werden soll."
- ↑ Heinz-Peter Gumm, Manfred Sommer: Rechnerarchitektur, Betriebssysteme, Rechnernetze. Walter de Gruyter, 2017, ISBN 978-3-11-044235-9, 2 Betriebssysteme; 2.1 Basis-Software, S. 141 (eingeschränkte Vorschau in der Google-Buchsuche): „Die Art und Syntax der Kommandos unterscheidet sich je nach Betriebssystem, dennoch gibt es viele Gemeinsamkeiten. Insbesondere wird der Name jedes ausführbaren Programms als Kommando aufgefasst."
- ↑ Manfred Precht, Nikolaus Meier, Dieter Tremel: EDV-Grundwissen: eine Einführung in Theorie und Praxis der modernen EDV. 7. aktualisierte Auflage. Addison-Wesley, 2004, ISBN 3-8273-2129-8, 6.2 Bedienoberfläche, S. 252 (eingeschränkte Vorschau in der Google-Buchsuche).
- ↑ Wolfgang Laun: Konzepte der Betriebssysteme. Springer-Verlag, 1989, ISBN 978-3-211-82153-4, ISSN 0178-0069 , 8. Benutzerschnittstellen, S. 158, Eigenschaften von Kommandosprachen (eingeschränkte Vorschau in der Google-Buchsuche): „Kommandosprachen haben trotz aller Unterschiede von System zu System eine Reihe charakteristische Eigenschaften gemeinsam. Typisch ist die generelle Form eines Kommandos: Verb Parameter... Das ‚Verb‘ bezeichnet das gewünschte Kommando. Als Parameter werden Namen (z. B. von Dateien) und andere Zeichenketten verwendet, die für das Programm festgelegte Bedeutung haben; diese werden je nach System als ‚Schalter‘ (Switch), ‚Optionen‘ (Option) oder ‚Modifikatoren‘ (Qualifier) bezeichnet. Zur Unterscheidung von Namen und Optionen wird letzteren ein Sonderzeichen vorangestellt (z. B. in Unix das Zeichen
–
)." - ↑ a b Wolfgang Laun: Konzepte der Betriebssysteme. Springer-Verlag, 1989, ISBN 978-3-211-82153-4, ISSN 0178-0069 , 8. Benutzerschnittstellen, S. 158, Eigenschaften von Kommandosprachen (eingeschränkte Vorschau in der Google-Buchsuche): „Die Art der Ausführung von Kommandos durch einen Kommando-Interpreter führt zur Unterscheidung von internen und externen Kommandos. Interne Kommandos werden vom Kommando-Interpreter selbst erledigt, externe Kommandos führen zum Aufruf eines Programms durch den Kommando-Interpreter. Somit können weitere externe Kommandos jederzeit hinzugefügt oder vorhandene ersetzt werden. Die Entscheidung, ob ein Kommando intern oder extern sein soll, ist zum Teil eine Ermessensfrage. Ein Kommando kann natürlich schneller durchgeführt werden, wenn kein Programm zu seiner Ausführung geladen werden muss, aber ein Kommando-Interpreter mit vielen eingebauten Funktionen wäre ein sehr großes, aufwendiges Programm. Die Entscheidung zwischen ‚intern‘ oder ‚extern‘ hängt auf manchen Systemen davon ab, ob das Kommando Information verändert, die dem Prozeß des Kommando-Interpreters selbst zugeordnet ist; in einem solchen Fall muß das Kommando intern sein. Ein bekanntes Beispiel ist das Kommando cd in UNIX zum Setzen des aktuellen Verzeichnisses. Da jeder Prozeß sein eigenes aktuelles Verzeichnis hat, wäre ein externes Kommando cd, ausgeführt von einem Kind-Prozeß des Shell-Prozesses sinnlos, da die Veränderung ja nur den Kind-Prozeß beträfe."
- ↑ Busybox – The Swiss Army Knife of Embedded Linux. Abgerufen am 1. März 2025 (englisch): „BusyBox is a multi-call binary. A multi-call binary is an executable program that performs the same job as more than one utility program. That means there is just a single BusyBox binary, but that single binary acts like a large number of utilities. This allows BusyBox to be smaller since all the built-in utility programs (we call them applets) can share code for many common operations."