Cum să vă schimbați Shell implicit pe Linux cu chsh
Publicat: 2022-01-29
Bash nu este singurul shell Linux. Este ușor să încerci alte shell-uri, cum ar fi Zsh, care este foarte popular. Când ați găsit unul care vă place, utilizați comanda chsh
pentru a-l transforma în shell-ul implicit. Vă vom arăta cum.
De ce este important un Shell
Shell-ul se află între dvs. și sistemul de operare. Oferă mediul în interiorul unei ferestre de terminal care vă permite să introduceți comenzi și să rulați programe. Shell-ul vă verifică intrarea și își dă seama ce doriți. Dacă vă poate îndeplini singur licitarea, o face. Dacă are nevoie de ajutor extern, caută calea și găsește programele care pot face orice ai solicitat.
Există multe shell-uri diferite disponibile pe Linux. Toate vă permit să efectuați aceleași sarcini de bază: explorați sistemul de fișiere, lucrați cu fișiere, lansați programe și rulați scripturi. Cu toate acestea, fiecare îndeplinește aceste sarcini în felul său și are propriile caracteristici și idiosincrazii speciale.
Cochiliile tind să fie proiectate de oameni care doresc ca lucrurile să se comporte într-un mod specific. Dacă gândirea ta se aliniază cu cea a acelui designer, acea înveliș ar putea fi potrivită pentru tine. În plus, este ușor să încerci un nou shell pe Linux.
În majoritatea distribuțiilor Linux, inclusiv Ubuntu, shell-ul implicit este bash
. Face o treabă grozavă și este foarte capabil. Cu toate acestea, un alt shell ar putea oferi o diferență de economisire a timpului care ar avea un impact mare asupra fluxului de lucru. Nu vei ști niciodată dacă nu te uiți!
RELATE : Ce este ZSH și de ce ar trebui să-l folosești în loc de Bash?
O găleată plină de scoici
Am acoperit mai înainte diferitele shell-uri Linux, dar iată o introducere rapidă la cele mai comune:
- bash: shell -ul Bourne din nou este implicit în multe distribuții.
- rbash: Acest shell
bash
restricționat oferă funcționalitate minimă persoanei sau scriptului care rulează în el. - ash: Shell Almquist este o versiune mai ușoară a bash.
- liniuță: Debian Alquist Shell este scriptul shell implicit în Ubuntu. În timp ce
bash
este autentificarea implicită și shell-ul interactiv,dash
este folosit pentru a rula procesele de sistem, deoarece este mult mai ușor decâtbash
. - zsh: Z shell este o interpretare modernă a familiei de shell-uri
bash
. Oferă îmbunătățiri clare, cum ar fi verificările ortografice ale comenzilor și corecțiile sugerate. - pește: această coajă interactivă prietenoasă a fost scrisă de la zero și nu este derivată din niciuna dintre celelalte familii de scoici. Este destinat să fie ușor de utilizat. Printre multe alte avantaje ale sale, fish oferă sugestii pentru comenzi bazate pe istoricul dvs. și pe conținutul dosarului curent, similar textului predictiv.
- ksh: KornShell oferă un limbaj de scripting deosebit de puternic.
RELATE : Care este diferența dintre Bash, Zsh și alte shell-uri Linux?
Listați Shell-urile instalate
Pentru a vedea ce shell-uri sunt instalate pe computer, utilizați această comandă. Pur și simplu listează conținutul /etc/shells
:
cat /etc/shells
Am menționat bash
, dash
și rbash
, dar ce este sh
?
sh
este carcasa lui Thompson, scrisă încă din 1971 de Ken Thompson de la faima Bell Labs. Nu mai este întreținut și de mult a fost înlocuit de scoici moderne. Este inclus doar pentru a menține compatibilitatea cu scripturile mai vechi care au încă următoarele ca primă linie:
#!/bin/sh
Acest lucru indică sistemului să folosească shell-ul sh
pentru a executa scriptul. Chiar aveți acel shell antic pe mașina dvs. și este folosit pentru a vă rula scripturile? Comanda which
ne va spune ce program rulează de fapt atunci când introduceți o comandă.
Să vedem ce rulează când tastați sh
:
care sh
Aceasta pare să găsească un binar. dacă săpăm puțin mai adânc, totuși, vom vedea că este o legătură simbolică care indică de fapt dash
, shell-ul ușor folosit pentru a executa scripturi:
ls -l /bin/sh
Acesta este un mod elegant și ușor de a oferi o plasă de siguranță pentru scripturile care se așteaptă să găsească sh
pe sistemele moderne.
Instalarea unui alt Shell
Să instalăm cochilia de fish
și să o setăm ca implicită pentru dave
. Pe Ubuntu, tastăm următoarea comandă:
sudo apt-get install fish
Pe Manjaro, folosește pacman
:
sudo pacman -Sy fish
Pe Fedora, tastați următoarele:
sudo dnf install fish
Când instalarea este completă, puteți verifica încă o dată shell-urile instalate:
cat /etc/shells
Noul nostru shell apare ca /usr/bin/fish
. Luați notă de acea cale - veți avea nevoie de ea în scurt timp.
Variabila de mediu $SHELL
Variabila de mediu $SHELL
deține numele shell-ului dvs. curent. Putem verifica pe care este setat cu echo
:
echo $SHELL
Să începem coaja de fish
:
peşte
Acum, să verificăm din nou ce spune variabila de mediu $SHELL
:
echo $SHELL
Prima dată când folosim echo $SHELL
, ne aflăm în shell-ul bash
. Variabila de mediu deține calea către executabilul bash
, /bin/bash
.
Când lansăm cochilia de fish
, primim un mesaj prietenos de bun venit și promptul de comandă se schimbă. Ceea ce ar putea fi surprinzător este că mediul $SHELL
încă deține calea către executabilul bash
, /bin/bash
. E în regulă, este normal.
Când lansați un nou shell (sau orice alt program), acesta moștenește mediul shell-ului părinte. Deci, shell-ul de fish
moștenește variabilele de mediu globale și exportate din shell-ul bash
. Deoarece valoarea din variabila de mediu $SHELL
nu a fost modificată, aceasta are aceeași valoare în shell-ul de fish
ca și în shell-ul bash
.

