Wozu ist ein Shell-Skript nützlich?

4 Antworten

EIn Shell-Script ist unter Linx das, was unter DOS die BAT-Dateien waren oder sind.

Es ist aber deutlich leistungsfähiger. Wenn man sich durch die etwas gewöhnungsbedürtige (um nicht "perverse" zu sagen) Programmierstruktur gearbeitet hat, so hat man ein Werkzeug, welches einem viel Arbeit ersparen kann.

Es wurde schon gesagt: Automation

Ich habe das bei einem Server genutzt, der im Internet ein Forum betrieben hat. Dieser Server wurde durch Bots angegriffen, die immer versuchten, sich dort zu registrieren und dann Posts zu erstellen. Die Registrierung klappte nicht, aber es wurde dann in Sekundenabständen immer wieder versucht, und dies brachte den Server an die Grenzen seiner Leistungsfähigkeit.

Ein solche Script (heruntergeladen) wurde dann angepasst, und IP-Adressen, die innerhalb einer kurzen Zeit mehrfach registrieren wollten wurden in der Firewall blockiert. Dadurch wurde der Server wieder ganz normal ausgelastet und zugreifbar.

Andere Scripte können auf das Anstecken von USB-Geräten reagieren, und vieles mehr.

Für alles was man mehr als einmal macht und/oder "per Hand" ausgeführt, die Gleichung Skript-Entwicklungszeit <= manuelle Ausführungszeit gilt.

Und manchmal kommt der "Boring"-Faktor dazu und dann macht man etwas über ein Skript nur deswegen, weil langweilige manuelle Tätigkeiten auch fehlerträchtig und eben "langweilig" sind.

Beispiel: 25.000 Dateien einer Musiksammlung auf doppelte Leerzeichen im Dateinamen zu untersuchen und falls welche da sind, sie zu entfernen, macht "manuell" einfach keinerlei Spaß (und erfüllt obendrein noch oben genannte Ungleichung)

eine Shell ist eine Software, die eine Schnittstelle zwischen dem Kern eines Betriebssystems (das die Programme ausführt) und dem Menschen darstellt.

Eine Shell nimmt das, was man über eine Tastatur eingibt entgegen in leitet es an den Kern (Kernel) weiter.
Es gibt für unixoide Systeme ( Unix, Linux, MAC-OS ... ) mehrere Programme die als Shell arbeiten.
Solche Shell's können auch Elemente von Programmiersprachen verstehen und ausführen. Zu diesen Elementen gehören Entscheidungen und Schleifen, so dass sie auch Funktionen in Abhängigkeit von .... , wie auch Wiederholungen ausführen können.

Man kann also mit Shell-Befehlen auch komplizierte Programme entwerfen und ausführen lassen.

Wenn man das immer erst über eine Tastatur eingeben muss, ist das wenig effektiv, zeitraubend und auch nervenraubend.

Es ist also sehr günstig, alle die für ein Programm notwendigen Shell-Befehle in eine Datei zu schreiben und der Shell anzuweisen, die Befehle Zeile für Zeile aus der Datei zu lesen und so auszuführen, als würde man sie über die Tastatur eingeben.

Programme, die man Befehl für Befehl in eine Datei schreibt, nennt man Shell-Script.

Script, weil das zwar ein Programm ist, aber eins, das man wie ein Schriftstück lesen kann. (Im Gegensatz dazu ein Programm als Binary, das die Befehle enthält, die eine CPU versteht, für den Menschen aber eigentlich unlesbar ist)

Woher ich das weiß:Berufserfahrung – openSuSE seit 1995

Damit lassen sixch wiederhiolende Aufgaben automatiseren, angefanen von der Speicherbereinigung (Es gehen keine daten verloren nur Duplikate werden entfernt und unzusammenhängene freie Sektoren auf der HDD gebilden was bei einer SSD überflüssig ist weil die keinen lesekopf besizt)

Eine SSD kann mans sic als permanentes EPROM vorstellen das die <daten anders als Magnetisch mit tausenden Trsnsistoren funktioniert und Strom eine Weile speichert, bis die CPU ein Bayte verartbeiten kann mit den registern der CPU.

Es gibt Hallengroße Hauptrechententren.

Woher ich das weiß:Berufserfahrung – Entwickler bei W3C seit 2019