Bash (Unix shell)
Originalautor (en) | Brian Fox |
---|---|
Entwickler (en) | Chet Ramey[1][2] |
Erstveröffentlichung | 8. Juni 1989 |
Stabile Version | 5.1.16[3] / 5. Januar 2022 |
Vorschau -Version | 5.2-Alpha[4] / 20. Januar 2022 |
Repository | |
Geschrieben in | C |
Betriebssystem |
|
Plattform | GNU |
Verfügbar in | Mehrsprachig (GetText) |
Typ | Unix Shell, Befehlssprache |
Lizenz | Seit 4.0: GPL-3.0-oder-Later[8] 1.11? bis 3.2: GPL-2.0-or-Later[9] 0,99? bis 1.05 ?: GPL-1.0-oder-Later[10][11][12] |
Webseite | www |
Verprügeln ist ein Unix Shell und Befehlssprache geschrieben von Brian Fox für die GNU -Projekt Als ein gratis Software Austausch für die Bourne Shell.[13][14] Erstmals 1989 veröffentlicht,[15] Es wurde als Standard verwendet Anmeldung Schale für die meisten Linux Verteilungen.[16] Bash war eines der ersten Programme Linus Torvalds portiert nach Linux neben GCC.[17] Eine Version ist auch verfügbar für Fenster 10 über die Windows -Subsystem für Linux.[18] Es ist auch die Standardbenutzerschale in Solaris 11.[19] Bash war auch die Standardhülle in allen Versionen von Apple macos vor der Veröffentlichung von 2019 von MacOS Catalina, die die Standardschale veränderte zu ZSH, obwohl Bash als alternative Hülle verfügbar bleibt.[20]
Bash ist a Befehlsprozessor das läuft normalerweise in a Textfenster wo die Benutzer Befehle typern, die Aktionen verursachen. Bash kann auch Befehle aus einer Datei lesen und ausführen Shell-Skript. Wie die meisten Unix -Shells unterstützt es den Dateinamen Kugeln (Wildcard -Matching), Rohrleitungen, Hier Dokumente, Befehlssubstitution, Variablen, und Kontrollstrukturen zum Zustandstest und Wiederholung. Das Schlüsselwörter, Syntax, dynamisch abgebildet Variablen und andere grundlegende Merkmale der Sprache sind alle kopiert von Sch. Andere Merkmale, z. B., Geschichte, werden kopiert von CSH und ksh. Bash ist a Posix-Compliant Shell, aber mit einer Reihe von Erweiterungen.
Der Name der Shell ist ein Akronym für Bourne wieder Shell, a Wortspiel auf dem Namen der Bourne Shell dass es ersetzt[21] und die Vorstellung, "zu sein"wiedergeboren".[22][23]
A Sicherheitsloch In Bash Dating aus Version 1.03 (August 1989),[24] genannt Neurose, wurde Anfang September 2014 entdeckt und führte schnell zu einer Reihe von einer Reihe von Anschläge über den Internet.[25][26][27] Patches zur Behebung der Fehler wurden kurz nach der Identifizierung der Fehler zur Verfügung gestellt.
Geschichte
Brian Fox begann Codierung Bash am 10. Januar 1988,[28] nach Richard Stallman wurde unzufrieden mit dem mangelnden Fortschritt eines früheren Entwicklers.[13] Stallman und die Kostenlose Software -Stiftung (FSF) betrachtete eine freie Shell, die vorhandene Shell -Skripte ausführen könnte, die so strategisch für ein vollständig freies System aus BSD und GNU -Code erstellt wurden, dass dies eines der wenigen Projekte war, die sie selbst finanzierten, wobei Fox die Arbeit als Mitarbeiter von FSF übernahm.[13][29] Fox veröffentlichte Bash als Beta, Version .99, am 8. Juni 1989,[15] und blieb bis irgendwann zwischen Mitte 1992 der Hauptballer[30] und Mitte 1994,[31] Als er von FSF entlassen wurde[32] und seine Verantwortung wurde zu einem anderen frühen Mitwirkenden, Chet Ramey, übergegangen.[33][34][35]
Seitdem ist Bash bei den Benutzern von Linux bei weitem die beliebteste Hülle geworden und wurde zur standardmäßigen interaktiven Shell der verschiedenen Verteilungen dieses Betriebssystems[36][37] (obwohl Almquist Shell kann die Standard -Skriptschale sein) und bei Apples macOS -Veröffentlichungen zuvor Catalina Im Oktober 2019.[38][39][16] Bash wurde ebenfalls portiert auf Microsoft Windows und verteilt mit Cygwin und Mingw, zu DOS bis zum DJGPP Projekt, zu Novell Netware, zu OpenVMS durch das GNV -Projekt,[40] zu Arcaos,[41] und zu Android über verschiedene terminale Emulationsanwendungen.
Im September 2014 stéphane Chazelas, ein UNIX/Linux -Spezialist,[42] entdeckt a Sicherheitsfehler im Programm. Der Fehler, der erstmals am 24. September bekannt gegeben wurde, wurde benannt Neurose und haben die Zahlen zugewiesen CVE-2014-6271, Cve-2014-6277 und cve-2014-7169. Der Fehler wurde seitdem als schwerwiegend angesehen CGI Skripte, die Bash verwenden, könnten anfällig sein, aktivieren willkürliche Codeausführung. Der Fehler war darauf zusammengefasst, wie Bash Funktionsdefinitionen an Unterschalen durchgeht Umgebungsvariablen.[43]
Merkmale
Die Bash Befehl Syntax ist a Superset der Bourne Shell Command Syntax. Bash -Unterstützung Ausdehnung der Klammer, Befehlszeilenabschluss (Programmierbare Fertigstellung),[44] grundlegendes Debuggen[45] und Signalhandhabung (Verwendung fangen
) Seit Bash 2.05a[46] unter anderem. Bash kann die überwiegende Mehrheit der Bourne -Shell -Skripte ohne Änderung ausführen, mit Ausnahme von Bourne -Shell -Skripten, die in das Verhalten der Fringe -Syntax stolpern, die in Bash unterschiedlich interpretiert werden, oder versuchen, einen Systembefehl auszuführen, der mit einem neueren Bash -Bash -Bash -Bash usw. übereinstimmt. von dem Kornshell (KSH) und die C Shell (CSH) wie die Bearbeitung von Befehlszeilen, Befehlsgeschichte (Geschichte
Befehl),[47] der Verzeichnisstapel, der $ Zufällig
und $ Ppid
Variablen und posix Befehlssubstitution Syntax $ (…)
.
Wenn ein Benutzer die drückt Tab-Taste Innerhalb einer interaktiven Befehls-Shell verwendet Bash automatisch Befehlszeilenabschluss, seit Beta Version 2.04,[48] um teilweise eingegebene Programmnamen, Dateinamen und Variablennamen zu entsprechen. Das BASH-Befehlszeilenumschließungssystem ist sehr flexibel und anpassbar und wird häufig mit Funktionen verpackt, die Argumente und Dateinamen für bestimmte Programme und Aufgaben vollziehen.
Bashs Syntax hat viele Erweiterungen, die in der Bourne Shell fehlen. Bash kann Ganzzahlberechnungen ("arithmetische Bewertung") durchführen, ohne externe Prozesse zu lasieren. Es verwendet das ((…))
Befehl und die $ ((…))
Variable Syntax für diesen Zweck. Seine Syntax vereinfacht E/A -Umleitung. Zum Beispiel kann es umleiten Standardausgabe (stdout) und Standart Fehler (Stderr) gleichzeitig mit dem &>
Operator. Dies ist einfacher zu tippen als das Bourne -Shell -Äquivalent.Befehl> Datei 2> & 1
'. Bash -Unterstützung Prozesssubstitution Verwendung der <(command)
und > (Befehl)
Syntax, die die Ausgabe eines Befehls (oder in Eingabe an) ersetzt, bei dem normalerweise ein Dateiname verwendet wird. (Dies wird durch implementiert /proc/fd/ ungenannte Rohre für Systeme, die dies unterstützen, oder über vorübergehend benannte Pfeifen wo nötig).
Bei der Verwendung des Schlüsselworts 'Funktion' sind die Bash -Funktionserklärungen nicht mit Bourne/Korn/POSIX -Skripten kompatibel (die Kornshell hat das gleiche Problem, wenn sie "Funktion" verwendet), aber Bash akzeptiert dieselbe Funktionsklarationssyntax wie die Bourne und Korn Shells, und ist posix-konformant. Aufgrund dieser und anderer Unterschiede sind Bash -Shell -Skripte unter den Bourne- oder Korn -Shell -Dolmetschern selten ausgeführt, es sei denn, es wird absichtlich mit dieser Kompatibilität geschrieben, was immer weniger verbreitet ist, wenn Linux weiter verbreitet wird. Aber im POSIX -Modus entspricht Bash mit POSIX enger.[49]
Bash -Unterstützung Hier Dokumente. Seit Version 2.05b Bash kann umleiten Standardeingabe (stdin) aus einer "hier String" mit dem <<<
Operator.
Bash 3.0 unterstützt In-Prozess regulären Ausdruck Übereinstimmung mit einer Syntax, die an erinnert an Perl.[50]
Im Februar 2009,[51] Bash 4.0 führte die Unterstützung für assoziative Arrays.[11] Assoziative Arrayindizes sind Zeichenfolgen, ähnlich wie Awk oder Tcl.[52] Sie können verwendet werden, um mehrdimensionale Arrays zu emulieren. Bash 4 wechselt auch seine Lizenz auf GPL-3.0-oder-Later; Einige Benutzer vermuten, dass diese Lizenzänderung, warum MacOS weiterhin ältere Versionen verwendet.[53] Apple hörte schließlich auf, Bash in seinen Betriebssystemen als Standardschale mit der Veröffentlichung von MacOS Catalina im Jahr 2019 zu verwenden.[20]
Ausdehnung der Klammer
Die Erweiterung der Klammer, auch als Wechsel bezeichnet, ist eine Funktion, die aus dem kopiert wird C Shell. Es erzeugt eine Reihe alternativer Kombinationen. Erzeugte Ergebnisse müssen nicht als Dateien vorhanden sein. Die Ergebnisse jeder erweiterten Zeichenfolge sind nicht sortiert und links nach rechts sind erhalten:
$ Echo a{p, c, d, b}eAffen Ace Ade Abe $ Echo {ABC} {d, e, f} ad ae af bd Bf CD CE CF
Benutzer sollten keine Klammererweiterungen in tragbaren Shell -Skripten verwenden, weil die Bourne Shell erzeugt nicht den gleichen Ausgang.
$ # Eine herkömmliche Hülle erzeugt nicht den gleichen Ausgang $ /bin/sh -c 'echo a {p, c, d, b} e' ' a {p, c, d, b} e
Wenn die Ausdehnung der Klammer mit Wildcards kombiniert wird, werden die Zahnspangen zuerst erweitert, und dann werden die resultierenden Wildcards normal ersetzt. Daher könnte eine Auflistung von JPEG- und PNG -Bildern im aktuellen Verzeichnis mit:
ls *.{JPG, JPEG, PNG} # erweitert sich auf *.jpg *.jpeg *.png - danach, # Die Wildcards werden verarbeitet Echo *.{PNG, JP{e}g} # Echo zeigen nur die Erweiterungen - # und Zahnspangen in Zahnspangen sind möglich.
Zusätzlich zur Abwechslung kann die Ausdehnung der Klammer für sequentielle Bereiche zwischen zwei Ganzzahlen oder Zeichen verwendet werden, die durch Doppelpunkte getrennt sind. Neuere Versionen von Bash ermöglichen es einer dritten Ganzzahl, das Inkrement anzugeben.
$ Echo {1..10} 1 2 3 4 5 6 7 8 9 10 $ Echo {01..10} 01 02 03 04 05 06 07 08 09 10 $ Echo Datei{1..4}.txtDatei1.txt File2.txt Datei3.txt Datei4.txt $ Echo {a..e} a b c d e $ Echo {1..10..3} 1 4 7 10 $ Echo {A..j..3} a d g j
Wenn die Ausdehnung der Klammer mit variabler Expansion kombiniert wird (a.k.a. Parameterausdehnung und Parametersubstitution) Die variable Erweiterung wird durchgeführt nach Die Ausdehnung der Klammer, die in einigen Fällen die Verwendung des bewerten
eingebaut, also:
$ Anfang=1; Ende=10 $ Echo {$ Start..$ Ende} # aufgrund der Bewertungsreihenfolge nicht erweitert werden {1..10} $ bewerten Echo {$ Start..$ Ende} # Variable Expansion tritt auf, dann wird resultierende Zeichenfolge ausgewertet 1 2 3 4 5 6 7 8 9 10
Startkripte
Wenn Bash beginnt Punktdateien. Im Gegensatz zu Bash -Shell -Skripten haben DOT -Dateien in der Regel weder die Berechtigung aktiviert noch eine Interpreter -Richtlinie wie #!/bin/bash
.
Legacy-kompatible Bash-Start-up-Beispiel
Das Skelett ~/.bash_profile
Unten ist mit der Bourne Shell kompatibel und gibt Semantik ähnlich wie CSH für die ~/.bashrc
und ~/.bash_login
. Das [-r Dateiname] && CMD
ist ein Kurzschlussbewertung Das testet, wenn Dateiname existiert und ist lesbar, das Teil nach dem überspringt &&
wenn es das nicht ist.
[ -r ~/.profile ] && . ~/.profile # Einmal nur die Umgebung einrichten, nur Bourne-sh-Syntax wenn [ -n "$ PS1" ] ; dann # Sind wir interaktiv? [ -r ~/.bashrc ] && . ~/.bashrc # TTY/Eingabeaufforderung/Funktionsaufbau für interaktive Shells [ -r ~/.bash_login ] && . ~/.bash_login # All-Login-Aufgaben nur für Anmeldebereich fi # Ende von "if" Block
Betriebssystemprobleme beim Bash -Startup
Einige Versionen von Unix und Linux enthalten Bash -System -Startkripte, im Allgemeinen unter dem /etc
Verzeichnisse. Bash ruft diese als Teil seiner Standardinitialisierung auf, aber andere Startdateien können sie in einer anderen Reihenfolge lesen als die dokumentierte Bash -Start -Sequenz. Der Standardinhalt der Dateien des Root -Benutzers hat möglicherweise auch Probleme sowie die Skelettdateien, die das System beim Einrichten neuen Benutzerkonten bereitstellt. Die Startskripte, die die starten X Fenstersystem Kann auch überraschende Dinge mit den Bash-Start-Skripten des Benutzers tun, um Variablen für Benutzer-Umwelt einzurichten, bevor Sie die starten Fenstermanager. Diese Probleme können häufig mit einem behandelt werden ~/.xsession
oder ~/.xprofile
Datei zum Lesen der ~/.profile
- Dies liefert die Umgebungsvariablen, die Shell -Fenster aus dem Fenstermanager benötigen, wie z. Xterm oder Gnom -Terminal.
Portabilität
Beschwörung der Bash mit dem -Posix
Option oder Angabe set -o posix
In einem Skript führt die Bash, die sich sehr eng an die anpassen kann POSIX 1003.2 Standard.[54] Bash -Shell -Skripte beabsichtigt für Portabilität sollte zumindest den POSIX -Shell -Standard berücksichtigen. Einige Bash -Funktionen, die nicht in POSIX enthalten sind, sind:[54][55]
- Bestimmte erweiterte Aufrufoptionen
- Ausdehnung der Klammer
- Arrays und assoziative Arrays
- Die Doppelklasse
[[ ... ]]
erweitertes Testkonstrukt und deren Regex -Matching - Das Doppelparenthesen arithmetische Evaluierungskonstrukt (nur
(( ... ))
;$(( ... ))
ist posix) - Bestimmte String-Manipulations-Operationen bei der Parameterausdehnung
-
local
Für Scoped Variablen - Prozesssubstitution
- Bash-spezifische Bausträger
- Koprozesse
- $ Epochsekunden und $ epochrealtime Variablen [56]
Wenn ein Code -Stück eine solche Funktion verwendet, wird er als "Bashismus" bezeichnet - ein Problem für die tragbare Verwendung. Debian checkbashisms
und Vidar Holen's shellcheck
Kann verwendet werden, um sicherzustellen, dass ein Skript diese Teile nicht enthält.[57][58] Die Liste variiert abhängig von der tatsächlichen Ziel -Shell: Debian's Richtlinie ermöglicht einige Erweiterungen in ihren Skripten (wie sie in der sind Bindestrich Hülse),[55] während ein Skript, das vor dem Poxe-Bourne-Shells vorhat, wie Autoconf's configure
sind in den Funktionen, die sie verwenden können, noch begrenzter.[59]
Tastatürkürzel
Bash verwendet Readline, um Tastaturverknüpfungen für die Befehlszeilenbearbeitung mithilfe der Standardeinstellung zu bereitstellen (EMACs) Tastenbelegungen. Vi-Bindungen Kann durch Ausführen aktiviert werden set -o vi
.[60]
Prozessmanagement
Die Bash -Shell hat zwei Ausführungsmodi für Befehle: Chargeund gleichzeitiger Modus.
Um Befehle in Stapel auszuführen (d. H. In Abfolge), müssen sie durch das Zeichen getrennt werden ";" oder in getrennten Zeilen:
Kommando1; Kommando2
In diesem Beispiel, wenn der Befehl1 fertig ist, wird Command2 ausgeführt.
A Hintergrundausführung von command11 kann mit (symbol &) am Ende eines Ausführungsbefehls auftreten, und der Prozess wird im Hintergrund ausgeführt, der sofort an die Shell zurückgibt und die weitere Ausführung von Befehlen ermöglicht.
Kommando1 &
Oder um eine gleichzeitige Ausführung von zwei Kommando und Befehl und Befehl2 zu haben, müssen sie in der folgenden Weise in der Bash -Shell ausgeführt werden:
Kommando1 & Kommando2
In diesem Fall wird Befehl1 im Hintergrund ausgeführt & Symbol, sofort kontrollieren Sie an die Shell, die den Befehl2 im Vordergrund ausführt.
Ein Vorgang kann gestoppt und die Kontrolle zurückgegeben werden, indem sie eingeben Strg+z während der Prozess im Vordergrund läuft.[61]
Eine Liste aller Prozesse, sowohl im Hintergrund als auch gestoppt, kann durch Laufen erreicht werden Arbeitsplätze
:
$ Arbeitsplätze [1]- Befehl rennen1 & [2]+ Stop Command2
In der Ausgabe bezieht sich die Zahl in Klammern auf die Job -ID. Das Pluszeichen bedeutet den Standardprozess für BG
und fg
. Der Text "laufen" und "gestoppt" beziehen sich auf die Prozesszustand. Die letzte Zeichenfolge ist der Befehl, der den Prozess gestartet hat.
Der Zustand eines Prozesses kann mit verschiedenen Befehlen geändert werden. Das fg
Der Befehl bringt einen Prozess in den Vordergrund, während BG
Legt einen gestoppten Prozess im Hintergrund fest. BG
und fg
kann eine Job -ID als erstes Argument nehmen, um den Prozess anzugeben, auf den sie reagieren sollen. Ohne einen verwenden sie den Standardprozess, der durch ein Plus -Zeichen in der Ausgabe von identifiziert wurde Arbeitsplätze
. Das töten
Der Befehl kann verwendet werden, um einen Prozess vorzeitig zu beenden, indem er a sendet wird Signal. Die Job -ID muss nach einem prozentualen Zeichen angegeben werden:
töten %1
Bedingte Ausführung
Bash liefert "bedingte Ausführung" -Strenntrenner, die die Ausführung eines Befehls abhängig machen, der auf dem abhängt Code beenden durch einen Präzedenzfallbefehl eingestellt. Zum Beispiel:
CD "$ Irgendwo" && ./etwas tun || Echo "Ein Fehler ist aufgetreten" >&2
Wo ./etwas tun wird nur ausgeführt, wenn die CD (Änderungsverzeichnis) Befehl war "erfolgreich" (zurückgegeben einen Ausstiegsstatus von Null) und die Echo Der Befehl würde nur ausgeführt, wenn beide der CD oder der ./etwas tun Befehl gibt einen "Fehler" zurück (Status ohne Null-Exit).
Für alle Befehle wird der Exit -Status in der speziellen Variablen gespeichert $?
. Bash unterstützt auch if ...;then ...;else ...;fi
und case $VARIABLE in $pattern)...;;$other_pattern)...;; esac
Formen der bedingten Befehlsbewertung.
Fehlerberichterstattung
Ein externer Befehl rief an Bashbug Berichte Bash -Shell -Fehler. Wenn der Befehl aufgerufen wird, wird der Standard -Editor des Benutzers mit einem Formular ausgefüllt. Das Formular wird an die BASH -Wartungen (oder optional an andere E -Mail -Adressen) gesendet.[62][63]
Programmierbare Fertigstellung
Bash unterstützt programmierbar Fertigstellung über eingebaute Komplett
, compopt
, und Compgen
Befehle.[64] Die Funktion ist seit der Veröffentlichung der Beta -Version von 2.04 im Jahr 2000 verfügbar.[65][66] Diese Befehle ermöglichen eine komplexe und intelligente Abschlussspezifikation für Befehle (d. H. Installierte Programme), Funktionen, Variablen und Dateinamen.[67]
Das Komplett
und compopt
Zwei Befehle geben an, wie Argumente einiger verfügbarer Befehle oder Optionen in der aufgeführt werden werden Zeile lesen Eingang. Ab Version 5.1 wird der Befehl abgeschlossen oder die Option wird normalerweise durch das aktiviert Tab ↹ Tastenanschlag nach dem Eingeben des Namens.[67]
Veröffentlichung Geschichte
Ausführung | Veröffentlichungsdatum | Versionshinweise |
---|---|---|
Bash-5.1 | 2020-12-07 | Github Version History News News [11] |
Bash-5.0 | 2019-01-07 | [68][69][70] |
Bash-5.0-RC1 | 2018-12-20 | |
Bash-5.0-beta2 | 2018-11-28 | |
Bash-5.0-Beta | 2018-09-17 | |
Bash-5.0-Alpha | 2018-05-22 | |
Bash-4.4 | 2016-09-15 | Github Version History News v4.4 |
BASH-4.4-RC2 | 2016-08-22 | |
BASH-4.4-RC1 | 2016-02-24 | |
Bash-4,4-Beta2 | 2016-07-11 | |
Bash-4,4-Beta | 2015-10-12 | |
Bash-4.3 | 2014-02-26 | |
Bash-4.2 | 2011-02-13 | |
Bash-4.1 | 2009-12-31 | |
Bash-4.0 | 2009-02-20 | |
BASH-4.0-RC1 | 2009-01-12 | |
Bash-3.2 | 2006-10-11 | |
Bash-3.1 | 2005-12-08 | |
Bash-3.0 | 2004-08-03 | |
Bash-2.05b | 2002-07-17 | |
Bash-2.05a | 2001-11-16 | |
Bash-2.05 | 2001-04-09 | |
Bash-2.04 | 2000-03-21 | |
Bash-2.03 | 1999-02-19 | |
Bash-2.02 | 1998-04-18 | |
Bash-2.01 | 1997-06-05 | |
Bash-2.0 | 1996-12-31 |
Siehe auch
Verweise
- ^ Hamilton, Naomi (30. Mai 2008). "Der A-Z der Programmiersprachen: Bash/Bourne-on-on-Shell". Computerwelt. Archiviert von das Original am 8. November 2016. Abgerufen 1. März, 2022.
- ^ Ramey, Chet (20. April 2021). "Die GNU Bourne-auf-Shell". Technologieinfrastrukturdienste. Fall Western Reserve University. Abgerufen 1. März, 2022.
- ^ "Bash-5.1 Offizieller Patch 16". Abgerufen 4. Februar, 2022.
- ^ Chet Ramey (21. Januar 2022). "Bash-5.2-Alpha verfügbar". Abgerufen 2. Februar, 2022.
- ^ "Bash FAQ, Version 4.14". Archiviert von das Original am 1. September 2018. Abgerufen 9. April, 2016.
- ^ "Fehlender Quellcode - GPL Compliance? · Ausgabe #107 · Microsoft/WSL". GitHub. Archiviert Aus dem Original am 24. September 2019. Abgerufen 8. Juli, 2016.
- ^ "Gnu Bash". Softpedia. Softnews. 23. Januar 2010. Archiviert Aus dem Original am 21. Oktober 2017. Abgerufen 9. April, 2016.
- ^ GNU -Projekt. "Readme -Datei". Archiviert Aus dem Original am 26. April 2019. Abgerufen 16. April, 2014.
Bash ist eine kostenlose Software, die unter den Bestimmungen der [GNU] allgemeinen öffentlichen Lizenz verteilt wird, wie sie von der Free Software Foundation, Version 3 der Lizenz (oder einer beliebigen späteren Version) veröffentlicht wurde.
- ^ "Bash-1.11". oldlinux.org.
Siehe Test.c für GPL-2.0-oder-oder-Later
- ^ "Bash-1.05.tar". oldlinux.org.
- ^ a b c "Bashfaq/061 - Gregs Wiki". mywiki.wooled.org. Archiviert vom Original am 2. März 2021. Abgerufen 1. März, 2021.
- ^ "Gibt es eine Möglichkeit, die vermutlich anfängliche Bash-Quelle Bash-0.99 herunterzuladen?". unix.stackexchange.com.
- ^ a b c Richard Stallman (weitergeleitet mit Kommentaren von Chet Ramey) (10. Februar 1988). "Gnu + bsd =?". Newsgroup:comp.unix.questions. Usenet: [email protected]. Archiviert vom Original am 28. Dezember 2021. Abgerufen 28. Dezember, 2021.
Für anderthalb Jahre war die GNU -Hülle "fast fertig". Der Autor machte wiederholte Versprechen, das zu liefern, was er getan hatte, und hielt sie nie. Schließlich konnte ich nicht mehr glauben, dass er jemals etwas liefern würde. Der Stiftungsmitglied Brian Fox führt jetzt eine Nachahmung der Bourne Shell um.
- ^ Hamilton, Naomi (30. Mai 2008), "Der A-Z der Programmiersprachen: Bash/Bourne-on-on-Shell", Computerwelt: 2, archiviert von das Original am 6. Juli 2011, abgerufen 21. März, 2011,
Als Richard Stallman beschloss, einen vollständigen Ersatz für die damaligen UNIX-Systeme zu erstellen, wusste er, dass er irgendwann Ersatz für alle gemeinsamen Versorgungsunternehmen, insbesondere die Standardschale, ersetzen musste, und diese Ersatz müssten eine akzeptable Lizenzierung haben.
- ^ a b Brian Fox (weitergeleitet von Leonard H. Tower Jr.) (8. Juni 1989). "Bash ist in der Beta -Veröffentlichung!". Newsgroup:gnu.announce. Archiviert Aus dem Original am 4. Mai 2013. Abgerufen 28. Oktober, 2010.
- ^ a b Warren, Tom (4. Juni 2019). "Apple ersetzt Bash durch ZSH als Standardhülle in MacOS Catalina". Der Verge. Archiviert Aus dem Original am 10. Juni 2019. Abgerufen 13. Juni, 2019.
- ^ Torvalds, Linus Benedict (August 1991). "comp.os.minix". Abgerufen 6. September, 2009.
Ich habe derzeit Bash (1.08) und GCC (1.40) portiert, und die Dinge scheinen zu funktionieren.
- ^ "So installieren Sie das Bash-Shell-Befehlszeilen-Tool unter Windows 10". 28. September 2016. Archiviert vom Original am 20. November 2016. Abgerufen 20. November, 2016.
- ^ "Benutzerumgebungsfunktionen ändert sich". Orakel. Archiviert Aus dem Original am 12. Juni 2018. Abgerufen 8. Juni, 2018.
- ^ a b Hughes, Matthew (4. Juni 2019). "Warum verwendet MacOS Catalina ZSH anstelle von Bash? Lizenzierung". Das nächste Web. Archiviert vom Original am 31. Dezember 2020. Abgerufen 12. Januar, 2021.
- ^ "Ich bekomme fast einen Linux -Editor und Compiler". Dr. Dobbs. Archiviert vom Original am 2. März 2021. Abgerufen 12. September, 2020.
- ^ Richard Stallman (12. November 2010). "Über das GNU -Projekt". Kostenlose Software -Stiftung. Archiviert Aus dem Original am 24. April 2011. Abgerufen 13. März, 2011.
"Bourne Again Shell" ist ein Stück auf dem Namen Bourne Shell, was die übliche Hülle auf Unix war.
- ^ Gattol, Markus (13. März 2011), BOURNE-AND-SCHRAUB, archiviert von das Original am 9. März 2011, abgerufen 13. März, 2011,
Der Name ist ein Wortspiel über den Namen der Bourne Shell (SH), eine frühe und wichtige Unix -Shell, die von Stephen Bourne geschrieben und mit der Version 7 Unix 1978 verteilt wurde, und das Konzept, "wieder geboren" zu werden.
- ^ Chazelas, Stephane (4. Oktober 2014). "OSS-SEC-Mailinglistenarchive". Seclists.org. Archiviert Aus dem Original am 6. Oktober 2014. Abgerufen 4. Oktober, 2014.
- ^ Leyden, John (24. September 2014). "Patch Bash jetzt: 'Shell Shock' Bug Blasts OS X, Linux Systems Wide Open". Das Register. Archiviert Aus dem Original am 16. Oktober 2014. Abgerufen 25. September, 2014.
- ^ Perlroth, Nicole (25. September 2014). "Sicherheitsexperten erwarten, dass 'Shellshock' Software -Fehler in Bash signifikant ist.". Die New York Times. Archiviert Aus dem Original am 5. April 2019. Abgerufen 25. September, 2014.
- ^ Seltzer, Larry (29. September 2014). "Shellshock lässt Heartbleed unbedeutend aussehen". ZDNET. Archiviert von das Original am 14. Mai 2016.
- ^ Brian Fox (29. August 1996), Shell.C, Kostenlose Software -Stiftung, archiviert Aus dem Original am 28. September 2018, abgerufen 1. November, 2010,
Geburtsdatum: Sonntag, 10. Januar 1988. Erster Autor: Brian Fox
- ^ Richard Stallman (3. Oktober 2010). "Über das GNU -Projekt". Kostenlose Software -Stiftung. Archiviert Aus dem Original am 24. April 2011. Abgerufen 21. März, 2011.
Mitarbeiter der kostenlosen Software Foundation haben eine Reihe von GNU -Softwarepaketen geschrieben und verwaltet. Zwei bemerkenswerte sind die C -Bibliothek und die Shell. … Wir haben die Entwicklung dieser Programme finanziert, da es beim GNU -Projekt nicht nur um Tools oder eine Entwicklungsumgebung ging. Unser Ziel war ein vollständiges Betriebssystem, und diese Programme wurden für dieses Ziel benötigt.
- ^ Len (g [email protected]) (20. April 1993). "Januar 1993 GNU's Bulletin". Newsgroup:gnu.announce. Usenet: [email protected]. Archiviert vom Original am 2. März 2021. Abgerufen 28. Oktober, 2010.
- ^ Ramey, Chet (1. August 1994). "Bash - Die GNU -Hülle (Reflexionen und Lektionen gewonnen)". Linux Journal. Archiviert Aus dem Original am 5. Dezember 2008. Abgerufen 13. November, 2008.
- ^ Chet Ramey (31. Oktober 2010), Daten in Ihrem Computerworld -Interview, archiviert Aus dem Original am 20. Juli 2012, abgerufen 31. Oktober, 2010
- ^ Chet Ramey (12. Juni 1989). "Bash 0,99 Fixes & Verbesserungen". Newsgroup:gnu.bash.bug. Archiviert Aus dem Original am 10. November 2012. Abgerufen 1. November, 2010.
- ^ Chet Ramey (24. Juli 1989). "Einige Bash-1.02-Korrekturen". Newsgroup:gnu.bash.bug. Archiviert Aus dem Original am 10. November 2012. Abgerufen 30. Oktober, 2010.
- ^ Brian Fox (2. März 1990). "Verfügbarkeit von Bash 1.05". Newsgroup:gnu.bash.bug. Archiviert Aus dem Original am 10. November 2012. Abgerufen 30. Oktober, 2010.
- ^ Bresnahan, Christine; Blum, Richard (April 2015). COMPTIA Linux+ Powered by Linux Professional Institute Study Guide: Prüfung LX0-103 und Prüfung LX0-104 (3. Aufl.). John Wiley & Sons, Inc. p. 5. ISBN 978-1-119-02122-3. Archiviert vom Original am 2. März 2021. Abgerufen 6. Juni, 2016.
In Linux führen die meisten Benutzer Bash aus, weil es die beliebteste Shell ist.
- ^ Danesh, Arman; Jang, Michael (Februar 2006). Mastering Linux. John Wiley & Sons, Inc. p. 363. ISBN 978-0-7821-5277-7. Archiviert vom Original am 2. März 2021. Abgerufen 6. Juni, 2016.
Die Bourne erneut Shell (BASH) ist die häufigste Shell, die mit Linux -Verteilungen installiert ist.
- ^ Foster-Johnson, Eric; Welch, John C.; Anderson, Micah (April 2005). Anfang Shell Scripting. John Wiley & Sons, Inc. p. 6. ISBN 978-0-7645-9791-6. Archiviert vom Original am 2. März 2021. Abgerufen 6. Juni, 2016.
Bash ist bei weitem die beliebteste Shell und bildet die Standardhülle unter Linux- und Mac OSX -Systemen.
- ^ "Verwenden Sie ZSH als Standardhülle auf Ihrem Mac - Apple Support". Archiviert Aus dem Original am 2. Dezember 2019. Abgerufen 1. Juli, 2019.
- ^ "Installieren der neuen GNV -Pakete". Archiviert Aus dem Original am 3. Oktober 2020. Abgerufen 4. September, 2020.
- ^ "Kompatibilitätssubsystem". Archiviert vom Original am 23. September 2020. Abgerufen 4. September, 2020.
- ^ Juliana, Cino (10. Juni 2017). "Linux Bash -Exit -Status und So setzen Sie den Exit -Status in Bash - Techolac". Archiviert Aus dem Original am 21. Juni 2019. Abgerufen 21. Juni, 2019.
- ^ Huzaifa Sidhpurwala (24. September 2014). "Bash speziell gefertigte Umgebungsvariablen Code Injection Attack". roter Hut. Archiviert Aus dem Original am 25. September 2014. Abgerufen 25. September, 2014.
- ^ "Bash -Referenzhandbuch". www.gnu.org. Archiviert Aus dem Original am 15. März 2018. Abgerufen 27. März, 2018.
- ^ "Debugging Bash -Skripte". tldp.org. Archiviert Aus dem Original am 4. November 2018. Abgerufen 20. November, 2018.
- ^ "Bash wechselt [Bash -Hacker Wiki (Dev 20200708T2203)]". Wiki-dev.bash-hackers.org. Archiviert Aus dem Original am 23. September 2019. Abgerufen 23. September, 2019.
- ^ "Bash -Referenzhandbuch". www.gnu.org. Archiviert Aus dem Original am 15. September 2019. Abgerufen 15. September, 2019.
- ^ "Produktiver arbeiten mit Bash 2.x/3.x". www.caliban.org. Archiviert vom Original am 29. Juni 2018. Abgerufen 21. Juni, 2018.
- ^ "6.11 BASH POSIX -Modus", Das GNU Bash Referenzhandbuch für Bash, Version 4.1, 23. Dezember 2009, archiviert Aus dem Original am 3. Dezember 2010, abgerufen 26. Oktober, 2010
- ^ "Advanced Bash-Scripting Guide". www.tldp.org. Abschnitt 37.2 (Bash, Version 3). Archiviert Aus dem Original am 5. Mai 2017. Abgerufen 5. März, 2017.
- ^ "Bash, Version 4". tldp.org. Archiviert Aus dem Original am 1. Juli 2018. Abgerufen 25. Juni, 2018.
- ^ "Arrays (Bash -Referenzhandbuch)". www.gnu.org. Archiviert Aus dem Original am 11. Juli 2018. Abgerufen 4. Juli, 2018.
- ^ "macOS - BASH BASH auf Version 4.0 unter OSX aktualisieren". Fragen Sie anders. Archiviert Aus dem Original am 25. Juni 2018. Abgerufen 25. Juni, 2018.
- ^ a b Mendel Cooper. "Portabilitätsprobleme". Das Linux -Dokumentationsprojekt. ibiblio.org. Archiviert Aus dem Original am 27. Januar 2012. Abgerufen 26. Januar, 2012.
- ^ a b "10. Dateien". Debian Policy Manual V4.5.0.2. Archiviert vom Original am 12. Mai 2020. Abgerufen 11. Mai, 2020.
- ^ "Wie formatieren Sie Datum und Uhrzeit unter Linux, MacOS und Bash?". Shell Tipps!. Archiviert vom Original am 3. Juni 2020. Abgerufen 3. Juni, 2020.
- ^ Linux Allgemeine Befehle Handbuch - -
- ^ Linux Allgemeine Befehle Handbuch - -
- ^ "Tragbare Hülle". Autoconf. Archiviert vom Original am 2. März 2021. Abgerufen 20. Januar, 2020.
- ^ "Bash -Hilfe - Ein Bash -Tutorial". Hypexr.org. 5. Oktober 2012. Archiviert vom Original am 2. März 2021. Abgerufen 21. Juli, 2013.
- ^ "Bash -Referenzhandbuch". www.gnu.org. Archiviert Aus dem Original am 15. März 2018. Abgerufen 27. März, 2018.
- ^ Bashbug (1) Archiviert 2. Oktober 2018 bei der Wayback -Maschine, Die.net
- ^ "Linux / Unix -Befehl: Bashbug" Archiviert 6. Oktober 2014 bei der Wayback -Maschine, Apple.com
- ^ "Bash -Referenzhandbuch". tiswww.case.edu.
- ^ "Produktiver arbeiten mit Bash 2.x/3.x". www.caliban.org. Archiviert vom Original am 29. Juni 2018. Abgerufen 21. Juni, 2018.
- ^ "Index von /gnu /bash". ftp.swin.edu.au. Archiviert vom Original am 8. März 2020. Abgerufen 15. September, 2019.
- ^ a b "Eine Einführung in die programmierbare Fertigstellung". tldp.org. Abgerufen 21. Januar, 2022.
- ^ "GitHub Version History News v5.0". GitHub. Archiviert vom Original am 4. Mai 2022. Abgerufen 1. März, 2021.
- ^ "Bash ändert sich [Bash -Hacker Wiki]". Archiviert Aus dem Original am 18. März 2020. Abgerufen 25. November, 2019.
- ^ "Bash-5.0 Release verfügbar". lists.gnu.org. Archiviert vom Original am 8. November 2020. Abgerufen 1. März, 2021.
Externe Links
- Offizielle Website
- Hamilton, Naomi (30. Mai 2008). "Der A-Z der Programmiersprachen: Bash/Bourne-on-on-Shell". Computerwelt. Archiviert von das Original am 8. November 2016. (Interview mit Gnu Bashs Betreuer, Chet Ramey)