5 Shell open source più utilizzate su Linux

Il shell è l’interprete di comandi in un sistema operativo come Unix o GNU/Linux, è un programma che esegue altri programmi. Offre all’utente del computer un’interfaccia al sistema Unix/GNU Linux in modo che l’utente possa eseguire diversi comandi o utilità/strumenti con alcuni dati di input.

Quando lo shell ha finito di eseguire un programma, invia una risposta all’utente sullo schermo, che è il dispositivo di output standard. Per questo motivo, viene chiamato anche “interprete di comandi”.

Lo shell è molto più che solo un interprete di comandi, è anche un linguaggio di programmazione a sé stante con costrutti di linguaggio di programmazione completi come l’esecuzione condizionale, cicli, variabili, funzioni e molti altri.

Ecco perché lo shell Unix/GNU Linux è più potente rispetto allo shell Windows.

In questo articolo, esamineremo alcuni dei più usati shell open-source su Unix/GNU Linux.

1. Bash Shell

Il Bash Shell, o semplicemente “Bash“, sta per “Bourne Again SHell”. Si tratta di un’estensione dell’originale Bourne Shell (sh) e fu introdotto nel 1989 da Brian Fox.

Nel corso degli anni, Bash è diventato uno dei più popolari e ampiamente utilizzati interpreti di riga di comando su molte distribuzioni Linux e macOS (fino a Catalina, dopo di che è stato sostituito da zsh).

Bash offre agli utenti la possibilità di eseguire comandi, navigare nel file system e eseguire script. Gli utenti possono sfruttare caratteristiche come storia dei comandi, completamento con tabulazione e capacità di scripting per automatizzare compiti e velocizzare i flussi di lavoro.

Il Bash Shell ha giocato un ruolo chiave nell’evoluzione del calcolo open-source, offrendo un’interfaccia coerente per gli utenti di interagire con i loro sistemi.

Bash Shell

2. Tcsh/Csh Shell

Il Tcsh (pronunciato “tee-shell”) e il Csh (pronunciato “see-shell”) sono shell a riga di comando basate su Unix che esistono da decenni. Il Csh, o la shell C, è stato sviluppato da Bill Joy alla fine degli anni ’70 all’Università della California, Berkeley.

Ha introdotto diverse funzionalità e sintassi di scripting che sono state ispirate dal linguaggio di programmazione C, il che l’ha resa popolare tra i programmatori familiari con C.

Tcsh è una versione migliorata dell’originale Csh, che sta per “Shell C Tenex”, con “Tenex” che fa riferimento al sistema operativo TENEX.

Tcsh incorpora tutte le funzionalità di Csh insieme a miglioramenti aggiuntivi, come la modifica della riga di comando, il controllo dei processi e il completamento dei comandi.

Entrambe le shell hanno avuto un ruolo influente nel mondo Unix, con molti utenti che apprezzano la loro unica sintassi di scripting e funzionalità. Tuttavia, nel tempo, altre shell come bash hanno acquisito maggiore popolarità a causa delle loro estese funzionalità e adozione diffusa.

Tuttavia, Tcsh e Csh rimangono parte integrante della storia delle shell Unix.

Tcsh Shell

3. Shell Ksh

La KornShell, comunemente conosciuta come ksh, è una shell Unix che è stata sviluppata da David G. Korn presso AT&T Bell Laboratories nei primi anni ’80.

Combina funzionalità sia dalla shell C (csh) che dalla shell Bourne (sh), con l’obiettivo di fornire il meglio di entrambi i mondi. Negli anni, ksh è stata elogiata per le sue avanzate capacità di scripting, rendendola una preferita tra molti amministratori di sistema e utenti esperti.

Una delle caratteristiche salienti di ksh è la sua presenza di array associativi, una caratteristica che non era comune nei shell del suo tempo. Ha anche introdotto il costrutto select, che rende semplice la generazione di menu nei script.

Un altro vantaggio significativo è la sua capacità di modifica della riga di comando e le funzionalità di cronologia, che in seguito sono state adottate da altri shell come bash.

Ksh Shell

4. Shell Zsh

Lo shell Zsh, spesso semplicemente chiamato “Zsh“, è un potente shell Unix che ha guadagnato una notevole popolarità tra i programmatori e gli amministratori di sistema.

Nato come un’estensione dello Bourne Shell, Zsh incorpora caratteristiche da altri shell come Bash, ksh, e tcsh, offrendo un ricco insieme di funzionalità e un uso interattivo migliorato.

Una delle caratteristiche salienti di Zsh è la sua potente capacità di completamento automatico. A differenza degli altri shell, il completamento automatico di Zsh è consapevole del contesto, suggerisce comandi pertinenti, percorsi dei file e persino rami Git, rendendo l’esperienza utente più liscia e intuitiva.

Inoltre, Zsh è altamente personalizzabile utilizzando il Oh My Zsh framework, gli utenti possono facilmente applicare temi e plugin, migliorando sia gli aspetti estetici che funzionali del loro ambiente di terminale.

Zsh Shell

5. Fish

Fish Shell è un moderno e user-friendly shell da riga di comando che mira a fornire un’interfaccia interattiva e intuitiva per gli utenti.

A differenza dei tradizionali shell come Bash o Zsh, Fish offre suggerimenti intelligenti già integrati, rendendo più facile per entrambi i principianti e gli utenti esperti navigare ed eseguire comandi.

Una delle caratteristiche salienti di Fish è la sua funzione di suggerimenti automatici, che forniscono feedback in tempo reale in base alla storia dei comandi, permettendo una più rapida esecuzione dei comandi.

Fish vanta inoltre un’interfaccia vivace e colorata, con evidenziazione della sintassi che rende più facile leggere e comprendere i comandi. La sua configurazione basata su web consente agli utenti di personalizzare la loro esperienza di shell senza immergersi in file di configurazione complessi.

Inoltre, Fish ha una vasta e crescente collezione di plugin e temi contribuiti dalla comunità, che ne migliorano la funzionalità e l’aspetto.

Fish Shell
Riassunto

Queste non sono le uniche shell disponibili in Unix/GNU Linux, ma sono tra le più comunemente utilizzate, a parte quelle pre-installate nelle varie distribuzioni Linux.

I hope you find this article useful. For any additional information, please don’t hesitate to post a comment.

Source:
https://www.tecmint.com/different-types-of-linux-shells/