Ich habe eine script.sh-Datei und Typ dieser Datei ist Shellscript-Datei. Ich möchte diese Datei als application / x-executable-Datei erstellen. Wie kann ich es schaffen?
command-line
executable
Ziyaddin Sadigov
quelle
quelle
Antworten:
Sie können die Datei als ausführbar markieren:
Sie können es dann folgendermaßen ausführen:
Wenn Sie einen anderen Befehl zum Starten verwenden möchten, können Sie einen Alias hinzufügen:
Fügen Sie dies am Ende der Datei hinzu:
Öffnen Sie eine neue Terminalsitzung oder geben Sie
source ~/.bashrc
Ihr Terminal ein, um sich zu bewerben. Verwenden Sie dann einfach den neuen Namen, um das Skript zu starten.quelle
./filename.sh
und nicht nurfilename.sh
?filename
und nicht./filename
./filename.sh
eine Datei im aktuellen Verzeichnis und usingfilename.sh
eine Datei im aktuellen Verzeichnis oder in einem beliebigen Verzeichnis von PATH an. Die erste Verwendung beseitigt jegliche Unsicherheit darüber, auf welche Datei zugegriffen wird. In diesem Fall versuchen Sie, das Skript mit bash oder einem anderen Interpreter (aufgrund der Annahme#!/bin/bash
als erste Zeile in Ihrem Skript) auszuführen, indem Sie einfach den Dateinamen eingeben. Für diese Verwendung muss das Verzeichnis angegeben werden. Alternativ können Sie versuchen,bash filename.sh
welches mit einem nicht angegebenen Verzeichnis zu funktionieren scheint.Es gibt zwei Möglichkeiten, eine Datei ausführbar zu machen:
GUI-Methode:
Gehen Sie zur Registerkarte "Berechtigungen" und aktivieren Sie das Kontrollkästchen "Ausführen": [] Ausführen der Datei als Programm zulassen.
Terminal- / Befehlsmethode:
Sie können entweder verwenden:
cd /to/my/required/directory
Dann renne
chmod +x filename.extension
Oder einfach laufen:
chmod +x /path/to/your/filename.extension
chmod
hat auch einige erweiterte Optionen:Die Leerzeichen sollen zeigen, dass es aufgeteilt ist:
- rwx --- ---
Der erste Satz von
---
ist Benutzer. Die zweite ist Group und die letzte ist Other (jeder andere)r steht für Lesen, w für Schreiben und x für Ausführen.
Damit jeder es lesen kann, aber nur Group ausführen kann und User es lesen und schreiben kann (aber aus irgendeinem Grund nicht ausführen kann), wäre:
-rw- rx- r--
Dies würde dem Befehl jedoch hinzugefügt werden als:chmod +rw-rx-r-- /path/to/file.extension
chmod
das kann man auch in zahlen machen. Es basiert auf binären (ich denke, wie es 1,2 und 4 ist)Also gibt es diese Zahlen:
Vom Benutzer ausführen ist
100
. Nach Gruppe ausführen ist010
. Execute by other ist 001Schreiben von Benutzer ist
200
. Schreiben nach Gruppe ist020
. Schreiben von anderen ist002
.Vom Benutzer gelesen wird
400
. Gelesen von Gruppe ist040
. Gelesen von anderen ist004
.Dann addieren Sie diese, um die gewünschte Kombination zu erhalten.
Damit jeder es lesen kann, aber nur Group ausführen kann und User es schreiben kann (aber aus irgendeinem Grund nicht ausführen kann), wäre dies:
400 + 040 + 004
und010
und200
Das ergibt 600 + 050 + 004 = 654.
Sie könnten dann den Befehl ausführen.
chmod +654 /path/to/file.extension
um es zu setzen.Und um alle Berechtigungen festzulegen, können Sie Folgendes eingeben:
chmod +rwxrwxrwx /path/to/file.extension
Oder:
chmod +777 /path/to/file.extension
Schließlich können Sie Folgendes tun:
chmod -777 /path/to/file.extension
Jedem die Erlaubnis zu nehmen.
Und:
chmod +300 /path/to/file.extension
Hinzufügen von Lese- und Schreibrechten für Benutzer, ohne andere Berechtigungen zu beeinträchtigen (z. B. Berechtigungen ausführen).
Diese Website hat ein sehr nützliches kleines Kontrollkästchen, mit dem Sie die gewünschten Optionen ankreuzen und den folgenden Befehl eingeben können:
Es ist jedoch nicht sinnvoll, alle möglichen Kombinationen zu verwenden. Die wichtigsten, die verwendet werden, sind die folgenden:
755 -
Owner
hat alles undGroup
undOther
kann lesen und ausführen700 -
Owner
hat alles644 -
Owner
kann lesen und schreiben undGroup
undOther
kann lesen600 -
Owner
kann lesen und schreibenUnd wenn Sie nicht-triviale Benutzergruppen verwenden:
775 -
Owner
kann lesen und schreiben undGroup
undOther
kann lesen770 -
Owner
undGroup
haben alle undOther
können lesen und ausführen750 -
Owner
hat alles undGroup
kann lesen und ausführen664 -
Owner
undGroup
kann lesen und schreiben undOther
kann nur lesen660 -
Owner
undGroup
kann lesen und schreiben640 -
Owner
kann lesen und schreiben undGroup
kann lesen777 und 666 werden selten verwendet, außer in / tmp.
Vielen Dank, Ilmari Karonen, für den Hinweis auf die gebräuchlichen!
quelle
Lauf:
Um es nicht ausführbar zu machen, führen Sie Folgendes aus:
Ich habe zum Beispiel folgende
.sh
Datei erstellt:Nachdem ich einen Code im vi-Editor geschrieben habe, beende ich den vi-Editor:
quelle