Unix / Linux - Cos'è la Shell?
Ciao, futuri programmatori! Benvenuti nel nostro viaggio nel mondo affascinante delle shell di Unix e Linux. Come il vostro amico insegnante di scienze informatiche del quartiere, sono entusiasta di guidarvi attraverso questo concetto fondamentale. Immersi pure!
Cos'è una Shell?
Immaginate di voler comunicare con un amico che parla una lingua diversa. Avresti bisogno di un traduttore, vero? Beh, una shell è come quel traduttore tra voi e il sistema operativo del vostro computer. È un interprete a riga di comando che prende i vostri comandi leggibili dall'uomo e li traduce in qualcosa che il computer può comprendere ed eseguire.
Nei miei primi anni di insegnamento, usavo dire ai miei studenti di pensare alla shell come una mitica conchiglia parlante che viveva dentro il loro computer. Sussurrate i comandi a essa, e fa fare al computer i vostri desideri. Non è del tutto accurato, ma di sicuro faceva memorizzare il concetto!
Prompt della Shell
Quando aprite un terminale sul vostro sistema Unix o Linux, vedrete qualcosa come questo:
username@hostname:~$
Questo è il prompt della vostra shell. È come se il computer dicesse, "Sono pronto per il tuo comando, o saggio utente!" Analizziamo:
-
username
: Questo sei tu! -
@
: Significa semplicemente "a" -
hostname
: Il nome del vostro computer -
~
: La vostra directory corrente (~ significa directory home) -
$
: Indica che sei un utente regolare (sarebbe # per l'utente root)
Tipi di Shell
Ci sono diversi tipi di shell disponibili nei sistemi Unix/Linux. È come avere diversi gusti di gelato - sono tutti deliziosi, ma ognuno ha il suo sapore unico! Ecco alcuni comuni:
Nome della Shell | Descrizione |
---|---|
Bourne Shell (sh) | La shell originale di Unix |
Bourne Again Shell (bash) | Versione migliorata di sh, più comune su Linux |
C Shell (csh) | Sintassi simile al linguaggio di programmazione C |
Korn Shell (ksh) | Combinazione di funzionalità di sh e csh |
Z Shell (zsh) | Versione estesa di bash con molte migliorie |
Bash è la shell più comune che incontrerete, quindi ci concentreremo su quella per i nostri esempi.
Script di Shell
Ora, è il momento della magia! Gli script di shell sono come i libri di ricette per il vostro computer. Invece di digitare i comandi uno per uno, potete scrivere una serie di comandi in un file e eseguirli tutti insieme. È come insegnare al vostro computer un nuovo trucco!
Script di Esempio
Creiamo il nostro primo script di shell. Lo chiameremo hello_world.sh
:
#!/bin/bash
echo "Ciao, Mondo!"
echo "Benvenuto nel meraviglioso mondo degli script di shell!"
echo "Oggi è $(date)"
echo "La tua directory corrente è $(pwd)"
Analizziamo:
-
#!/bin/bash
: Questo è chiamato shebang. Dice al sistema quale interprete utilizzare (in questo caso, bash). -
echo
: Questo comando stampa del testo sullo schermo. -
$(date)
e$(pwd)
: Questi sono sostituzioni di comando. Eseguono i comandi tra le parentesi e inseriscono l'output nella nostra dichiarazione echo.
Per eseguire questo script:
- Salvatelo come
hello_world.sh
- Rendetelo eseguibile:
chmod +x hello_world.sh
- Eseguitelo:
./hello_world.sh
Dovreste vedere qualcosa come:
Ciao, Mondo!
Benvenuto nel meraviglioso mondo degli script di shell!
Oggi è Lun Mag 15 10:30:45 PDT 2023
La tua directory corrente è /home/username
Non è fantastico? Avete appena creato il vostro primo script di shell!
Commenti nella Shell
I commenti sono come piccole note che lasciate per voi stessi (o altri programmatori) nel codice. Nei script di shell, i commenti iniziano con un #
:
# Questo è un commento
echo "Questo sarà stampato"
# echo "Ma questo non sarà stampato"
Dico sempre ai miei studenti: commentate il vostro codice come se la persona che lo legge fosse un psychopatico violento che sa dove vivete. Commenti chiari possono salvare vite! (O almeno prevenire la frustrazione.)
Script di Shell Estesi
Man mano che vi sentite più a vostro agio con gli script di shell, potete creare script più complessi. Ecco un esempio che dimostra variabili, input utente e istruzioni condizionali:
#!/bin/bash
# Chiedi il nome dell'utente
echo "Come ti chiami?"
read name
# Saluta l'utente
echo "Ciao, $name! Piacere di conoscerti."
# Chiedi l'età dell'utente
echo "Quanti anni hai?"
read age
# Controlla se l'utente ha l'età per votare
if [ $age -ge 18 ]
then
echo "Sei abbastanza grande per votare!"
else
echo "Non sei abbastanza grande per votare ancora."
anni_mancanti=$((18 - age))
echo "Potrai votare tra $anni_mancanti anni."
fi
Questo script:
- Chiede il nome e l'età dell'utente
- Usa variabili per memorizzare e utilizzare queste informazioni
- Usa una condizione (if-else) per controllare l'età
- Esegue un calcolo per determinare gli anni mancanti per raggiungere l'età di voto
Ricorda, imparare a codificare è come imparare a guidare una bicicletta. All'inizio, potresti cadere un paio di volte, ma con la pratica, diventerai un esperto in breve tempo!
Spero che questa introduzione alle shell abbia suscitato il tuo interesse. Continuate a esplorare, a fare domande e, soprattutto, a codificare! Chi lo sa? Forse un giorno insegnarete alla prossima generazione di programmatori il mondo magico delle shell!
Credits: Image by storyset