• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[solved] Buchempfehlung shell Programmierung?

Moin Moin,

da es bei mir immer mehr wird das ich mich mit shellscripten auseinander setzen muß, die von anderen geschrieben wurden, suche ich ein Buch das die speziellen Konstrukte der shell (hauptsächlich bash) vernünftig erklärt. Darüber hinaus sollten die gängigsten Tools über die man in solchen scripten stolpert auch abgehandelt werden, gerade auch Späße wie Substitution mit sed und was es da noch so an nützlichen aber nicht intuitiven Ferkeleien gibt...
Grundlagen Perl, PHP und Pascal sind vorhanden.
Bisher sind mir zwei Bücher aufgefallen: Shell-Skript-Programmierung aus dem mitp-Verlag von Patrick Ditchen und Shell-Programmierung: Das umfassende Handbuch aus dem Galileo-Verlag von Jürgen Wolf. Welches könnte besser passen? Oder gibt es da für meine Anforderungen sogar noch was Anderes gar Besseres?
 

/dev/null

Moderator
Teammitglied
Hi,

ich schaue heute Abend mal nach, welches von beiden ich habe. Ich empfinde es als ein sehr gutes Buch, was mir schon oft "geholfen" hat.
Ich habe auch kein Problem dir das Buch mal ein paar Monate auszuleihen.

MfG Peter
 
Ich denke auch immer noch, es müßte doch was Besseres dazu geben als

http://tldp.org/LDP/abs/html/

Sieht aber nicht so aus ...
 

/dev/null

Moderator
Teammitglied
Hi Geier0815,

ich nutze gern zum Nachschlagen "den Ditchen" (3. Ausgabe)
Also wenn du möchtest, mein Angebot gilt.

MfG Peter
 
Moin Peter,

ist lieb gemeint aber wenn dann habe ich gern eigene Bücher. Da ist es dann nicht schlimm wenn ein Malheur passiert, bei Dingen anderer Leute hab ich immer zu viel Respekt und dann würde es wahrscheinlich an einem sicheren Ort ungelesen liegen.
Wenn jetzt nicht noch andere Meinungen kommen, wird es wohl der Ditchen werden.

@abgdf,

die Seite kann und wird sicherlich eine sehr gute Ergänzung werden aber mich neben einem neuen Thema noch mit der englischen Sprache auseinander zu setzen ist nicht mein Ding. Mache ich zwar bei etlichen man-pages auch aber ich fühl mich einfach sicherer wenn ich etwas in deutsch lesen kann. Zumindest geht es bei mir dann schneller.
 
A

Anonymous

Gast
Geier0815 schrieb:
da es bei mir immer mehr wird das ich mich mit shellscripten auseinander setzen muß, die von anderen geschrieben wurden, suche ich ein Buch das die speziellen Konstrukte der shell (hauptsächlich bash) vernünftig erklärt. Darüber hinaus sollten die gängigsten Tools über die man in solchen scripten stolpert auch abgehandelt werden, gerade auch Späße wie Substitution mit sed und was es da noch so an nützlichen aber nicht intuitiven Ferkeleien gibt...

Aus leidvoller eigener Erfahrung: du brauchst das selbe Buch wie der der die Scripte geschrieben hat. ;)

Hier mal meine Erfahrungen dazu.

Gerade im Bash Umfeld habe ich die Erfahrung gemacht, wer sich nicht 150% mit Bashprogrammierung auskennt, nimmt gerne Konstrukte aus irgendwelchen Büchern, immer häufiger aber aus online verfügbaren Dokus, seltener aus irgendwelchen fremden Scripten, passt diese mehr oder weniger an und setzt diese in Scripten ein, oftmals auch ohne wirklich zu verstehen wie diese wirklich funktionieren. Das Ergebnis sieht nicht selten sehr viel komplizierter aus als es wirklich ist. Erkennen kann man solche Scripte(Autoren) an nicht ausgeschöpften Möglichkeiten der einzelnen Befehle sowie Möglichkeiten der Bash und damit verbunden oftmals einer unnötigen Schachtelung von PIPEs, oft auch unstrukturiertes aneinanderkleben in sich geschlossener Programmabschnitte zu einem unübersichtlichen Ganzen.

Ich schätze dich jetzt so ein, dass du sowohl die Grundlagen der Programmierung allgemein sowie der Bashprogrammierung kennen und beherrschen solltest, sowie nebenbei dir so an die 1000 typische Befehle, Kommandos und Programme von Linux zumindestens vom Namen geläufig sind und du diese auch problemlos zu ihrer ungefähren Funktion zuordnen könntest.
Für was brauchst du jetzt noch Bücher? Dort steht nur zu 80% genau das drinn, was du sowieso schon kennst, und um den Rest zu finden, das kostet nur Zeit.


