Wie macht man eine Datei (z. B. ein .sh-Skript) ausführbar, so dass sie von einem Terminal aus gestartet werden kann?
Ich habe eine Datei script.sh, und der Typ dieser Datei ist eine Shellscript-Datei. Ich möchte diese Datei als Anwendung/x-ausführbare Datei erstellen. Wie kann ich das machen?
252
3
Sie können die Datei als ausführbar markieren:
Sie können sie dann wie folgt ausführen:
Wenn Sie einen anderen Befehl zum Starten verwenden möchten, können Sie einen Alias hinzufügen:
Fügen Sie diesen am Ende der Datei ein:
Öffnen Sie eine neue Terminalsitzung oder geben Sie
source ~/.bashrc
in Ihr Terminal ein, um es anzuwenden. Verwenden Sie dann einfach den neuen Namen, um das Skript zu starten.Es gibt zwei Möglichkeiten, eine Datei ausführbar zu machen:
GUI-Methode:
Gehen Sie auf die Registerkarte "Berechtigungen" und markieren Sie das Kästchen "Ausführen": [ ] Ausführen der Datei als Programm zulassen.
Terminal / Befehlsmethode:
Sie können entweder verwenden:
cd /zu/mein/erforderliches/Verzeichnis
Dann führen Sie
chmod +x dateiname.extension`
Oder führen Sie einfach aus:
chmod +x /pfad/zu/ihr/dateiname.extension
chmod
hat auch einige erweiterte Optionen:Die Leerzeichen zeigen an, dass es aufgeteilt ist:
- rwx --- ---
Der erste Satz von
---
ist Benutzer. Die zweite ist Gruppe und die letzte ist Andere (jeder andere)r steht für Read (Lesen), w für Write (Schreiben) und x für eXecute (Ausführen).
Wenn man also allen das Lesen, aber nur der Gruppe das Ausführen und dem Benutzer das Lesen und Schreiben (aber aus irgendeinem Grund nicht das Ausführen) erlauben würde, wäre das so:
-rw- rx- r--
Aber dies würde dem Befehl hinzugefügt werden als:chmod +rw-rx-r-- /pfad/zu/datei.extension".
Auch
chmod
kann dies in Zahlen tun. Es basiert auf Binärzahlen (ich denke, da es 1,2 und 4 ist)Es gibt also diese Zahlen:
Ausführen nach Benutzer ist
100
. Ausführen durch Gruppe ist010
. Ausführen durch andere ist 001Schreiben durch Benutzer ist
200
. Schreiben durch Gruppe ist020
. Schreiben durch andere ist002
.Lesen durch Benutzer ist
400
. Lesen durch Gruppe ist040
. Lesen durch andere ist004
.Dann addieren Sie diese Werte, um die gewünschte Kombination zu erhalten.
Wenn man also allen das Lesen erlaubt, aber nur der Gruppe das Ausführen und dem Benutzer das Schreiben (aber aus irgendeinem Grund nicht das Ausführen), würde das bedeuten:
400 + 040 + 004
und010
und200
Das macht zusammen 600 + 050 + 004 = 654.
Sie könnten dann den Befehl ausführen.
chmod +654 /pfad/zu/datei.extension" ausführen, um sie zu setzen.
Und um alle Berechtigungen zu setzen, können Sie eingeben:
chmod +rwxrwxrwx /pfad/zu/datei.erweiterung
Oder (das ist etwas einfacher zu schreiben, aber schwieriger, sich jeden einzelnen Eintrag zu merken):
chmod +777 /pfad/zu/datei.erweiterung
Schließlich können Sie tun:
chmod -777 /pfad/zu/datei.erweiterung
Um alle Berechtigungen für alle zu entfernen.
Und:
chmod +300 /pfad/zu/datei.extension
So fügen Sie Lese- und Schreibrechte für den Benutzer hinzu, ohne andere Berechtigungen (z. B. Ausführungsberechtigungen) zu beeinträchtigen.
2f dieser Website2 gibt es ein sehr nützliches kleines Raster mit Kontrollkästchen, in dem Sie die gewünschten Optionen ankreuzen können, um den Befehl zu erhalten:
Allerdings sind nicht alle möglichen Kombinationen sinnvoll; die wichtigsten, die verwendet werden, sind die folgenden:
755 -
Owner
hat alle, undGroup
undOther
können lesen und ausführen700 -
Besitzer
hat alles644 -
Owner
kann lesen und schreiben, undGroup
undOther
können lesen600 -
Owner
kann lesen und schreibenUnd, wenn Sie nicht-triviale Benutzergruppen verwenden:
775 -
Owner
kann lesen und schreiben, undGroup
undOther
können lesen770 -
Owner
undGroup
haben alle, undOther
kann lesen und ausführen750 -
Besitzer
hat alles, undGruppe
kann lesen und ausführen664 -
Owner
undGroup
können lesen und schreiben, undOther
kann nur lesen660 -
Besitzer
undGruppe
können lesen und schreiben640 -
Eigentümer
kann lesen und schreiben, undGruppe
kann lesen777 und 666 werden selten benutzt, außer in /tmp.
Danke Ilmari Karonen für den Hinweis auf die üblichen Verwendungen!
Meine Pronomen sind Er / Er
Laufen:
Um es unausführbar zu machen, führen Sie aus:
Zum Beispiel habe ich eine
.sh
Datei erstellt:Nachdem ich etwas Code im vi-Editor geschrieben habe, werde ich den vi-Editor verlassen: