Quina diferència hi ha entre Bash, Zsh i altres shells de Linux?

Hem estat cobrint temes sobre scripts de shell perquè Linux es pot posar a gairebé qualsevol cosa. La versatilitat de l'intèrpret d'ordres de línia és el que realment ho permet, però què fa que cada intèrpret d'ordres sigui diferent i per què la gent prefereix una a una altra?

Què fan els Shells?

La línia d'ordres és una cosa molt interessant. Una vegada considerada com la interfície d'usuari més avançada, ha anat pel camí de les armilles i les plomes estilogràfiques: rebutjada a la perifèria. Tot i que encara hi veieu gran part del propòsit i la utilitat, normalment es deixen de banda principalment perquè els apreciïn els entusiastes, principalment perquè dediquen el temps a aprendre-ne els pros i els seus. De fet, la línia d'ordres en qualsevol sistema operatiu determinat tindrà moltes peculiaritats perquè el sistema operatiu fàcil interpreta les ordres de manera diferent. Avui, això és principalment un problema entre Linux, OS X i Windows, però abans era un problema amb la majoria d'ordinadors.



què-i-8217;és-la-diferència-entre-bash-zsh-i-altres-intèrprets-de-linux-foto 2

(Imatge de blakespot)

Els shells van entrar a la imatge i van permetre una extensió més estàndard de la línia d'ordres d'una manera molt més discreta. Les shells van afegir moltes funcionalitats, com ara la finalització de noms de fitxers i ordres i capacitats de scripts més avançades, i van ajudar a millorar el rendiment. També van fer molt per cobrir alguns problemes molests. Per exemple, a Unix, no podríeu fer una còpia de seguretat mitjançant enllaços simbòlics als directoris abans de seguir-los. Amb tot, van afegir algunes funcions que van permetre als usuaris fer la seva feina de manera més ràpida i eficient, igual que la gran quantitat de gestors de finestres alternatius de Linux.

Per què n'hi ha tants?

què-i-8217;és-la-diferència-entre-bash-zsh-i-altres-intèrprets-de-linux-foto 3

El progenitor més destacat dels shells moderns és el shell Bourne, conegut com a 'sh', que va rebre el nom del seu creador Stephen Bourne que treballava a AT&T. Es va convertir en l'intèrpret d'ordres Unix per defecte a causa del seu suport per a la substitució d'ordres, canonades, variables, proves de condicions i bucles, juntament amb altres funcions. Això va ser en una època en què la programació realment va acompanyar l'ús de la línia d'ordres, una pràctica que molts argumenten que s'ha diluït avui. No oferia als usuaris gaire marge de personalització per als usuaris, com ara àlies, finalització d'ordres i funcions de l'intèrpret d'ordres (tot i que finalment es va afegir aquesta última).

C shell ('csh') es va desenvolupar Bill Joy a UCB i realment va sacsejar les coses. Va afegir molts elements interactius que els usuaris podien utilitzar per controlar els seus sistemes, com àlies (dreceres per a ordres llargues), habilitats de gestió de treballs, historial d'ordres i molt més. Va ser modelat a partir del llenguatge de programació C, una idea interessant perquè Unix estava escrit en C. També significava que els usuaris de l'intèrpret d'ordres Bourne havien d'aprendre C per poder introduir-hi ordres. A més, tenia tones d'errors que els usuaris i els creadors havien de resoldre durant un gran període de temps. La gent va acabar utilitzant l'intèrpret d'ordres Bourne per als scripts perquè gestionava millor les ordres no interactives, però es va quedar amb l'intèrpret d'ordres C per a un ús normal.

Amb el temps, molta gent va solucionar els errors i va afegir funcions a l'intèrpret d'ordres C, culminant amb una cosa anomenada 'tcsh'. El problema, doncs, va ser que als ordinadors distribuïts basats en Unix, csh encara era el predeterminat i s'hi afegeixen algunes funcions no estàndard, creant un embolic de coses molt fragmentat (en retrospectiva). Aleshores, David Korn d'AT&T va treballar en l'intèrpret d'ordres Korn -'ksh' - que va intentar mitigar la situació utilitzant el llenguatge de l'intèrpret d'ordres Bourne com a base, però va afegir totes les noves funcions a les quals tothom estava acostumat. Malauradament per a molts, no era gratuït.

