Bash (Bourne Again Shell) è una shell, un programma che consente di interagire con il sistema operativo tramite la riga di comando. È l’interprete di comandi predefinito su Ubuntu e molte altre distribuzioni Linux. Può essere usato per eseguire comandi, automatizzare attività tramite script e molto altro.
Bash nasce come un miglioramento della Bourne Shell (sh
), sviluppata da Stephen Bourne nei primi anni ’70. Bash è stato creato da Brian Fox nel 1987 come una versione migliorata e compatibile della Bourne Shell, ma con aggiunte che includono:
if
, while
, for
, ecc.Bash si è evoluto nel tempo diventando lo standard de facto nelle distribuzioni Linux, rimanendo compatibile con la Bourne Shell.
ls
, cd
, mkdir
).ls
: Elenca i file e le directory. ls ls -l # Dettagliati ls -a # Mostra anche i file nascosti
cd
: Cambia la directory corrente. cd /home/utente/Documents # Vai alla cartella specificata cd .. # Torna alla cartella superiore cd ~ # Vai alla home dell'utente
pwd
: Mostra il percorso della directory corrente. pwd
mkdir
: Crea una nuova directory. mkdir nuova_cartella
rm
: Rimuove file o directory. rm file.txt # Rimuove un file rm -r cartella/ # Rimuove una directory e il suo contenuto
cp
: Copia file o directory. cp file.txt /path/to/destination/ cp -r cartella /path/to/destination/
mv
: Muove o rinomina file e directory. mv file.txt /path/to/destination/ mv vecchio_nome.txt nuovo_nome.txt
chmod
: Modifica i permessi di file o directory. chmod +x script.sh # Rende eseguibile un file chmod 755 file.txt # Imposta permessi specifici
chown
: Cambia il proprietario di un file. chown utente:gruppo file.txt
cat
: Mostra il contenuto di un file. cat file.txt
more
e less
: Permettono di visualizzare il contenuto di file lunghi, uno schermo alla volta. less file.txt more file.txt
grep
: Cerca una stringa all’interno di un file. grep "errore" file.txt
echo
: Stampa del testo a schermo o scrive in un file. echo "Ciao mondo" echo "Ciao mondo" > file.txt
ps
: Mostra i processi in esecuzione. ps aux # Mostra tutti i processi
top
: Visualizza i processi in tempo reale. top
kill
: Termina un processo. kill PID # Termina un processo dato il suo PID killall nome_processi # Termina tutti i processi con quel nome
>
e >>
: Redirige l’output in un file. >
sovrascrive, >>
aggiunge. echo "Ciao" > file.txt # Scrive "Ciao" in file.txt echo "Mondo" >> file.txt # Aggiunge "Mondo" a file.txt
|
(pipe): Usa l’output di un comando come input per un altro comando. ls -l | grep "documento" # Filtra i risultati di 'ls' per "documento"
Bash è spesso paragonato a cmd.exe (Command Prompt) su Windows e PowerShell, ma ha alcune differenze fondamentali:
Bash è una shell estremamente potente che è stata progettata per essere il punto di ingresso in Linux. È usata per interagire con il sistema operativo, scrivere script, e automatizzare task. A causa della sua versatilità, è diventata uno strumento centrale in Linux e Unix-like systems, tra cui Ubuntu.