Come cambiare la shell predefinita in Linux

Come cambiare la shell predefinita in Linux
Cambia la shell predefinita nell'immagine caratteristica di Linux

Una shell è l’interfaccia tramite 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.

Come trovare il nome attuale della tua Shell

Prima di addentrarci nella modifica della shell predefinita, è bene sapere quale shell stai utilizzando al momento. Puoi scoprirlo controllando la variabile di ambiente di sistema usando il seguente comando echo:

visualizzazione del percorso shell corrente tramite comando echo

Questo comando stamperà il percorso della shell corrente, ad esempio /bin/basho /bin/zsh.

Il /etc/passwdfile contiene informazioni importanti sull’account utente. Puoi anche usare questo file per trovare la tua shell attuale:

trovare la shell corrente utilizzando il comando grep sul file della variabile d'ambiente

È inoltre possibile trovare maggiori informazioni sulla shell corrente controllando l’ID del processo (PID) tramite il comando ps:

visualizzazione delle informazioni sul processo shell corrente tramite comando ps

Questo output conferma che la shell corrente è bash.

Elenca tutte le shell installate

Ora che conosci la tua shell attuale, potresti voler vedere quali altre opzioni sono disponibili sul tuo sistema. Per individuare tutte le shell installate sul tuo sistema, devi dare un’occhiata al /etc/shellsfile.

Usiamo il comando cat per visualizzare un elenco di tutte le shell disponibili sul tuo sistema:

elencando tutte le shell installate nel sistema Linux Ubuntu

Questo ti darà un’idea di quali shell puoi usare. Puoi anche installare qualsiasi nuova shell usando il tuo gestore di pacchetti e usarla come shell predefinita.

Inoltre, puoi provare queste shell elencate temporaneamente senza cambiare la tua shell predefinita. Per avviare una nuova sessione shell, digita semplicemente il nome della shell nel terminale.

Ad esempio, per provare la shell Zsh, digitare:

In questo modo potrai sperimentare diverse shell prima di decidere di effettuare un passaggio permanente.

Cambiare la shell predefinita in Linux usando Chsh

Il modo più diretto per cambiare la shell predefinita in Linux è usare il chshcomando. Il chshcomando sta per “change shell” e si usa insieme all’opzione -sseguita dal percorso della shell.

Se non conosci il percorso della tua shell, esegui type zshnel terminale per ottenere il percorso desiderato. Dopo aver ottenuto il percorso della tua shell, puoi cambiare la tua shell predefinita con la tua shell specifica.

Ad esempio, se si desidera passare a Zsh, è necessario utilizzare chsh -scon il percorso della shell Zsh:

Modifica della shell predefinita tramite il comando chsh

Ti verrà chiesto di inserire la tua password. Una volta fatto, devi uscire e accedere nuovamente per confermare le modifiche.

Il chshcomando cambierà la shell di login predefinita in modo permanente. Puoi verificare le modifiche eseguendo questo comando:

verifica del cambio di shell tramite comando grep sul file /etc/passwd

Modifica di un’altra shell utente

Se hai privilegi di root e la possibilità di usare il sudocomando, puoi cambiare la shell predefinita per altri account utente. Questo può essere utile se vuoi fornire un ambiente shell diverso, come fish, per un altro utente.

Ad esempio, per cambiare la shell di un altro utente in Zsh, eseguire questo comando nel terminale:

cambiare un'altra shell utente usando il comando chsh

Questo comando indica al sistema di modificare 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 è usare il usermodcomando. Questo comando è usato per modificare gli account utente e può anche essere usato per cambiare la shell predefinita.

Per cambiare la shell predefinita utilizzando usermod, apri un terminale con privilegi di root e digita questo comando:

Qui è necessario sostituire /path/to/new/shellcon il percorso shell desiderato e your_usernamecon il proprio nome utente effettivo.

Ad esempio, modifichiamo la shell bash predefinita in zsh:

cambiare la shell predefinita in un'altra shell usando il comando usermod

Proprio come in precedenza, disconnettiti e accedi nuovamente al tuo sistema Linux per rendere effettive le modifiche.

È possibile verificare il passaggio alla nuova shell esaminando i dettagli dell’account utente con il seguente comando:

Verifica della nuova shell dopo il passaggio dalla shell predefinita tramite getent

Modifica manuale della shell predefinita in Linux

Puoi anche cambiare manualmente la shell predefinita modificando il /etc/passwdfile. Puoi farlo sostituendo il percorso della shell predefinita con la nuova shell. Tuttavia, fai attenzione con questa tecnica, perché può causare problemi se non eseguita correttamente.

Per modificare manualmente la shell, apri il /etc/passwdfile utilizzando il tuo editor di testo preferito (come nano o vim) con privilegi di root:

apertura del file /etc/passwd utilizzando l'editor di testo nano

Cerca il tuo username nel file. L’ultimo campo nella voce del tuo utente mostrerà la tua shell corrente. Cambialo nel percorso della shell desiderata.

Ad esempio, modifichiamo il /bin/bashpercorso predefinito della shell in /bin/zsh:

modifica della shell bash predefinita in shell zsh nell'editor di testo /etc/passwd.

Infine, salva il file premendo Ctrl+ Sed esci dall’editor con Ctrl+ X. Di nuovo, esci e rientra per applicare le modifiche.

Alternativa alla tua shell predefinita

Sebbene Bash sia uno strumento di scripting potente e di grande utilità, esistono diverse altre shell che possono migliorare l’esperienza della riga di comando e offrire migliori opzioni di personalizzazione:

Pescare

fish si riferisce a Friendly Interactive Shell. Questa shell ha un’interfaccia intuitiva a riga di comando, con evidenziazione della sintassi, suggerimenti automatici e completamenti tramite tabulazione che rendono la digitazione dei comandi un gioco da ragazzi.

fish include anche uno strumento di configurazione basato sul web. Ciò 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 funzionalità includono globbing, autocorrezione, configurazioni personalizzate e completamento avanzato delle schede.

Zsh supporta anche plugin e temi, rendendo facile personalizzare la tua esperienza shell a tuo piacimento. Con Zsh, puoi anche mostrare il tuo ramo Git ed eseguire complesse manipolazioni di file con semplici pattern.

Ksh

ksh, o KornShell, prende le migliori caratteristiche dalla shell C e dalla shell Bourne, 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 ed estensibilità.

Conclusione

Cambiare la shell predefinita in Linux è un processo semplice che può migliorare la tua esperienza con la riga di comando. Se sei un utente esperto, dovresti assolutamente provare altre shell Linux alternative.

Credito immagine: Lukas tramite Unsplash . Tutti gli screenshot sono di Haroon Javed.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *