Che cosa è Shell Scripting e perché dovresti usarlo

Che cosa è Shell Scripting e perché dovresti usarlo / Programmazione

La shell è un programma all'interno di un sistema operativo Linux o Unix che consente di immettere comandi per l'esecuzione da parte del sistema. Quando una finestra di terminale viene aperta su un computer Linux, avvia il programma di shell che presenta un'interfaccia per immettere i comandi. Questa interfaccia è nota come interfaccia della riga di comando. Quando viene immesso un comando, viene eseguito dalla shell e l'output viene visualizzato sullo schermo.

Oltre a essere in grado di accettare ed eseguire comandi in modo interattivo, la shell può anche eseguire comandi memorizzati in un file. Questa modalità di esecuzione è conosciuta come script di shell, e in questo articolo illustriamo le basi dello scripting di shell 5 Ragioni che dovresti usare PowerShell anziché script batch 5 Ragioni per cui dovresti usare PowerShell invece di script batch PowerShell è ciò che otterresti se attraversassi il prompt dei comandi con lo script batch, buttato in alcune funzioni extra e ha dato un calcio a tutte le tacche. Qui ci sono diversi motivi per cui dovresti provarlo. Leggi di più .

1. Storia della Shell

A partire da Unix negli anni '70, c'era un programma shell chiamato Shell V6 sviluppato da Ken Thomson. Era una shell interattiva e mancava di capacità di scripting.

È stato seguito dal Bourne Shell nel 1977 e rimane in uso oggi come shell di default per il radice account. Questa shell ha aggiunto capacità di scripting che si sono dimostrate estremamente utili nella pratica nel corso degli anni.

L'ulteriore sviluppo del guscio negli anni '80 ha dato origine a molte varianti di gusci popolari, le più popolari delle quali erano C-Shell e il Korn Shell. Ognuna di queste shell portava la propria sintassi che, in alcuni casi, era drasticamente diversa dalla shell originale.

Uno dei gusci più popolari oggi è il Bash Shell. Bash sta per Bourne-Again-Shell ed è una variante notevolmente migliorata della Bourne Shell originale.

In questo articolo descriviamo lo shell scripting per Bash Shell Una guida rapida per Linux Bash Shell in Windows 10 Una guida rapida per Linux Bash Shell in Windows 10 Ora puoi eseguire Linux su Windows. Scopri di più su Bash su Windows, da come e perché dovresti installarlo, a funzionalità nascoste che probabilmente non conoscevi. Leggi di più .

2. Esecuzione di uno script di shell

Come si esegue uno script di shell? Semplice. Basta passare il percorso di script come argomento alla shell:

Un esempio di script di shell:

echo "ciao mondo" 

Esegui come segue:

$ bash hello.sh # stampa ciao mondo 

Nota: La shell richiede che le linee vengano terminate dai caratteri LF (Line-Feed). Se scrivi lo script della shell su Windows e provi ad eseguirlo direttamente su un sistema Linux, potresti incontrare degli errori. Windows utilizza la combinazione CR-LF (Carriage-Return-Line-Feed) per la terminazione della linea. Questo deve essere convertito solo in LF. Controlla il tuo editor di Windows per i modi per farlo.

C'è un altro modo per eseguire uno script di shell direttamente come un comando. Inserire la seguente riga (il hashbang dichiarazione) come prima riga dello script della shell.

#! / Bin / bash 

Con questo cambiamento, il nostro semplice script di shell ora è:

#! / bin / bash echo "Ciao mondo" 

Ora, è necessario rendere eseguibile il file di script come segue:

$ chmod + x hello.sh 

A questo punto, è possibile eseguire direttamente il file di script senza dover fare esplicitamente riferimento allo shell.

$ ciao.sh # stampa ciao mondo 

Vediamo ora alcuni vantaggi dell'uso degli script di shell. Che cosa sono gli script CGI e in che modo migliorano i siti web? Quali sono gli script CGI e in che modo migliorano i siti web? CGI è l'acronimo di Common Gateway Interface. È un protocollo standard per i server Web per eseguire programmi e generare output per i browser web. Scopri tutto sugli script CGI e su come possono migliorare il tuo sito web. Leggi di più .

3. Automazione delle attività

Il primo vantaggio dell'utilizzo degli script di shell è l'automazione delle attività eseguite di frequente 7 Attività quotidiane Non sapevi che potresti automatizzare in pochi minuti 7 Operazioni quotidiane Non sapevi che potresti automatizzare in pochi minuti Ci sono molte cose che puoi automatizzare ora questo ti farà risparmiare tempo e ti permetterà di concentrarti su altre cose. Ti diamo sette cose che puoi automatizzare adesso con gli strumenti giusti. Leggi di più . Supponiamo che tu abbia un compito che devi svolgere ogni giorno. Se è necessario eseguire più comandi sul proprio sistema Linux ogni giorno, è possibile memorizzare questi comandi in un file ed eseguire lo script. Esempi inclusi:

  • Archivia e carica quotidianamente un file o una cartella su una struttura di archiviazione cloud Dropbox e Google Drive contro OneDrive: quale cloud storage è il migliore per te? Dropbox e Google Drive contro OneDrive: quale cloud storage è il migliore per te? Hai cambiato il modo di pensare al cloud storage? Le popolari opzioni di Dropbox, Google Drive e OneDrive sono state aggiunte da altri. Ti aiutiamo a rispondere a quale servizio di cloud storage dovresti utilizzare. Ulteriori informazioni come S3.
  • Comprimi i file di registro che tendono a crescere ogni giorno.
  • Recupera i prezzi delle azioni, analizza i dati recuperati e attiva un'email o SMS quando vengono soddisfatte determinate condizioni (prezzi troppo alti o troppo bassi).

