Die Programme sind gewöhnlich ausführbar und in jeder Sprache (meistens C) geschrieben.
Die Shell akzeptiert einen eingegebenen Befehl, der nur eine Zeichenfolge ist. Es sucht dann nach bestimmten Zeichenfolgen, die für die Shell eine besondere Bedeutung haben, wie z. B. Umgebungsvariablen, die $
sind gefolgt von einem Wort oder Weiterleitungen, die >
sind gefolgt von einem Weg. Nachdem diese Substitution durchgeführt wurde, hat sie eine Zeichenfolge, die in Leerzeichen aufgeteilt ist, um einen Namen einer ausführbaren Datei und Parameter zu erzeugen. Die Shell sucht dann nach der ausführbaren Datei in der Liste der Verzeichnisse in der Umgebungsvariablen PATH. Die Shell verwendet dann Systemaufrufe, um einen Prozess aus der ausführbaren Datei mit den Parametern zu erstellen.
Beispielsweise um den Befehl ls $HOME
auszuführen die Shell würde zuerst diesen $HOME
erkennen ist eine Umgebungsvariable und ersetzen Sie sie in diesem Fall durch /home/user
Verlassen des Befehls ls /home/user
. Anschließend teilt es den Befehl auf das Leerzeichen auf, um den Namen der ausführbaren Datei ls
zu erhalten und Parameter /home/user
. Die Shell findet die erste ausführbare Datei, die ls
entspricht normalerweise /bin/ls
. Es verwendet dann entweder die Systemaufrufe spawn()/posix_spawn() oder fork() und exec(), um den neuen Prozess zu erstellen.
Die meisten grundlegenden Dienstprogramme in Linux sind in C
geschrieben .Dies können Sie in busybox source code
überprüfen das die meisten grundlegenden Linux-Befehlsdienstprogramme unterstützt, die in C
geschrieben sind .Befehle wie ls,cd ...etc sind also in c
Wie die Shell das Einchecken unter dem folgenden Link interpretiert
In einem Betriebssystem gibt es ein spezielles Programm namens Shell. Die Shell akzeptiert für Menschen lesbare Befehle und übersetzt sie in etwas, das der Kernel lesen und verarbeiten kann.
http://www.math.iitb.ac.in/resources/manuals/Unix_Unleashed/Vol_1/ch08.htm
Diese Programme sind hauptsächlich in der Programmiersprache C geschrieben, ebenso wie der Linux-Kernel.