So führen Sie eine .sh-Datei unter Linux aus

Eine .sh-Datei unter Linux ist ein ausführbares Shell-Skript, das eine Reihe von Befehlen enthält, die nacheinander ausgeführt werden. Solche Skripte kommen häufig zum Einsatz, um komplexe Vorgänge zu vereinfachen, Aufgaben zu automatisieren und Programme auszuführen.

Wenn Sie ein Linux-System verwalten, ist es wichtig zu wissen, wie Sie ein Shell-Skript erstellen und ausführen. Dadurch wird die Administration effizienter und weniger fehleranfällig.

In dieser Anleitung erfahren Sie, wie Sie eine .sh-Datei unter Linux über die Befehlszeile und die grafische Benutzeroberfläche ausführen. Außerdem erklären wir, wie Sie eine solche Datei erstellen und die richtigen Berechtigungen für eine reibungslose Ausführung festlegen.

Kurzfassung

  • Erstellen Sie ein Skript, fügen Sie einen Shebang wie #!/bin/bash hinzu und speichern Sie die Datei mit der Erweiterung .sh.
  • Erteilen Sie der Datei vor der Ausführung mit sudo chmod +x script.sh oder über das Menü Berechtigungen der grafischen Benutzeroberfläche die Ausführungsberechtigung.
  • Führen Sie das Skript anschließend mit ./script.sh aus, übergeben Sie es an bash oder sh, führen Sie es mit runuser als anderer Benutzer aus oder lassen Sie es mit & oder nohup im Hintergrund weiterlaufen.

Was ist eine .sh-Datei?

Eine .sh-Datei, auch Shell-Skript genannt, ist eine ausführbare Datei, die eine Reihe von Befehlen enthält. Bei der Ausführung liest die Shell bzw. der Befehlszeileninterpreter den Dateiinhalt ein und führt die Befehle nacheinander aus.

.sh-Dateien werden häufig in der Systemadministration eingesetzt und bieten unter anderem folgende Vorteile:

  • Effizienz – Anstatt mehrere Befehle einzeln auszuführen, können Sie eine komplexe Aufgabe mit einem einzigen Shell-Skript erledigen.
  • Konsistenz – Eine .sh-Datei führt stets dieselbe Aufgabe aus und liefert dieselbe Ausgabe. Dadurch lassen sich menschliche Fehler auf ein Minimum reduzieren.
  • Automatisierung – Mit einem Cronjob können Sie eine .sh-Datei in bestimmten Zeitabständen oder zu einem bestimmten Zeitpunkt automatisch ausführen und so wiederkehrende Aufgaben vereinfachen.
  • Wiederverwendbarkeit – Sie können eine .sh-Datei einfach mit anderen Teammitgliedern teilen oder in einem anderen Projekt erneut verwenden, um dieselbe Aufgabe auszuführen.
  • Wartbarkeit – .sh-Dateien lassen sich einfach bearbeiten, testen und debuggen, da sie anderen Textdateien ähneln.

Wie erstellen Sie eine .sh-Datei?

Die Schritte zum Erstellen einer .sh-Datei sind unabhängig vom verwendeten Linux-Betriebssystem gleich. Sie unterscheiden sich jedoch je nachdem, ob Sie die Befehlszeile oder eine grafische Benutzeroberfläche (GUI) verwenden.

Erstellen einer .sh-Datei mit Befehlen

Bevor Sie eine .sh-Datei erstellen, öffnen Sie das Terminal Ihres Systems, um auf die Befehlszeilenschnittstelle (CLI) zuzugreifen. Wenn Sie mit einem Linux-Remote-Server arbeiten, stellen Sie über PuTTY oder das Terminal eine SSH-Verbindung her.

Alternativ können Benutzer von Hostinger Linux-VPS-Hosting über das Browser-Terminal von hPanel direkt im Browser eine Verbindung zu ihrem Server herstellen.

Sobald die Verbindung hergestellt ist, führen Sie die folgenden Schritte aus, um ein neues Shell-Skript zu erstellen:

  1. Führen Sie den folgenden Befehl aus, um eine leere .sh-Datei zu erstellen. Ersetzen Sie script durch den gewünschten Namen:
sudo touch script.sh
  1. Öffnen Sie die neue Datei mit Ihrem bevorzugten Texteditor. In dieser Anleitung verwenden wir Nano:
sudo nano script.sh
  1. Fügen Sie am Anfang der Datei die folgende Shebang-Zeile ein. Sie gibt an, welchen Shell-Interpreter das System zum Einlesen des Dateiinhalts verwenden soll. In diesem Beispiel erstellen wir ein Bash-Skript:
