Linux Administration: Unterschied zwischen den Versionen
| Zeile 64: | Zeile 64: | ||
sed (Zeilenbasiert) | sed (Zeilenbasiert) | ||
| + | == Shell Skripte == | ||
| + | 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. ä. | ||
| + | Dazu ein kleiner Post aus dem Google Groups Linux Forum: | ||
| + | |||
| + | Ich würde Dir empfehlen, Shellskripte im Allgemeinen lieber nicht mit dem | ||
| + | ».«-Kommando zu starten, sondern sie wie eigenständige Programme zu | ||
| + | verwenden. Am besten ist es, wenn Du solche Shell-Skripte in ein | ||
| + | spezielles Verzeichnis unterhalb des HOME-Verzeichnisses stellst. Das | ||
| + | Verzeichnis kannst Du dann in der Umgebungsvariablen »PATH« aufführen. | ||
| + | Auf diese Weise werden sie dann, wenn es ans Starten geht, bequem | ||
| + | gefunden. | ||
| + | |||
| + | Erzeuge Dir also ein Verzeichnis: | ||
| + | |||
| + | mkdir -p -- ~/myscripts | ||
| + | |||
| + | Sieh nach, ob Du eine Datei mit Namen »~/.bash_profile« hast, wenn nicht, | ||
| + | sieh nach, ob Du eine Datei mit Namen »~/.profile« hast. Hast Du keine | ||
| + | von beiden, erzeuge eine Datei mit Namen »~/.profile«. | ||
| + | |||
| + | Setze in die Datei eine Zeile mit dem Inhalt | ||
| + | |||
| + | PATH="${PATH:+"$PATH":}""$HOME"/myscripts && export PATH | ||
| + | |||
| + | Ab dem nächsten Neu-Einloggen werden Shell-Skripte dadurch auch im | ||
| + | Verzeichnis »~/myscripts« gesucht wie andere Programme auch. | ||
| + | |||
| + | Jetzt zum Shellscript: | ||
| + | |||
| + | Falls Du nicht weißt, wo im Dateisystem das »bash« zu finden ist, sieh | ||
| + | nach mit dem | ||
| + | Kommando: | ||
| + | |||
| + | $ command -v bash | ||
| + | |||
| + | (Bei mir kommt da als Ergebnis »/bin/bash« heraus.) | ||
| + | |||
| + | Schreibe das als erste Zeile in das Shell-Skript ».myscript.sh«. Setze | ||
| + | an den Anfang dieser Zeile die zwei Zeichen | ||
| + | »#!«. Bei mir sieht das dann so aus: | ||
| + | |||
| + | #!/bin/bash | ||
| + | |||
| + | Versieh das Shell-Skript mit Ausführungsrechten: | ||
| + | |||
| + | $ chmod +x .myscript.sh | ||
| + | |||
| + | Stecke das Shell-Skript in das Verzeichnis »~/myscripts«: | ||
| + | |||
| + | mv -- .myscript.sh ~/myscripts/. | ||
| + | |||
| + | Jetzt kannst Du es mittels | ||
| + | |||
| + | .my_script.sh | ||
| + | |||
| + | aufrufen. | ||
| + | |||
| + | Wenn Du es so machst, dann tut auch das »exit«-Kommando im Shell-Skript | ||
| + | das, was Du wünschst: Das Shell-Skript kommt zu Ende und das Shell, das | ||
| + | Deine Kommandos, die Du eintippst, entgegennimmt, ist bereit für neue | ||
| + | Kommandos, wie gewünscht: | ||
| + | |||
| + | >Wenn ich ein Shellskript vorzeitig abbrechen möchte, sollte dieses dann | ||
| + | >auch an der Abbruchstelle beendet werden, ohne die übrigen Code-Zeilen | ||
| + | >auszuführen. Anschließend sollte der Fokus wieder auf der Konsole sein, von | ||
| + | >wo das Shellskript gestartet worden war. | ||
| + | |||
| + | Eine Datei mittels des ».«-Kommandos zu starten, ist -- von speziellen | ||
| + | Ausnahmen (siehe Jörg Weilbiers Beitrag) abgesehen -- meist keine gute | ||
| + | Idee, und zwar aus folgenden Gründen: | ||
| + | |||
| + | Shell-Variablen oder -Funktionen, die man im Shell-Skript anlegt, löscht | ||
| + | oder ändert, bleiben entsprechend angelegt, gelöscht bzw. geändert, wenn | ||
| + | das mittels ».« abgearbeitete Shell-Skript zu Ende kommt. Traps und | ||
| + | andere Einstellungen am Shell, die im Shell-Skript eingestellt werden, | ||
| + | bleiben so erhalten, wenn es zu Ende kommt. | ||
| + | |||
| + | Die Folge ist, dass die Umgebung des interaktiven Shells »verschmutzt« | ||
| + | wird. Dadurch können überraschende Effekte, mit denen man nicht rechnet, | ||
| + | auftreten. | ||
| + | |||
| + | Umgekehrt beeinflussen Einstellungen des interaktiven Shells ebenso das | ||
| + | Shell-Skript, mit den entsprechenden Folgen für das Shell-Skript. | ||
| + | -- | ||
| + | Wer mir E-Mail schreiben will, stelle | When writing me e-mail, please | ||
| + | bitte vor meine E-Mail-Adresse meinen | precede my e-mail address with | ||
| + | Vor- und Nachnamen, etwa so: | my full name, like | ||
| + | Helmut Waitzmann <x...@example.net>, (Helmut Waitzmann) x...@example.net | ||
== ImageMagick == | == ImageMagick == | ||
[[ImageMagick installieren]] | [[ImageMagick installieren]] | ||
Version vom 31. Mai 2007, 13:32 Uhr
Hinweise
- 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)
Zugang über SSH
Wie ist ein Suse Server Organisiert ?
Der htdoc Ordner unter Suse befindet sich oberhalb von /root in
/srv/www/htdocs/ .
Wenn Plesk genutzt wird und bereits eine Domain eingerichtetist,ist der aktive Ordner unterhalb von
/srv/www/vhosts/ zu finden.
wichtige Linux Befehle
cat Ausgabe von Dateien
cd Verzeichnis= Change Directory
cd Verzeichnisname cd .. (eins hoch)
ls oder dir Auflistung des Ordnerinhalts
ls -la (auch versteckte und ausführliche Ansicht)
wget Adresse = Download v. Dateien z.B.:
wget http://prdownloads.sourceforge.net/typo3/typo3_src-4.0.4.tar.gz?download
cp = Kopieren von Dateien
tar = Ein-/Auspacken von Archiven
tar xzfv meinVerzeichnis.tar.gz tar xfv meinVerzeichnis.tar tar xf meinVerzeichnis.tar
ln = Symlink bauen
ln -s typo3_src-.4.0.2 typo3_src
rm dateiname = löschen von Dateien
locate datei = Datei suchen
Ein und Ausgabeumleitung
ls *.txt > inhalt In die Datei inhalt wird eine Liste aller Textdateien geschrieben
ls *.txt >> inhalt hier wird der Inhalt angehängt
Pipes
Mit Pipes | leitet man die Ausgabe des vorigen Kommandos an das nächste weiter
ls -la | less Das aktuelle Verzeichnis wird ausgegeben und an less übergeben less sorgt dann für die Seitenweise Ausgabe.
weitere unter: Die wichtigsten Linux Befehle
Editoren unter Linux
Pico
Vim
Joe
sed (Zeilenbasiert)
Shell Skripte
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. ä.
Dazu ein kleiner Post aus dem Google Groups Linux Forum:
Ich würde Dir empfehlen, Shellskripte im Allgemeinen lieber nicht mit dem ».«-Kommando zu starten, sondern sie wie eigenständige Programme zu verwenden. Am besten ist es, wenn Du solche Shell-Skripte in ein spezielles Verzeichnis unterhalb des HOME-Verzeichnisses stellst. Das Verzeichnis kannst Du dann in der Umgebungsvariablen »PATH« aufführen. Auf diese Weise werden sie dann, wenn es ans Starten geht, bequem gefunden.
Erzeuge Dir also ein Verzeichnis:
mkdir -p -- ~/myscripts
Sieh nach, ob Du eine Datei mit Namen »~/.bash_profile« hast, wenn nicht, sieh nach, ob Du eine Datei mit Namen »~/.profile« hast. Hast Du keine von beiden, erzeuge eine Datei mit Namen »~/.profile«.
Setze in die Datei eine Zeile mit dem Inhalt
PATH="${PATH:+"$PATH":}""$HOME"/myscripts && export PATH
Ab dem nächsten Neu-Einloggen werden Shell-Skripte dadurch auch im Verzeichnis »~/myscripts« gesucht wie andere Programme auch.
Jetzt zum Shellscript:
Falls Du nicht weißt, wo im Dateisystem das »bash« zu finden ist, sieh nach mit dem Kommando:
$ command -v bash
(Bei mir kommt da als Ergebnis »/bin/bash« heraus.)
Schreibe das als erste Zeile in das Shell-Skript ».myscript.sh«. Setze an den Anfang dieser Zeile die zwei Zeichen »#!«. Bei mir sieht das dann so aus:
- !/bin/bash
Versieh das Shell-Skript mit Ausführungsrechten:
$ chmod +x .myscript.sh
Stecke das Shell-Skript in das Verzeichnis »~/myscripts«:
mv -- .myscript.sh ~/myscripts/.
Jetzt kannst Du es mittels
.my_script.sh
aufrufen.
Wenn Du es so machst, dann tut auch das »exit«-Kommando im Shell-Skript das, was Du wünschst: Das Shell-Skript kommt zu Ende und das Shell, das Deine Kommandos, die Du eintippst, entgegennimmt, ist bereit für neue Kommandos, wie gewünscht:
>Wenn ich ein Shellskript vorzeitig abbrechen möchte, sollte dieses dann >auch an der Abbruchstelle beendet werden, ohne die übrigen Code-Zeilen >auszuführen. Anschließend sollte der Fokus wieder auf der Konsole sein, von >wo das Shellskript gestartet worden war.
Eine Datei mittels des ».«-Kommandos zu starten, ist -- von speziellen Ausnahmen (siehe Jörg Weilbiers Beitrag) abgesehen -- meist keine gute Idee, und zwar aus folgenden Gründen:
Shell-Variablen oder -Funktionen, die man im Shell-Skript anlegt, löscht oder ändert, bleiben entsprechend angelegt, gelöscht bzw. geändert, wenn das mittels ».« abgearbeitete Shell-Skript zu Ende kommt. Traps und andere Einstellungen am Shell, die im Shell-Skript eingestellt werden, bleiben so erhalten, wenn es zu Ende kommt.
Die Folge ist, dass die Umgebung des interaktiven Shells »verschmutzt« wird. Dadurch können überraschende Effekte, mit denen man nicht rechnet, auftreten.
Umgekehrt beeinflussen Einstellungen des interaktiven Shells ebenso das Shell-Skript, mit den entsprechenden Folgen für das Shell-Skript. -- Wer mir E-Mail schreiben will, stelle | When writing me e-mail, please bitte vor meine E-Mail-Adresse meinen | precede my e-mail address with Vor- und Nachnamen, etwa so: | my full name, like Helmut Waitzmann <x...@example.net>, (Helmut Waitzmann) x...@example.net