Compiti pratici per imparare lo scripting della shell [chiuso]


12

Sto cercando alcuni problemi comuni nell'amministrazione del sistema unix e i modi in cui gli script di shell possono risolverli. Completamente per scopi auto-educativi. Inoltre, vorrei sapere come faresti per imparare lo scripting della shell.

Risposte:


15

Ogni volta che ti ritrovi MAI a fare qualcosa più volte, scrivilo. Pensa più pigro che puoi. I computer sono stati costruiti per fare tutte quelle stronzate umili. Qualsiasi cosa che puzza di lavoro intenso ha bisogno di uno script di shell.

Personalmente, ho imparato frugando in Slackware per un paio d'anni. Guarda cosa succede quando rimuovi il tuo sistema il più possibile. Impara a sentirti a tuo agio con il testo. Mentre tutti gli altri stanno osservando NetworkManager, scopri quanto è semplice creare il tuo maledetto NetworkManager. Certo, potrebbe non avere un numero così elevato di casi d'uso, ma è possibile ottenere qualcosa funzionante, connettendosi dinamicamente via ethernet e wireless su richiesta abbastanza semplicemente.


6

Vorrei raccomandare nuovamente i tre libri che ho suggerito in un'altra discussione, questi sono a mio avviso i migliori libri per entrare nello spirito di Unix:

  • L'ambiente di programmazione Unix di Kernighan e Pike
  • Unix per l'Impaziente
  • Gli elettroutensili Unix di O'Reilly.

Il primo è vecchio, molto vecchio, ma è conciso, una breve lettura e ti fornirà le braciole di shell di cui hai bisogno (espressioni regolari, sed, pipeline).

Il secondo è incredibilmente divertente.

Il terzo è una raccolta di "migliori" trucchi dei maestri Unix negli anni '90 (cioè quando l'ho letto). Il libro continua a essere modificato, quindi sono sicuro che contiene molte nuove crocchette.


+1 per l'ambiente di programmazione Unix. Dopo aver letto questo, improvvisamente Unix ha avuto molto più senso per me. Un po 'di rivelazione :-)
dr-jan

L'ambiente di programmazione Unix è uno dei pochi libri che copre "qui i documenti". Puoi fare molto con "qui documenti" che molti pensano sia impossibile fare in un singolo file.
Bruce Ediger,


2

Come impararlo: innamorarsi della riga di comando. Usalo regolarmente e tira su spesso le pagine man. Spesso, anche. Quando ho appreso per la prima volta lo scripting, non sono riuscito a contare quante volte ho digitato man bash. Inoltre non sono riuscito a contare quante volte ho tirato su la pagina man per un altro comando.


1
+1 a Kevin. Ho imparato a scrivere allo stesso modo. Lo scenario in genere è che avrei bisogno di elaborare questi file di dati COBOL (sì, molto indietro ... ma questo è COBOL su UNIX, non su Mainframes !!). Invece di avviare il codice COBOL, accenderei awk (nemmeno perl poiché non è stato installato sul nostro server) e fare cose come riportano i primi 50 clienti :-)

Uso xterm(o qualsiasi terminale, se è importante) come gestore dei file principale. Quindi, mi sono quasi costretto a usare shell TUTTO il tempo, il che mi ha fatto imparare e sviluppare alcuni trucchi nel tempo.
Denilson Sá Maia,

2

L'ho imparato scrivendo uno strumento di monitoraggio. Si collegherebbe a un sacco di macchine tramite ssh e raccoglierebbe dati come uptime, caricamento, numero di connessioni attive, utilizzo della memoria e cose del genere. Sul mio computer locale mi mostrerebbe quei dati come una tabella di testo.


1

Secondo la raccomandazione di Miguel di "The Unix Programming Environment". È davvero vecchio ma è come ho imparato quasi tutto quello che so sulla shell e perché è così vecchio che puoi ottenerlo per pochi dollari su Amazon: http://is.gd/eiSn6


0

Trova un libro o un manuale e tratta la shell scelta come un linguaggio di programmazione, perché lo è. (Beh, forse non csh ...)

Per i principianti, scopri come capire se sei in una shell Bash, Bourne shell, csh, zsh o altro. Alcuni di questi sono simili tra loro come C e C ++ - ingannevolmente diversi - quindi sapere con chi stai combattendo ti aiuterà a trovare esempi e manuali che in realtà ti aiuteranno in una determinata situazione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.