Um etwas mehr Kontext zu geben, denke ich, dass diese Frage aus der Unterscheidung zwischen ausführbaren und nicht ausführbaren Dateien unter Windows resultiert, gekennzeichnet durch die Erweiterung .exe.

Unter Linux kann jede Datei eine ausführbare Datei sein.

Mal sehen, was passiert, wenn Sie versuchen, eine Datei auszuführen. Zuerst brauchen wir eine Datei. Wir können den echo-Befehl verwenden und seine Ausgabe umleiten, um eine neue Datei zu erstellen.

Beachten Sie die fehlende Erweiterung des Dateinamens. Wir hätten es hello.txt oder hello.sh nennen können, es liegt ganz bei uns, die Erweiterung spielt meist keine Rolle.

Im Gegensatz zu Windows benötigen Sie keine spezielle Erweiterung, um eine Datei ausführbar zu machen. Jetzt werden wir die datei ausführbar machen linux Datei ausführen und gehen wir das Ganze dann auch noch einmal durch. Um eine Datei auszuführen, müssen wir lediglich den Pfad der Datei in der Eingabeaufforderung eingeben.

Wir benötigen auch Ausführungsrechte für die Datei, wie z.B. um eine Datei zu lesen, benötigen wir Leserechte. Beachten Sie, dass das Setzen oder Entfernen der Ausführungsberechtigungen eine Datei nicht ausführbar oder nicht ausführbar macht, aber es nimmt sie einfach weg oder gibt uns die Möglichkeit, sie auszuführen.

Was genau passiert, wenn wir eine Datei „ausführen„, ist, dass der Inhalt der Datei an das Programm gesendet wird, das sich in der ersten Zeile befindet. In diesem Fall ist es /bin/bash.

Linux Datei ausführen

Das bedeutet, dass alle Inhalte der Datei an bash gesendet werden. Es ist also so, als ob Sie diese Befehle in die Shell eingeben würden. Deshalb hat es in der von uns erstellten Datei den echo-Befehl ausgeführt.

Bitte beachten Sie, dass es nichts Besonderes an ./ gibt, es bedeutet einfach nur’nach der Datei im aktuellen Verzeichnis suchen‘. Es hätte jeder beliebige Pfad sein können, zum Beispiel

Und Sie könnten auch ein anderes Programm die Ausführung übernehmen lassen. Betrachten Sie zum Beispiel die folgende Datei, in der ich die erste Zeile gesetzt habe, als den Speicherort von python binary, den ich über den Befehl whereis python gefunden habe. Es kann auf Ihrem System anders sein.

Hallo von Python!

Sie können die Berechtigungen einer .doc-Datei auch als ausführbar oder als .jpg-Datei festlegen. Es ist völlig legal. Aber wenn Sie versuchen, diese auszuführen, wird ihr Inhalt an die Shell gesendet, um als Shell-Befehle analysiert zu werden. Aber es sind keine Shell-Befehle, also erhalten Sie eine Fehlermeldung.

TerminalLinuxShell