<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.stephanschlegel.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=91.32.67.43</id>
	<title>Wikizone - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.stephanschlegel.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=91.32.67.43"/>
	<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Spezial:Beitr%C3%A4ge/91.32.67.43"/>
	<updated>2026-05-06T19:47:08Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Linux_Shell_Skripte&amp;diff=1525</id>
		<title>Linux Shell Skripte</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Linux_Shell_Skripte&amp;diff=1525"/>
		<updated>2007-11-20T17:37:13Z</updated>

		<summary type="html">&lt;p&gt;91.32.67.43: /* Was ist ein (Shell-) Script? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Was ist ein (Shell-) Script? ==&lt;br /&gt;
&lt;br /&gt;
aus: http://www.linux-fuer-alle.de/doc_show.php?docid=150&amp;amp;catid=8 (Datum des Zugriffs 20.11.2007)&lt;br /&gt;
 Zielgruppe: Einsteiger &lt;br /&gt;
&lt;br /&gt;
Also hier soll es darum gehen, was ein (Shell-) Script ist. Wir bieten ja einige kleine Scripte auf unserer Website an. Dieses Dokument ist für all diejenigen, die mit einem Script erstmal nicht viel anfangen können und nicht verstehen, was da passiert und wie man damit umgeht. Wir wollen hier allgemein von einem Script sprechen, weil es sich um einen sehr universellen Mechanismus handelt, um den es hier geht.&lt;br /&gt;
&lt;br /&gt;
Mal angenommen, man tippt in seinen Compi ein paar Kommandos in ein xterm ein (Ja, es gibt immer noch Rechner bei denen man auch mit der Tastatur etwas anfangen kann.), um eine bestimmte Aufgabe zu erledigen. Dann stellt man eventuell nach einer Weile fest, dass man diese Aufgabe nicht nur einmal, sondern öfter, vielleicht sogar reglmäßig lösen muss. Ein Beispiel dafür wäre das erstellen einer Sicherheitskopie seiner Daten mit dem Packen eines TAR-Archives, Verschlüsseln und dem Brennen einer CD-Rom. Um sich nun die Tipparbeit zu sparen, schreibt man die Kommandos in eine Textdatei. Sie ist das Script, welches man dann ausführen möchte. Da es verschiedene Programme unter Linux gibt, die Benutzereingaben entgegen nehmen und verarbeiten, muss man am Anfang seines Scriptes festlegen, welches dieser Programme, also welche Shell, verwendet werden soll. Typische Vertreter sind:&lt;br /&gt;
&lt;br /&gt;
 /bin/ash&lt;br /&gt;
 /bin/bash&lt;br /&gt;
 /bin/csh&lt;br /&gt;
 /bin/sh&lt;br /&gt;
&lt;br /&gt;
Wenn man nur einfache Programme starten will, ist es erstmal weitgehend egal, welche dieser Shells man verwendet. Bei manchen Distributionen sind einige dieser Shells ein Link auf eine andere Shell, weil man nicht alle Shells beifügen wollte, da sie sich teilweise kaum unterscheiden. Angenommen wir wollen die bash verwenden, um das Programm &amp;quot;df&amp;quot; mit einem Parameter zu starten. Dann schreiben wir folgendes Script:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 df -h&lt;br /&gt;
&lt;br /&gt;
Der obige Text wird einfach mit einem Editor in eine Textdatei geschrieben, die wir &amp;quot;FreierPlatz.sh&amp;quot; nennen wollen. Die Dateiendung macht leicht erkennbar, dass es sich in diesem Fall um ein Shell-Script handelt. Damit wir es wie ein Programm starten können, müssen wir es als ausführbar markieren:&lt;br /&gt;
&lt;br /&gt;
 chmod 755 FreierPlatz.sh&lt;br /&gt;
&lt;br /&gt;
Dabei wird davon ausgegangen, dass wir uns in dem Verzeichnis befinden, in dem das Script liegt. Dann können wir es einfach mit&lt;br /&gt;
&lt;br /&gt;
 ./FreierPlatz.sh&lt;br /&gt;
&lt;br /&gt;
starten. Man sieht die Ausgabe des Programmes, welches in dem Script gestartet wurde. Nun haben wir in der ersten Zeile des Scriptes das Programm festgelegt, welches diese Datei verarbeiten soll. Dieses Programm interpretiert den Inhalt der Datei und führt entsprechende Aktionen aus. So kann man nicht nur Programme starten, sondern auch richtige Schleifen und Verzweigungen programmieren. Das hängt aber von dem verwendeten Programm ab, was die Befehle ja verstehen muss. Man nennt dieses Programm einen Interpreter (weil er ja die Datei interpretiert). Im obigen Fall haben wir ein Programm verwendet, welches man eben auch zur direkten Eingabe der Befehle als Shell verwendet.&lt;br /&gt;
&lt;br /&gt;
Jetzt ist es auch kein weiter Weg mehr zu komplizierteren Programmiersprachen bzw. Scriptsprachen wie Perl, PHP, Ruby usw... Denn man muss ja nur in der ersten Zeile den gewünschten Interpreter angeben, der die Datei verarbeiten soll. Und davon gibt es einige. Wenn man jetzt auch noch die Dateiendung weglässt, dann kann der Anwender im ersten Moment nicht erkennen, ob es sich um ein Programm handelt, welches mit einem Übersetzer in die Maschinensprache übersetzt wurde, oder um ein Script. Unter Linux gibt es viele solcher Scripte, die die unterschiedlichsten Aufgaben übernehmen. Der grösste Vorteil von ihnen ist, dass Scripte leicht von einem Rechner zu einem anderen transportiert werden können und teilweise auch unter verschiedenen Betriebssystemen laufen.&lt;br /&gt;
&lt;br /&gt;
Ein (Shell-) Script ist also nichts anderes als eine Textdatei, in der Anweisungen für ein Programm, den Interpreter (bzw. die Shell) stehen. &lt;br /&gt;
&lt;br /&gt;
Shell Skripte können wie kleine Programme ausgeführt werden. Sie enthalten eine Reihe von Kommandos die auch mit Schleifen oder Bedingungen angesteuert werden können.&lt;br /&gt;
Wenn der aktuelle Pfad nicht in der PATH Variablen enthalten ist muß man den Pfad mit angeben. Für das Verzeichnis in dem man sich befindet wäre das z.B.&lt;br /&gt;
 ./meinSkript.sh&lt;br /&gt;
&lt;br /&gt;
== Mehr zu Skripten... ==&lt;br /&gt;
Dazu ein kleiner Post aus dem Google Groups Linux Forum:&lt;br /&gt;
&lt;br /&gt;
Ich würde Dir empfehlen, Shellskripte im Allgemeinen lieber nicht mit dem&lt;br /&gt;
».«-Kommando zu starten, sondern sie &amp;#039;&amp;#039;&amp;#039;wie eigenständige Programme&amp;#039;&amp;#039;&amp;#039; zu&lt;br /&gt;
verwenden.  Am besten ist es, wenn Du solche Shell-Skripte in ein&lt;br /&gt;
spezielles Verzeichnis unterhalb des HOME-Verzeichnisses stellst.  Das&lt;br /&gt;
Verzeichnis kannst Du dann in der Umgebungsvariablen »PATH« aufführen.&lt;br /&gt;
Auf diese Weise werden sie dann, wenn es ans Starten geht, bequem&lt;br /&gt;
gefunden.&lt;br /&gt;
&lt;br /&gt;
Erzeuge Dir also ein &amp;#039;&amp;#039;&amp;#039;Verzeichnis&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p -- ~/myscripts&lt;br /&gt;
&lt;br /&gt;
Sieh nach, ob Du eine Datei mit Namen »&amp;#039;&amp;#039;~/.bash_profile&amp;#039;&amp;#039;« hast, wenn nicht,&lt;br /&gt;
sieh nach, ob Du eine Datei mit Namen »&amp;#039;&amp;#039;~/.profile&amp;#039;&amp;#039;« hast.  Hast Du keine&lt;br /&gt;
von beiden, erzeuge eine Datei mit Namen »&amp;#039;&amp;#039;~/.profile&amp;#039;&amp;#039;«.&lt;br /&gt;
&lt;br /&gt;
Setze in die Datei eine Zeile mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 PATH=&amp;quot;${PATH:+&amp;quot;$PATH&amp;quot;:}&amp;quot;&amp;quot;$HOME&amp;quot;/myscripts &amp;amp;&amp;amp; export PATH&lt;br /&gt;
&lt;br /&gt;
Ab dem nächsten Neu-Einloggen werden Shell-Skripte dadurch auch im&lt;br /&gt;
Verzeichnis »~/myscripts« gesucht wie andere Programme auch.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Jetzt zum Shellscript:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Falls Du nicht weißt, wo im Dateisystem das »bash« zu finden ist, sieh&lt;br /&gt;
nach mit dem&lt;br /&gt;
Kommando:&lt;br /&gt;
&lt;br /&gt;
 $ command -v bash&lt;br /&gt;
&lt;br /&gt;
(Bei mir kommt da als Ergebnis »/bin/bash« heraus.)&lt;br /&gt;
&lt;br /&gt;
Schreibe das als erste Zeile in das Shell-Skript »&amp;#039;&amp;#039;.myscript.sh&amp;#039;&amp;#039;«.  Setze&lt;br /&gt;
an den Anfang dieser Zeile die zwei Zeichen&lt;br /&gt;
»#!«.  Bei mir sieht das dann so aus:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
&lt;br /&gt;
Versieh das Shell-Skript mit &amp;#039;&amp;#039;&amp;#039;Ausführungsrechten:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 $ chmod +x .myscript.sh&lt;br /&gt;
&lt;br /&gt;
Stecke das &amp;#039;&amp;#039;&amp;#039;Shell-Skript in das Verzeichnis&amp;#039;&amp;#039;&amp;#039; »~/myscripts«:&lt;br /&gt;
&lt;br /&gt;
 mv -- .myscript.sh ~/myscripts/.&lt;br /&gt;
&lt;br /&gt;
Jetzt kannst Du es mittels&lt;br /&gt;
&lt;br /&gt;
 .my_script.sh&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;aufrufen&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Wenn Du es so machst, dann tut auch das »exit«-Kommando im Shell-Skript&lt;br /&gt;
das, was Du wünschst:  Das Shell-Skript kommt zu Ende und das Shell, das&lt;br /&gt;
Deine Kommandos, die Du eintippst, entgegennimmt, ist bereit für neue&lt;br /&gt;
Kommandos, wie gewünscht:&lt;br /&gt;
&lt;br /&gt;
&amp;gt;Wenn ich ein Shellskript vorzeitig abbrechen möchte, sollte dieses dann&lt;br /&gt;
&amp;gt;auch an der Abbruchstelle beendet werden, ohne die übrigen Code-Zeilen&lt;br /&gt;
&amp;gt;auszuführen. Anschließend sollte der Fokus wieder auf der Konsole sein, von&lt;br /&gt;
&amp;gt;wo das Shellskript gestartet worden war.&lt;br /&gt;
&lt;br /&gt;
Eine Datei mittels des ».«-Kommandos zu starten, ist -- von speziellen&lt;br /&gt;
Ausnahmen (siehe Jörg Weilbiers Beitrag) abgesehen -- meist keine gute&lt;br /&gt;
Idee, und zwar aus folgenden Gründen:&lt;br /&gt;
&lt;br /&gt;
Shell-Variablen oder -Funktionen, die man im Shell-Skript anlegt, löscht&lt;br /&gt;
oder ändert, bleiben entsprechend angelegt, gelöscht bzw. geändert, wenn&lt;br /&gt;
das mittels ».« abgearbeitete Shell-Skript zu Ende kommt.  Traps und&lt;br /&gt;
andere Einstellungen am Shell, die im Shell-Skript eingestellt werden,&lt;br /&gt;
bleiben so erhalten, wenn es zu Ende kommt.&lt;br /&gt;
&lt;br /&gt;
Die Folge ist, dass die Umgebung des interaktiven Shells »verschmutzt«&lt;br /&gt;
wird.  Dadurch können überraschende Effekte, mit denen man nicht rechnet,&lt;br /&gt;
auftreten.&lt;br /&gt;
&lt;br /&gt;
Umgekehrt beeinflussen Einstellungen des interaktiven Shells ebenso das&lt;br /&gt;
Shell-Skript, mit den entsprechenden Folgen für das Shell-Skript.&lt;br /&gt;
&lt;br /&gt;
-- &lt;br /&gt;
Wer mir E-Mail schreiben will, stelle   | When writing me e-mail, please&lt;br /&gt;
bitte vor meine E-Mail-Adresse meinen   | precede my e-mail address with&lt;br /&gt;
Vor- und Nachnamen, etwa so:            | my full name, like&lt;br /&gt;
Helmut Waitzmann &amp;lt;x...@example.net&amp;gt;, (Helmut Waitzmann) x...@example.net&lt;br /&gt;
&lt;br /&gt;
== Linux Batch Skripte - Beispiele ==&lt;br /&gt;
=== Skript Dateien in einem Verzeichnis löschen ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
####################################################################################&lt;br /&gt;
# Script loescht alle Dateien in einem Verzeichnis (VERZ) und sämtliche Unter-&lt;br /&gt;
# verzeichnisse&lt;br /&gt;
# Autor: Uwe Orlemann&lt;br /&gt;
# Datum: 2007-10-24&lt;br /&gt;
####################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
VERZ=&amp;quot;/srv/www/vhosts/audiotec-fischer.de/httpdocs/typo3temp/pics&amp;quot; # Pfad zum Verz. darunter wird ggf. gelöscht&lt;br /&gt;
ADMINMAIL=&amp;quot;server@webserver-administrator.de&amp;quot;	# Mails für den Admin&lt;br /&gt;
BETREFF=&amp;quot;U7-AF-TMP-Pics-loeschen&amp;quot; # Betreff für die Mail&lt;br /&gt;
&lt;br /&gt;
DATS=`find $VERZ -type f | wc -l`&lt;br /&gt;
&lt;br /&gt;
cd $VERZ; &lt;br /&gt;
#pwd&lt;br /&gt;
if [ -d != $VERZ ] ; then		#existiert das Verz.?&lt;br /&gt;
	#Prüfen ob Dateien vorhanden&lt;br /&gt;
	if [ $DATS &amp;gt; 0 ] ; then	# sind Dateien vorhanden?&lt;br /&gt;
		#Dateien loeschen&lt;br /&gt;
		find $VERZ/ -type f | xargs -i rm -f {}&lt;br /&gt;
		STATUS=&amp;quot;Dateien wurden geloescht!&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		STATUS=&amp;quot;Keine Dateien vorhanden!&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
else&lt;br /&gt;
	#echo &amp;quot;Loesch-Verzeichnis nicht vorhanden!&amp;quot;&lt;br /&gt;
	STATUS=&amp;quot;Loesch-Verzeichnis nicht vorhanden!&amp;quot;&lt;br /&gt;
	#exit&lt;br /&gt;
fi &lt;br /&gt;
&lt;br /&gt;
# Mail an Admin!!!&lt;br /&gt;
printf &amp;quot;$STATUS &amp;quot; | mail &amp;quot;$ADMINMAIL&amp;quot; -s $BETREFF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>91.32.67.43</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Linux_Shell_Skripte&amp;diff=1219</id>
		<title>Linux Shell Skripte</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Linux_Shell_Skripte&amp;diff=1219"/>
		<updated>2007-11-20T17:36:19Z</updated>

		<summary type="html">&lt;p&gt;91.32.67.43: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Was ist ein (Shell-) Script? ==&lt;br /&gt;
&lt;br /&gt;
aus: http://www.linux-fuer-alle.de/doc_show.php?docid=150&amp;amp;catid=8 (Datum des Zugriffs 20.11.2007)&lt;br /&gt;
 Zielgruppe: Einsteiger &lt;br /&gt;
&lt;br /&gt;
Also hier soll es darum gehen, was ein (Shell-) Script ist. Wir bieten ja einige kleine Scripte auf unserer Website an. Dieses Dokument ist für all diejenigen, die mit einem Script erstmal nicht viel anfangen können und nicht verstehen, was da passiert und wie man damit umgeht. Wir wollen hier allgemein von einem Script sprechen, weil es sich um einen sehr universellen Mechanismus handelt, um den es hier geht.&lt;br /&gt;
&lt;br /&gt;
Mal angenommen, man tippt in seinen Compi ein paar Kommandos in ein xterm ein (Ja, es gibt immer noch Rechner bei denen man auch mit der Tastatur etwas anfangen kann.), um eine bestimmte Aufgabe zu erledigen. Dann stellt man eventuell nach einer Weile fest, dass man diese Aufgabe nicht nur einmal, sondern öfter, vielleicht sogar reglmäßig lösen muss. Ein Beispiel dafür wäre das erstellen einer Sicherheitskopie seiner Daten mit dem Packen eines TAR-Archives, Verschlüsseln und dem Brennen einer CD-Rom. Um sich nun die Tipparbeit zu sparen, schreibt man die Kommandos in eine Textdatei. Sie ist das Script, welches man dann ausführen möchte. Da es verschiedene Programme unter Linux gibt, die Benutzereingaben entgegen nehmen und verarbeiten, muss man am Anfang seines Scriptes festlegen, welches dieser Programme, also welche Shell, verwendet werden soll. Typische Vertreter sind:&lt;br /&gt;
&lt;br /&gt;
 /bin/ash&lt;br /&gt;
 /bin/bash&lt;br /&gt;
 /bin/csh&lt;br /&gt;
 /bin/sh&lt;br /&gt;
&lt;br /&gt;
Wenn man nur einfache Programme starten will, ist es erstmal weitgehend egal, welche dieser Shells man verwendet. Bei manchen Distributionen sind einige dieser Shells ein Link auf eine andere Shell, weil man nicht alle Shells beifügen wollte, da sie sich teilweise kaum unterscheiden. Angenommen wir wollen die bash verwenden, um das Programm &amp;quot;df&amp;quot; mit einem Parameter zu starten. Dann schreiben wir folgendes Script:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 df -h&lt;br /&gt;
&lt;br /&gt;
Der obige Text wird einfach mit einem Editor in eine Textdatei geschrieben, die wir &amp;quot;FreierPlatz.sh&amp;quot; nennen wollen. Die Dateiendung macht leicht erkennbar, dass es sich in diesem Fall um ein Shell-Script handelt. Damit wir es wie ein Programm starten können, müssen wir es als ausführbar markieren:&lt;br /&gt;
&lt;br /&gt;
 chmod 755 FreierPlatz.sh&lt;br /&gt;
&lt;br /&gt;
Dabei wird davon ausgegangen, dass wir uns in dem Verzeichnis befinden, in dem das Script liegt. Dann können wir es einfach mit&lt;br /&gt;
&lt;br /&gt;
 ./FreierPlatz.sh&lt;br /&gt;
&lt;br /&gt;
starten. Man sieht die Ausgabe des Programmes, welches in dem Script gestartet wurde. Nun haben wir in der ersten Zeile des Scriptes das Programm festgelegt, welches diese Datei verarbeiten soll. Dieses Programm interpretiert den Inhalt der Datei und führt entsprechende Aktionen aus. So kann man nicht nur Programme starten, sondern auch richtige Schleifen und Verzweigungen programmieren. Das hängt aber von dem verwendeten Programm ab, was die Befehle ja verstehen muss. Man nennt dieses Programm einen Interpreter (weil er ja die Datei interpretiert). Im obigen Fall haben wir ein Programm verwendet, welches man eben auch zur direkten Eingabe der Befehle als Shell verwendet.&lt;br /&gt;
&lt;br /&gt;
Jetzt ist es auch kein weiter Weg mehr zu komplizierteren Programmiersprachen bzw. Scriptsprachen wie Perl, PHP, Ruby usw... Denn man muss ja nur in der ersten Zeile den gewünschten Interpreter angeben, der die Datei verarbeiten soll. Und davon gibt es einige. Wenn man jetzt auch noch die Dateiendung weglässt, dann kann der Anwender im ersten Moment nicht erkennen, ob es sich um ein Programm handelt, welches mit einem Übersetzer in die Maschinensprache übersetzt wurde, oder um ein Script. Unter Linux gibt es viele solcher Scripte, die die unterschiedlichsten Aufgaben übernehmen. Der grösste Vorteil von ihnen ist, dass Scripte leicht von einem Rechner zu einem anderen transportiert werden können und teilweise auch unter verschiedenen Betriebssystemen laufen.&lt;br /&gt;
&lt;br /&gt;
Ein (Shell-) Script ist also nichts anderes als eine Textdatei, in der Anweisungen für ein Programm, den Interpreter (bzw. die Shell) stehen. &lt;br /&gt;
&lt;br /&gt;
Shell Skripte können wie kleine Programme ausgeführt werden. Sie enthalten eine Reihe von Kommandos die auch mit Schleifen oder Bedingungen angesteuert werden können.&lt;br /&gt;
Wenn der aktuelle Pfad nicht in der PATH Variablen enthalten ist muß man den Pfad mit angeben. Für das Verzeichnis in dem man sich befindet wäre das z.B.&lt;br /&gt;
 ./meinSkript.sh&lt;br /&gt;
&lt;br /&gt;
Dazu ein kleiner Post aus dem Google Groups Linux Forum:&lt;br /&gt;
&lt;br /&gt;
Ich würde Dir empfehlen, Shellskripte im Allgemeinen lieber nicht mit dem&lt;br /&gt;
».«-Kommando zu starten, sondern sie &amp;#039;&amp;#039;&amp;#039;wie eigenständige Programme&amp;#039;&amp;#039;&amp;#039; zu&lt;br /&gt;
verwenden.  Am besten ist es, wenn Du solche Shell-Skripte in ein&lt;br /&gt;
spezielles Verzeichnis unterhalb des HOME-Verzeichnisses stellst.  Das&lt;br /&gt;
Verzeichnis kannst Du dann in der Umgebungsvariablen »PATH« aufführen.&lt;br /&gt;
Auf diese Weise werden sie dann, wenn es ans Starten geht, bequem&lt;br /&gt;
gefunden.&lt;br /&gt;
&lt;br /&gt;
Erzeuge Dir also ein &amp;#039;&amp;#039;&amp;#039;Verzeichnis&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p -- ~/myscripts&lt;br /&gt;
&lt;br /&gt;
Sieh nach, ob Du eine Datei mit Namen »&amp;#039;&amp;#039;~/.bash_profile&amp;#039;&amp;#039;« hast, wenn nicht,&lt;br /&gt;
sieh nach, ob Du eine Datei mit Namen »&amp;#039;&amp;#039;~/.profile&amp;#039;&amp;#039;« hast.  Hast Du keine&lt;br /&gt;
von beiden, erzeuge eine Datei mit Namen »&amp;#039;&amp;#039;~/.profile&amp;#039;&amp;#039;«.&lt;br /&gt;
&lt;br /&gt;
Setze in die Datei eine Zeile mit dem Inhalt&lt;br /&gt;
&lt;br /&gt;
 PATH=&amp;quot;${PATH:+&amp;quot;$PATH&amp;quot;:}&amp;quot;&amp;quot;$HOME&amp;quot;/myscripts &amp;amp;&amp;amp; export PATH&lt;br /&gt;
&lt;br /&gt;
Ab dem nächsten Neu-Einloggen werden Shell-Skripte dadurch auch im&lt;br /&gt;
Verzeichnis »~/myscripts« gesucht wie andere Programme auch.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Jetzt zum Shellscript:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Falls Du nicht weißt, wo im Dateisystem das »bash« zu finden ist, sieh&lt;br /&gt;
nach mit dem&lt;br /&gt;
Kommando:&lt;br /&gt;
&lt;br /&gt;
 $ command -v bash&lt;br /&gt;
&lt;br /&gt;
(Bei mir kommt da als Ergebnis »/bin/bash« heraus.)&lt;br /&gt;
&lt;br /&gt;
Schreibe das als erste Zeile in das Shell-Skript »&amp;#039;&amp;#039;.myscript.sh&amp;#039;&amp;#039;«.  Setze&lt;br /&gt;
an den Anfang dieser Zeile die zwei Zeichen&lt;br /&gt;
»#!«.  Bei mir sieht das dann so aus:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
&lt;br /&gt;
Versieh das Shell-Skript mit &amp;#039;&amp;#039;&amp;#039;Ausführungsrechten:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 $ chmod +x .myscript.sh&lt;br /&gt;
&lt;br /&gt;
Stecke das &amp;#039;&amp;#039;&amp;#039;Shell-Skript in das Verzeichnis&amp;#039;&amp;#039;&amp;#039; »~/myscripts«:&lt;br /&gt;
&lt;br /&gt;
 mv -- .myscript.sh ~/myscripts/.&lt;br /&gt;
&lt;br /&gt;
Jetzt kannst Du es mittels&lt;br /&gt;
&lt;br /&gt;
 .my_script.sh&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;aufrufen&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Wenn Du es so machst, dann tut auch das »exit«-Kommando im Shell-Skript&lt;br /&gt;
das, was Du wünschst:  Das Shell-Skript kommt zu Ende und das Shell, das&lt;br /&gt;
Deine Kommandos, die Du eintippst, entgegennimmt, ist bereit für neue&lt;br /&gt;
Kommandos, wie gewünscht:&lt;br /&gt;
&lt;br /&gt;
&amp;gt;Wenn ich ein Shellskript vorzeitig abbrechen möchte, sollte dieses dann&lt;br /&gt;
&amp;gt;auch an der Abbruchstelle beendet werden, ohne die übrigen Code-Zeilen&lt;br /&gt;
&amp;gt;auszuführen. Anschließend sollte der Fokus wieder auf der Konsole sein, von&lt;br /&gt;
&amp;gt;wo das Shellskript gestartet worden war.&lt;br /&gt;
&lt;br /&gt;
Eine Datei mittels des ».«-Kommandos zu starten, ist -- von speziellen&lt;br /&gt;
Ausnahmen (siehe Jörg Weilbiers Beitrag) abgesehen -- meist keine gute&lt;br /&gt;
Idee, und zwar aus folgenden Gründen:&lt;br /&gt;
&lt;br /&gt;
Shell-Variablen oder -Funktionen, die man im Shell-Skript anlegt, löscht&lt;br /&gt;
oder ändert, bleiben entsprechend angelegt, gelöscht bzw. geändert, wenn&lt;br /&gt;
das mittels ».« abgearbeitete Shell-Skript zu Ende kommt.  Traps und&lt;br /&gt;
andere Einstellungen am Shell, die im Shell-Skript eingestellt werden,&lt;br /&gt;
bleiben so erhalten, wenn es zu Ende kommt.&lt;br /&gt;
&lt;br /&gt;
Die Folge ist, dass die Umgebung des interaktiven Shells »verschmutzt«&lt;br /&gt;
wird.  Dadurch können überraschende Effekte, mit denen man nicht rechnet,&lt;br /&gt;
auftreten.&lt;br /&gt;
&lt;br /&gt;
Umgekehrt beeinflussen Einstellungen des interaktiven Shells ebenso das&lt;br /&gt;
Shell-Skript, mit den entsprechenden Folgen für das Shell-Skript.&lt;br /&gt;
&lt;br /&gt;
-- &lt;br /&gt;
Wer mir E-Mail schreiben will, stelle   | When writing me e-mail, please&lt;br /&gt;
bitte vor meine E-Mail-Adresse meinen   | precede my e-mail address with&lt;br /&gt;
Vor- und Nachnamen, etwa so:            | my full name, like&lt;br /&gt;
Helmut Waitzmann &amp;lt;x...@example.net&amp;gt;, (Helmut Waitzmann) x...@example.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Linux Batch Skripte - Beispiele ==&lt;br /&gt;
=== Skript Dateien in einem Verzeichnis löschen ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
####################################################################################&lt;br /&gt;
# Script loescht alle Dateien in einem Verzeichnis (VERZ) und sämtliche Unter-&lt;br /&gt;
# verzeichnisse&lt;br /&gt;
# Autor: Uwe Orlemann&lt;br /&gt;
# Datum: 2007-10-24&lt;br /&gt;
####################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
VERZ=&amp;quot;/srv/www/vhosts/audiotec-fischer.de/httpdocs/typo3temp/pics&amp;quot; # Pfad zum Verz. darunter wird ggf. gelöscht&lt;br /&gt;
ADMINMAIL=&amp;quot;server@webserver-administrator.de&amp;quot;	# Mails für den Admin&lt;br /&gt;
BETREFF=&amp;quot;U7-AF-TMP-Pics-loeschen&amp;quot; # Betreff für die Mail&lt;br /&gt;
&lt;br /&gt;
DATS=`find $VERZ -type f | wc -l`&lt;br /&gt;
&lt;br /&gt;
cd $VERZ; &lt;br /&gt;
#pwd&lt;br /&gt;
if [ -d != $VERZ ] ; then		#existiert das Verz.?&lt;br /&gt;
	#Prüfen ob Dateien vorhanden&lt;br /&gt;
	if [ $DATS &amp;gt; 0 ] ; then	# sind Dateien vorhanden?&lt;br /&gt;
		#Dateien loeschen&lt;br /&gt;
		find $VERZ/ -type f | xargs -i rm -f {}&lt;br /&gt;
		STATUS=&amp;quot;Dateien wurden geloescht!&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		STATUS=&amp;quot;Keine Dateien vorhanden!&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
else&lt;br /&gt;
	#echo &amp;quot;Loesch-Verzeichnis nicht vorhanden!&amp;quot;&lt;br /&gt;
	STATUS=&amp;quot;Loesch-Verzeichnis nicht vorhanden!&amp;quot;&lt;br /&gt;
	#exit&lt;br /&gt;
fi &lt;br /&gt;
&lt;br /&gt;
# Mail an Admin!!!&lt;br /&gt;
printf &amp;quot;$STATUS &amp;quot; | mail &amp;quot;$ADMINMAIL&amp;quot; -s $BETREFF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>91.32.67.43</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Linux&amp;diff=1559</id>
		<title>Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Linux&amp;diff=1559"/>
		<updated>2007-11-20T17:28:28Z</updated>

		<summary type="html">&lt;p&gt;91.32.67.43: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Linux Administration]]&lt;br /&gt;
&lt;br /&gt;
[[Die wichtigsten Linux Befehle]]&lt;br /&gt;
&lt;br /&gt;
[[Linux Shell Skripte]]&lt;/div&gt;</summary>
		<author><name>91.32.67.43</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Linux&amp;diff=1217</id>
		<title>Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Linux&amp;diff=1217"/>
		<updated>2007-11-20T17:28:18Z</updated>

		<summary type="html">&lt;p&gt;91.32.67.43: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Linux Administration]]&lt;br /&gt;
[[Die wichtigsten Linux Befehle]]&lt;br /&gt;
[[Linux Shell Skripte]]&lt;/div&gt;</summary>
		<author><name>91.32.67.43</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Linux_Administration&amp;diff=1383</id>
		<title>Linux Administration</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Linux_Administration&amp;diff=1383"/>
		<updated>2007-11-20T17:25:55Z</updated>

		<summary type="html">&lt;p&gt;91.32.67.43: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Hinweise ==&lt;br /&gt;
* Wenn man mit Plesk arbeitet ist es wichtig zuerst einen User Account zu haben (wird bei 1und1 gleich mit erledigt) Erst dann stimmen die Verzeichnisse (siehe Wie ist ein Suse Server organisiert)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zugang über SSH ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wie ist ein Suse Server Organisiert ? ==&lt;br /&gt;
Der &amp;#039;&amp;#039;&amp;#039;htdoc&amp;#039;&amp;#039;&amp;#039; Ordner unter Suse befindet sich oberhalb von &lt;br /&gt;
/root in &lt;br /&gt;
 /srv/www/htdocs/ . &lt;br /&gt;
&lt;br /&gt;
Wenn &amp;#039;&amp;#039;&amp;#039;Plesk&amp;#039;&amp;#039;&amp;#039; genutzt wird und bereits eine Domain eingerichtetist,ist der aktive Ordner unterhalb von &lt;br /&gt;
 /srv/www/vhosts/ zu finden.&lt;br /&gt;
&lt;br /&gt;
== wichtige Linux Befehle ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;cat&amp;#039;&amp;#039;&amp;#039; Ausgabe von Dateien&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;cd&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Verzeichnis&amp;#039;&amp;#039;= Change Directory&lt;br /&gt;
 cd Verzeichnisname&lt;br /&gt;
 cd .. (eins hoch)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ls&amp;#039;&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;&amp;#039;dir&amp;#039;&amp;#039;&amp;#039; Auflistung des Ordnerinhalts&lt;br /&gt;
 ls -la (auch versteckte und ausführliche Ansicht)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;wget&amp;#039;&amp;#039;&amp;#039; Adresse = Download v. Dateien &lt;br /&gt;
z.B.:&lt;br /&gt;
 wget http://prdownloads.sourceforge.net/typo3/typo3_src-4.0.4.tar.gz?download&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;cp&amp;#039;&amp;#039;&amp;#039; = Kopieren von Dateien &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;tar&amp;#039;&amp;#039;&amp;#039; = Ein-/Auspacken von Archiven &lt;br /&gt;
 tar xzfv meinVerzeichnis.tar.gz&lt;br /&gt;
 tar xfv meinVerzeichnis.tar&lt;br /&gt;
 tar xf meinVerzeichnis.tar&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ln&amp;#039;&amp;#039;&amp;#039; = Symlink bauen  &lt;br /&gt;
 ln -s typo3_src-.4.0.2 typo3_src&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
rm dateiname&amp;#039;&amp;#039;&amp;#039; = löschen von Dateien&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;locate datei&amp;#039;&amp;#039;&amp;#039; = Datei suchen&lt;br /&gt;
&lt;br /&gt;
====Ein und Ausgabeumleitung====&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ls *.txt &amp;gt; inhalt&amp;#039;&amp;#039;&amp;#039; In die Datei inhalt wird eine Liste aller Textdateien geschrieben&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ls *.txt &amp;gt;&amp;gt; inhalt&amp;#039;&amp;#039;&amp;#039; hier wird der Inhalt angehängt&lt;br /&gt;
&lt;br /&gt;
====Pipes====&lt;br /&gt;
Mit Pipes | leitet man die Ausgabe des vorigen Kommandos an das nächste weiter&lt;br /&gt;
&lt;br /&gt;
ls -la | less Das aktuelle Verzeichnis wird ausgegeben und an less übergeben less sorgt dann für die Seitenweise Ausgabe.&lt;br /&gt;
&lt;br /&gt;
weitere unter: [[Die wichtigsten Linux Befehle]]&lt;br /&gt;
&lt;br /&gt;
== Editoren unter Linux ==&lt;br /&gt;
Pico&lt;br /&gt;
&lt;br /&gt;
Vim&lt;br /&gt;
&lt;br /&gt;
Joe&lt;br /&gt;
&lt;br /&gt;
sed (Zeilenbasiert)&lt;br /&gt;
== Shell Skripte ==&lt;br /&gt;
mehr Info unter [[Linux Shell Skripte]]&lt;br /&gt;
&lt;br /&gt;
Wie der Name schon sagt führt man eine Reihe von Shell Kommandos die in einer Datei vorliegen aus. Das funktioniert auch mit Bedingungen u. ä.&lt;br /&gt;
&lt;br /&gt;
== ImageMagick ==&lt;br /&gt;
[[ImageMagick installieren]]&lt;br /&gt;
&lt;br /&gt;
== Wichtige WErkzeuge ==&lt;br /&gt;
Durch eingabe von mc öffnet man den Midnight Commander. U.u. muß man in putty noch den Zeichensatz umstellen (meist auf utf-8 damit alles richtig angezeigt wird.&lt;/div&gt;</summary>
		<author><name>91.32.67.43</name></author>
	</entry>
</feed>