#!/bin/bash
  1. Fügen Sie in den nächsten Zeilen die Befehle in der Reihenfolge ein, in der sie ausgeführt werden sollen. Das kann beispielsweise so aussehen:
# Update the repo

sudo apt update

# Install available updates

sudo apt upgrade
  1. Drücken Sie Strg + X, Y und anschließend Enter, um die Datei zu speichern.

Important

Der Shell-Interpreter Ihres Systems ignoriert Zeilen, die mit einem Rautezeichen (#) beginnen. Eine Ausnahme bildet der Shebang. Solche Zeilen werden häufig für Kommentare oder Anmerkungen verwendet, die beim Lesen oder Bearbeiten des Skripts zusätzlichen Kontext bieten.

Erstellen einer .sh-Datei über die grafische Benutzeroberfläche

So erstellen Sie eine .sh-Datei über die grafische Benutzeroberfläche auf Ihrem Linux-Desktop. Die allgemeine Vorgehensweise ist unabhängig von der Distribution gleich, die Position der Schaltflächen kann jedoch geringfügig abweichen.

In dieser Anleitung zeigen wir Ihnen die Vorgehensweise unter Ubuntu:

  1. Klicken Sie im Launcher Ihres Desktops auf Anwendungen anzeigen.
  1. Wählen Sie Texteditor.
  2. Geben Sie den Shebang und Ihre Befehle ein. Klicken Sie auf Speichern.
  1. Wählen Sie den Speicherort für das Skript aus. Klicken Sie zur Bestätigung auf Speichern.
  2. Geben Sie einen Namen für Ihr Skript ein. Achten Sie darauf, dass der Dateiname mit der Erweiterung .sh endet.
  3. Klicken Sie auf Speichern.

Berechtigungen zum Ausführen einer .sh-Datei festlegen

Aus Sicherheitsgründen können Sie .sh-Dateien unter Linux standardmäßig nicht ausführen. Vor der Ausführung müssen Sie die entsprechenden Berechtigungen festlegen.

Um die Datei ausführbar zu machen, erteilen Sie ihr mit dem Befehl chmod wie folgt die entsprechende Berechtigung. Ersetzen Sie den Dateinamen entsprechend:

sudo chmod +x script.sh

Beachten Sie, dass dieser Befehl die Ausführungsberechtigung nur dem Dateieigentümer oder Ersteller erteilt. Ein anderer Benutzer kann das Skript daher nicht als Programm ausführen, sofern er nicht sudo verwendet.

Important

Sie können allen Benutzern Ausführungsrechte erteilen, aus Sicherheitsgründen empfehlen wir dies jedoch nicht. Am besten machen Sie ein Bash-Skript nur für den Eigentümer ausführbar.

Sie können die Berechtigungen Ihrer .sh-Datei auch über die grafische Benutzeroberfläche ändern. Unter Ubuntu gehen Sie beispielsweise folgendermaßen vor:

  1. Klicken Sie mit der rechten Maustaste auf Ihre .sh-Datei und wählen Sie Eigenschaften.
  2. Wählen Sie die Registerkarte Berechtigungen.
  1. Aktivieren Sie das Kontrollkästchen Datei als Programm ausführen.
  2. Schließen Sie das Dialogfenster.

Auch wenn Sie eine .sh-Datei ausführen können, lassen sich unter Umständen nicht alle darin enthaltenen Befehle erfolgreich ausführen. Während der Ausführung des Skripts kann weiterhin ein Berechtigungsfehler auftreten.

Das ist der Fall, wenn der aktuelle Benutzer nicht über ausreichende Berechtigungen verfügt, um Befehle auszuführen oder ein in der .sh-Datei angegebenes Element zu ändern.

Führen Sie eine .sh-Datei aus

Je nach Anwendungsfall gibt es verschiedene Möglichkeiten, eine .sh-Datei auszuführen. In diesem Abschnitt behandeln wir vier der gängigsten Methoden.

Führen Sie eine .sh-Datei regulär aus

Am einfachsten führen Sie eine .sh-Datei aus, indem Sie ihren Namen wie folgt in die Befehlszeile eingeben:

./script.sh

Dieser Befehl funktioniert nur, wenn sich Ihre .sh-Datei im aktuellen Verzeichnis befindet. Liegt das Skript in einem anderen Ordner, geben Sie den vollständigen Pfad an:

./path/to/folder/script.sh

Wenn Sie eine grafische Benutzeroberfläche verwenden, können Sie eine .sh-Datei ausführen, indem Sie mit der rechten Maustaste darauf klicken und Als Programm ausführen wählen.

Diese Methode ist zwar einfach, hat jedoch den Nachteil, dass Ihr Skript nur mit dem im Shebang angegebenen Shell-Interpreter ausgeführt werden kann.

Verwenden Sie einen bestimmten Interpreter

In einigen Fällen müssen Sie Ihr Shell-Skript mit einem bestimmten Interpreter ausführen. Das ist beispielsweise nützlich, wenn Sie keine Berechtigung haben, die Datei selbst auszuführen.

Ausführen einer nicht ausführbaren .sh-Datei

Sie können ein nicht ausführbares Skript dennoch ausführen, indem Sie den Shell-Interpreter explizit angeben. Dabei wird die Datei jedoch nicht als Programm ausgeführt. Der Interpreter liest lediglich ihren Inhalt ein.

Dies stellt kein Sicherheitsrisiko dar, da der Benutzer weiterhin über die Berechtigungen verfügen muss, die im Skript angegebenen Befehle auszuführen und Dateien zu ändern.

Um Ihre .sh-Datei mit einer bestimmten Shell auszuführen, geben Sie diese am Anfang des Befehls an. Dadurch wird der im Shebang angegebene Interpreter überschrieben.

Es gibt verschiedene Shell-Interpreter mit unterschiedlichem Verhalten. Die beiden unter Linux am häufigsten verwendeten sind sh und dessen moderne Version bash. Wenn Sie ein Skript mit einer dieser Shells ausführen, sehen die Befehle folgendermaßen aus:

bash script.sh

sh script.sh

Führen Sie eine .sh-Datei als anderer Benutzer aus

Systemadministratoren führen .sh-Dateien aus verschiedenen Gründen unter einem bestimmten Benutzerkonto oder als Mitglied einer bestimmten Gruppe aus. Wenn beispielsweise ein bestimmtes Konto ausschließlich für die Ausführung von Skripten für viele ähnliche Vorgänge vorgesehen ist, lässt sich die Aufgabenverwaltung vereinfachen.

Aus Sicherheitsgründen empfiehlt es sich außerdem, eine .sh-Datei als Dateieigentümer und nicht als root auszuführen. Dadurch vermeiden Sie übermäßige Berechtigungen während der Ausführung, die andere Teile des Systems beschädigen können.

Ein Beispiel: Sie führen ein Skript aus, das ein Verzeichnis bereinigt, aber die Variable für den Pfad fehlt. Wenn Sie diese .sh-Datei als root ausführen, löschen Sie das Verzeichnis /home. Bei einem Benutzer ohne Root-Rechte geschieht dies nicht, da dessen Berechtigungen dafür nicht ausreichen.

Um eine .sh-Datei als anderer Benutzer auszuführen, verwenden Sie die folgende Befehlssyntax:

runuser -u [username] -- [/path/to/script.sh]

Wenn Sie beispielsweise ein Überwachungsskript als Benutzer cron ausführen möchten, sieht der Befehl folgendermaßen aus:

runuser -u cron --/program/automation/monitoring.sh

Wenn Sie eine .sh-Datei als Mitglied einer bestimmten Gruppe ausführen möchten, fügen Sie dem obigen Befehl einfach die Option -g hinzu:

runuser -u cron -g automation --/program/automation/monitoring.sh

Im obigen Beispiel führen wir das Skript monitoring.sh als Benutzer cron in der Gruppe automation aus.

Führen Sie ein Skript im Hintergrund aus

Standardmäßig werden .sh-Dateien in der Shell Ihres Hauptterminals ausgeführt. Das kann problematisch sein, wenn Sie ein Skript ausführen, das dauerhaft laufen muss, beispielsweise zur Überwachung oder Protokollierung.

Führen Sie die .sh-Datei in diesem Fall im Hintergrund aus. So können Sie die Shell Ihres Hauptterminals weiterhin verwenden, während das Skript läuft. Am einfachsten hängen Sie dazu ein kaufmännisches Und-Zeichen (&) an das Ende des Befehls an:

./script.sh &

Das Terminal gibt die Prozess-ID des Skripts aus. Mit dieser ID können Sie den Prozess später mit dem Befehl kill beenden.

Wenn das Skript auch nach dem Schließen des Terminals im Hintergrund weiterlaufen soll, können Sie den Befehl nohup verwenden:

nohup ./script.sh &

Eine besser strukturierte Möglichkeit, ein Skript im Hintergrund auszuführen, bietet ein Terminal-Multiplexer wie GNU Screen oder tmux. Ein solches Tool erstellt eine virtuelle Shell, die auch nach dem Trennen der SSH-Verbindung weiterlaufen kann.

Fazit

Eine .sh-Datei ist ein ausführbares Skript, das eine Reihe von Befehlen enthält. Unter Linux wird sie hauptsächlich verwendet, um komplexe Vorgänge zu vereinfachen, Programme auszuführen und Aufgaben zu automatisieren.

Um eine .sh-Datei zu erstellen, verwenden Sie den Befehl touch und fügen anschließend mit einem Texteditor wie Nano die gewünschten Befehle hinzu. Wenn Sie eine grafische Benutzeroberfläche verwenden, öffnen Sie einen Texteditor, schreiben Sie Ihr Skript und speichern es am gewünschten Ort.

Machen Sie die .sh-Datei anschließend ausführbar, indem Sie ihr mit dem Befehl chmod die entsprechende Berechtigung erteilen. In der grafischen Benutzeroberfläche können Sie die Berechtigung über die Registerkarte Berechtigungen im Menü Eigenschaften der Datei festlegen.

Führen Sie das .sh-Skript aus, indem Sie seinen Namen im Linux-Terminal eingeben. Alternativ können Sie es explizit an einen Shell-Interpreter wie bash übergeben. Wenn Sie die grafische Benutzeroberfläche verwenden, klicken Sie mit der rechten Maustaste auf die Datei und wählen Sie Als Programm ausführen.

Häufig gestellte Fragen (FAQ) zu .sh-Dateien

Was ist eine .sh-Datei?

Eine .sh-Datei unter Linux ist eine ausführbare Datei, die eine Reihe von Befehlen enthält. Dabei handelt es sich um ein Skript, das festlegt, welche Aktionen die Befehlszeile Ihres Systems nacheinander ausführen soll.

Eine solche Datei eignet sich zur Automatisierung von Aufgaben, zum Ausführen von Programmen und zur Vereinfachung der Befehlsausführung. Sie spart Zeit und Aufwand und trägt dazu bei, menschliche Fehler zu reduzieren.

Welche Berechtigungen benötigt eine .sh-Datei?

Eine .sh-Datei benötigt für eine ordnungsgemäße Ausführung alle Berechtigungen: Lesen, Schreiben und Ausführen. Damit können Sie das Skript anzeigen, bearbeiten und ausführen.

Aus Sicherheitsgründen erteilen Sie diese Berechtigungen jedoch in der Regel nur dem Dateieigentümer. Andere Benutzer können die Datei mit sudo ausführen.

Kann ich eine .sh-Datei mit jedem Texteditor bearbeiten?

Ja. Ein Bash-Skript mit der Dateiendung .sh lässt sich wie andere Textdateien mit verschiedenen Texteditoren bearbeiten. Sie können es beispielsweise mit Nano, Vim, Gedit und anderen Texteditoren öffnen.

Achten Sie jedoch darauf, dass Sie über die Schreibberechtigung für die .sh-Datei verfügen. Andernfalls können Sie sie nicht bearbeiten.

Dieser Artikel ist eine lokalisierte Version von How to run the .sh file in Linux, der ursprünglich in englischer Sprache veröffentlicht wurde.

Alle Tutorial-Inhalte auf dieser Website unterliegen Hostingers strengen redaktionellen Standards und Normen.

Author
Erstellt von

Faradilla Ayunindya

Faradilla, auch bekannt als Ninda, ist Content Marketing Specialist bei Hostinger mit über fünf Jahren Erfahrung und einem zehnjährigen Hintergrund als Linguistin. Sie möchte Technologie für alle zugänglich machen, indem sie komplexe Anleitungen in klare und leicht verständliche Schritt-für-Schritt-Guides verwandelt. In ihrer Freizeit interessiert sie sich für Biowissenschaften oder schaut gerne lustige Tiervideos. Vernetzen Sie sich mit ihr auf LinkedIn.

Trusted by 4+ million website owners worldwide

See our 73.143 reviews on Trustpilot

Comments

0 responses

Write a response

Please fill the required fields.Bitte akzeptieren Sie die Datenschutzklausel.Bitte füllen Sie die erforderlichen Felder aus und akzeptieren Sie die Datenschutzklausel.

Thank you! Your comment has been successfully submitted. It will be approved within the next 24 hours.