Shell Scripting in Linux - I computer in generale comprendono il linguaggio di 0 e 1, noto come linguaggio binario. Decenni fa, le persone erano solite scrivere programmi e applicazioni come persino calcolatrici in linguaggi binari. Ma non era carino. Basta immaginare! Vuoi calcolare 73 + 96, come scriveresti? Dovresti piuttosto calcolare il numero intero binario per 73 e 96 e quindi aggiungerli. Una persona deve essere piuttosto stupida per farlo. Uno dovrebbe piuttosto calcolare 73 e 96 su un foglio e andare avanti. Ma questo è per la parte più piccola. E se dovessi calcolare qualcosa del genere (19273/23 * (2967 3)). Vorrei dire ora che questo è piuttosto intenso.
Quindi, un uomo indeal che impara a codificare tutto in linguaggio binario non ha senso. Questo è il motivo principale per cui i computer non erano popolari negli anni '70 e '80. Ma in seguito, anche prima dello sviluppo di Windows, le persone hanno iniziato a sviluppare kernel e cose simili che erano la parte principale del sistema operativo. I kernel usavano comprendere il formato leggibile dall'uomo di un programma specifico e quindi convertirlo in codice macchina. Ed è qui che sono emersi i linguaggi di programmazione e hanno cambiato l'intera era del mondo dei computer. Le applicazioni sono state costruite in C e C ++ e successivamente con Java, Python, Ruby e Perl.
A partire da ora ci sono più di 50 linguaggi di programmazione in tutto. E questo è almeno quelli che conosco. Per non parlare del fatto che esistono altri linguaggi di programmazione che sono ancora più difficili da comprendere rispetto al codice macchina. Il mio punto è, esempi come la programmazione di pollo e Malbolge. Sono delle cose brutte e serie da affrontare.
Shell Programming … .errr … Scripting?
Ora ti starai chiedendo perché non ho menzionato la programmazione Shell sopra con gli altri linguaggi di programmazione. La ragione principale per cui Shell stessa non è un linguaggio di programmazione. È un linguaggio di scripting. Shell è solo un programma interattivo dell'utente che interpreta qualsiasi input dell'utente e fornisce il risultato a condizione che il comando sia valido. Quindi passa il programma al kernel per eseguirlo. Shell non fa parte del kernel, ma utilizza invece il kernel per svolgere il proprio lavoro di esecuzione e creazione di file.
Tipi di programma di scripting Shell
Ora, a differenza di C, C ++ o Java, ci sono molti altri tipi di shell che possono essere usati per Shell Scripting. Di seguito sono riportati i quattro tipi di shell disponibili fino alla data:
No. | Tipo di conchiglia | Descrizione |
1. | Bash aka Bourne Again Shell | Questa è la shell più comune disponibile su tutti i sistemi basati su Linux e debian. È open source e freeware. |
2. | CSH o C Shell | Questo programma di scripting Shell utilizza la sintassi della shell della programmazione C ed è quasi simile a C. |
3. | KSH o Korn Shell | Korn è un programma di scripting Shell basato su Unix, inizialmente basato sul Bash Shell Scripting. Questa shell è piuttosto avanzata ed è un linguaggio di programmazione di alto livello. |
4. | TCSH | Non esiste una forma completa specifica di TCSH. È così com'è. TCSH è una versione avanzata della shell Berkeley Unix C. Supporta nuovamente la sintassi in stile C. |
Ad oggi, non siamo interessati a tutte le shell di cui sopra qui. Siamo interessati solo alla shell Bash, dal momento che è la shell più comunemente usata al mondo oggi.
The Bash Shell
Il programma di scripting di Bash Shell è un linguaggio di scripting di alto livello, simile a quello di Python. Ma se hai già avuto esperienza con Python, allora scoprirai che Bash Shell Scripting è molto più semplice di qualsiasi altro linguaggio di scripting. Si può scrivere script in bash molto più velocemente che in C, C ++, Java o Python. Il terminale predefinito nell'ambiente più Linux di oggi, ad esempio: - Ubuntu, Linux Mint Cinnamon / Rafaela, Fedora, Arch Linux o qualsiasi altro ambiente debian è costituito da Bash come Shell predefinita. Puoi comunque controllare tutti gli ambienti shell presenti nel tuo sistema digitando quanto segue nel Terminale predefinito: -
$ cat / etc / shells |
(Nota: il simbolo del dollaro all'inizio serve per identificare un terminale.)
La sintassi 'cat' è usata per leggere file di testo. I tipi di programmi di scripting di shell in un ambiente Linux, Unix o Debian sono memorizzati nel file shell all'interno della directory etc. Ogni shell ha il proprio set unico di sintassi e il proprio set di funzioni integrate. Il DOS o Windows hanno anche una propria shell nota come il famigerato 'prompt dei comandi' o 'powershell' da Windows 8.1 in poi, ma non è ancora potente come il bash. La sintassi cat ti darà la lista delle shell disponibili sul sistema, tuttavia per trovare la shell predefinita o per controllare la shell usando corrente, puoi usare la sintassi seguente nel Terminale di scripting Shell: -
$ echo $ SHELL |
La sintassi 'echo' viene utilizzata per stampare qualsiasi istruzione. Qui 'SHELL' è una variabile assegnata per stampare la shell corrente. Il simbolo del dollaro dopo 'echo' è usato per rappresentare una variabile in Shell Scripting.
Corsi consigliati
- Corso di certificazione in Java Hibernate
- Corso di primavera di Java
- Formazione online di WordPress
- Allenamento rubino
Shell Scripting
Quindi, ora sai cos'è una shell, diamo un'occhiata a Shell Scripting e perché è conosciuta come quella. Shell Scripting non è altro che una serie di comandi in un semplice file di testo che termina con l'estensione '.sh'. '.Sh' determina che si tratta di un file eseguibile della shell. Dopo aver scritto uno script di shell, si dovrebbe cambiare l'autorizzazione eseguibile usando la 'funzione chmod'. Per impostazione predefinita, qualsiasi shell appena creata non è eseguibile nell'ambiente UNIX o Linux a meno che le autorizzazioni non vengano modificate in modo specifico. Shell Scripting è quasi simile a quello della programmazione Batch da Windows, ma la differenza è che Shell Scripting è piuttosto più potente e fornisce un ambiente interattivo molto più avanzato insieme a completamenti di schede. Uno ha bisogno di fare uso di un buon editor di testo per scrivere uno script di shell. Pochi di quelli che conosco sono Vim, Gedit e Leafpad.
A differenza di altri linguaggi di programmazione, gli script Shell sono più veloci da scrivere ed eseguire. Non è necessario scaricare bundle o dipendenze specifici per l'esecuzione. Possono essere utilizzati non solo da un amministratore di sistema, ma anche da una persona normale per eseguire script automatici su base giornaliera. Di seguito è riportato un semplice esempio di uno script scritto qui.
#! / bin / bash echo -e “Benvenuti nel primo programma di shell. \ n” echo -e “Scrivi qualcosa qui e questo programma stamperà lo stesso. \ n” # chiede all'utente l'input leggi input # leggi l'input dell'utente echo “Tu immesso: $ input ” uscita 0 |
Ora lasciami spiegare tutti i parametri nel codice sopra. Prima di tutto, scrivi il codice sopra in un file di testo in un formato "così com'è" e salvalo con un'estensione che termina con ".sh". Ad esempio, denominare il file come 'main_program.sh'. Assicurati che non sia "main_program.sh.txt". La maggior parte dei principianti tende a fare lo stesso e quindi non è eseguibile. Una volta copiato il codice sopra, cambia le sue autorizzazioni usando la seguente sintassi nel terminale: -
$ chmod + x main_program.sh O $ chmod 755 main_program.sh |
Sentiti libero di usare uno dei comandi sopra poiché entrambi fanno la stessa cosa. Nei moderni programmi di scripting bash shell, '755' è cambiato in '+ x'; quindi non importa quale usi effettivamente. Dopo aver modificato le autorizzazioni, digitare quanto segue per eseguirlo.
$. / main_program.sh |
Il punto e la barra vengono utilizzati per identificare ed eseguire gli script della shell. Una volta eseguito lo script precedente, stamperà la prima istruzione echo e quindi ti chiederà di inserire qualcosa. Una volta inserito, ti stamperà la stessa cosa e uscirà dall'interprete. Quindi lasciami spiegare tutte le sintassi sopra. '#! / Bin / bash' è usato per dire all'interprete che si tratta di uno script bash e il programma di scripting della shell Bash si trova nella directory 'bin'. Il comando 'echo' è usato per stampare qualsiasi istruzione e il flag '-e' è usato per indicare alla shell che ci sarà una nuova linea identificata come 'barra n o \ n' o una scheda 'barra t oppure \ o cose del genere all'interno della dichiarazione eco. La parte hash sulla seconda riga viene utilizzata per identificare un commento in uno script bash. Qualunque cosa tu scriva dopo l'hash viene commentata e non verrà eseguita. Ma questo non si applica a '#! / Bin / bash' sulla prima riga. Ecco come funziona la sceneggiatura. La sintassi 'read' viene utilizzata per leggere qualsiasi input dell'utente. E l '"input" che ho citato dopo la sintassi "read", è la variabile in cui è memorizzato l'input dell'utente. Si può usare qualsiasi variabile invece dell'input. Nell'ultima riga, l'input $ viene utilizzato per identificarsi come variabile e generare l'input memorizzato al suo interno. Infine, il comando exit viene utilizzato per uscire dall'interprete con uno zero di uscita pulito.
Scripting non interattivo
Ora l'esempio sopra è abbastanza semplice. Ma ci sono moduli integrati che puoi usare invece di dare tutti gli input da solo. Di seguito è riportato un pezzo di codice, che stampa il nome utente attualmente connesso, l'ora corrente, la data del calendario e anche il numero di accessi: -
#! / bin / bash # Questo script stamperà le informazioni sull'utente attualmente connesso, il numero di utenti connessi, la data, l'ora e il calendario echo “Hello, $ USER” echo “La data e l'ora di oggi sono` date` ” echo“ Numero di utenti registrati: `who | wc -l` "
echo "Calendario" cal uscita 0 |
Eseguire questo script dopo aver modificato le autorizzazioni del file sopra. Ora, ti starai chiedendo che nello script precedente, abbiamo effettivamente inserito l'input e quindi ha restituito l'input usando la variabile th. Ma qui, non abbiamo fornito alcun input all'interno della variabile '$ USER', quindi come mai stampa l'utente esatto. Il motivo principale è che queste cose sono già configurate nel sistema. Ricorda che all'inizio ti ho parlato di $ SHELL, su come è definito di default? Sì, simile è il caso con $ USER qui. Per quanto riguarda la data, se si digita semplicemente "data" senza virgolette nel terminale, verrà stampata la data e l'ora esatte. Ho appena usato la virgoletta singola (`) per identificarsi come sintassi piuttosto che come parte dell'istruzione eco. La virgoletta singola (`) eseguirà qualsiasi sintassi stampata al suo interno, sia in una dichiarazione che in qualsiasi altra parte. Per quanto riguarda il numero di utenti parte, il comando 'chi' viene utilizzato per verificare gli utenti attuali connessi insieme ai processi di accesso e la data e l'ora di quando è stato avviato. Ma per quanto riguarda il comando sopra, l'ho effettivamente troncato per generare semplicemente il numero di utenti che lo hanno registrato usando il comando 'wc -l'. La barra (|) o ciò che è popolarmente noto come pipe viene utilizzata per combinare due comandi. La pipa in realtà rappresenta molto di più, ma non entrerò nei dettagli qui. E infine ho stampato il calendario usando il comando incorporato 'cal' per stampare la data corrente nel calendario.
L'uscita zero
Exit Zero è qualcosa che non ho spiegato in nessuno dei programmi scritti sopra. Il motivo principale di "Exit Zero" ha molta più gravità rispetto a qualsiasi delle sintassi sopra descritte in Shell Scripting. Per impostazione predefinita, ogni volta che si esegue uno script in una distribuzione Linux o Unix, restituisce due tipi di valori o più specificamente lo stato di uscita per verificare se l'esecuzione dello script della shell ha esito positivo o meno. Se restituisce il valore come Zero, l'esecuzione ha avuto esito positivo, altrimenti non è stata eseguita o si è verificato un errore durante l'esecuzione. Pertanto, digitando "exit 0" alla fine di qualsiasi script viene verificato lo stato di esecuzione dello script.
Tutte le cose che ho trattato qui sono solo la parte meno basilare dello scripting Shell nella distribuzione di Linux. La parte zero di uscita e la pipe svolgono un ruolo importante quando si eseguono script di shell multipli nei comandi linux e si usano insieme alle istruzioni if e else condizionali.
Articoli Correlati:-
Ecco alcuni articoli che ti aiuteranno a ottenere maggiori dettagli sui tipi di script Shell per i neofiti di Linux, quindi passa attraverso il link.
- Domande sul colloquio di scripting della shell | Le 10 domande utili
- Linux vs Windows: scopri le 9 differenze più straordinarie
- Domande e risposte sull'intervista di Linux | Utile e più richiesto
- Carriere nell'amministrazione Linux
- Regole e regolamenti dei parametri di Shell Script