Come cambiare la shell predefinita in Linux con chsh

Contenuti

Un indicatore di shell stilizzato su un sistema portatile Linux in stile Ubuntu.

Bash non è l'unica shell Linux. È facile provare altre conchiglie, come zsh, che è molto popolare. Quando ne trovi uno che ti piace, usa el chsh comando per renderlo la tua shell predefinita. Ti mostreremo come.

Perché un guscio è essenziale

Guscio è tra te e il sistema operativo. Fornisce l'ambiente all'interno di una finestra di terminale che consente di scrivere comandi ed eseguire programmi. La shell controlla i tuoi input e scopre cosa vuoi. Se puoi fare un'offerta da solo, lo fa?. Se hai bisogno di un aiuto esterno, cerca il percorso e trova i programmi che possono fare quello che chiedi.

Ci sono molte diverse shell disponibili su Linux. Ti consentono tutti di eseguire le stesse attività di base: esplora il file system, lavorare con i file, avviare programmi ed eseguire script. Nonostante questo, ognuno svolge questi compiti a modo suo e ha le proprie caratteristiche e idiosincrasie speciali.

Gli alloggi tendono ad essere progettati da persone che vogliono che le cose si comportino in un modo specifico. Se il tuo pensiero è in linea con quello di quel designer, quel guscio potrebbe andar bene per te. Allo stesso tempo, testare una nuova shell su Linux è facile.

Sulla maggior parte delle distribuzioni Linux, incluso Ubuntu, la shell predefinita è bash. Fa un ottimo lavoro ed è molto capace. Nonostante questo, un'altra shell potrebbe offrire una differenza di risparmio di tempo che avrebbe un grande impatto sul flusso di lavoro. Non lo saprai mai se non guardi!

IMPARENTATO: Che cos'è ZSH e perché dovrei usarlo al posto di Bash?

Un secchio di conchiglie

Abbiamo già trattato le diverse shell di Linux, ma ecco una rapida introduzione a quelli più comuni:

  • provato: il Bourne di nuovo il guscio è il valore predefinito in molte distribuzioni.
  • rbash: Questo Limitato bash shell fornisce funzionalità minime alla persona o allo script in esecuzione su di essa.
  • cenere: il Concha Almquist è una versione più leggera di bash.
  • pizzico: Debian Alquist Shell es el script de shell predeterminato in Ubuntu. Tempo metereologico bash è l'accesso predefinito e la shell interattiva, dash viene utilizzato per eseguire processi di sistema perché è molto più leggero di bash.
  • zsh: Il guscio Z è una versione moderna di bash famiglia di conchiglie. Offre grandi miglioramenti, come i controlli ortografici dei comandi e le correzioni suggerite.
  • pez: Questo shell interattiva amichevole è stato scritto da zero e non è derivato da nessuna delle altre famiglie di shell. È pensato per essere facile da usare. Tra i suoi molti altri vantaggi, Fish offre suggerimenti di comandi basati sulla tua cronologia e sul contenuto della cartella corrente, simile a Testo predittivo.
  • ksh: Il KornShell fornisce un linguaggio di scripting concretamente robusto.

IMPARENTATO: Qual è la differenza tra Bash, Zsh e altre shell Linux?

Elenco delle custodie installate

Per vedere quali shell sono installate sul tuo computer, usa questo comando. Elenca semplicemente il contenuto del /etc/shells procedimento:

gatto /etc/shells

Abbiamo menzionato bash, dash, e rbash, ma cos'è sh?

sh è lui Thompson guscio, scritto in 1971 di Ken Thompson a partire dal Bell Labs fama. Non viene più mantenuto ed è stato a lungo sostituito da moderne conchiglie. È incluso solo per mantenere la compatibilità con gli script più vecchi che hanno ancora quanto segue come prima riga:

#!/bidone/sh

Questo indica al sistema di utilizzare il sh shell per eseguire lo script. Hai davvero quella vecchia shell sulla tua macchina e la stai usando per eseguire i tuoi script?? il which comando ci dirà quale programma è effettivamente in esecuzione quando digiti un comando.

Vediamo cosa viene eseguito durante la digitazione sh:

che sh

Questo sembra trovare un binario. Nonostante questo, se scaviamo un po' più a fondo, vedremo che è un collegamento simbolico che punta effettivamente a dash, la shell leggera usata per eseguire gli script:

ls -l / bin / sh

È un modo semplice e leggero per fornire una rete di sicurezza per gli script in attesa di essere trovati sh nei sistemi moderni.

