• Teilen
  • Bookmark "Shell-Skripte" auf del.icio.us
  • Bookmark "Shell-Skripte" auf Digg
  • Bookmark "Shell-Skripte" auf Reddit
  • Bookmark "Shell-Skripte" auf StumbleUpon
  • Bookmark "Shell-Skripte" auf Facebook
  • Bookmark "Shell-Skripte" auf Twitter
  • Bookmark "Shell-Skripte" auf Slashdot

Shell-Skripte

Oft ist die Rede von sogenannten Shell- oder Bash-Skripten. Doch wie geht man mit dem Code dieser Skripte um? In dieser Anleitung erfährst du, wie du Shell-Skripte speichern, ausführbar machen und schließlich verwenden kannst. Dazu gehört u.a. das Anlegen eines eigenen Skript-Ordners.

Softwarevoraussetzungen: Editor | Dateirechte | Ordner/Dateien anlegen
Schwierigkeitsgrad: Mittel
Ausgetestet mit folgenden Betriebssystemen: Ubuntu (Jaunty, Karmic, Lucid, Lucid++) | Debian (Lenny, Squeeze) | teilweise auch andere Distributionen

Achtung! sudo: In dieser Anleitung verdeutlicht der Befehl sudo, dass die folgende Codezeile mit Root-Rechten ausgeführt werden muss. In normalen Ubuntu Installationen (Root-/VServer siehe Debian) kann dies durch den Befehl sudo erreicht werden.
Bei Debian wird bei der Installation ein Passwort für den Root-Benutzer festgelegt, so kann man sich entweder direkt als Root oder als „normaler“ Benutzer mit Eingabe von su als Root einloggen (Root-Passwort benötigt) → sudo bleibt dann überflüssig!

Grundlegendes zur Shell

Aus Wikipedia:
Die Unix-Shell oder kurz Shell (en. Hülle, Schale) bezeichnet die traditionelle Benutzerschnittstelle unter Unix oder unixoiden Computer-Betriebssystemen. Der Benutzer kann in einer Eingabezeile Kommandos eintippen, die der Computer dann sogleich ausführt. Man spricht darum auch von einem Kommandozeileninterpreter.
In der Regel hat der Benutzer unter Unix die Wahl zwischen verschiedenen Shells. Vom Sprachumfang her sind alle üblichen Unix-Shells als vollwertige Skriptsprachen zur Programmierung und zur Automatisierung von Aufgaben verwendbar; die Abgrenzung zu reinen Skriptsprachen (z. B. Perl, awk) besteht darin, dass Shells besondere Mittel für den interaktiven Dialog mit dem Anwender bereitstellen, die vom Ausgeben eines Prompts im einfachsten Fall bis hin zur Möglichkeit des Editierens der eingegebenen Befehle oder zur Jobsteuerung reichen.
(…)

Ubuntu/Debian und die Shell

Unter Ubuntu setzt man hauptsächlich die Bash (siehe hier) beziehungsweise in bestimmten Skripten die Dash (siehe hier), wobei /bin/dash ein Softlink zu /bin/bash darstellt. Persönliche Anweisungen im Terminal werden so gut wie immer in der der Bash ausgeführt, deshalb nutzt der Standard-Ubuntuuser auch in seinen Skripten die Bash, dies wird am Anfang des Skriptes durch

#!/bin/bash

kenntlich gemacht.

Skripte nutzen

Grundsätze

Wie schon erwähnt muss am Beginn jedes Bash-Skriptes diese Zeile angehängt werden:

#!/bin/bash

Falls die Dash (/bin/sh ist ein Symlink auf /bin/bash) verwendet werden soll wird bash durch sh ersetzt:

#!/bin/sh

Anschließend folgt der Code. Einfache Skripte können zum Beispiel einfach nur Befehle ohne Variablen und co. enthalten:

#!/bin/bash
cp datei /ordner        #Beispiel eines Befehl

Kommentare können durch # kenntlich gemacht werden:

#!/bin/bash
#das ist ein Kommentar

Editieren und Speichern

Um ein Skript zu erstellen öffnet man einen Editor (z.B. gedit oder nano) und füllt diesen mit dem zu ausführenden Code. Die Datei speichert man als einfache Datei ohne Endung ab.

skript       #Beispiel

Alternativ kann man das Skript auch als .sh oder .bash abspeichern. Dann muss der Pfad zum Skript natürlich verändert werden!

Ausführbar machen

Damit man das Skript ausführen kann, muss man es noch ausführbar machen, dafür bedient man sich dem Befehl chmod und dem Dateirecht +x:

user@system:~$ chmod +x skript   #Beispiel

Ausführen

Ausführen kann man dann das Skript einfach durch Eingabe des Namens:

user@system:~$ ./skript        #Beispiel
user@system:~$ ./sudo skript   #falls root-Rechte benötigt werden 


Viele Skripte sollte/muss man regelmäßig ausführen, dazu bedient man sich Cron

Skriptordner

Standardmäßig werden unter Linux Skripte in /bin abgelegt beziehungsweise in /home/benutzer/bin, dieser Ordner in /home/user könnte man als „persönliches bin“ bezeichnen, denn hier legt der Benutzer seine Skripte an. Dieser Ordner (/home/user/bin) muss man allerdings eigenhändig anlegen:

user@system:~$ cd ~       #wechselt in /home/user
user@system:~$ mkdir bin  #legt den Ordner an

natürlich benötigt dieser bestimmte Rechte:

user@system:~$ chmod 744 bin   #verleiht die Rechte 774

Nun muss der Ordner noch der Bash bekannt gemacht werden. Dazu editiert man die Datei .bashrc im Home des Benutzers:

user@system:~$ nano .bashrc     #nano öffnet die .bashrc (nano muss installiert sein -> sudo apt-get install nano)

und fügt am besten unten diese Zeile ein:

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/home/BENUTZER/bin     #"BENUTZER" durch Benutzernamen ersetzen 
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/home/christoph/bin    #Beispiel

Nun kann man Skripte wie dieses Beispiel zeigt ohne Pfad(/home/user/bin/..) ausführen

user@system:~$ /home/ich/bin/skript   #ohne .bashrc Anpassung (Standard)
user@system:~$  skript                 #mit .bashrc Anpassung

Wichtig ist aber, dass die Skripe ausführbar gemacht worden sind (chmod +x).



chrisge 2012/01/14 17:39

Diskussion

Geben Sie Ihren Kommentar ein. Wiki-Syntax ist zugelassen:
CUIXK
 
  • Teilen
  • Bookmark "Shell-Skripte" auf del.icio.us
  • Bookmark "Shell-Skripte" auf Digg
  • Bookmark "Shell-Skripte" auf Reddit
  • Bookmark "Shell-Skripte" auf StumbleUpon
  • Bookmark "Shell-Skripte" auf Facebook
  • Bookmark "Shell-Skripte" auf Twitter
  • Bookmark "Shell-Skripte" auf Slashdot
Sonstiges
Drucken/exportieren
Archiv

Archivierter Inhalt der alten Seite