Verschil tussen sh en bash

Bij het schrijven van shell-programma’s gebruiken we vaak /bin/shen /bin/bash. Ik gebruik meestal bash, maar ik weet niet wat het verschil tussen beide is.

Wat is het belangrijkste verschil tussen bashen sh?

Waar moeten we op letten bij het programmeren in bashen sh?


Antwoord 1, autoriteit 100%

Wat is sh

sh(of de Shell Command Language) is een programmeertaal die wordt beschreven door de POSIX
standaard
.
Het heeft veel implementaties (ksh88, dash, …). bashkan ook zijn
beschouwd als een implementatie van sh(zie hieronder).

Omdat sheen specificatie is en geen implementatie, is /bin/sheen symbolische link
(of een harde link) naar een daadwerkelijke implementatie op de meeste POSIX-systemen.

Wat is bash

bashbegon als een sh-compatibele implementatie (hoewel het een paar jaar ouder is dan de POSIX-standaard), maar na verloop van tijd heeft het veel uitbreidingen gekregen. Veel van deze extensies kunnen het gedrag van geldige POSIX-shellscripts veranderen, dus op zichzelf is bashgeen geldige POSIX-shell. Het is eerder een dialect van de POSIX-shell-taal.

bashondersteunt een --posix-switch, waardoor deze meer POSIX-compatibel is. Het probeert ook POSIX na te bootsen als het wordt aangeroepen als sh.

sh = bash?

Lange tijd verwees /bin/shnaar /bin/bashop de meeste GNU/Linux-systemen. Als gevolg hiervan was het bijna veilig geworden om het verschil tussen de twee te negeren. Maar dat begon onlangs te veranderen.

Enkele populaire voorbeelden van systemen waarbij /bin/shniet verwijst naar /bin/bash(en op sommige daarvan /bin/bashbestaat misschien niet eens) zijn:

  1. Moderne Debian- en Ubuntu-systemen, die standaard shaan dashkoppelen;
  2. Busybox, die gewoonlijk wordt uitgevoerd tijdens de opstarttijd van het Linux-systeem als onderdeel van initramfs. Het gebruikt de ashshell-implementatie.
  3. BSD’s, en in het algemeen alle niet-Linux-systemen. OpenBSD gebruikt pdksh, een afstammeling van de Korn-shell. FreeBSD’s shis een afstammeling van de originele UNIX Bourne-shell. Solaris heeft zijn eigen shdie lange tijd niet POSIX-compatibel was; een gratis implementatie is beschikbaar via het Heirloom-project.

Hoe kom je erachter waar /bin/shnaar verwijst op je systeem?

De complicatie is dat /bin/sheen symbolische link of een harde link kan zijn.
Als het een symbolische link is, is een draagbaremanier om dit op te lossen:

% file -h /bin/sh
/bin/sh: symbolic link to bash

Als het een harde link is, probeer dan

% find -L /bin -samefile /bin/sh
/bin/sh
/bin/bash

In feite dekt de vlag -Lzowel symbolische als harde links,
maar het nadeel van deze methode is dat het niet draagbaar is
POSIX vereist nietfindom de -samefileoptie,
hoewel zowel GNU findals FreeBSD findondersteunt het.

Shebang-regel

Uiteindelijk is het aan jou om te beslissen welke je wilt gebruiken, door de shebang -regel als de allereerste regel van het script te schrijven.

Bijvoorbeeld

#!/bin/sh

zal shgebruiken (en waar dat ook naar verwijst),

#!/bin/bash

zal /bin/bashgebruiken als het beschikbaar is (en mislukken met een foutmelding als dat niet het geval is). U kunt natuurlijk ook een andere implementatie specificeren, bijvoorbeeld

#!/bin/dash

Welke te gebruiken

Voor mijn eigen scripts geef ik de voorkeur aan shom de volgende redenen:

  • het is gestandaardiseerd
  • het is veel eenvoudiger en gemakkelijker te leren
  • het is overdraagbaar op POSIX-systemen – zelfs als ze toevallig geen bashhebben, moeten ze sh
  • hebben