Installa un'altra shell

Installiamo il fish shell e impostalo come predefinito per dave. In Ubuntu, scriviamo il seguente comando:

sudo apt-get install fish

A Manjaro, utilizzo pacman:

sudo pacman -Sy fish

In Fedora, scrivi quanto segue:

sudo dnf install fish

Al termine dell'installazione, puoi controllare le shell installate ancora una volta:

gatto /etc/shells

La nostra nuova shell appare come /usr/bin/fish. Prendi nota di quel percorso, ti servirà a breve.

La variabile d'ambiente $ GUSCIO

il $SHELL La variabile d'ambiente contiene il nome della tua shell attuale. Possiamo controllare quale è configurato con echo:

echo $SHELL

Iniziamo il fish guscio:

pesce

Ora, controlliamo di nuovo cosa? $SHELL variabile d'ambiente dice:

echo $SHELL

La prima volta che usiamo echo $SHELLNoi siamo nel bash guscio. La variabile d'ambiente contiene il percorso per il bash eseguibile, /bin/bash.

Quando abbiamo lanciato il fish guscio, riceviamo un messaggio di benvenuto amichevole e il prompt dei comandi cambia. Quello che potrebbe sorprendere è il $SHELL l'ambiente mantiene ancora il percorso verso il bash eseguibile, /bin/bash. Va bene, E 'normale.

Quando inizi una nuova shell (o qualsiasi altro programma), eredita l'ambiente dalla shell genitore. Così lui fish shell eredita le variabili di ambiente globali ed esportate dal bash guscio. Perché il valore in $SHELL La variabile d'ambiente non è stata modificata, ha lo stesso valore in fish conchiglia che ha fatto nel bash guscio.

stavano correndo fish come qualsiasi altro programma. Possiamo anche usare exit per uscire da fish guscio. Chiudi come qualsiasi altro programma, e torniamo al bash guscio.

È fantastico per provare nuove conchiglie, vedi cosa possono fare e se vai d'accordo con loro. Puoi esplorare prima di saltare e adottarne uno come shell di riferimento.

Se decidi di fare il fish—O qualsiasi altra shell: la tua predefinita, dovrai usare il chsh comando.

Il comando chsh

il chsh Il comando ti permette di cambiare la tua shell predefinita. Il trucco è essere consapevoli che ti consente di modificare sia il login predefinito che le shell interattive predefinite. Potresti voler cambiare l'uno o l'altro, entrambi.

Ogni volta che accedi per ottenere un prompt dei comandi, usa la shell configurata per essere la tua shell di login. Quando sei già connesso e apri una finestra di terminale, usa la shell configurata per essere la tua shell interattiva. Questi possono essere gli stessi gusci o diversi.

Per configurare la shell di accesso, utilizzo chsh senza parametri:

chsh

Ti viene chiesta la password. Successivamente, devi digitare il percorso della nuova shell e premere Invio.

Se effettuiamo una connessione remota a questo computer di prova da un altro, saremo in fish shell una volta effettuato l'accesso.

Per cambiare l'uso della tua shell interattiva chsh con il -s (guscio) opzione. Passa il percorso alla nuova shell sulla riga di comando:

chsh -s /usr/bin/fish

Ti viene richiesta la password e torni al prompt dei comandi della tua shell attuale. È necessario disconnettersi e riconnettersi affinché la modifica abbia effetto. Quando io faccio, vedrai il saluto e il fish prompt dei comandi della shell.

il $SHELL La variabile d'ambiente ora contiene il percorso della nuova shell predefinita:

echo $SHELL

Cambia la shell di un altro account utente

Se hai i privilegi di root e puoi usare sudo, può cambiare le copertine di altri account utente. Il comando è lo stesso di prima, con l'aggiunta del nome utente di quella persona aggiunto alla riga di comando:

sudo chsh -s /usr/bin/fish mary

quando mary Prossimo, Accedere, vedrai la nuova shell quando apri una finestra di terminale.

Tutti hanno un preferito

Finché ti senti a tuo agio con la tua scelta di shell e funziona per te, è fantastico! Ricorda, dovrebbe essere in grado di eseguire script comuni, come routine di installazione. Per i proiettili menzionati qui, questo non dovrebbe essere un ostacolo.

Certo, puoi anche scaricare e installare una nuova shell e testarla senza apportare modifiche alla configurazione sul tuo computer. Quando sei pronto per sposarti, chsh eseguirà la cerimonia per te.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.