La maggior parte delle distribuzioni Linux include la shell bash per impostazione predefinita, ma è anche possibile passare a un altro ambiente shell. Zsh è un'alternativa particolarmente popolare e ci sono altre shell, come ash, dash, fish e tcsh. Ma qual è la differenza, e perché ci sono così tanti?
Quando accedi alla riga di comando o lanci una finestra di terminale su Linux, il sistema lancia il programma shell. Le conchiglie offrono un modo standard per estendere l'ambiente della riga di comando. Puoi sostituire la shell di default con un'altra, se preferisci.
Il primo ambiente di shell era la Thompson Shell, sviluppata presso i Bell Labs e pubblicata nel 1971. Da allora, gli ambienti di shell hanno sviluppato il concetto, aggiungendo una varietà nuove funzionalità, funzionalità e miglioramenti della velocità.
Ad esempio, Bash offre il completamento di comandi e nomi di file, funzionalità di scripting avanzate, una cronologia dei comandi, colori configurabili, alias dei comandi e una varietà di altre funzionalità che non erano disponibili. nel 1971 quando fu rilasciata la prima shell.
La shell viene anche utilizzata in background da vari servizi di sistema. Le distribuzioni Linux includono molte funzioni scritte come script di shell. Questi script sono comandi e altre funzioni avanzate di scripting della shell che attraversano l'ambiente della shell.
CORRELATI: Che cos'è Unix e perché è importante ?
Il più importante progenitore di shell moderne è la shell Bourne, conosciuta anche come "sh", che prende il nome dal suo creatore Stephen Bourne che lavorava ai Bell Labs di AT & T. Rilasciato nel 1979, divenne l'interprete-comando predefinito in Unix grazie al suo supporto per la sostituzione di comandi, piping, variabili, test delle condizioni e looping, insieme ad altre funzionalità. Non offriva molta personalizzazione per gli utenti e non supportava sottigliezze moderne come alias, completamento di comandi e funzioni di shell (sebbene quest'ultima fosse eventualmente aggiunta).
La shell C, o "csh", è stata sviluppata alla fine degli anni '70 da Bill Joy all'Università della California, a Berkley. Aggiungeva molti elementi interattivi con cui gli utenti potevano controllare i loro sistemi, come alias (scorciatoie per comandi lunghi), capacità di gestione dei lavori, cronologia dei comandi e altro. È stato modellato sul linguaggio di programmazione C, su cui è stato scritto il sistema operativo Unix stesso. Ciò significava anche che gli utenti della shell Bourne dovevano imparare C in modo da poter immettere comandi in esso. Inoltre, csh aveva alcuni bug che dovevano essere risolti da utenti e creatori per un lungo periodo di tempo. Le persone finivano per usare la shell Bourne per gli script perché gestiva meglio i comandi non interattivi, ma rimaneva con la shell C per l'uso normale.
Nel corso del tempo, molte persone aggiustarono bug e aggiunsero funzionalità alla shell C, culminando in una versione migliorata di csh nota come "tcsh". Ma csh era ancora l'impostazione predefinita nei computer basati su Unix e aveva aggiunto alcune funzionalità non standard. David Korn dei Bell Labs ha lavorato su KornShell, o "ksh", che ha cercato di migliorare la situazione essendo compatibile con le versioni precedenti del linguaggio della shell Bourne ma aggiungendo molte funzionalità dalla shell csh. È stato rilasciato nel 1983, ma con una licenza proprietaria. Non era un software libero fino agli anni 2000, quando fu rilasciato con varie licenze open source.
L'interfaccia Portable Operating System per Unix, o POSIX, fu un'altra risposta al caos proprietario frenetico implementazioni. Ha creato con successo uno standard per l'interpretazione dei comandi (tra le altre cose) e infine ha rispecchiato molte delle funzionalità di KornShell. Allo stesso tempo, il progetto GNU stava tentando di creare un sistema operativo libero compatibile con Unix. Il progetto GNU ha sviluppato una shell software gratuita per far parte del suo sistema operativo libero e l'ha battezzata "Bourne Again Shell", o "bash".
Bash è stato migliorato nei decenni dalla sua prima versione nel 1989, ma è ancora la shell di default sulla maggior parte delle distribuzioni Linux oggi. È anche la shell predefinita su macOS di Apple ed è disponibile per l'installazione su Microsoft Windows 10
Mentre la comunità Linux si è basata su Bash negli anni successivi, gli sviluppatori non hanno smesso di creare nuove shell quando Bash è stato rilasciato per la prima volta 28 anni fa.
Kenneth Almquist ha creato un clone di Bourne shell noto come guscio di Almquish, A Shell, "cenere" o talvolta solo "sh". era anche compatibile con POSIX e divenne la shell di default in BSD, un ramo diverso di Unix. Il guscio di cenere è più leggero di bash, il che lo rende popolare nei sistemi Linux embedded. Se hai un telefono Android rooted con BusyBox installato - o qualsiasi altro dispositivo con la suite di software BusyBox - usa il codice dalla cenere.
Debian ha sviluppato un ambiente shell basato su ash e lo ha chiamato "dash". È progettato per essere conforme a POSIX e leggero, quindi è più veloce di Bash, ma non ha tutte le sue caratteristiche. Ubuntu usa la dash dash come shell predefinita per attività non interattive, velocizzando gli script della shell e altre attività in esecuzione in background. Ubuntu usa ancora bash per le shell interattive, tuttavia, così gli utenti hanno ancora l'ambiente interattivo con tutte le funzionalità.
Una delle shell più recenti più popolari è la shell Z, o "zsh". Creato da Paul Falstad nel 1990, zsh è una shell in stile Bourne che contiene le funzionalità che troverai in bash, e anche di più. Ad esempio, zsh ha il controllo ortografico, la capacità di guardare gli accessi / i logout, alcune funzioni di programmazione incorporate come il bytecode, il supporto per la notazione scientifica nella sintassi, consente l'aritmetica a virgola mobile e altre funzionalità.
Un altro più recente shell è la Friendly Interactive Shell, o "fish", rilasciata nel 2005. Ha una sintassi della riga di comando che è stata progettata per essere un po 'più facile da imparare, ma non è derivata né dalla shell Bourne né dalla shell C. È un'idea interessante, ma ciò che impari usando il pesce non ti aiuterà necessariamente ad usare bash e altre shell derivate da Bourne.
Non è necessario scegliere una shell. Il tuo sistema operativo sceglie la tua shell predefinita per te, e quella scelta è quasi sempre bash. Siediti davanti a una distribuzione Linux o persino a un Mac e avrai quasi sempre un ambiente bash shell. Bash ha alcune funzionalità avanzate, ma probabilmente non le userai a meno che tu non programmi gli script della shell.
Su sistemi Linux embedded o sistemi BSD, finirai con la shell di ash. Ma ash è una shell basata su Bourne ed è ampiamente compatibile con bash. Qualsiasi conoscenza acquisita dall'uso di bash verrà trasferita all'utilizzo di una shell ash o dash, sebbene alcune funzioni di scripting avanzate non siano disponibili in questa shell leggera.
Quasi tutte le shell che incontrerai sono basate su Bourne e funzionano in modo simile, incluso zsh .
Ecco perché zsh è popolare. Questa nuova versione è compatibile con bash, ma include più funzionalità. La shell zsh offre correzione ortografica integrata, completamento della riga di comando migliorato, moduli caricabili che fungono da plug-in per la shell, alias globali che consentono di alias nomi di file o qualsiasi altra cosa sulla riga di comando anziché solo comandi, e più supporto tematico. È come bash, ma con molti extra, funzionalità aggiuntive e opzioni configurabili che potresti apprezzare se passi molto tempo alla riga di comando.
Se hai familiarità con bash, puoi passare a zsh senza imparare una sintassi diversa: otterrai solo funzionalità aggiuntive. se hai familiarità con zsh, puoi passare a bash senza imparare una sintassi diversa: non avrai accesso a tali funzioni.
"Oh My ZSH" è uno strumento che ti aiuta a abilitare più facilmente zsh plug- ins e passa da un argomento all'altro, personalizzando rapidamente la shell zsh senza spendere ore e ore.
Ci sono anche altre shell. Ad esempio, la shell tcsh è ancora in giro ed è ancora un'opzione. FreeBSD utilizza tsch come shell di default e ash come sua shell interattiva predefinita. Se usi regolarmente la programmazione C, tsch potrebbe essere più adatto a te. Tuttavia, non è neanche lontanamente usato come bash o zsh.
È facile passare a una nuova shell per provarla. Basta installare la shell dal gestore di pacchetti della tua distribuzione Linux e digitare il comando per avviare la shell.
Ad esempio, supponiamo di voler provare zsh su Ubuntu. Dovresti eseguire i seguenti comandi per installarlo e poi lanciarlo:
sudo apt install zsh zsh
Saresti quindi seduto su una shell zsh. Digitare "exit
" nella shell per lasciarlo e tornare alla shell corrente.
Questo è solo temporaneo. Ogni volta che apri una nuova finestra di terminale o accedi al tuo sistema dalla riga di comando, vedrai la tua shell predefinita. Per cambiare la shell che vedi al momento dell'accesso, conosciuta come shell di accesso, puoi generalmente utilizzare il comandochsh
o "Cambia shell".
Per utilizzare questo comando, devi prima è necessario trovare il percorso completo per la shell con il comando. Ad esempio, supponiamo di voler passare alla shell zsh. Avremmo eseguito il seguente comando:
quale zsh
Su Ubuntu, questo ci dice che il file binario zsh è memorizzato in /usr/bin/zsh.
Esegui il seguente comando, inserisci la tua password, e tu ' Verrà richiesto di scegliere una nuova shell di login:
chsh
In base al comando precedente, inseriremo/ usr / bin / zsh
. La shell zsh sarebbe quindi il nostro valore predefinito finché non avessimo eseguito il comandochsh
e avessimo cambiato di nuovo.
Come creare comandi vocali personalizzati per Alexa e Google Home Con Android e Tasker
Tasker è uno dei più potenti strumenti di automazione su Android. Plugin come AutoVoice ti permettono di espandere le funzionalità di base di Tasker per fare cose ancora più interessanti ... come creare comandi vocali personalizzati per Amazon Echo o Google Home. Ecco come creare i tuoi comandi vocali.
Vale la pena passare a Apple TV 4K?
La quarta generazione di Apple TV è stata un grande passo avanti rispetto alle generazioni precedenti, ma ora che il 4K sta diventando più popolare, Apple si unisce al festeggia con la sua nuova Apple TV 4K. Tuttavia, dovresti aggiornare il tuo attuale Apple TV di quarta generazione al nuovo? Novità di Apple TV 4K?