Ich möchte das Ubuntu-Analog einer "Batch-Datei" (ein Shell-Skript) schreiben. Aber ich weiß nicht, wie ich den Befehl verwenden soll, damit das Skript ausgeführt werden kann. Ich weiß auch nicht, wo ich es verwenden soll.chmod +x filename
permissions
scripts
chmod
executable
execute-command
user265696
quelle
quelle
chmod
trifft nicht wirklich auf diese Betriebssysteme zu und "Batch-Datei" war in Anführungszeichen . Das OP hier (zuletzt gesehen 2014) wollte so etwas wie eine Batch-Datei schreiben und ausführen. Anders als in Unix-ähnlichen Betriebssystemen müssen Windows- (und DOS-) Benutzer nichts anderes verwendenchmod +x
, um es zu erstellen, damit sie ihre Skripte genauso starten können, wie sie ausführbare Binärdateien starten. Ich habe ein wenig bearbeitet, um die Frage zu klären, und ich stimme für die Wiedereröffnung.Antworten:
Zusamenfassend:
chmod +x
Für eine Datei (Ihr Skript) bedeutet dies nur, dass Sie sie ausführbar machen. Klicken Sie mit der rechten Maustaste auf Ihr Skript und wählen Sie Eigenschaften -> Berechtigungen -> Datei als Programm ausführen lassen. Sie erhalten genau das gleiche Ergebnis wie der Befehl im Terminal.Wenn sich eine Datei, für die Sie Berechtigungen ändern möchten, im Systemverzeichnis befindet, müssen Sie möglicherweise
root
wie folgt vorgehen: ( Seien Sie vorsichtig, während Sie densudo
Befehl verwenden.)Auch ist nicht klar, was genau Sie hier archivieren wollen. Bitte bearbeiten Sie Ihre Frage und machen Sie nähere Angaben zum eigentlichen Problem!
Sie können auch auf diese Frage beziehen, für weitere Informationen: chmod u + x ‚versus‘ chmod + x
In Long:
Geben Sie
man chmod
ein Terminalfenster ( Ctrl+ Alt+ T) ein und Sie erhalten die folgende Ausgabe:NAME: chmod - Ändert die Dateimodusbits
ZUSAMMENFASSUNG
BESCHREIBUNG
SETUID UND SETGID BITS
OPTIONEN
quelle
chmod u+x
würde es nur für Sie ausführbar machenZunächst muss Ihr Skript deklarieren, welcher Interpreter verwendet werden soll. Sie tun dies in der ersten Zeile der Datei. Wenn es ein Shell-Skript ist, sollte es
#!/bin/sh
oder sein#!/bin/bash
.Hier ist ein Skript, das Ihren Benutzernamen schreibt: echo-whoami.sh
#!/bin/sh echo $(whoami)
Verwenden Sie, um es ausführbar zu machen
chmod +x echo-whoami.sh
. Dann können Sie es mit ausführen./echo-whoami.sh
.quelle
Eine Batch-Datei und ein Shell-Skript sind zwei Begriffe, die unter Linux praktisch dasselbe bedeuten. Der Begriff Skript wird jedoch weitaus häufiger verwendet .
Die einfachste Shell-Skriptdatei enthält nur Befehle, wie Sie sie in der Befehlszeile eingeben (dh den Bash-Befehlsinterpreter). Theoretisch können Sie den Dolmetscher sogar durch eine beliebige Sprache ersetzen (und einen Dolmetscher dafür haben). Um genauer zu sein, wird empfohlen, dass Sie Ihre erste Zeile mit beginnen
#!/bin/sh
(wenn Sie nicht die maximale Portabilität mit Legacy-Systemen erreichen möchten)oder
#!/bin/bash
(Wenn Sie einige zusätzliche Funktionen wünschen, ist es Ihnen heute wahrscheinlich egal.)Nach dieser Zeile geben Sie Ihre Befehle ein, einen in jeder Zeile. Es gibt viele zusätzliche Konstrukte über den Rahmen dieser Fragen finden
man bash
oder http://www.tldp.org/LDP/Bash-Beginners-Guide/Bash-Beginners-Guide.pdf (für Anfänger) oder http: // www .tldp.org / LDP / abs / abs-guide.pdf (für weitergehende Fragen).Um Ihr Skript tatsächlich auszuführen , müssen zwei Voraussetzungen erfüllt sein: Erstens muss der Interpreterprozess die Datei lesen und zweitens prüft er, ob sie als ausführbar markiert ist . Aus praktischen Gründen ist es auch nützlich, in Ihr Skript schreiben zu können (damit Sie Änderungen vornehmen oder Korrekturen vornehmen können, die erforderlich sein sollten).
Angenommen, Sie möchten, dass Teammitglieder und andere Benutzer Ihr Skript ausführen (und anzeigen) können, möchten jedoch nicht, dass sie es manipulieren. Dies ist die Kombination aus
a+x
oder+x
, wiea
die Standardeinstellung),a+r
oder+r
, wie aucha
hier der Standard),u=w
)sind normalerweise sinnvolle Werte Ihrer Dateiberechtigungen. Sie können die einzelnen Aktionen verkettet und mit einem Komma getrennt eingeben.
Diese "Aktionssprache" ist zwar sehr faszinierend (beachten Sie die Unterschiede zwischen dem
+
und dem=
Operator, die je nach Berechtigungseinstellung zu unterschiedlichen Ergebnissen führen, bevor Sie sie ändern), sie sind jedoch mühsam einzugeben.Da alle Aktionen Bitmasken erstellen, die intern angewendet werden, können Sie die Bitmasken (siehe
man chmod
Details) auch direkt eingeben .Für ein Shellscript chmod 755 ist myscript.sh in mindestens 95% aller Fälle am sinnvollsten.
quelle