Er zijn ook voordelen aan het gebruik van bash. De functies maken programmeren gemakkelijker en vergelijkbaar met programmeren in andere moderne programmeertalen. Deze omvatten zaken als lokale variabelen en arrays met een bereik. Plain shis een zeer minimalistische programmeertaal.


Antwoord 2, autoriteit 13%

sh: http://man.cx/sh
bash: http://man.cx/bash

TL;DR: bashis een superset van shmet een elegantere syntaxis en meer functionaliteit. Het is in bijna alle gevallen veilig om een ​​bash shebang-regel te gebruiken, omdat deze vrij alomtegenwoordig is op moderne platforms.

NB: in sommige omgevingen is shbash. Controleer sh --version.


Antwoord 3, autoriteit 9%

Deze vraag is vaak genomineerd als canoniek voor mensen die shproberen te gebruiken en verbaasd zijn dat het zich niet hetzelfde gedraagt ​​als bash. Hier volgt een kort overzicht van veelvoorkomende misverstanden en valkuilen.

Ten eerste moet u weten wat u kunt verwachten.

  • Als u uw script uitvoert met sh scriptname, of het uitvoert met scriptnameen #!/bin/shin de shebangregel, je zou POSIX shgedrag moeten verwachten.
  • Als u uw script uitvoert met bash scriptname, of het uitvoert met scriptnameen #!/bin/bash(of de lokale equivalent) in de shebang-regel, zou je Bash-gedrag moeten verwachten.

Een correcte shebang hebben en het script uitvoeren door alleen de scriptnaam te typen (mogelijk met een relatief of volledig pad) is over het algemeen de voorkeursoplossing. Naast een correcte shebang, vereist dit dat het scriptbestand uitvoerrechten heeft (chmod a+x scriptname).

Dus, hoe verschillen ze eigenlijk?