Derulăm fish
ca orice alt program. De asemenea, putem folosi exit
pentru a ieși din cochilia de fish
. Se închide ca orice alt program și ne întoarcem la shell-ul bash
.
Este grozav pentru a încerca noi cochilii, pentru a vedea ce pot face și dacă te înțelegi cu ele. Puteți explora înainte să faceți saltul și să adoptați unul ca coajă de bază.
Dacă decideți să faceți din fish
sau orice altă cochilie implicită, va trebui să utilizați comanda chsh
.
Comanda chsh
Comanda chsh
vă permite să vă schimbați shell-ul implicit. Trucul este să știți că vă permite să schimbați atât login-ul implicit, cât și shell-urile interactive implicite. Poate doriți să schimbați unul sau celălalt, sau ambele.
Ori de câte ori vă conectați pentru a obține un prompt de comandă, utilizați shell-ul configurat să fie shell-ul dvs. de conectare. Când sunteți deja autentificat și deschideți o fereastră de terminal, utilizați shell-ul configurat să fie shell-ul dvs. interactiv. Acestea pot fi aceleași sau diferite cochilii.
Pentru a vă seta shell-ul de conectare, utilizați chsh
fără parametri:
chsh
Vi se solicită parola. Apoi, trebuie să tastați calea către noul shell și să apăsați Enter.
Dacă facem o conexiune de la distanță la acest computer de testare de la altul, ne vom găsi în scoica de fish
odată ce ne vom conecta.
Pentru a vă schimba shell-ul interactiv, utilizați chsh
cu opțiunea -s
(shell). Transmite calea către noul shell pe linia de comandă:
chsh -s /usr/bin/fish
Vi se solicită parola și reveniți la promptul de comandă al shell-ului dvs. actual. Trebuie să vă deconectați și să vă reconectați pentru ca modificarea să intre în vigoare. Când o faceți, veți vedea mesajul de întâmpinare și promptul de comandă cu coajă de fish
.
Variabila de mediu $SHELL
deține acum calea către noul tău shell implicit:
echo $SHELL
Modificarea Shell al unui alt cont de utilizator
Dacă aveți privilegii de root și puteți utiliza sudo
, puteți schimba shell-urile altor conturi de utilizator. Comanda este aceeași ca înainte, cu adăugarea numelui de utilizator al acelei persoane adăugat la linia de comandă:
sudo chsh -s /usr/bin/fish mary
Când mary
se va conecta următoarea, va vedea noul shell când deschide o fereastră de terminal.
Toată lumea are un favorit
Atâta timp cât vă simțiți confortabil cu alegerea dvs. de carcasă și funcționează pentru dvs., este grozav! Nu uitați, trebuie să poată rula scripturi comune, cum ar fi rutinele de instalare. Pentru shell-urile menționate aici, aceasta nu ar trebui să fie o problemă.
Desigur, puteți, de asemenea, să descărcați și să instalați un nou shell și să îl luați pentru un test drive fără a face modificări de configurare pe computer. Când sunteți gata să vă căsătoriți, chsh
va efectua ceremonia pentru dvs.
Comenzi Linux | ||
Fișiere | tar · pv · cat · tac · chmod · grep · diff · sed · ar · om · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · tip · redenumire · zip · dezarhivare · montare · demontare · instalare · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm | |
Procese | alias · ecran · sus · frumos · renice · progres · strace · systemd · tmux · chsh · istoric · la · lot · gratuit · care · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · da · kill · sleep · sudo · su · time · groupadd · usermod · grupuri · lshw · shutdown · repornire · stop · poweroff · passwd · lscpu · crontab · data · bg · fg | |
Rețele | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
LEGATE: Cele mai bune laptopuri Linux pentru dezvoltatori și entuziaști