De meeste Linux-distributies bevatten standaard de bash-shell, maar u kunt ook overschakelen naar een andere shell-omgeving. Zsh is een bijzonder populair alternatief en er zijn andere shells, zoals ash, dash, fish en tcsh. Maar wat is het verschil, en waarom zijn er zo veel?
Wanneer u zich aanmeldt op de opdrachtregel of een terminalvenster op Linux start, start het systeem het shell-programma. Shells bieden een standaard manier om de opdrachtregelomgeving uit te breiden. Je kunt de standaardshell omwisselen voor een andere shell, als je wilt.
De eerste shell-omgeving was de Thompson Shell, ontwikkeld bij Bell Labs en uitgebracht in 1971. Shell-omgevingen bouwen sindsdien voort op het concept en voegen een verscheidenheid toe van nieuwe functies, functionaliteit en snelheidsverbeteringen.
Bash biedt bijvoorbeeld de voltooiing van opdrachten en bestandsnamen, geavanceerde scriptingfuncties, een opdrachthistorie, configureerbare kleuren, opdrachtaliassen en een aantal andere functies die niet beschikbaar waren in 1971 toen de eerste schil werd vrijgegeven.
De schaal wordt ook op de achtergrond gebruikt door verschillende systeemservices. Linux-distributies bevatten veel functies die zijn geschreven als shellscripts. Deze scripts zijn opdrachten en andere geavanceerde shell scripting-functies lopen door de shell-omgeving.
RELATED: Wat is Unix en waarom maakt het verschil uit? ?
De meest prominente voorloper van moderne shells is de Bourne shell - ook bekend als "sh" - die werd genoemd naar de maker Stephen Bourne die werkte bij AT & T's Bell Labs. Uitgebracht in 1979, werd het de standaardopdracht-interpreter in Unix vanwege de ondersteuning voor opdrachtsubstitutie, piping, variabelen, conditietests en looping, samen met andere functies. Het bood niet veel aanpassingsmogelijkheden voor gebruikers en ondersteunde dergelijke moderne niceties niet als aliassen, opdrachtafronding en shell-functies (hoewel deze laatste uiteindelijk werd toegevoegd).
De C-shell of "csh" is ontwikkeld in de late jaren 1970 door Bill Joy aan de Universiteit van Californië, Berkley. Het voegde veel interactieve elementen toe waarmee gebruikers hun systemen konden beheren, zoals aliassen (snelkoppelingen voor lange opdrachten), mogelijkheden voor taakbeheer, opdrachtgeschiedenis en meer. Het was gemodelleerd uit de programmeertaal C, waarin het Unix-besturingssysteem zelf was geschreven. Dit betekende ook dat gebruikers van de Bourne-shell C moesten leren zodat ze daarin opdrachten konden invoeren. Bovendien had csh nogal wat bugs die zowel door gebruikers als videomakers over een lange periode moesten worden opgelost. Mensen gebruikten de Bourne-shell uiteindelijk voor scripts omdat het niet-interactieve commando's beter hanteerde, maar bij de C-shell voor normaal gebruik.
In de loop van de tijd hebben veel mensen bugs opgelost en functies aan de C-shell toegevoegd, met als hoogtepunt een verbeterde versie van csh bekend als "tcsh". Maar csh was nog steeds de standaard op Unix-gebaseerde computers en had een aantal niet-standaard functies toegevoegd. David Korn van Bell Labs werkte aan de KornShell, of "ksh", die probeerde de situatie te verbeteren door achterwaarts compatibel te zijn met de taal van de Bourne shell maar veel functies uit de csh-shell toe te voegen. Het werd uitgebracht in 1983, maar onder een gepatenteerde licentie. Het was geen gratis software tot de jaren 2000, toen het werd uitgebracht onder verschillende open-source licenties.
De draagbare besturingssysteeminterface voor Unix of POSIX was een ander antwoord op de hectische bedrijfseigen csh implementaties. Het creëerde met succes een standaard voor opdrachtinterpretatie (onder andere) en uiteindelijk weerspiegelde het veel van de functies in de KornShell. Tegelijkertijd probeerde het GNU-project een gratis, Unix-compatibel besturingssysteem te maken. Het GNU Project ontwikkelde een gratis softwareschil om deel uit te maken van zijn gratis besturingssysteem en noemde het de "Bourne Again Shell" of "bash".
Bash is verbeterd in de decennia sinds de eerste release in 1989, maar het is nog steeds de standaard shell op de meeste Linux-distributies vandaag. Het is ook de standaardshell op Apple's macOS en is beschikbaar voor installatie op Microsoft Windows 10.
Hoewel de Linux-gemeenschap zich in de jaren daarna op Bash heeft gevestigd, hebben ontwikkelaars niet gestopt met het maken van nieuwe shells toen Bash 28 jaar geleden voor het eerst werd uitgebracht.
Kenneth Almquist gemaakt een Bourne shell-kloon bekend als Almquish shell, A Shell, "ash" of soms gewoon "sh". het was ook POSIX-compatibel en werd de standaardshell in BSD, een andere tak van Unix. De ash shell is lichter dan bash, waardoor deze populair is in embedded Linux-systemen. Als je een geroote Android-telefoon hebt met BusyBox geïnstalleerd - of een ander apparaat met de BusyBox softwarepakketten - gebruikt het code van ash.
Debian ontwikkelde een shell-omgeving op basis van as en noemde het "streepje". Het is ontworpen om POSIX-compatibel en lichtgewicht te zijn, dus het is sneller dan Bash, maar heeft niet alle functies. Ubuntu gebruikt de dash-shell als de standaard shell voor niet-interactieve taken, waardoor shell-scripts en andere taken op de achtergrond worden versneld. Ubuntu maakt nog steeds gebruik van bash voor interactieve shells, dus gebruikers hebben nog steeds de volledig uitgeruste interactieve omgeving.
Een van de meest populaire nieuwere shells is Z-shell of "zsh". Geschreven door Paul Falstad in 1990, is zsh een shell in Bourne-stijl die de functies bevat die je in bash vindt, plus nog meer. Zo heeft zsh spellingcontrole, de mogelijkheid om logins / logouts te bekijken, enkele ingebouwde programmeerfuncties zoals bytecode, ondersteuning voor wetenschappelijke notatie in syntaxis, maakt drijvende komma rekenkunde mogelijk en meer functies.
Nog een nieuwere shell is de Friendly Interactive Shell, of 'fish', die in 2005 is uitgebracht. Deze heeft een unieke syntaxis voor de opdrachtregel die is ontworpen om iets eenvoudiger te leren zijn, maar die niet is afgeleid van de Bourne-shell of de C-shell. Het is een interessant idee, maar wat je leert door het gebruik van vis, hoeft je niet per se te helpen bash en andere van Bourne afkomstige schelpen te gebruiken.
U hoeft geen shell te kiezen. Uw besturingssysteem kiest uw standaard shell voor u, en die keuze is bijna altijd bash. Ga voor een Linux-distributie zitten, of zelfs een Mac, en je hebt bijna altijd een bash-shell-omgeving. Bash heeft nogal wat geavanceerde functies, maar je zult ze waarschijnlijk niet gebruiken tenzij je shell-scripts programmeert.
Op embedded Linux-systemen of BSD-systemen kom je terecht in de as-shell. Maar ash is een op Bourne gebaseerde shell en is grotendeels compatibel met bash. Alle kennis die je hebt bij het gebruik van bash wordt overgedragen naar een ash-shell of dash-shell, hoewel sommige geavanceerde scripting-functies niet beschikbaar zijn in deze lichtgewicht shell. Bijna elke shell die je tegenkomt, is Bourne-gebaseerd en werkt op dezelfde manier, inclusief zsh .
Daarom is zsh populair. Deze nieuwere shell is compatibel met bash, maar bevat meer functies. De zsh-shell biedt ingebouwde spellingcorrectie, verbeterde voltooiing van de opdrachtregel, laadbare modules die fungeren als plug-ins voor je shell, globale aliassen waarmee je aliasbestandsnamen kunt maken of iets anders op de opdrachtregel in plaats van alleen maar opdrachten, en meer ondersteuning voor thema's. Het is net bash, maar met veel extra's, extra functies en configureerbare opties die je misschien op prijs stelt als je veel tijd op de opdrachtregel doorbrengt.
Als je bekend bent met bash, kun je overschakelen naar zsh zonder te leren een andere syntaxis: u krijgt alleen extra functies. als u bekend bent met zsh, kunt u overschakelen naar bash zonder een andere syntaxis te leren - u hebt gewoon geen toegang tot deze functies.
"Oh My ZSH" is een hulpmiddel waarmee u zsh-plug-in eenvoudiger kunt inschakelen ins en schakel tussen vooraf ingestelde thema's, snel aanpassen van je zsh-shell zonder uren te besteden aan het aanpassen van dingen.
Er zijn ook andere shells. De tcsh-shell is bijvoorbeeld nog steeds in de buurt en is nog steeds een optie. FreeBSD gebruikt tsch als zijn standaard rootshell en as als zijn standaard interactieve shell. Als u de C-programmering regelmatig gebruikt, is tsch wellicht beter geschikt voor u. Het komt echter niet in de buurt, zoals vaak wordt gebruikt als bash of zsh.
Schakelen tussen shells
Laten we bijvoorbeeld zeggen dat je Zsh op Ubuntu wilt proberen. Voer de volgende opdrachten uit om te installeren en start deze vervolgens:
sudo apt installeer zsh zsh
Je zou dan in een zsh-shell zitten. Typ "
exit" in de shell om het te verlaten en terug te keren naar uw huidige shell.
Dit is slechts tijdelijk. Wanneer u een nieuw terminalvenster opent of bij uw systeem aanmeldt op de opdrachtregel, ziet u uw standaardshell. Als u de shell wilt wijzigen die wordt weergegeven wanneer u zich aanmeldt, ook bekend als uw login-shell, kunt u over het algemeen de opdracht
chshof "Change Shell" gebruiken.
Als u deze opdracht wilt gebruiken, gaat u eerst moet je het volledige pad naar je shell vinden met de opdracht. Laten we bijvoorbeeld zeggen dat we wilden veranderen naar de shell van zsh. We zouden de volgende opdracht uitvoeren:
welke zsh
op Ubuntu, dit vertelt ons dat het zsh binary is opgeslagen op /usr/bin/zsh.
Voer de volgende opdracht uit, voer je wachtwoord in en jij ' Er wordt gevraagd om een nieuwe inlogshell te kiezen:
chsh
Volgens het bovenstaande commando zouden we
/ usr / bin / zshinvoeren. De zsh-shell is dan onze standaard totdat we de opdracht
chshhebben uitgevoerd en deze hebben teruggezet.
Hoe u uw naam op Facebook kunt wijzigen
Of u net bent getrouwd, niet langer identificeert met uw geboortenaam, of gewoon de overdreven formele "Robert" wilt wijzigen in "Rob" in je profiel, hier is hoe je de naam die je op Facebook gebruikt kunt wijzigen. Voordat je erin gaat duiken, is het de moeite waard om eens naar Facebook's namenbeleid te kijken.
Hoe u de snelle gebruikerswisseling in MacOS inschakelt
Als u een Mac deelt met familie of kamergenoten, wilt u meerdere macOS-gebruikersaccounts instellen. Elk account heeft zijn eigen documenten, browsergeschiedenis en opgeslagen wachtwoorden. GERELATEERD: Meerdere gebruikersaccounts instellen in macOS Het instellen van meerdere accounts is een goed idee vanuit een beveiligingsperspectief, zelfs wanneer u uw account deelt computer met mensen die u vertrouwt.