Autoren die bash wirklich beherrschen nutzt kaum Bücher sondern fast ausschließlich "man bash" und "man bashbultins" sowie "man ...." für das zusammenstellen der Optionen weniger häufig genutzter Befehle, um in ihren Scripten diese "nicht intuitiven Ferkeleine" einzubauen. Und diese wirst du dann in den seltensten Fällen irgendwo komplex erklärt bekommen. Bash selbst bietet unzählige Möglichkeiten und Methoden schier unwartbaren Code zu schreiben, einige davon sind allerdings überraschend effizient und schnell. Autoren die so schreiben können, haben in aller Regel mindestens eine höhere Programmiersprache gelernt und sind in aller Regel unbewusst bestrebt Programmteile logisch sauber zu strukturieren, und mit wiederverwendbaren Schnittstellen auszustatten. Erkenntlich sind solche Scripte (Autoren) an der vermehrten Verwendung von eigenen Funktionen, an scheinbar ungeläufigen Optionen sonst gut bekannten Befehle, am erhöhtem Vorkommen und Verschachtelungen von Klammern an Variablen {} (()) () [] und von Sonderzeichen die nicht in " " oder ' ' eingeschlossen sind und auch nicht zu regulären Ausdrücken gehören. Erschwerend hinzu kommen hier oft noch, diese Autoren sind dann auch in der Lage Bashscripte tief zu verschachteln und rukursive Methoden zu verwenden. Solche Bashscripte sind im Extremfall dann kaum noch mit normalen Mitteln zu debugen und zu verfolgen.
Hier hilft dir meist kein Buch mehr und selten führt Websuche nach Codeteilen zu irgend einem Ziel, du musst die unbekannten Konstrukte wirklich einzeln zerlegen und verstehen, und nur die Manpage kann wirklich effizient helfen. Dort kannst du aus dem Code oft mehr lernen wie aus jedem Buch.


Extremenstem Sed und Awk wirst du wohl heute selten begegnen. Wenn doch, dann bräuchte ich kleine Codeproben, dann kann ich dir gezielte Empfehlungen geben wo du Hilfe bzw. ursprüngliche Quellen finden kannst. Beide Sprachen sind eigentlich primitiv und werden erst durch die Verwendung von Regulären Ausdrücke und durch die Sonderzeichenbehandlung schnell extrem unübersichtlich.

Das Wichtigste zum Verständniss beider Befehle, einige analysierte Beispiele und gute Einstiegsseiten im Web habe ich im Wiki hinterlegt. Mehr wird selten benötigt. Alle mir bekannte normale Literatur die sich mit beiden Befehlen befassen beinhalten für den Anfänger nicht sehr viel mehr wirklich brauchbares und gehen für den Anfänger oftmals nur verwirrend in die Tiefe.

Was du jedoch unbedingt haben solltest, ein gutes Nachschlagewerk für Reguläre Ausdrücke mit einer Übersicht was die einzelnen Befehle unterstützten und wo die Unterschiede bei den einzelnen Implementierungen und Varianten sind. Sowas ist in Buchform sehr gut brauchbar.

robi
 
Hallo,

Da ich Peter damals auf den Ditchen aufmerksam gemacht habe, wird meine Empfehlung an dieser Stelle nicht verwundern. Ein umfassendes Buch (inzwischen vierte Auflage), welche auch zum Selbststudium sehr gut geeignet ist.

Ansonsten stehen in meiner Bibliothek noch:
  • Krienke, Rainer: "Schell. Programmierung für Unix und Linux"; Hanser .:. da schaue ich eher rein, wenn mir der Ditchen mal nicht ausreichen sollte, halt als weitere Quelle.
  • Taylor, Dave: "Raffinierte Shell Scripte"; mitp .:. Das Buch ist schon etwas älter und dient mir als Kochbuch und zur Inspiration. Etwas in diese Richtung, sollte es inzwischen auch in aktualisierten Fassungen geben.
  • Friedl, Jeffrey E.F.: "Reguläre Ausdrücke"; O´Reilly .:. Gibt es inzwischen in der dritten Auflage und sollte keineswegs fehlen. Das Verständnis reguläre Ausdrücke wird hier explizit geweckt.
  • Stubblebine, Tony: "Reguläre Ausdrücke - kurz & gut"; O´Reilly .:. Nun ja, der Titel sagt schon alles, zum schnellen Nachschlagen ideal. Gleiches gilt für "bash" aus derselben Reihe.

Viel Spaß beim Lesen,
Michael :-D
 
Vielen Dank für die Meinungen und Empfehlungen. Ich habe mich für den Ditchen entschieden, da er hier recht gut weg kam. Irritierend ist diese vielfache Syntax Beschreibung durch die verschiedenen Shells auf die er eingeht. Ansonsten hab ich so viel noch nicht lesen können. Was ich aber haben wollte und jetzt auch damit habe ist ein Werk wo ich eben mal schnell etwas nachschlagen kann. ZB die Erkenntnis das in der bash Funktionen erst im script stehen müßen bevor man sie aufrufen kann, solche Sachen halt. Ansonsten scheint mir die shell teilweise komplizierter als zB Perl, ist aber sicherlich Gewohnheit und die Zeit die ich schon mit Perl verbracht habe und mit der shell eben noch nicht.
RegEx sind mit durch Perl bekannt und da im entsprechenden Buch von O'Reilly weniger auf sed und awk und die Metazeichen der shell eingegangen wird, werd ich mir das nicht zulegen auch wenn es sicherlich spannend ist. Das jetzt so auf die Schnelle von mir mit herzlichem Dank an euch.
 
Oben