Questo articolo spiega come modificare la shell predefinita in Linux. Ciò ti consente di impostare bash, sh, zsh, csh, fish, ecc. come shell.
L'articolo fornisce istruzioni su come modificare la shell di accesso dalla riga di comando con chsh o su come modificare la shell solo per un'applicazione terminale specifica. Sebbene l'articolo sia rivolto agli utenti Linux, dovrebbe funzionare anche su altri sistemi simili a Unix.
Come modificare la shell di accesso predefinita con chsh (dalla riga di comando)
Per modificare la shell di accesso predefinita utilizziamo chsh
, uno strumento da riga di comando per modificare la shell di accesso.
Questo programma cambia la shell di login cambiando il /etc/passwd
File e impostazione del $SHELL
Variabile d'ambiente. Puoi sovrascrivere la shell predefinita in un'applicazione terminale impostando la shell nelle impostazioni del terminale:i dettagli sono disponibili nella seconda parte di questo articolo.
Una nota per gli utenti Fedora. Fedora non ha chsh installato di default e per usarlo è necessario un pacchetto chiamato. per installare util-linux-user
. Se vuoi saltare l'installazione di questo pacchetto, puoi lchsh
Per modificare invece la shell di accesso predefinita:
sudo lchsh $USER
È importante notare che un utente normale con chsh 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 che sono nell'elenco /etc/shells
Archivia ed invia un avviso all'utente root.
Quindi, prima di cambiare guscio, Elenca tutte le cozze elencate nel /etc/shells
File dal tuo sistema Linux utilizzando il seguente comando:
cat /etc/shells
Esempio con uscita:
$ 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 con:sudo apt install zsh
) e ricontrolla.
Per cambiare la shell per il tuo utente, procedi come segue:
chsh
Funziona chsh
in modalità interattiva, ti chiede la password, quindi elenca la tua shell corrente (la maggior parte delle distribuzioni Linux usa Bash come shell predefinita) e ti chiede 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 cambiare la tua shell, inserisci il percorso della nuova shell (che esiste in /etc/shells
) e premere il 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
Se stai utilizzando una versione di chsh che non si avvia con un prompt dei comandi interattivo dopo l'esecuzione chsh
, cambia direttamente la shell di accesso per il tuo utente:
chsh -s <SHELL>
Es. per cambiare la shell in Zsh:
chsh -s /bin/zsh
Dopo aver modificato la shell del tuo account, esci e accedi nuovamente per utilizzare la nuova shell.
Per modificare la shell di login per un altro utente o per l'utente root, accedi come root al prompt della shell. a su -
, sudo -i
, sudo su
, ecc. ed esegui:
- Per cambiare la shell per l'account root (e quando richiesto, inserire la shell di accesso desiderata con il suo percorso completo):
chsh
- Per cambiare la shell di un altro utente (funziona anche per l'utente root con
root
come nome utente):
chsh -s <SHELL> <USERNAME>
Questa volta abbiamo usato chsh con quel -s
-Opzione che cambia direttamente la shell di accesso (non viene eseguita in modalità interattiva). Qui, SHELL
è la nuova shell (ad 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 questo:Starship è un prompt di shell minimo e veloce in Rust
Cambia la shell per il tuo utente in un'applicazione terminale
Puoi usare una shell diversa dalla shell di login ($SHELL
) per un'applicazione terminale specifica, se tale applicazione consente di impostare una shell personalizzata o di eseguire un comando personalizzato al posto della shell predefinita.
Come nota a margine, puoi anche cambiare la shell corrente (non una modifica permanente) inserendo il comando della shell che vuoi usare in un terminale (ad esempio se digiti "zsh" passerai a usare zsh per quella sessione; esci) da digitando "exit").
Per prendere il terminale GNOME (usato come terminale predefinito nei desktop GNOME e Cinnamon). Apri il suo Preferences
, fai clic sul profilo attualmente attivo (di solito denominato Predefinito o Senza titolo se non lo hai modificato o aggiunto nuovi profili) nella barra laterale sinistra, quindi fai clic su Command
Scheda:
Qui puoi impostare una shell personalizzata che verrà utilizzata solo con questa applicazione. Attiva il Run a custom command instead of my shell
Opzione, quindi nel Custom command
Immettere il percorso completo della shell che si desidera utilizzare, ad es. /bin/zsh
, /bin/bash
, ecc.
Nel terminale Xfce4 , apri quel Preferences
e sul General
Scheda hai un'opzione chiamata. attiva Run a custom command instead of my shell
, quindi inserisci il comando personalizzato sotto (questa è la shell che vuoi usare con questo terminale es. /bin/zsh
, /usr/bin/fish
, ecc.).
Usare KDE Plasmas Console , vai a Settings -> Edit Current Profile
e sul General
Tab, cambia il Command
Campo per il percorso completo della shell che vuoi usare (di nuovo, qualcosa come:/bin/zsh
, /bin/bash
, /usr/bin/fish
, ecc.).
Usando Guake , puoi utilizzare la shell utente dal tuo Preferences
, sul Shell
Scheda in cui hai un'opzione chiamata. Trova Default interpreter
questo consente di selezionare qualsiasi shell elencata in /etc/shells
.
Per i terminali che ti consentono di eseguire una shell personalizzata, dovresti anche trovare un'opzione che ti permetta di eseguire il comando come shell di login (di solito chiamata semplicemente "esegui comando come shell di login"). Per informazioni sulle differenze tra una shell di accesso e una shell interattiva, vedere questa pagina.
L'impostazione è la stessa nella maggior parte dei casi, quindi non fornirò ulteriori esempi. Vale la pena notare, tuttavia, che non tutte le applicazioni terminali hanno opzioni per consentire l'uso di una shell personalizzata:in questi casi, utilizzare il chsh
Comando per modificare la shell di accesso come descritto sopra.
Potrebbe piacerti questo:179 combinazioni di colori per il tuo terminale Linux basato su Gtk (terminale Gnome, Tilix, terminale Xfce, altro)