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?
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?
Antworten:
Sie können die Datei als ausführbar markieren:
chmod +x filename.sh
Sie können es dann folgendermaßen ausführen:
./filename.sh
Wenn Sie einen anderen Befehl zum Starten verwenden möchten, können Sie einen Alias hinzufügen:
gedit ~/.bashrc
Fügen Sie dies am Ende der Datei hinzu:
alias <new name>='/home/<full path to script>/filename.sh'
Ö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.
./filename.sh
und nicht nur filename.sh
?
filename
und nicht./filename
./filename.sh
eine Datei im aktuellen Verzeichnis und using filename.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 ist 010
. Execute by other ist 001
Schreiben von Benutzer ist 200
. Schreiben nach Gruppe ist 020
. Schreiben von anderen ist 002
.
Vom Benutzer gelesen wird 400
. Gelesen von Gruppe ist 040
. Gelesen von anderen ist 004
.
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
und 010
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 und Group
und Other
kann lesen und ausführen
700 - Owner
hat alles
644 - Owner
kann lesen und schreiben und Group
und Other
kann lesen
600 - Owner
kann lesen und schreiben
Und wenn Sie nicht-triviale Benutzergruppen verwenden:
775 - Owner
kann lesen und schreiben und Group
und Other
kann lesen
770 - Owner
und Group
haben alle und Other
können lesen und ausführen
750 - Owner
hat alles und Group
kann lesen und ausführen
664 - Owner
und Group
kann lesen und schreiben und Other
kann nur lesen
660 - Owner
und Group
kann lesen und schreiben
640 - Owner
kann lesen und schreiben und Group
kann lesen
777 und 666 werden selten verwendet, außer in / tmp.
Vielen Dank, Ilmari Karonen, für den Hinweis auf die gebräuchlichen!
Lauf:
chmod +x /path/to/file.sh
Um es nicht ausführbar zu machen, führen Sie Folgendes aus:
chmod -x /path/to/file.sh
Ich habe zum Beispiel folgende .sh
Datei erstellt:
vi tester12.sh
Nachdem ich einen Code im vi-Editor geschrieben habe, beende ich den vi-Editor:
:wq!
chmod +x tester12.sh
./tester12.sh