Una altra resposta a les agitades implementacions propietat de csh va ser la interfície del sistema operatiu portàtil per a Unix, o POSIX. Va ser un intent reeixit de crear un estàndard per a la interpretació d'ordres (entre altres coses) i finalment va reflectir moltes de les característiques que tenia l'intèrpret d'ordres Korn. Simultàniament, el projecte GNU estava en marxa i era un intent de crear un sistema operatiu lliure que fos totalment compatible amb Unix. Va desenvolupar un shell per al seu propi propòsit: el shell Bourne Again, format per unir característiques de sh, csh i ksh. El resultat, com s'ha vist en retrospectiva, va ser força impressionant.

Kenneth Almquist va crear un clon de l'intèrpret d'ordres Bourne - 'ash' - que era compatible amb POSIX i es convertiria en l'intèrpret d'ordres predeterminat a BSD, una branca/clon diferent d'Unix. La seva singularitat és que és realment lleuger, de manera que es va fer extremadament popular en sistemes Linux integrats. Si teniu un telèfon Android arrelat que té BusyBox instal·lat, està utilitzant el codi d'ash. Debian va desenvolupar un clon basat en cendres anomenat 'dash'.

què-i-8217;és-la-diferència-entre-bash-zsh-i-altres-linux-shell foto 5

