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 ~/.bashrcIhr Terminal ein, um sich zu bewerben. Verwenden Sie dann einfach den neuen Namen, um das Skript zu starten.
./filename.shund nicht nur filename.sh?
filenameund nicht./filename
./filename.sheine Datei im aktuellen Verzeichnis und using filename.sheine 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/bashals 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.shwelches 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
chmoddas 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 + 004und 010und200
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 - Ownerhat alles und Groupund Otherkann lesen und ausführen
700 - Ownerhat alles
644 - Ownerkann lesen und schreiben und Groupund Otherkann lesen
600 - Ownerkann lesen und schreiben
Und wenn Sie nicht-triviale Benutzergruppen verwenden:
775 - Ownerkann lesen und schreiben und Groupund Otherkann lesen
770 - Ownerund Grouphaben alle und Otherkönnen lesen und ausführen
750 - Ownerhat alles und Groupkann lesen und ausführen
664 - Ownerund Groupkann lesen und schreiben und Otherkann nur lesen
660 - Ownerund Groupkann lesen und schreiben
640 - Ownerkann lesen und schreiben und Groupkann 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 .shDatei 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