Shell in ambiente unix like, Linux, mac, bsd, ecc.
Autore:[Antonio Gallonetto]
Nei sistemi operativi unix o simili, non sempre si ha a disposizione un ambiente grafico, e in molti casi è molto comodo utilizzare il testo per impartire delle istruzioni al sistema.
Un piccolo esempio di questa comodità può essere:
la copia dei files che hanno questo formato bak_giornomeseanno.zip di quest’anno. Utilizzando l’interfaccia grafica e avendo files magari non dello stesso tipo con il medesimo formato, oppure tipi diversi, la selezione sarebbe complicata.
Utilizzando la shell il comando potrebbe essere questo:
cp -R bk_*2021.zip ~/Backup/
questo comando copia tutti i files zip del formato bk_datagiornoqualsisi e dell’anno 2021.
Inoltre tutte le shell hanno un loro linguaggio con le quali possono essere programmate, i software creati sfruttando i loro linguaggi di programmazione interni, sono detti script. Lo script in pratica rappresenta una sequenza di comandi.
Quello che ha reso il terminale dei comandi così potente è la pipe, in sostanza un meccanismo con il quale si possono prendere i dati in uscita da un software e usarli come dati in entrata per un altro. Ovviamente i programmi sono già strutturati per questo, ad esempio nell’esempio precedente avrei potuto usare il comando grep, che serve per cercare le occorenze di una parola, e prendere il risultato di questo come entrata per il comando di copia. La pipe è estremamente semplice da usare tra i due programmi è sufficiente mettere il simbolo |
Non esiste un’unica shell, ma si sono sviluppate nel tempo varie soluzioni, in base alle necessità che si avevano, le più diffuse sono:
- BASH
- Bourne Shell (fin dai primordi)
- c shell, csh
- Z shell, zsh
- BeanShell,BeanShell, scripting in Java
- dsh, shell per sistemi distribuiti, dsh
- fish shell, shell interattiva amichevole, fish shell
- git-sh, git shell, è una shell bash modificata per flussi interattivi su git, git-sh
- gnome-shell, shell grafica per il desktop gnome gnome-shell
- Korn Shell MirBSD, mksh, successore della shell korn, mksh
- rush, restricted user shell, rush
- schroot, esegue comandi in un ambiente chroot, schroot
- tcsh, TENEX C Shell, versione migliorata della Berkley Unix C shell, tcsh
Questa lista non è una lista esaustiva con tutte le shell disponibili, ma le trovate in quaso tutte le distribuzioni e sono tra le maggiormente usate.
Un discorso a parte lo faremo per Windows, che ha una sua shell, chiamata terminale dei comandi e poi una shell potenziata chiamata powershell.