(Imatge d'altres tres)

Un dels nous shells més destacats és 'zsh', desenvolupat per Paul Falstad l'any 1990. És un shell d'estil Bourne que pren funcions de bash i shells anteriors i afegeix encara més funcions. Té la correcció ortogràfica, la capacitat de vigilar els inicis de sessió / tancaments de sessió, algunes funcions de programació integrades com el bytecode, suport per a la notació científica en la sintaxi, permet l'aritmètica de coma flotant i, després, algunes. Un altre és el Friendly Interactive Shell, 'fish', que se centra en la sintaxi d'ordres que és fàcil de recordar i utilitzar.

En general, la majoria de shells es van crear com a clons d'intèrprets d'ordres anteriors que van afegir funcionalitats, corregir errors i evitar problemes de llicència i tarifes. Les excepcions notables són l'intèrpret d'ordres Bourne original i l'intèrpret d'ordres C, i tant l'intèrpret d'ordres rc com l'ash, que no són del tot originals, però definitivament tenen alguna utilitat de nínxol.

Quin he d'utilitzar?

què-i-8217;és-la-diferència-entre-bash-zsh-i-altres-intèrprets-de-linux-foto 6

Amb tantes coses, pensaries que és difícil triar quina carcassa utilitzar, però en realitat no és gaire difícil. Com que molts es basen en l'intèrpret d'ordres Bourne, les coses bàsiques seran iguals entre la majoria de les intèrprets.

Bash és el shell més utilitzat i és el predeterminat per a la majoria de distribucions de Linux. És realment robust i té un munt de funcions, la majoria de les quals probablement no les utilitzareu tret que programeu, així que és bastant segur dir que us podeu quedar amb aquesta. Com que és tan comú, és perfecte per crear coses que s'utilitzaran a diferents plataformes. Si voleu provar alguna cosa diferent que sigui una mica més fàcil d'utilitzar, podeu provar el peix.

Si us agrada molt els sistemes Linux incrustats, us agrada posar Linux en coses ridícules com la vostra Nintendo DS, o us agrada molt Debian, probablement ash/dash us convingui més. De nou, funciona principalment com els altres, però com que és una mena d'ossos nus i lleuger, trobareu a faltar alguna funcionalitat més complicada.

què-i-8217;és-la-diferència-entre-bash-zsh-i-altres-intèrprets-de-linux-foto 7

(Imatge de renrutal)

Si teniu previst programar o aprendre a desenvolupar-se a la línia d'ordres, haureu de ser una mica més exigent. Bash és una bona opció, però conec prou gent que ha canviat a Zsh pels seus extres. Suposo que realment depèn de com de complicats seran els vostres projectes i quin tipus de funcionalitat preferiu del vostre shell. Algunes persones encara s'adhereixen a tcsh perquè coneixen i utilitzen C amb regularitat i és més fàcil per a ells. El més probable és que si no esteu segur de quin shell triar, probablement no programeu gaire, així que intenteu triar alguna cosa que s'ajusti al que voleu aprendre i feu una investigació sobre què fan servir els altres en aquest camp.

Podeu instal·lar i eliminar fàcilment diferents shells mitjançant el Centre de programari d'Ubuntu o el vostre gestor de paquets preferit. Les shells es troben al directori /bin/ i, sempre que utilitzeu una distribució Linux moderna, és fàcil canviar quin és el vostre predeterminat. Només has d'introduir la següent comanda:

chsh

Se us demanarà la vostra contrasenya i, a continuació, podeu canviar a un shell diferent introduint-ne el camí.

què-i-8217;és-la-diferència-entre-bash-zsh-i-altres-intèrprets-de-linux-foto 8

Entre claudàtors, veureu el vostre valor predeterminat actual i, si voleu deixar-lo tal qual, només heu de prémer Enter.


Et quedes a bash? Tens una altra closca preferida? Quina és la teva funció més utilitzada? Expliqueu-nos els vostres pensaments als comentaris!

Més històries

Què heu dit: controleu l'ús de l'ample de banda?

A principis d'aquesta setmana us vam demanar que compartiu com (si ho feu) controleu l'ample de banda tant per a xarxes domèstiques com per a dispositius mòbils. Tornem per compartir les teves eines i consells preferits.

Projecte de cap de setmana: construeix un estoig de fibra de carboni per al teu gadget preferit

Si alguna vegada heu vist fibra de carboni, probablement haureu pensat que es tractava d'una mena de material de l'era espacial que només es podia fabricar en condicions acuradament controlades en una fàbrica.

Divendres de diversió: Trencaclosques de Roma

El cap de setmana és a punt d'arribar, però fins que no pugueu marxar a casa, per què no relaxeu-vos una mica i us agafeu la vostra jornada laboral? En el joc d'aquesta setmana tens una oportunitat de grandesa i l'oportunitat de visitar l'Olimp mentre treballes per construir una nova ciutat a l'època passada de l'antiga Roma.

Des del quadre de consells: selecció de diversos fons de pantalla, navegació ràpida d'iBook i seguiment dels preus de les aplicacions

Un cop a la setmana, obrim la caixa de consells i compartim els fantàstics consells que has enviat. Aquesta setmana estem veient com configurar fàcilment diversos fons de pantalla a Windows 7, comprimir iBook i fer un seguiment de la caiguda dels preus de les aplicacions.

Increïbles avions de paper per divertir-se a casa o a la feina [Geek Fun]

Estàs passant un d'aquells dies en què t'avorreixes i vols fer alguna cosa divertida? A continuació, agafeu una mica de paper i creeu la vostra pròpia flota personal d'avions de paper amb aquest fantàstic gràfic!

Principiant: Com canviar d'iGoogle Tornar a la pàgina d'inici de Google normal

Avui un lector ens ha escrit dient-nos que la seva pàgina d'inici abans era Google, però ara sembla que estan enganxats a iGoogle i preferirien recuperar el normal Google antic. Aquí teniu el que els vam dir.

Canto converteix YouTube en un Jukebox

Visiteu Cantio com a convidat i podreu cercar música al vostre gust. Registreu-vos per obtenir un compte gratuït i podreu crear llistes de reproducció, veure els vídeos que acompanyen la música i obtenir informació addicional sobre l'artista. A més...

Google Maps per a Android ara admet la memòria cau fora de línia

Google Maps per a Android és una manera fantàstica d'orientar-se, però què passa si et trobes en una zona amb una connectivitat irregular? La nova Àrea de descàrrega de mapes guarda els mapes a la memòria cau per utilitzar-los fora de línia.

La física de les cafeteres de goteig [vídeo]

Entra aigua i surt el cafè. Simple, oi? Tot i que una cafetera pot ser senzilla d'utilitzar i utilitzar peces mínimes per fer la feina (i mantenir el cost baix en el procés), la física del procés és fascinant...

Com (des)bloquejar el vostre ordinador en estar a prop (amb un telèfon Bluetooth)

Imagineu-vos: entres a la teva habitació, t'asseus davant de l'ordinador i es desbloqueja. Acabas el que estàs fent, te'n vas i es tanca. No, no és màgia, és Bluetooth i és fàcil de configurar!