Questo articolo spiega come modificare la shell predefinita in Linux. Usando questo puoi impostare Bash, sh, Zsh, Csh, Fish, ecc. Come shell.
L’articolo include le istruzioni per cambiare la shell di login dalla riga di comando usando chsh, o cambiare la shell solo per una particolare applicazione terminale. Sebbene l’articolo sia rivolto agli utenti Linux, dovrebbe funzionare anche su altri sistemi simili a Unix.
Come cambiare la shell di login predefinita usando chsh (dalla riga di comando)
Per cambiare la shell di login predefinita che useremo chsh
, uno strumento a riga di comando per modificare la shell di login.
Questo programma cambia la shell di login modificando il file /etc/passwd
file e impostando il file $SHELL
variabile d’ambiente. È possibile sovrascrivere la shell predefinita in un’applicazione terminale, impostando la shell dalle impostazioni del terminale – vedere la seconda parte di questo articolo per i dettagli.
Una nota per gli utenti Fedora. Fedora non ha chsh installato di default e per usarlo, è necessario installare un pacchetto chiamato util-linux-user
. Se vuoi saltare l’installazione di questo pacchetto, puoi usare lchsh
invece di cambiare la shell di login, che è disponibile di default:
sudo lchsh $USER
È importante notare che usando chsh, un utente normale può cambiare solo la shell di login per l’account corrente, mentre il superutente può cambiare la shell di login per qualsiasi account, incluso l’account root. Inoltre, il comportamento predefinito per gli utenti non root è accettare solo le shell elencate nel file /etc/shells
e invia un avviso per l’utente root.
Quindi, prima di cambiare il tuo guscio, elenca tutte le shell elencate nel file /etc/shells
file dal tuo sistema Linux utilizzando il seguente comando:
cat /etc/shells
Esempio con output:
$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/bin/rbash
/bin/dash
/usr/bin/tmux
/bin/zsh
Se la shell che desideri utilizzare non è elencata qui, potrebbe non essere installata sul tuo sistema. Quindi installalo (ad esempio, installa Zsh su Debian / Ubuntu / Linux Mint / Pop! _OS usando: sudo apt install zsh
) e ricontrolla.
Per cambiare la shell per il tuo utente, esegui:
chsh
Questo funziona chsh
in modalità interattiva, chiedendoti la password, quindi elencando la tua shell corrente (la maggior parte delle distribuzioni Linux usa Bash come shell predefinita) e chiedendoti di inserire un valore per la tua nuova shell. Ecco il comando con il suo output:
$ chsh
Password:
Changing the login shell for logix
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]:
Per modificare la shell, digita il percorso della nuova shell (che esiste in /etc/shells
) e premere il pulsante Enter
chiave.
Ad esempio, per cambiare la shell per l’utente corrente da Bash a Zsh:
$ chsh
Password:
Changing the login shell for logix
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]: /bin/zsh
Nel caso in cui stai utilizzando una versione chsh che non si avvia con un prompt interattivo dopo l’esecuzione chsh
, cambia direttamente la shell di login per il tuo utente:
chsh -s <SHELL>
Ad esempio, per cambiare la shell in Zsh:
chsh -s /bin/zsh
Dopo aver modificato la shell del tuo account, disconnettiti e accedi di nuovo per utilizzare la nuova shell.
Per cambiare la shell di login per un altro utente o per l’utente root, accedere al prompt della shell come root utilizzando su -
, sudo -i
, sudo su
, ecc. ed esegui:
- Per cambiare la shell per l’account root (e quando richiesto, inserisci la shell di login che desideri utilizzare, con il suo percorso completo):
chsh
- Per cambiare la shell di un altro utente (funziona anche per l’utente root, usando
root
come nome utente):
chsh -s <SHELL> <USERNAME>
Questa volta abbiamo usato chsh con il -s
opzione, che modifica direttamente la shell di login (non viene eseguita in modalità interattiva). Qui, SHELL
è la nuova shell (es /bin/zsh
) e USERNAME
è l’utente per il quale stai cambiando la shell; ad esempio, per cambiare la shell in /bin/zsh
per l’utente Logix
, useresti: chsh -s /bin/zsh Logix
).
Potrebbe piacerti anche: Starship è un prompt di shell minimo e veloce scritto in ruggine
Cambia la shell per il tuo utente in un’applicazione terminale
Puoi usare una shell diversa dalla shell di login ($SHELL
) per una particolare applicazione terminale, se tale applicazione consente di impostare una shell personalizzata o eseguire un comando personalizzato invece della shell predefinita.
Come nota a margine, puoi anche modificare la shell corrente (modifica non permanente) digitando il comando di shell che desideri utilizzare in un terminale (ad esempio, se digiti “zsh”, passerai all’utilizzo di Zsh per quella sessione; uscire digitando “exit”.).
Prendere Terminale GNOME per esempio (utilizzato nei desktop GNOME e Cinnamon come terminale predefinito). Apri il file Preferences
, fai clic sul profilo attivo corrente (di solito chiamato Predefinito o Senza nome se non l’hai modificato o aggiunto nuovi profili) nella barra laterale sinistra, quindi fai clic sul Command
scheda:
Qui è dove puoi impostare una shell personalizzata da utilizzare solo con questa applicazione. Abilita il Run a custom command instead of my shell
opzione, quindi nell’opzione Custom command
campo immettere il percorso completo della shell che si desidera utilizzare, ad es /bin/zsh
, /bin/bash
, eccetera.
In Terminale Xfce4, apri il Preferences
e sul General
scheda dovrai abilitare un’opzione chiamata Run a custom command instead of my shell
, quindi inserisci il comando personalizzato di seguito (questa è la shell che desideri utilizzare con questo terminale, ad es /bin/zsh
, /usr/bin/fish
, eccetera.).
Utilizzando KDE Plasma’s Konsole, vai a Settings -> Edit Current Profile
e sul General
scheda, cambia il file Command
campo al percorso completo della shell che si desidera utilizzare (ancora una volta, qualcosa come: /bin/zsh
, /bin/bash
, /usr/bin/fish
, eccetera.).
Utilizzando Guake, puoi cambiare la shell utente dalla sua Preferences
, sul Shell
scheda, dove troverai un’opzione chiamata Default interpreter
che consente di scegliere qualsiasi shell elencata in /etc/shells
.
Per i terminali che consentono di eseguire una shell personalizzata dovresti anche trovare un’opzione che consenta di eseguire il comando come shell di login (di solito chiamata semplicemente: “Esegui comando come shell di login”). Per leggere le differenze tra una shell di login e una shell interattiva, vedere questa pagina.
L’impostazione è la stessa nella maggior parte dei casi, quindi non fornirò altri esempi. Tuttavia, vale la pena notare che non tutte le applicazioni terminali hanno opzioni per consentire l’utilizzo di una shell personalizzata: in questi casi, utilizzare il chsh
comando per modificare la shell di login, come spiegato sopra.
Potrebbe piacerti: 179 combinazioni di colori per il tuo terminale Linux basato su Gtk (terminale Gnome, Tilix, terminale Xfce, altro)