Come Cambiare la Shell Predefinita in Linux

Una shell è l’interfaccia attraverso la quale puoi comunicare con il tuo sistema Linux. Ti consente di digitare comandi e controllare il tuo computer. Ogni utente Linux ha una shell predefinita, che nella maggior parte dei casi è bash. Ci sono anche molte altre opzioni disponibili, tra cui Zsh, ksh, rc e fish. Qui ti mostriamo i vari metodi per cambiare la tua shell predefinita in Linux.
Indice
- Come Trovare il Nome della Tua Shell Corrente
- Elenca Tutte le Shell Installate
- Cambiare la Shell Predefinita in Linux Usando Chsh
- Cambiare la Shell di un Altro Utente
- Cambiare la Shell Predefinita in Linux Usando Usermod
- Cambiare Manualmente la Shell Predefinita in Linux
- Alternative alla Tua Shell Predefinita
Come Trovare il Nome della Tua Shell Corrente
Prima di immergerci nel cambiare la shell predefinita, è utile sapere quale shell stai attualmente utilizzando. Puoi scoprirlo controllando la variabile di ambiente del sistema utilizzando il seguente comando echo:
echo $SHELLQuesto comando stamperà il percorso della tua shell corrente, come /bin/bash o /bin/zsh.
Il file /etc/passwd contiene informazioni importanti sugli account utente. Puoi anche utilizzare questo file per trovare la tua shell corrente:
grep "^${USER}" /etc/passwdPuoi anche trovare ulteriori informazioni sulla shell corrente controllando l’ID del processo (PID), utilizzando il comando ps:
ps -p $$Questo output conferma che la shell corrente è bash.
Elenca Tutte le Shell Installate
Ora che conosci la tua shell corrente, potresti voler vedere quali altre opzioni sono disponibili sul tuo sistema. Per localizzare tutte le shell installate sul tuo sistema, devi dare un’occhiata al file /etc/shells.
Utilizziamo il comando cat per visualizzare un elenco di tutte le shell disponibili sul tuo sistema:
cat /etc/shells
Questo ti darà un’idea di quali shell puoi utilizzare. Puoi anche installare qualsiasi nuova shell utilizzando il tuo gestore di pacchetti e usarla come shell predefinita.
Inoltre, puoi provare temporaneamente queste shell elencate senza cambiare la tua shell predefinita. Per avviare una nuova sessione della shell, basta digitare il nome della shell nel terminale.
Ad esempio, per provare la shell Zsh, digita:
zshQuesto ti consente di sperimentare con diverse shell prima di decidere di fare un cambio permanente.
Cambiare la Shell Predefinita in Linux Usando Chsh
Il modo più semplice per cambiare la shell predefinita in Linux è utilizzare il comando chsh. Il comando chsh sta per “cambia shell”, ed è usato insieme all’opzione -s seguita dal percorso della tua shell.
Se non conosci il percorso della tua shell, esegui type zsh nel terminale per ottenere il percorso desiderato. Dopo aver ottenuto il percorso della tua shell, puoi cambiare la tua shell predefinita nella tua shell specifica.
Ad esempio, se desideri passare a Zsh, devi usare chsh -s con il percorso della shell Zsh:
chsh -s /bin/zshTi verrà chiesto di inserire la tua password. Una volta fatto, devi disconnetterti e riconnetterti per confermare le modifiche.
Il comando chsh cambierà permanentemente la shell di accesso predefinita. Puoi verificare le modifiche eseguendo questo comando:
grep "^${USER}" /etc/passwdCambiare la Shell di un Altro Utente
Se hai privilegi di root e la possibilità di utilizzare il comando sudo, puoi cambiare la shell predefinita per altri account utente. Questo può essere utile se desideri fornire un ambiente shell diverso, come fish, per un altro utente.
Puoi utilizzare la stessa sintassi del comando chsh con un parametro aggiuntivo che specifica il nome utente dell’account che desideri modificare.
Ad esempio, per cambiare la shell di un altro utente in Zsh, esegui questo comando nel terminale:
sudo chsh -s /bin/zsh userQuesto comando dice al sistema di cambiare la shell predefinita per l’utente specifico nella shell Zsh, che si trova in /bin/zsh.
Cambiare la Shell Predefinita in Linux Usando Usermod
Un altro metodo per cambiare shell è utilizzare il comando usermod. Questo comando è utilizzato per modificare gli account utente e può anche essere utilizzato per cambiare la shell predefinita.
Per cambiare la tua shell predefinita utilizzando usermod, apri un terminale con privilegi di root e digita questo comando:
sudo usermod -s /path/to/new/shell your_usernameQui, devi sostituire /path/to/new/shell con il percorso della shell desiderata e your_username con il tuo nome utente effettivo.
Ad esempio, cambiamo la shell predefinita da bash a zsh:
sudo usermod -s /bin/zsh userProprio come prima, disconnettiti e riconnettiti al tuo sistema Linux per far sì che queste modifiche abbiano effetto.
Puoi verificare il passaggio alla nuova shell controllando i dettagli dell’account utente con il seguente comando:
getent passwd userCambiare Manualmente la Shell Predefinita in Linux
Puoi anche cambiare manualmente la shell predefinita modificando il file /etc/passwd. Puoi farlo sostituendo il percorso della shell predefinita con la nuova shell. Tuttavia, fai attenzione con questa tecnica, poiché può portare a problemi se non eseguita correttamente.
Per cambiare manualmente la tua shell, apri il file /etc/passwd utilizzando il tuo editor di testo preferito (come nano o vim) con privilegi di root:
sudo nano /etc/passwdCerca il tuo nome utente nel file. L’ultimo campo nell’entry del tuo utente mostrerà la tua shell corrente. Cambialo con il percorso della shell desiderata.
Ad esempio, cambiamo il nostro percorso della shell predefinita /bin/bash in /bin/zsh:

