GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Shell-Befehle sind in welcher Sprache geschrieben?

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.


Linux
  1. Welche Shell verwende ich?

  2. Unterschied zwischen exportierten und nicht in Bash enthaltenen Shell-Variablen?

  3. Was bedeutet die Syntax |&in der Shell-Sprache?

  4. Welche Befehle sind im %pre-Abschnitt einer Kickstart-Datei unter CentOS verfügbar?

  5. Was bestimmt, welche Linux-Befehle Root-Zugriff erfordern?

Was ist die Shell unter Linux?

Was ist Subshell in Linux?

Was ist die Login-Shell in Linux?

UNIX / Linux:Was ist eine Shell? Was sind verschiedene Muscheln?

Was ist ein unterbrechungsfreier Prozess?

Was ist eine .sh-Datei?