Praktische Aufgaben zum Erlernen von Shell-Skripten [geschlossen]

12

Ich suche nach einigen allgemeinen Problemen in der Unix-Systemadministration und Möglichkeiten, wie Shell-Skripte sie lösen können. Ganz für den Selbstunterricht. Außerdem würde ich gerne wissen, wie Sie Shell-Scripting erlernen.

Eimantas
quelle

Antworten:

15

Immer wenn Sie feststellen, dass Sie etwas mehrmals tun, schreiben Sie es. Denken Sie so faul wie möglich. Computer wurden gebaut, um all diesen kleinen Mist zu machen. Alles, was nach geschäftiger Arbeit riecht, benötigt ein Shell-Skript.

Persönlich habe ich gelernt, indem ich ein paar Jahre in Slackware herumgebummelt habe. Sehen Sie, was passiert, wenn Sie Ihr System so weit wie möglich zurückziehen. Lernen Sie, mit Text vertraut zu sein. Während sich alle anderen über NetworkManager austoben, lernen Sie, wie einfach es ist, Ihren eigenen verdammten NetworkManager zu erstellen. Sicher, es gibt vielleicht nicht so viele Anwendungsfälle, aber Sie können etwas in Betrieb nehmen, indem Sie sich ganz einfach dynamisch über Ethernet und WLAN bei Bedarf verbinden.

Eli Frey
quelle
6

Ich möchte die drei Bücher, die ich in einem anderen Thread vorgeschlagen habe, erneut empfehlen. Meiner Meinung nach sind dies die besten Bücher, um in den Geist von Unix zu gelangen:

  • Die Unix-Programmierumgebung von Kernighan und Pike
  • Unix für den Ungeduldigen
  • O'Reillys Unix-Elektrowerkzeuge.

Das erste ist alt, sehr alt, aber es ist prägnant, eine kurze Lektüre und gibt Ihnen die Shell-Chops, die Sie benötigen (reguläre Ausdrücke, sed, Pipelines).

Der zweite ist unglaublich unterhaltsam.

Die dritte ist eine Sammlung von "Best-of" -Tricks der Unix-Meister der 90er Jahre (zu diesem Zeitpunkt habe ich sie gelesen). Das Buch wird immer wieder überarbeitet, daher bin ich mir sicher, dass es viele neue Nuggets enthält.

miguel.de.icaza
quelle
+1 für die Unix-Programmierumgebung. Nachdem ich das gelesen hatte, machte Unix für mich plötzlich viel mehr Sinn. Eine kleine Offenbarung :-)
dr-jan
Die Unix-Programmierumgebung ist eines der wenigen Bücher, die sich überhaupt mit "here documents" befassen. Sie können mit "Hier-Dokumenten" eine Menge tun, die viele für unmöglich halten, in einer einzigen Datei zu tun.
Bruce Ediger
2

So lernen Sie es: Verlieben Sie sich in die Befehlszeile. Verwenden Sie es regelmäßig und rufen Sie Manpages häufig auf. Häufig sogar. Als ich das erste Mal Skripten lernte, konnte ich nicht zählen, wie oft ich getippt habe man bash. Ich konnte auch nicht zählen, wie oft ich die Manpage für einen anderen Befehl aufgerufen habe.

Kevin M
quelle
1
+1 an Kevin. Ich habe das Schreiben auf die gleiche Weise gelernt. Das Szenario ist normalerweise, dass ich diese COBOL-Datendateien verarbeiten muss (ja, so weit zurück ... aber dies ist COBOL unter UNIX, nicht auf Mainframes !!). Anstatt COBOL-Code anzukurbeln, würde ich awk starten (nicht einmal Perl, da es nicht auf unserem Server installiert war) und Dinge wie den Bericht der 50 besten Kunden tun :-)
Ich verwende xterm(oder ein beliebiges Terminal, falls dies wichtig ist) als Hauptdateimanager. Auf diese Weise habe ich mich gezwungen, die ganze Zeit Shell zu verwenden, wodurch ich im Laufe der Zeit einige Tricks gelernt und entwickelt habe.
Denilson Sá Maia
2

Ich habe es gelernt, indem ich ein Überwachungstool geschrieben habe. Es würde sich über ssh mit einer Reihe von Maschinen verbinden und Daten wie Betriebszeit, Auslastung, Anzahl der aktiven Verbindungen, Speicherauslastung und ähnliches sammeln. Auf meinem lokalen Computer werden mir diese Daten als Texttabelle angezeigt.

EricSchaefer
quelle
1

Ich stimme Miguels Empfehlung von 'The Unix Programming Environment' zu. Es ist wirklich alt, aber es ist, wie ich fast alles über die Shell gelernt habe, und weil es so alt ist, kann man es für ein paar Dollar bei Amazon kaufen: http://is.gd/eiSn6

jacksonh
quelle
0

Suchen Sie ein Buch oder ein Handbuch und behandeln Sie die von Ihnen gewählte Shell wie eine Programmiersprache. (Na ja, vielleicht nicht csh ...)

Zunächst lernen Sie, wie Sie herausfinden, ob Sie sich in einer Bash-Shell, Bourne-Shell, csh, zsh oder was auch immer befinden. Einige davon ähneln sich, wie C und C ++ - täuschend anders. Wenn Sie also wissen, mit welchem ​​Sie kämpfen, können Sie Beispiele und Handbücher finden, die in einer bestimmten Situation tatsächlich hilfreich sind.


quelle