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 dibash
. - 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 $SHELL
Noi 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.