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?

Lösung

Sie können die Datei als ausführbar markieren:

chmod +x filename.sh

Sie können sie dann wie folgt 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 diesen am Ende der Datei ein:

alias ='/home//filename.sh'

Ö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.

Kommentare (5)

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 ist 010. Ausführen durch andere ist 001

Schreiben durch Benutzer ist 200. Schreiben durch Gruppe ist 020. Schreiben durch andere ist 002.

Lesen durch Benutzer ist 400. Lesen durch Gruppe ist 040. Lesen durch andere ist 004.

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 und 010 und 200

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, und Group und Other können lesen und ausführen

700 - Besitzer hat alles

644 - Owner kann lesen und schreiben, und Group und Other können lesen

600 - Owner kann lesen und schreiben

Und, wenn Sie nicht-triviale Benutzergruppen verwenden:

775 - Owner kann lesen und schreiben, und Group und Other können lesen

770 - Owner und Group haben alle, und Other kann lesen und ausführen

750 - Besitzer hat alles, und Gruppe kann lesen und ausführen

664 - Owner und Group können lesen und schreiben, und Other kann nur lesen

660 - Besitzer und Gruppe können lesen und schreiben

640 - Eigentümer kann lesen und schreiben, und Gruppe kann lesen

777 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

Kommentare (2)

Laufen:

chmod +x /path/to/file.sh

Um es unausführbar zu machen, führen Sie aus:

chmod -x /path/to/file.sh

Zum Beispiel habe ich eine .sh Datei erstellt:

vi tester12.sh

Nachdem ich etwas Code im vi-Editor geschrieben habe, werde ich den vi-Editor verlassen:

:wq!
chmod +x tester12.sh
./tester12.sh
Kommentare (0)