De Bash Reference-handleiding heeft een sectie waarin wordt geprobeerd de verschillen op te sommenmaar enkele veelvoorkomende bronnen van verwarring zijn onder meer

  • [[is niet beschikbaar in sh(alleen [dat onhandiger en beperkter is). Zie ook Verschil tussen enkele en dubbele vierkante haakjes in Bash
  • shheeft geen arrays.
  • Sommige Bash-zoekwoorden zoals local, source, function, shopt, let, declareen selectzijn niet overdraagbaar naar sh. (Sommige sh-implementaties ondersteunen bijv. local.)
  • Bash heeft veel C-stijl syntaxextensies zoals de drie-argumenten for((i=0;i<=3;i++))lus, +=increment opdracht, enz. De functie $'string\nwith\tC\aescapes'is voorlopig geaccepteerd voor POSIX(wat betekent dat het nu in Bash werkt, maar nog niet wordt ondersteund door shop systemen die alleen voldoen aan de huidige POSIX-specificatie, en dat zal waarschijnlijk voorlopig niet gebeuren komen).
  • Bash ondersteunt <<<'here strings'.
  • Bash heeft *.{png,jpg}en {0..12}accolade-uitbreiding.
  • ~verwijst alleen naar $HOMEin Bash (en meer in het algemeen ~usernamenaar de homedirectory van username).Dit is in POSIX, maar kan ontbreken in sommige pre-POSIX /bin/shimplementaties.
  • Bash heeft procesvervanging met <(cmd)en >(cmd).
  • Bash heeft handige omleidingsaliassen in Csh-stijl, zoals &|voor 2>&1 |en &>voor > ... 2>&1
  • Bash ondersteunt co-processen met <>omleiding.
  • Bash biedt een uitgebreide reeks uitgebreide niet-standaard parameteruitbreidingen zoals ${substring:1:2}, ${variable/pattern/replacement}, case conversie, enz.
  • Bash heeft aanzienlijk uitgebreide faciliteiten voor shell-rekenkunde (hoewel nog steeds geen drijvende-komma-ondersteuning). Er is een verouderde verouderde $[expression]-syntaxis die echter moet worden vervangen door de POSIX-rekenkundige $((expression))-syntaxis. (Sommige oudere pre-POSIX shimplementaties ondersteunen dat echter mogelijk niet.)
  • Verschillende ingebouwde commando’s hebben opties die niet overdraagbaar zijn, zoals type -a, printf -ven de eeuwige echo -e.
  • Magische variabelen zoals $RANDOM, $SECONDS, $PIPESTATUS[@]en $FUNCNAMEzijn Bash extensies.
  • Syntactische verschillen zoals export variable=valueen [ "x" == "y" ]die niet overdraagbaar zijn (export variablezou moeten gescheiden zijn van variabele toewijzing, en draagbare tekenreeksvergelijking in [ ... ]gebruikt een enkel gelijkteken).
  • Veel, veel Bash-only extensies om optioneel gedrag in of uit te schakelen en de interne status van de shell bloot te leggen.
  • Veel, heel veel gemaksfuncties voor interactief gebruik die echter geen invloed hebben op het scriptgedrag.

Vergeet niet dat dit een verkorte lijst is. Raadpleeg de referentiehandleiding voor de volledige primeur, en http://mywiki.wooledge.org/Bashismvoor veel goede oplossingen; en/of probeer http://shellcheck.net/die waarschuwt voor veel Bash-only-functies.

Een veel voorkomende fout is om een ​​#!/bin/bashshebang-regel te hebben, maar dan toch sh scriptnamete gebruiken om het script daadwerkelijk uit te voeren. Dit schakelt in feite alle Bash-functionaliteit uit, dus je krijgt syntaxisfouten, b.v. voor het proberen om arrays te gebruiken. (De shebang-regel is syntactisch een opmerking, dus deze wordt in dit scenario gewoon genegeerd.)

Helaas zal Bash niet waarschuwen wanneer je deze constructies probeert te gebruiken wanneer het wordt aangeroepen als sh. Het schakelt ook niet volledig alleBash-only functionaliteit uit, dus het uitvoeren van Bash door het aan te roepen als shis geen goede manier om te controleren of je script goed overdraagbaar is naar ash/dash/POSIX shof varianten zoals erfstuk sh


Antwoord 4, autoriteit 6%

Shellis een interface tussen een gebruiker en het besturingssysteem voor toegang tot de services van een besturingssysteem. Het kan een GUI of CLI (Command Line-interface) zijn.

sh(Bourne shell) is een shell-opdrachtregelinterpreter voor Unix/Unix-achtige besturingssystemen. Het biedt een aantal ingebouwde commando’s. In scripttaal duiden we tolk aan als #!/bin/sh. Het werd het meest ondersteund door andere shells zoals bash (gratis/open), kash (niet gratis).

Bash(Bourne again shell) is een shell-vervanger voor de Bourne-shell. Bash is een superset van sh. Bash ondersteunt sh. POSIX is een reeks standaarden die bepalen hoe POSIX-compatibele systemen zouden moeten werken. Bash is niet echt een POSIX-compatibele shell. In een scripttaal duiden we de tolk aan als #!/bin/bash.

Analogie:

  • Shell is als een interface of specificaties of API.
  • sh is een klasse die de Shell-interface implementeert.
  • Bash is een subklasse van de sh.

voer hier de afbeeldingsbeschrijving in


Antwoord 5, autoriteit 5%

Post van UNIX.COM

Shell-functies

Deze tabel hieronder geeft een overzicht van de meeste functies waarvan ik denk dat je de ene shell boven de andere zou kiezen. Het is niet bedoeld als een definitieve lijst en bevat niet elke mogelijke functie voor elke mogelijke shell. Een feature wordt alleen als een shell beschouwd als deze zich in de versie bevindt die bij het besturingssysteem wordt geleverd, of als deze beschikbaar is als rechtstreeks gecompileerd vanuit de standaarddistributie. Met name de hieronder gespecificeerde C-shell is die beschikbaar op SUNOS 4.*, een aanzienlijk aantal leveranciers levert nu ofwel tcsh of hun eigen verbeterde C-shell (ze maken niet altijd duidelijk dat ze tcsh verzenden.

Code:

                                    sh   csh  ksh  bash tcsh zsh  rc   es
Job control                          N    Y    Y    Y    Y    Y    N    N
Aliases                              N    Y    Y    Y    Y    Y    N    N
Shell functions                      Y(1) N    Y    Y    N    Y    Y    Y
"Sensible" Input/Output redirection  Y    N    Y    Y    N    Y    Y    Y
Directory stack                      N    Y    Y    Y    Y    Y    F    F
Command history                      N    Y    Y    Y    Y    Y    L    L
Command line editing                 N    N    Y    Y    Y    Y    L    L
Vi Command line editing              N    N    Y    Y    Y(3) Y    L    L
Emacs Command line editing           N    N    Y    Y    Y    Y    L    L
Rebindable Command line editing      N    N    N    Y    Y    Y    L    L
User name look up                    N    Y    Y    Y    Y    Y    L    L
Login/Logout watching                N    N    N    N    Y    Y    F    F
Filename completion                  N    Y(1) Y    Y    Y    Y    L    L
Username completion                  N    Y(2) Y    Y    Y    Y    L    L
Hostname completion                  N    Y(2) Y    Y    Y    Y    L    L
History completion                   N    N    N    Y    Y    Y    L    L
Fully programmable Completion        N    N    N    N    Y    Y    N    N
Mh Mailbox completion                N    N    N    N(4) N(6) N(6) N    N
Co Processes                         N    N    Y    N    N    Y    N    N
Builtin artithmetic evaluation       N    Y    Y    Y    Y    Y    N    N
Can follow symbolic links invisibly  N    N    Y    Y    Y    Y    N    N
Periodic command execution           N    N    N    N    Y    Y    N    N
Custom Prompt (easily)               N    N    Y    Y    Y    Y    Y    Y
Sun Keyboard Hack                    N    N    N    N    N    Y    N    N
Spelling Correction                  N    N    N    N    Y    Y    N    N
Process Substitution                 N    N    N    Y(2) N    Y    Y    Y
Underlying Syntax                    sh   csh  sh   sh   csh  sh   rc   rc
Freely Available                     N    N    N(5) Y    Y    Y    Y    Y
Checks Mailbox                       N    Y    Y    Y    Y    Y    F    F
Tty Sanity Checking                  N    N    N    N    Y    Y    N    N
Can cope with large argument lists   Y    N    Y    Y    Y    Y    Y    Y
Has non-interactive startup file     N    Y    Y(7) Y(7) Y    Y    N    N
Has non-login startup file           N    Y    Y(7) Y    Y    Y    N    N
Can avoid user startup files         N    Y    N    Y    N    Y    Y    Y
Can specify startup file             N    N    Y    Y    N    N    N    N
Low level command redefinition       N    N    N    N    N    N    N    Y
Has anonymous functions              N    N    N    N    N    N    Y    Y
List Variables                       N    Y    Y    N    Y    Y    Y    Y
Full signal trap handling            Y    N    Y    Y    N    Y    Y    Y
File no clobber ability              N    Y    Y    Y    Y    Y    N    F
Local variables                      N    N    Y    Y    N    Y    Y    Y
Lexically scoped variables           N    N    N    N    N    N    N    Y
Exceptions                           N    N    N    N    N    N    N    Y

Sleutel tot de bovenstaande tabel.

Y-functie kan worden gedaan met deze shell.

N Functie is niet aanwezig in de shell.

F Feature kan alleen worden gedaan door de shells-functie te gebruiken
mechanisme.

L De leesregelbibliotheek moet aan de shell zijn gekoppeld om in te schakelen
deze functie.

Opmerkingen bij de bovenstaande tabel

1. This feature was not in the original version, but has since become
   almost standard.
2. This feature is fairly new and so is often not found on many
   versions of the shell, it is gradually making its way into
   standard distribution.
3. The Vi emulation of this shell is thought by many to be
   incomplete.
4. This feature is not standard but unofficial patches exist to
   perform this.
5. A version called 'pdksh' is freely available, but does not have
   the full functionality of the AT&T version.
6. This can be done via the shells programmable completion mechanism.
7. Only by specifying a file via the ENV environment variable.

Antwoord 6, autoriteit 2%

TERMINAL

  • programma(‘s) die een raam openzetten
  • xterm, rxvt, konsole, kvt, gnome-terminal, nxterm en eterm.

SHELL

  • Is een programma dat in de terminal draait
  • Shell is zowel een commando-interpreter als een programmeertaal
  • Shell is gewoon een macroprocessor die opdrachten uitvoert.
  • Macroprocessor betekent functionaliteit waarbij tekst en symbolen worden uitgebreid om grotere uitdrukkingen te creëren.

SH Vs. BASH

SH

  • (SHell)
  • Is een specifieke shell
  • een commando-interpreter en een programmeertaal
  • Voorganger van BASH

BASH

  • (Bourne-Nogmaals SHell)
  • Is een specifieke shell
  • een commando-interpreter en een programmeertaal
  • Heeft sh-functionaliteit en meer
  • Opvolger van SH
  • BASH is de standaard SHELL

REFERENTIEMATERIAAL:

SHELL
gnu.org:

In de basis is een shell gewoon een macroprocessordie wordt uitgevoerd
commando’s. De term macroprocessor betekent functionaliteit waarbij tekst en
symbolen worden uitgebreid om grotere uitdrukkingen te creëren.

Een Unix shell is zowel een commando-interpreter als een programmeertaal.
Als commando-interpreter biedt de shell de gebruikersinterface aan de
uitgebreide reeks GNU-hulpprogramma’s. De programmeertaalfuncties laten:
deze hulpprogramma’s worden gecombineerd. Bestanden met commando’s kunnen
gemaakt en worden zelf commando’s. Deze nieuwe commando’s hebben de
dezelfde status als systeemopdrachten in mappen zoals /bin, waardoor
gebruikers of groepen om aangepaste omgevingen op te zetten om hun
veelvoorkomende taken.

Shells kunnen interactief of niet-interactief worden gebruikt. In interactief
modus accepteren ze invoer die vanaf het toetsenbord wordt getypt. Bij het uitvoeren
niet-interactief voeren shells opdrachten uit die uit een bestand worden gelezen.

Een shell maakt uitvoering van GNU-commando’s mogelijk, zowel synchroon als
asynchroon. De shell wacht tot synchrone opdrachten zijn voltooid
voordat u meer invoer accepteert; asynchrone opdrachten blijven worden uitgevoerd
parallel met de shell terwijl het leest en extra uitvoert
commando’s. De omleidingsconstructies maken een fijnmazige controle van
de invoer en uitvoer van die opdrachten. Bovendien maakt de schaal het mogelijk
controle over de inhoud van commando-omgevingen.

Shells bieden ook een kleine set ingebouwde commando’s (builtins)
functionaliteit implementeren onmogelijk of lastig te verkrijgen via
aparte hulpprogramma’s
. Bijvoorbeeld cd, break, continue en exec kunnen dat niet
buiten de shell worden geïmplementeerd
omdat ze direct manipuleren
de schelp zelf. De geschiedenis, getopts, kill, of pwd ingebouwde, onder
andere kunnen in afzonderlijke hulpprogramma’s worden geïmplementeerd, maar ze zijn meer
handig te gebruiken als ingebouwde commando’s. Alle ingebouwde shells zijn:
beschreven in de volgende paragrafen.

Hoewel het uitvoeren van commando’s essentieel is, de meeste kracht (en
complexiteit) van shells is te wijten aan hun ingebouwde programmeertalen.

Zoals elke taal op hoog niveau biedt de shell variabelen, flow
controle constructies, citaten en functies.

Shells bieden eerder functies die specifiek zijn afgestemd op interactief gebruik
dan om de programmeertaal te vergroten. Deze interactieve functies
omvatten taakbeheer, bewerking van de opdrachtregel, opdrachtgeschiedenis en
aliassen. Elk van deze functies wordt beschreven in deze handleiding.

BASHgnu .org:

Bash is de shell, of de tolk van de commandotaal, voor de GNU
besturingssysteem. De naam is een acroniem voor de Bourne-Again SHell ,
een woordspeling op Stephen Bourne, de auteur van de directe voorouder van de
huidige Unix shell sh, die verscheen in de zevende editie Bell Labs
Onderzoeksversie van Unix.

Bash is grotendeels compatibel met sh en bevat handige functies
van de Korn-shell ksh en de C-shell csh. Het is bedoeld als een
conforme implementatie van het IEEE POSIX Shell and Tools-gedeelte van:
de IEEE POSIX-specificatie (IEEE Standard 1003.1). Het biedt
functionele verbeteringen ten opzichte van sh voor zowel interactief als programmeren
gebruik.

Terwijl het GNU-besturingssysteem andere shells biedt, waaronder a
versie van csh, Bash is de standaard shell. Net als andere GNU-software,
Bash is redelijk draagbaar. Het draait momenteel op bijna elke versie van
Unix en een paar andere besturingssystemen – onafhankelijk ondersteunde poorten
bestaan ​​voor MS-DOS-, OS/2- en Windows-platforms.


Antwoord 7

Andere antwoorden wezen in het algemeen op het verschil tussen Bash en een POSIX-shellstandaard. Bij het schrijven van draagbare shell-scripts en het gebruiken van Bash-syntaxis, is een lijst met typische bashisms en bijbehorende pure POSIX-oplossingen echter erg handig. Een dergelijke lijst is samengesteld toen Ubuntu overschakelde van Bash naar Dash als standaard systeemshell en is hier te vinden:
https://wiki.ubuntu.com/DashAsBinSh

Bovendien is er een geweldige tool genaamd checkbashismsdie controleert op bashisms in uw script en is handig als je zeker wilt weten dat je script draagbaar is.


Antwoord 8

bash en sh zijn twee verschillende shells. Bash is eigenlijk sh, met meer functies en een betere syntaxis. De meeste commando’s werken hetzelfde, maar ze zijn verschillend. Bash (bash) is een van de vele beschikbare (maar toch de meest gebruikte) Unix-shells. Bash staat voor “Bourne Again SHell”, en is een vervanging/verbetering van de originele Bourne shell (sh).

Shell-scripting is scripting in elke shell, terwijl Bash-scripting specifiek voor Bash is. In de praktijk worden “shellscript” en “bash-script” echter vaak door elkaar gebruikt, tenzij de shell in kwestie geen Bash is.

Dat gezegd hebbende, moet je je realiseren dat /bin/sh op de meeste systemen een symbolische link zal zijn en geen sh zal aanroepen. In Ubuntu werd /bin/sh gebruikt om te linken naar bash, typisch gedrag op Linux-distributies, maar is nu veranderd in linken naar een andere shell genaamd dash. Ik zou bash gebruiken, want dat is zo’n beetje de standaard (of in ieder geval de meest voorkomende, vanuit mijn ervaring). In feite ontstaan ​​er problemen wanneer een bash-script #!/bin/sh gebruikt, omdat de scriptmaker ervan uitgaat dat de link bash is, terwijl dat niet zo hoeft te zijn.


Antwoord 9

Ze zijn bijna identiek, maar bashheeft meer functies shis (min of meer) een oudere subset van bash.

shbetekent vaak de originele Bourne shell, die ouder is dan bash(Bourne *again* shell), en is gemaakt in 1977. Maar in de praktijk is het misschien beter om het te zien als een zeer cross-compatibele shell die voldoet aan de POSIX-standaard uit 1992.

Scripts die beginnen met #!/bin/shof die de sh-shell gebruiken, doen dit meestal voor achterwaartse compatibiliteit. Elk unix/linux-besturingssysteem heeft een sh-shell. Op Ubuntu roept shvaak dashaan en op MacOS is het een speciale POSIX-versie van bash. Deze shells hebben mogelijk de voorkeur vanwege het standaardgedrag, de snelheid of achterwaartse compatibiliteit.

bashis nieuwer dan de originele sh, voegt meer functies toe en probeert achterwaarts compatibel te zijn met sh. In theorie zouden shprogramma’s in bashmoeten draaien. bashis beschikbaar op bijna alle linux/unix-machines en wordt meestal standaard gebruikt – met de opmerkelijke uitzondering dat MacOS standaard zshgebruikt vanaf Catalina (10.15). FreeBSD wordt standaard niet geleverd met bashgeïnstalleerd.


Antwoord 10

/bin/shkan al dan niet hetzelfde programma aanroepen als /bin/bash.

shondersteunt minstensde functies vereist door POSIX(uitgaande van een correcte implementatie). Het kan ook extensies ondersteunen.

bash, de “Bourne Again Shell”, implementeert de functies die nodig zijn voor sh plus bash-specifieke extensies. De volledige set extensies is te lang om hier te beschrijven en varieert met nieuwe releases. De verschillen zijn gedocumenteerd in de bash-handleiding. Typ info bashen lees de sectie “Bash-functies” (sectie 6 in de huidige versie), of lees de actuele documentatie online.


Antwoord 11

De verschillen zo eenvoudig mogelijk:
Nadat je een basiskennis hebt, zullen de andere opmerkingen die hierboven zijn gepost gemakkelijker te vangen zijn.

Shell– “Shell” is een programma dat de interactie tussen de gebruiker en het besturingssysteem (kernel) vergemakkelijkt. Er zijn veel shell-implementaties beschikbaar, zoals sh, bash, csh, zsh…etc.

Met een van de Shell-programma’s kunnen we opdrachten uitvoeren die door dat shell-programma worden ondersteund.

Bash– Het is afgeleid van Bourne-again Shell. Met dit programma kunnen we alle door Shell gespecificeerde opdrachten uitvoeren. We zullen ook enkele commando’s kunnen uitvoeren die specifiek aan dit programma zijn toegevoegd. Bash is achterwaarts compatibel met sh.

Sh – Het is afgeleid van Bourne Shell. “sh” ondersteunt alle commando’s die in de shell zijn gespecificeerd. Dit betekent dat we met dit programma alle door Shell gespecificeerde opdrachten kunnen uitvoeren.

Voor meer informatie:
https://man.cx/sh
https://man.cx/bash


Antwoord 12

Linux-besturingssysteem biedt verschillende soorten shell. Hoewel shells veel gemeenschappelijke commando’s hebben, heeft elk type unieke eigenschappen.
Laten we verschillende soorten meest gebruikte schelpen bestuderen.

Sh-shell:

Sh shell is ook bekend als Bourne Shell. Sh shell is de eerste shell die is ontwikkeld voor Unix-computers door Stephen Bourne bij AT&T’s Bell Labs in 1977. Het bevat veel scripttools.

Bash-shell:

Bash shell staat voor Bourne Again Shell. Bash-shell is de standaardshell in de meeste Linux-distributies en vervangt Sh Shell (Sh-shell werkt ook in de Bash-shell). Bash Shell kan de overgrote meerderheid van de Sh shell-scripts zonder wijziging uitvoeren en biedt ook een bewerkingsfunctie voor de commandoregel.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

one × 3 =

Other episodes