Bash ist eine Unix-Shell- und Befehlssprache, die von Brian Fox für das GNU-Projekt als freier Software-Ersatz für die Bourne-Shell geschrieben wurde. [8][9] Erstmals 1989 veröffentlicht, [10] wurde sie weit verbreitet Standard-Login-Shell für die meisten Linux-Distributionen und MacOS von Apple (früher OS X ). Eine Version ist auch für Windows 10 verfügbar. [11] Es ist auch die Standardbenutzer-Shell in Solaris 11. [12]
Bash ist ein Befehlsprozessor, der normalerweise in einem Textfenster ausgeführt wird, in das der Benutzer Befehle eingibt, die Aktionen auslösen. Bash kann auch Befehle aus einer Datei (Shell-Skript) lesen und ausführen. Wie alle Unix-Shells unterstützt sie das Globbing von Dateinamen (Platzhalterabgleich), Piping, hier Dokumente, Befehlsersetzung, Variablen und Kontrollstrukturen für das Testen von Bedingungen und die Iteration. Die Schlüsselwörter, die Syntax und andere grundlegende Merkmale der Sprache werden alle aus sh kopiert. Andere Merkmale, z. B. Verlauf, werden von csh und ksh kopiert. Bash ist eine POSIX-kompatible Shell, jedoch mit einer Reihe von Erweiterungen.
Der Name der Muschel ist eine Abkürzung für Bourne-again-Muschel ein Wortspiel mit dem Namen der Bourne-Muschel, die sie [13]
ersetzt, und dem gebräuchlichen Begriff "wiedergeboren". [14] [15]
Ein Sicherheitsloch in Bash aus der Version 1.03 (August 1989), [16] genannt Shellshock, wurde Anfang September 2014 entdeckt und führte rasch zu einer Reihe von Angriffe über das Internet. [17][18][19] Patches zur Behebung der Fehler wurden kurz nach der Identifizierung der Fehler verfügbar gemacht.
Geschichte [ edit ]
Brian Fox begann am 10. Januar 1988 [20] nachdem Richard Stallman mit dem mangelnden Fortschritt eines früheren Entwicklers unzufrieden war. 19659015] Stallman und die Free Software Foundation (FSF) betrachteten eine freie Shell, die vorhandene Shellskripts ausführen konnte, die so strategisch für ein völlig freies System waren, das aus BSD- und GNU-Code aufgebaut war. Dies war eines der wenigen Projekte, die Fox selbst finanzierte Arbeit als Angestellter der FSF. [8][21] Fox veröffentlichte Bash am 8. Juni 1989 [10] als Beta, Version 99, [10] und blieb bis Mitte 1992 [22] bis Mitte 1994 [23] der Hauptunterhalter Als er von FSF entlassen wurde, wurde seine Verantwortung auf einen anderen frühen Mitarbeiter, Chet Ramey, übertragen. [25] [19459386] [19459381] [27] [1945926] ]
Seitdem ist Bash bei Linux-Benutzern mit Abstand die beliebteste Shell. Die interaktive Standardshell wird in den verschiedenen Distributionen dieses Betriebssystems (obwohl die Almquist-Shell möglicherweise die Standard-Scripting-Shell ist) und auf Apples macOS. [28][29][30] Bash wurde auch auf Microsoft Windows portiert und von DJGPP mit Cygwin und MinGW an DOS verteilt Novell NetWare und Android über verschiedene Terminal-Emulationsanwendungen.
Im September 2014 entdeckte Stéphane Chazelas, ein Unix / Linux-Spezialist, [31] einen Sicherheitsfehler im Programm. Der am 24. September erstmals veröffentlichte Fehler wurde Shellshock genannt und erhielt die Nummern CVE-2014-6271, CVE-2014-6277 [32] und CVE-2014-7169. Der Fehler wurde als schwerwiegend angesehen, da CGI-Skripts, die Bash verwenden, anfällig sein könnten und die Ausführung von willkürlichem Code ermöglichen. Der Fehler bezog sich darauf, wie Bash Funktionsdefinitionen über Umgebungsvariablen an Subshells übergibt. [33]
Features [ edit ]
Die Bash-Befehlssyntax ist eine Obermenge der Bourne-Shell-Befehlssyntax. Bash unterstützt die Erweiterung der Klammern, die Kommandozeilenvervollständigung, das grundlegende Debugging [34] und die Ausnahmebehandlung (mithilfe von Trap). Bash kann die überwiegende Mehrheit der Bourne-Shell-Skripts ohne Modifikation ausführen, mit der Ausnahme, dass Bourne-Shell-Skripts in das Verhalten der Frans-Syntax stolpern und in Bash unterschiedlich interpretiert werden oder versuchen, einen Systembefehl auszuführen, der einem neueren Bash-Buildin entspricht. Die Bash-Befehlssyntax enthält die gezeichneten Ideen von der Korn-Shell (ksh) und der C-Shell (csh) wie Befehlszeilenbearbeitung, Befehlsverlauf, Verzeichnisstapel, die Variablen $ RANDOM
und $ PPID
und den POSIX-Befehl Substitutionssyntax $ (…)
.
Wenn ein Benutzer innerhalb einer interaktiven Befehlshell die Tabulatortaste drückt, verwendet Bash seit der Beta-Version von 2.04 [35] automatisch die Befehlszeilenvervollständigung, um teilweise eingetippte Programmnamen, Dateinamen und Variablennamen abzugleichen. Das Bash-Befehlszeilen-Vervollständigungssystem ist sehr flexibel und anpassbar und enthält häufig Funktionen, die Argumente und Dateinamen für bestimmte Programme und Aufgaben ergänzen.
Bashs Syntax weist viele Erweiterungen auf, die in der Bourne-Shell fehlen. Bash kann Ganzzahlberechnungen durchführen ("arithmetische Bewertung"), ohne externe Prozesse hervorzurufen. Sie verwendet dazu den Befehl ((…))
und die variable Syntax $ ((…))
. Seine Syntax vereinfacht die E / A-Umleitung. Beispielsweise können Standardausgabe (stdout) und Standardfehler (stderr) gleichzeitig mit dem Operator &>
umgeleitet werden. Dies ist einfacher zu tippen als das Bourne-Shell-Äquivalent ' Befehl> Datei 2> & 1
'. Bash unterstützt die Prozessersetzung mit der Syntax <(command)
und > (command)
die die Ausgabe eines Befehls (oder der Eingabe eines Befehls) ersetzt, bei dem normalerweise ein Dateiname verwendet wird. (Dies wird implementiert durch / proc / fd / unbenannte Pipes auf Systemen, die dies unterstützen, oder über temporäre Named Pipes, falls erforderlich).
Bei Verwendung des Schlüsselworts 'function' sind Bash-Funktionsdeklarationen nicht mit Bourne- / Korn- / POSIX-Skripts kompatibel (die Korn-Shell hat das gleiche Problem bei der Verwendung von 'function'), aber Bash akzeptiert die gleiche Funktionsdeklarationssyntax wie Bourne und Korn-Shells und ist POSIX-konform. Aufgrund dieser und anderer Unterschiede sind Bash-Shell-Skripts nur unter den Bourne- oder Korn-Shell-Interpreten lauffähig, es sei denn, sie wurden absichtlich unter Berücksichtigung dieser Kompatibilität geschrieben, was mit zunehmender Verbreitung von Linux immer seltener wird. Im POSIX-Modus passt sich Bash jedoch stärker an POSIX an. [36]
Bash unterstützt hier Dokumente. Seit Version 2.05b kann Bash die Standardeingabe (stdin) von einem "Here-String" mit dem Operator <<<
umleiten.
Bash 3.0 unterstützt das In-Process-Matching regulärer Ausdrücke unter Verwendung einer an Perl erinnernden Syntax. [37] [38]
Im Februar 2009 [39] Bash 4.0, eingeführt Unterstützung für assoziative Arrays. [36][40] Assoziative Arrays ermöglichen eine gefälschte Unterstützung für mehrdimensionale (indizierte) Arrays, ähnlich wie AWK. Bash 4.x wurde aufgrund von Lizenzbeschränkungen nicht in die neuere Version von MacOS integriert. [41]. Assoziatives Array-Beispiel:
$ deklariert -A aa # deklariert ein assoziatives Array "aa", das ein zweidimensionales indiziertes Array fälscht
$ i 1 1 1 ]; j = 2 # einige Indizes initialisieren
$ aa i $ ] = 5 # assoziiert den Wert "5" mit dem Schlüssel "$ i, $ j" (dh "1,2")
$ echo $ { aa [19659046] [ $ i $ j ] } # # den gespeicherten Wert mit der Taste "$ i, $ j"
5
[42]
Brace ausgeben expansion [ edit ]
Brace-Erweiterung, auch Alternation genannt, ist ein aus der C-Schale kopiertes Feature. Es generiert eine Reihe alternativer Kombinationen. Generierte Ergebnisse müssen nicht als Dateien vorhanden sein. Die Ergebnisse jeder erweiterten Zeichenfolge werden nicht sortiert und die Reihenfolge von links nach rechts bleibt erhalten:
$ echo a { p, c, d, b } e
ape ace ade abe
$ echo { a, b, c } { d, e, ]
ad ae af af bd be bf cd ce cf
Benutzer sollten in Portable-Shell-Skripts keine Klammererweiterungen verwenden, da die Bourne-Shell nicht dieselbe Ausgabe erzeugt.
$ # Eine traditionelle Shell erzeugt nicht dieselbe Ausgabe.
$ / bin / sh -c 'echo a {p, c, d, b} e'
a {p, c, d, b} e
Wenn die Klammererweiterung mit Platzhaltern kombiniert wird, werden zuerst die Klammern erweitert, und die resultierenden Platzhalter werden dann normal ersetzt. Daher kann eine Auflistung von JPEG- und PNG-Bildern im aktuellen Verzeichnis abgerufen werden:
ls *. { jpg, jpeg, png } # expandiert zu * .jpg * .jpeg * .png - danach werden
# die Wildcards verarbeitet. 19659086] echo *. { png, jp { e, } g } # 19689087] # echo zeigt nur die Erweiterungen - [19659085] # und geschweifte Klammern sind möglich.
Zusätzlich zum Wechsel kann die geschweifte Klammererweiterung für sequentielle Bereiche zwischen zwei Ganzzahlen oder Zeichen verwendet werden, die durch doppelte Punkte voneinander getrennt sind. Neuere Versionen von Bash erlauben es einer dritten Ganzzahl, das Inkrement anzugeben.
$ Echo { 1 .. 10 }
1 2 3 4 5 6 7 8 9 10
$ Echo file { 1 .. 4 } .txt
file1.txt file2.txt file3.txt file4.txt
$ echo { a..e ]
abcde
$
echo { 1 .. 10..3 }
1 4 7 10
$ echo { a..j..3 }
adgj
Wenn die Spreizung mit der variablen Expansion kombiniert wird, wird die variable Expansion durchgeführt nachdem die Spangenexpansion durchgeführt wurde, was in einigen Fällen die Verwendung der -Evaluation erforderlich macht.
eingebaut, also:
$ Start = 1 ; Ende = 10
$ Echo $ Start .. $ end } # kann aufgrund der Auswertungsreihenfolge nicht erweitert werden
{1..10}
$ eval echo { $ start .. $ end } # Variable Erweiterung tritt dann auf, wenn die resultierende Zeichenfolge ausgewertet wird
1 2 3 4 5 6 7 8 9 10
Startup-Skripte [19659012] [ edit ]
Wenn Bash gestartet wird, führt es die Befehle in verschiedenen Punktdateien aus. Obwohl ähnlich den Bash-Shell-Skriptbefehlen, für die die Ausführungsberechtigung aktiviert ist, und einer Interpreteranweisung wie #! / Bin / bash
ist für die von Bash verwendeten Initialisierungsdateien keine der beiden erforderlich.
Ausführungsreihenfolge der Startdateien [ edit ]
Beim Start als interaktives Login-Shell [ edit ]
Bash liest und führt / etc / profile
(falls vorhanden). (Diese Datei wird häufig /etc/bash.bashrc
genannt.)
Nach dem Lesen dieser Datei sucht er nach ~ / .bash_profile
~ / .bash_login
und ~ / .profile
in dieser Reihenfolge , und liest und führt den ersten aus, der existiert und lesbar ist.
Wenn eine Login-Shell beendet wird [ edit ]
Bash liest und führt ~ / .bash_logout
(sofern vorhanden) aus.
Beim Start als interaktive Shell (aber keine Login-Shell) [ edit ]
. Bash liest und führt /etc/bash.bashrc
und dann ~ / .bashrc
(falls vorhanden). Dies kann durch Verwendung der Option - norc
verhindert werden. Die Option - rcfile
zwingt Bash, Befehle aus der Datei
anstelle von ~ / .bashrc
zu lesen und auszuführen.
Vergleich mit den Startsequenzen von Bourne-Shell und csh [ edit ]
Elemente von Bash leiten sich von der Bourne-Shell und csh ab. Diese ermöglichen eine begrenzte Dateifreigabe beim Start mit der Bourne-Shell und stellen einige Startfunktionen bereit, die csh-Benutzern vertraut sind.
Einstellen vererbbarer Umgebungsvariablen [ edit ]
Die Bourne-Shell verwendet das ~ / .profile
bei der Anmeldung, um Umgebungsvariablen festzulegen, die dann erben. Bash kann das ~ / .profile
auf kompatible Weise verwenden, indem es explizit vom Bash-spezifischen ~ / .bash_profile
oder ~ / .bash_login
mit ausgeführt wird die Zeile darunter. Bash-spezifische Syntax kann aus dem ~ / .profile
herausgehalten werden, um letzteres mit der Bourne-Shell kompatibel zu halten.
Aliase und Funktionen [ edit ]
Diese beiden Einrichtungen, Aliase aus csh und die allgemeineren Funktionen, die sie weitgehend von der Bourne-Shell ablösen, waren nicht typisch von der Login-Shell vererbbar und musste in jeder von der Login-Shell erzeugten Sub-Shell neu definiert werden. Obwohl es eine Umgebungsvariable ENV
gibt, die auf das Problem angewendet werden kann, unterstützen sowohl csh als auch Bash Startdateien, die das Subshell direkt ansprechen. In Bash wird die ~ / .bashrc
für interaktive Subshells aufgerufen. Wenn benutzerdefinierte Funktionen aus ~ / .bashrc
auch in der Login-Shell gewünscht werden, kann das ~ / .bash_login
nach dem Einrichten von Umgebungsvariablen die folgende Zeile enthalten:
Befehle, die nur beim Anmelden und Abmelden ausgeführt wurden [ edit ]
Der csh unterstützt eine ~ / .login
-Datei für Aufgaben Wird nur während der ersten Anmeldung ausgeführt, z. B. Anzeigen des Systemladens, des Festplattenstatus, ob E-Mails eingegangen sind, Protokollierung der Anmeldungszeit usw. Die Bourne-Shell kann dies im ~ / .profile
emulieren, aber dies funktioniert nicht. t einen Dateinamen vorgeben. Um eine ähnliche Semantik wie das csh-Modell zu erreichen, kann das ~ / .bash_profile
nach dem Einrichten der Umgebung und dem Einrichten der Funktionen die folgende Zeile enthalten:
Ebenso hat die Datei csh eine Datei ~ / .logout
die nur ausgeführt wird, wenn die Login-Shell beendet ist. Das Bash-Äquivalent ist ~ / .bash_logout
und erfordert keine besonderen Einstellungen. In der Bourne-Shell kann die eingebaute -falle
verwendet werden, um einen ähnlichen Effekt zu erzielen.
Legacy-kompatibles Startup-Beispiel für Bash [ edit ]
Das unten dargestellte Skelett ~ / .bash_profile
ist kompatibel mit der Bourne-Shell und bietet ähnliche Semantiken wie für csh die ~ / .bashrc
und ~ / .bash_login
. Der [-r -Dateiname ]
ist ein Test, ob der -Dateiname existiert und lesbar ist, überspringt einfach den Teil nach dem &&
wenn es ist nicht.
[ -r ~ / .profile ] && . ~ / .profile # einmal Umgebung einrichten, nur Bourne-sh-Syntax
if [ -n " $ PS1 " ] 19659174]; dann # sind wir interaktiv?
[ -r ~ / .bashrc ] && . ~ / .bashrc # tty / prompt / Funktionssetup für interaktive Shells
[ -r ~ / .bash_login ] && . ~ / .bash_login # alle At-Login-Aufgaben nur für Login-Shell
fi # Ende des "if" -Blocks
Betriebssystemprobleme im Bash-Startup [ edit ]]
Einige Versionen von Unix und Linux enthalten Startskripts für das Bash-System, im Allgemeinen in den Verzeichnissen / etc
. Bash ruft diese als Teil der Standardinitialisierung auf, aber andere Startdateien können sie in einer anderen Reihenfolge lesen als in der dokumentierten Bash-Startsequenz. Der Standardinhalt der Dateien des Root-Benutzers kann ebenfalls Probleme aufweisen, ebenso wie die Skeleton-Dateien, die das System beim Setup für neue Benutzerkonten bereitstellt. Die Startskripts, die das X-Fenstersystem starten, können auch überraschend mit den Bash-Startskripts des Benutzers vor dem Start des Fenstermanagers versuchen, um Benutzerumgebungsvariablen einzurichten. Diese Probleme können häufig mit einer Datei / / .xsession
oder / / .xprofile
gelöst werden, um die ~ / .profile
zu lesen, die die Umgebungsvariablen bereitstellt Bash-Shell-Fenster, die vom Fenstermanager benötigt werden, wie z. B. xterm oder Gnome Terminal.
Portabilität [ edit ]
Das Aufrufen von Bash mit der Option - posix
oder die Angabe set -o posix
in einem Skript verursacht Bash sehr nahe an den POSIX 1003.2-Standard anzupassen. [43]
Für die Portabilität bestimmte Bash-Shell-Skripts sollten mindestens die Bourne-Shell berücksichtigen, die sie ersetzen möchte. Bash hat bestimmte Funktionen, die der traditionellen Bourne-Shell fehlen. Dazu gehören: [43]
- Bestimmte erweiterte Aufrufoptionen
- Befehlssubstitution mithilfe der $ () - Notation (diese Funktion ist jedoch Teil des Standards POSIX 1003.2)
- Brace-Erweiterung
- Bestimmte Array-Operationen und assoziative Arrays
- Das erweiterte Testkonstrukt mit doppelten Klammern
- Das Arithmetikbewertungskonstrukt mit doppelter Klammer
- Bestimmte String-Manipulationsoperationen
- Prozessersetzung
- Ein Abgleichoperator für reguläre Ausdrücke
- Bash-spezifische Builds
- 19659201] Ein "Bashmus" ist ein Teil des Bash-Codes, der auf anderen Unix-Shells nicht ordnungsgemäß ausgeführt wird. [44]
Tastenkombinationen [ edit ]
Bash verwendet Readline, um Tastenkombinationen bereitzustellen Befehlszeilenbearbeitung mit den Standard-Tastenkombinationen (Emacs). Vi-Bindings können aktiviert werden, indem
set -o vi
. [45]Prozessverwaltung [ edit ]
Die Bash-Shell hat zwei Ausführungsmodi für Befehle: Batch und gleichzeitiger Modus.
Um Befehle in Batch auszuführen (d. H. In Folge), müssen sie durch das Zeichen ";" oder in separaten Zeilen getrennt werden:
In diesem Beispiel wird Befehl2 ausgeführt, wenn Befehl1 beendet ist.
Sie können command1 auch im Hintergrund ausführen, indem Sie am Ende Ihres Ausführungsbefehls (Symbol &) verwenden. Der Prozess wird im Hintergrund ausgeführt, wobei Sie sofort die Kontrolle an Ihre Shell zurückgeben und die Ausführung von Befehlen fortsetzen können.
Damit zwei Befehle1 und Befehl2 gleichzeitig ausgeführt werden, müssen sie in der Bash-Shell folgendermaßen ausgeführt werden:
In diesem Fall wird Befehl1 im Hintergrundsymbol & ausgeführt, und die Steuerung wird sofort an die Shell zurückgegeben, die Befehl2 im Vordergrund ausführt.
Ein Prozess kann angehalten und die Kontrolle an die Bash zurückgegeben werden, indem Sie Ctrl + z eingeben, während der Prozess im Vordergrund läuft [46].
Eine Liste aller Prozesse, sowohl im Hintergrund als auch im Stoppmodus, kann durch Ausführen von
Jobs erreicht werden
:$ jobs
[1] - Laufender Befehl1 &
[2] + Stoppbefehl2In der Ausgabe bezieht sich die Zahl in Klammern auf die Job-ID. Das Pluszeichen kennzeichnet den Standardprozess für
bg
undfg
. Der Text "Running" und "Stopped" bezieht sich auf den Prozessstatus. Die letzte Zeichenfolge ist der Befehl, der den Prozess gestartet hat.Der Status eines Prozesses kann mit verschiedenen Befehlen geändert werden. Der Befehl
fg
bringt einen Prozess in den Vordergrund, während der Befehlbg
einen gestoppten Prozess im Hintergrund setzt.bg
undfg
können eine Job-ID als erstes Argument verwenden, um den Prozess anzugeben, auf den reagiert werden soll. Ohne eins verwenden sie den Standardprozess, der durch ein Pluszeichen in der Ausgabe vonJobs
identifiziert wird. Der Befehlkill
kann verwendet werden, um einen Prozess vorzeitig zu beenden, indem er ein Signal sendet. Die Job-ID muss nach einem Prozentzeichen angegeben werden:kill -s SIGKILL% 1 oder kill -9% 1
Bedingte Ausführung [ edit ]
Bash liefert Befehlstrennzeichen für "bedingte Ausführung", die die Ausführung eines Befehls von dem Exit-Code abhängig macht, der durch einen vorhergehenden Befehl festgelegt wurde. Zum Beispiel:
cd " $ Irgendwo " && ./do_something "Echo " Echo > & 2
Wobei ./ do_something nur ausgeführt wird, wenn der Befehl cd (Verzeichnis wechseln) "erfolgreich" war (Rückgabewert Null) ) und der Befehl echo würden nur ausgeführt, wenn entweder der -CD oder der ./ do_something -Befehl einen "Fehler" (Nicht-Null-Exit-Status) zurückgeben.
Für alle Befehle wird der Exit-Status in der Spezialvariablen
$?
gespeichert. Bash unterstützt auchwenn ... ; dann ... ; sonst ... ; ; 19659240] und
Fall $ VARIABLE in $ pattern ) ... ; $ other_pattern ) . ,; esac
Formen der bedingten Befehlsbewertung.Fehlerberichterstattung [ edit ]
Ein externer Befehl namens bashbug meldet Bash-Shell-Fehler. Wenn der Befehl aufgerufen wird, wird der Standardeditor des Benutzers mit einem Formular zum Ausfüllen geöffnet. Das Formular wird an die Bash-Betreuer (oder optional an andere E-Mail-Adressen) gesendet. [47][48]
Siehe auch [ edit ]
Referenzen [ edit ]
- ^ "Index of / gnu / bash" . 8. Januar 2019 .
- ^ "Bash-5.0-Release verfügbar". Nach dem Original am 8. Januar 2019 archiviert. Abgerufen 8. Januar 2019 .
- ^ "Bash-FAQ, Version 4.14". Nach dem Original am 1. September 2018 archiviert . 9. April 2016 .
- ^ "Warum schickt Apple Bash 3.2?". apple.stackexchange.com .
- ^ "Fehlender Quellcode - GPL-Konformität? · Problem Nr. 107 · Microsoft / WSL". GitHub .
- ^ "GNU Bash". Softpedia . SoftNews . 9. April 2016 .
- ^ GNU-Projekt. "README-Datei".
Bash ist freie Software, die unter den Bedingungen der General Public License [GNU]veröffentlicht von der Free Software Foundation, Version 3 der Lizenz (oder einer späteren Version), vertrieben wird.
- ^ a [19659369 b c
Richard Stallman (weitergeleitet mit Kommentaren von Chet Ramey) (10. Februar 1988). "GNU + BSD =?" Newsgroup: comp.unix.questions. Usenet: 2362@mandrill.CWRU.Edu . Abgerufen 22. März 2011 .Eineinhalb Jahre lang war die GNU-Schale "gerade fertig". Der Autor gab wiederholt Versprechen ab, was er getan hatte, und hielt sie nie ein. Endlich konnte ich nicht mehr glauben, dass er jemals etwas liefern würde. Brian Fox, Mitarbeiter der Stiftung, führt nun eine Imitation der Bourne-Shell durch.
-
Hamilton, Naomi (30. Mai 2008), "Die AZ der Programmiersprachen: BASH / Bourne-Again-Shell", [19459014Computerworld: 2 abgerufen 21. März 2011Als Richard Stallman beschloss, einen vollständigen Ersatz für die damals belasteten Unix-Systeme zu schaffen, wusste er, dass er dies wusste Irgendwann müssten alle gängigen Hilfsprogramme ersetzt werden, insbesondere die Standard-Shell, und diese müssten eine akzeptable Lizenzierung haben.
- a b
Brian
Fox (weitergeleitet von Leonard H. Tower Jr.) (8. Juni 1989). "Bash ist in der Beta-Version!". Newsgroup: gnu.announce . Abgerufen 28. Oktober 2010 . - ^ "So installieren Sie das Bash-Shell-Befehlszeilenprogramm unter Windows 10". 28. September 2016.
- ^ "Änderungen der Benutzerumgebung". Oracle.
- ^ C-Programmierung von Al Stevens, Dr. Dobbs Journal, 1. Juli 2001
- ^
Richard Stallman (12. November 2010). "Über das GNU - Projekt". Free Software Foundation. Aus dem Original am 24. April 2011 archiviert. 13. März 2011 abgerufen."Bourne Again Shell" ist ein Spiel mit dem Namen Bourne Shell der bei Unix die übliche Hülle war.
- ^
Gattol, Markus (13. März 2011), Bourne-again Shell archiviert vom Original am 9. März 2011 abgerufen 13. März 2011 ]Der Name ist ein Wortspiel für den Namen der Bourne-Shell (sh), eine frühe und wichtige Unix-Shell, die von Stephen Bourne geschrieben und mit Version 7 Unix um 1978 verteilt wurde, sowie das Konzept des "Wiedergeborenseins".
- ^ Chazelas, Stephane (4. Oktober 2014). msgstr "Archiv der oss-sec-Mailinglisten". Seclists.org . 4. Oktober 2014 .
- Leyden, John (24. September 2014). "Patch Bash JETZT: 'Shell Shock'-Fehler sprengt OS X, Linux-Systeme weit geöffnet". Das Register . 25. September 2014 .
- ^ Perlroth, Nicole (25. September 2014). Msgstr "Sicherheitsexperten erwarten" Shellshock "- Software - Fehler in der Bash als bedeutsam". 19459014 Die New York Times . 25. September 2014 .
- ^ Seltzer, Larry (29. September 2014). "Shellshock macht Heartbleed unbedeutend". ZDNet . Aus dem Original am 14. Mai 2016 archiviert.
- ^
Brian Fox (29. August 1996), shell.c Free Software Foundation,Geburtsdatum: Sonntag, 10. Januar 1988. Erstautor: Brian Fox
- ^
Richard Stallman (3. Oktober 2010). "Über das GNU - Projekt". Free Software Foundation. Aus dem Original am 24. April 2011 archiviert. 21. März 2011 abgerufen.Die Mitarbeiter der Free 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, weil es beim GNU-Projekt nicht nur um Werkzeuge oder eine Entwicklungsumgebung ging. Unser Ziel war ein vollständiges Betriebssystem, und diese Programme wurden für dieses Ziel benötigt.
- ^
len (g ... @ prep.ai.mit.edu) (20. April 1993). "Januar 1993 GNU Bulletin". Newsgroup: gnu.announce. Usenet: gnusenet930421bulletin@prep.ai.mit.edu . 28. Oktober 2010 . - Ramey, Chet (1. August 1994). "Bash - die GNU-Shell (Reflexionen und erlernte Lektionen)". Linux Journal . Nach dem Original am 5. Dezember 2008 archiviert . 13. November 2008 .
- ^ Chet Ramey (31. Oktober 2010), Datumsangaben in Ihrem Computerworld-Interview abgerufen 31. Oktober 2010
- ^
Chet Ramey (12. Juni 1989). "Bash 0.99 Korrekturen und Verbesserungen". Newsgroup: gnu.bash.bug . Abgerufen 1. November 2010 . - ^
Chet Ramey (24. Juli 1989). "Einige bash-1.02 Korrekturen". Newsgroup: gnu.bash.bug . Abgerufen 30. Oktober 2010 . - ^
Brian Fox (2. März 1990). Msgstr "Verfügbarkeit von bash 1.05". Newsgroup: gnu.bash.bug . Abgerufen 30. Oktober 2010 . - ^ Foster-Johnson, Eric; Welch, John C .; Anderson, Micah (April 2005). Beginn der Shell-Skripterstellung . John Wiley & Sons, Inc. p. 6. ISBN 978-0-7645-9791-6 . Abgerufen 6. Juni 2016 .
Bash ist bei weitem die beliebteste Shell und bildet die Standardshell auf Linux- und Mac OSX-Systemen.
- ^
Danesh, Arman; Jang, Michael (Februar 2006). Beherrschen von Linux . John Wiley & Sons, Inc. p. 363. ISBN 978-0-7821-5277-7 . Abgerufen 6. Juni 2016 .Die Bourne Again-Shell (bash) ist die am häufigsten bei Linux-Distributionen installierte Shell.
- ^ Bresnahan, Christine; Blum, Richard (April 2015). CompTIA Linux + unterstützt von Study Guide des Linux Professional Institute: Exam LX0-103 und Exam LX0-104 (3. Auflage). John Wiley & Sons, Inc. p. 5. ISBN 978-1-119-02122-3 . Abgerufen 6. Juni 2016 .
Unter Linux führen die meisten Benutzer bash aus, da dies die beliebteste Shell ist.
- ^ https://www.linkedin.com/pub/st%C3%A9phane-chazelas/7/2a2/834
- ^ "CVE-2014-6277". cve.mitre.org .
- ^ Huzaifa Sidhpurwala (2014-09-24). Msgstr "Bash speziell gestaltete Umgebungsvariablen codieren den Angriff". Red Hat.
- ^ http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_02_03.html
- ^ http://www.caliban.org/bash/ index.shtml
- ^ a b
"6.11 Bash-POSIX-Modus", Das GNU-Bash-Referenzhandbuch für Bash, Version 4.1 December 23. Dezember 2009, archiviert vom Original am 3. Dezember 2010 abgerufen 26. Oktober 2010 - ^ "Advanced Bash-Scripting Guide". www.tldp.org . Abschnitt 37.2 (Bash, Version 3) . 2017-03-05 .
- ^ Die Syntax stimmt mit der auf der Manpage
regex (7)
- ^ http: / überein. /tldp.org/LDP/abs/html/bashver4.html[19659345##^[19659285(""DieShellbietetassoziativeArray-VariablenmitderentsprechendenUnterstützungzumErstellenLöschenZuweisenundErweiternvonWerten"http://tiswwwcaseedu/php/chet/bash/NEWS[19659347????19439285http://deapplestackexchangecom/questions/193411/update-bash-to-version-4-0-on-osx
- ^ https://www.gnu.org/software/bash/manual/html_node/Arrays.html
- ^ b [19659354]Mendel Cooper. "Portability Issues". The Linux Documentation Project. ibiblio.org.
- ^ "checkbashisms(1) - Linux man page". linux.die.net.
- ^ "BASH Help - A Bash Tutorial". Hypexr.org. October 5, 2012. Retrieved July 21, 2013.
- ^ https://www.gnu.org/software/bash/manual/bash.html#index-background
- ^
bashbug(1), die.net - ^
"Linux / Unix Command: bashbug", apple.com
External links[edit]
Wikimedia Commons has media related to Bash. - ^ "Index of / gnu / bash" . 8. Januar 2019 .
Không có nhận xét nào:
Đăng nhận xét