Infine, salva il file premendo Ctrl + S ed esci dall’editor con Ctrl + X. Ancora una volta, disconnettiti e riconnettiti per applicare le modifiche.
Alternative alla Tua Shell Predefinita
Sebbene Bash sia uno strumento di scripting potente e ottimo, ci sono diverse altre shell che possono migliorare la tua esperienza da riga di comando e fornire migliori opzioni di personalizzazione:
Fish
fish si riferisce a Friendly Interactive Shell. Questa shell ha un’interfaccia da riga di comando intuitiva, con evidenziazione della sintassi, suggerimenti automatici e completamenti a tabulazione che rendono la digitazione dei comandi un gioco da ragazzi.
fish include anche uno strumento di configurazione basato sul web. Questo significa che puoi modificare le impostazioni e creare funzioni senza dover scavare nei file di configurazione.
Zsh
Zsh, o Z shell, è altamente personalizzabile e ha molte funzionalità utili. Alcune delle sue migliori caratteristiche includono globbing, correzione automatica, configurazioni personalizzate e completamento avanzato a tabulazione.
Zsh supporta anche plugin e temi, rendendo facile adattare la tua esperienza della shell ai tuoi gusti. Con Zsh, puoi anche mostrare il tuo ramo Git e eseguire manipolazioni di file complesse con semplici modelli.
Ksh
ksh, o KornShell, prende le migliori caratteristiche dalla C shell e dalla Bourne shell, rendendola una shell potente e facile da usare con capacità di scripting avanzate. Alcune caratteristiche di ksh includono funzioni matematiche integrate, editing della riga di comando, scripting della shell e estensibilità.
Conclusione
Cambiare la tua shell predefinita in Linux è un processo semplice che può migliorare la tua esperienza da riga di comando. Se sei un utente esperto, dovresti sicuramente provare altre shell alternative per Linux.
Crediti immagine: Lukas via Unsplash. Tutti gli screenshot di Haroon Javed.