4. Combinazione di comandi multipli

Oltre ad automatizzare le attività frequenti, potresti anche trovare vantaggioso combinare più sequenze di comandi in un singolo comando. Ricordare un singolo comando è molto più semplice di più comandi, per non parlare dell'ordine in cui devono essere eseguiti.

Un esempio potrebbe essere la sequenza di avvio della Guida introduttiva del sistema operativo Linux Alla guida introduttiva di Linux a Linux Guida introduttiva a Linux di un principiante! Probabilmente hai sentito parlare di Linux, il sistema operativo open source gratuito che sta spingendo contro Microsoft. Leggi di più. Come parte dell'avvio, il sistema operativo esegue una serie di comandi per portare il sistema in uno stato adeguato. Questi comandi sono in realtà script di shell che vivono sotto il /eccetera directory. Se date un'occhiata a uno di questi script di shell, vi renderete conto della complessità dell'avvio di un sistema, che potreste aver dovuto eseguire a mano in assenza di script di shell.

Quello che segue è uno script di shell di esempio, / Etc / profile, che viene eseguito ogni volta che un utente accede. Immagina di digitare questi comandi a mano!

# / etc / profile: file .profile system-wide per shell Bourne shell (sh (1)) e shell compatibili Bourne (bash (1), ksh (1), ash (1), ...). if ["$ PS1"]; quindi se ["$ BASH"] && ["$ BASH"! = "/ bin / sh"]; quindi # Il file bash.bashrc imposta già il PS1 predefinito. # PS1 = "\ h: \ w \ $" se [-f /etc/bash.bashrc]; poi . /etc/bash.bashrc fi else se ["'id -u'" -eq 0]; quindi PS1 = "#" else PS1 = "$" fi fi fi # L'umask predefinito viene ora gestito da pam_umask. # Vedi pam_umask (8) e /etc/login.defs. if [-d /etc/profile.d]; quindi per i in /etc/profile.d/*.sh; fai se [-r $ i]; poi . $ ho finito di disinserire i fi 

5. Più facile da sviluppare

È possibile eseguire le stesse azioni di uno script di shell all'interno di un normale programma scritto in C / C ++. Tuttavia, è molto più facile scrivere e eseguire il debug di uno script di shell rispetto a un programma C / C ++. Soprattutto per le attività di amministrazione del sistema che includono l'esecuzione di comandi esterni, la creazione e la rimozione di file e directory, il reindirizzamento dell'output, ecc.

I programmi C / C ++ sono migliori per un livello molto più basso di operazioni, come invocare chiamate di sistema, manipolare strutture di dati, ecc.

6. Trasparenza

Uno script di shell, in quanto file di testo, può essere facilmente visualizzato per verificare quali azioni sta eseguendo. Al contrario, l'unico modo in cui si saprà mai cosa sta facendo un programma scritto in un linguaggio come C / C ++ (e compilato su un eseguibile) è se sceglie di dirti o se hai accesso al codice sorgente. Ad esempio, puoi verificare se uno script di shell sta cancellando qualsiasi file, e se hai bisogno di questi file, puoi copiarli in una posizione diversa.

È anche molto più facile diagnosticare problemi con gli script di shell piuttosto che con i programmi regolari dato che puoi guardare il codice sorgente. Lo script non funziona perché una directory non esiste? Puoi guardare il codice dello script e creare la directory (anche se uno script di shell ben educato dovrebbe controllarlo e crearlo per evitare tali errori).

7. Portatile

Uno script di shell Una guida rapida per Linux Bash Shell in Windows 10 Una guida rapida per Linux Bash Shell in Windows 10 Ora è possibile eseguire Linux su Windows. Scopri di più su Bash su Windows, da come e perché dovresti installarlo, a funzionalità nascoste che probabilmente non conoscevi. Read More può essere trasferito ad altri sistemi operativi Unix e Unix ed eseguito (se la shell stessa è presente). Anche quando si trasferisce uno script di shell da architetture diverse come x86, MIPS, Sparc, ecc., Gli script di shell sono molto più portatili dei programmi C / C ++.

L'unico modo in cui un programma C / C ++ può essere trasferito e utilizzato su un altro sistema consiste nel copiare il codice sorgente, creare il programma e tentare di eseguirlo. Anche in questo caso, potrebbe non funzionare come previsto se utilizza un codice specifico per l'architettura.

Ora che hai un'idea di quali script di shell sono e dei loro molti vantaggi, non ti piacerebbe usarli per le tue attività? Quali problemi hai affrontato quando li hai usati? Per favore fateci sapere nei commenti qui sotto.

Scopri di più su: Linux Bash Shell.