Le shell sono una parte importante di qualsiasi sessione utente di Linux. Ci vengono forniti diversi tipi di shell in Linux per eseguire attività. Ogni guscio ha proprietà uniche. Quindi, ci sono molti casi in cui una shell è migliore dell'altra per requisiti specifici.
Questo rende importante per noi essere consapevoli dei diversi tipi di shell disponibili in Linux. In questo tutorial, discuteremo cos'è una shell e perché è importante.
Inoltre, esploreremo diversi tipi di shell in Linux per comprenderne le funzioni e le proprietà.
Cos'è una shell e perché ne abbiamo bisogno?
Ogni volta che un utente accede al sistema o apre una finestra della console, il kernel esegue una nuova istanza della shell. Il kernel è il cuore di qualsiasi sistema operativo.
È responsabile della gestione del controllo, dell'esecuzione dei processi e dell'utilizzo corretto delle risorse di sistema.
Una shell è un programma che funge da interfaccia tra un utente e il kernel. Consente a un utente di dare comandi al kernel e ricevere risposte da esso. Attraverso una shell, possiamo eseguire programmi e utilità sul kernel. Quindi, in sostanza, una shell è un programma utilizzato per eseguire altri programmi sul nostro sistema.
Essere in grado di interagire con il kernel rende le shell uno strumento potente. Senza la possibilità di interagire con il kernel, un utente non può accedere alle utilità offerte dal sistema operativo della propria macchina.
Comprendiamo le principali shell disponibili per l'ambiente Linux.
Diversi tipi di shell in Linux
Se ora capisci cos'è un kernel, cos'è una shell e perché una shell è così importante per i sistemi Linux, passiamo all'apprendimento dei diversi tipi di shell disponibili.
Ognuna di queste shell ha proprietà che le rendono altamente efficienti per un tipo specifico di utilizzo rispetto ad altre shell. Quindi discutiamo i diversi tipi di shell in Linux insieme alle loro proprietà e caratteristiche.
1. La Bourne Shell (sh)
Sviluppata presso gli AT&T Bell Labs da Steve Bourne, la shell Bourne è considerata la prima shell UNIX in assoluto. È indicato come sh. Ha guadagnato popolarità grazie alla sua natura compatta e alle elevate velocità di funzionamento.
Questo è ciò che l'ha resa la shell predefinita per il sistema operativo Solaris. Viene inoltre utilizzata come shell predefinita per tutti gli script di amministrazione del sistema Solaris. Inizia a leggere gli script di shell qui.
Tuttavia, la shell Bourne presenta alcuni grossi inconvenienti.
- Non ha funzionalità integrate per gestire operazioni logiche e aritmetiche.
- Inoltre, a differenza della maggior parte dei diversi tipi di shell in Linux, la shell Bourne non può richiamare i comandi utilizzati in precedenza.
- Manca inoltre di funzionalità complete per offrire un corretto utilizzo interattivo.
Il percorso completo per la shell Bourne è /bin/sh e /sbin/sh. Per impostazione predefinita, utilizza il prompt # per l'utente root e $ per gli utenti non root.
2. La shell GNU Bourne-Again (bash)
Più popolarmente conosciuta come shell Bash, la shell GNU Bourne-Again è stata progettata per essere compatibile con la shell Bourne. Incorpora funzioni utili da diversi tipi di shell in Linux come Korn shell e C shell.
Ci consente di richiamare automaticamente i comandi utilizzati in precedenza e di modificarli con l'aiuto dei tasti freccia, a differenza della shell Bourne.
Il percorso completo per la shell GNU Bourne-Again è /bin/bash. Per impostazione predefinita, utilizza il prompt bash-VersionNumber# per l'utente root e bash-VersionNumber$ per gli utenti non root.
3. La shell C (csh)
La shell C è stata creata all'Università della California da Bill Joy. È indicato come csh. È stato sviluppato per includere utili funzioni di programmazione come il supporto integrato per le operazioni aritmetiche e una sintassi simile al linguaggio di programmazione C.
Inoltre, incorporava la cronologia dei comandi che mancava in diversi tipi di shell in Linux come la shell Bourne. Un'altra caratteristica importante di una shell C sono gli "alias".
Il percorso completo per la shell C è /bin/csh. Per impostazione predefinita, utilizza il prompt hostname# per l'utente root e hostname% per gli utenti non root.
4. Il guscio di Korn (ksh)
La shell Korn è stata sviluppata presso gli AT&T Bell Labs da David Korn, per migliorare la shell Bourne. È indicato come ksh. La shell Korn è essenzialmente un superset della shell Bourne.
Oltre a supportare tutto ciò che sarebbe supportato dalla shell Bourne, fornisce agli utenti nuove funzionalità. Consente il supporto integrato per le operazioni aritmetiche offrendo allo stesso tempo funzionalità interattive simili alla shell C.
La shell Korn esegue script creati per la shell Bourne, offrendo al contempo la manipolazione di stringhe, array e funzioni simili al linguaggio di programmazione C. Supporta anche script che sono stati scritti per la shell C. Inoltre, è più veloce della maggior parte dei diversi tipi di shell in Linux, inclusa la shell C.
Il percorso completo per la shell Korn è /bin/ksh. Per impostazione predefinita, utilizza il prompt # per l'utente root e $ per gli utenti non root.
5. La Z Shell (zsh)
Z Shell o zsh è un'estensione della shell sh con tonnellate di miglioramenti per la personalizzazione. Se desideri una shell moderna con tutte le funzionalità in più, la shell zsh è ciò che stai cercando.
Alcune caratteristiche degne di nota della shell z includono:
- Genera nomi di file in base a determinate condizioni
- Supporto per plug-in e temi
- Indice delle funzioni integrate
- Completamento del comando
- e molti altri...
Riassumiamo le diverse shell in Linux di cui abbiamo discusso in questo tutorial nella tabella seguente.
Shell | Nome percorso completo | Richiesta utente root | Richiesta per utente non root |
Shell Bourne (sh) | /bin/sh e /sbin/sh | # | $ |
Shell GNU Bourne-Again (bash) | /bin/bash | bash-VersionNumber# | bash-VersionNumber$ |
Shell C (csh) | /bin/csh | # | % |
Conchiglia Korn (ksh) | /bin/ksh | # | $ |
Z Shell (zsh) | /bin/zsh |
Conclusione
Le shell sono uno degli strumenti, se non i più potenti, disponibili per un utente Linux. Senza shell, è praticamente impossibile per una persona utilizzare le caratteristiche e le funzionalità offerte dal kernel installato sul proprio sistema.
Sebbene abbiamo trattato solo i tipi di shell più comunemente usati in Linux, ci sono molti altri tipi di shell che vale la pena esplorare.
Ci auguriamo che questo tutorial sia stato in grado di aiutarti a comprendere il concetto di shell, insieme alle proprietà dei diversi tipi di shell in Linux. Se hai commenti, domande o suggerimenti, non esitare a contattarci nei commenti qui sotto.