= Bash = Bei der '''B'''ourne '''A'''gain '''Sh'''ell handelt es sich um eine [http://de.wikipedia.org/wiki/Unix-Shell Unix Shell] - oder, anders ausgedrückt, um einen "Kommandozeilen Interpreter" für Unix- und Linuxsysteme. Dabei ist die ''Bash'' nicht einfach irgend eine Shell, sondern die wohl am meisten verbreitete - und findet sich daher auch auf fast allen Unix-/Linuxsystemen wieder. ''Bash'' ist Teil des [http://de.wikipedia.org/wiki/GNU-Projekt GNU Projekts]. Der Name wurde absichtlich vieldeutig gewählt. So ist die ''Bash'' voll kompatible zur originalen ''Bourne Shell'' (sh) (also "(schon) wieder eine Bourne Shell", oder die "Wiedergeborene Shell"). Andere leiten den Namen vom Verb "to bash" (schlagen) oder auch vom Substantiv "bash" (Feier, Party, Schlag) ab... Wie bereits erwähnt, ist die Bash für viele Systeme verfügbar: Unixe, Linux, [http://de.wikipedia.org/wiki/Cygwin Cygwin], [http://de.wikipedia.org/wiki/MSYS MSYS] und sogar die [http://de.wikipedia.org/wiki/Microsoft_Windows_Services_for_UNIX Microsoft Windows Services for UNIX] gehören dazu. Und hiermit natürlich auch die Freetz Box :-? Man kann den sog. Prompt anpassen, also das, was jeweils vor dem Cursor angezeigt wird. Dazu muss man die Variable PS1 anpassen, was man sehr bequem über das Freetz-WebGUI unter Einstellungen/.profile machen kann. Die Bash kennt für den Prompt u.a. folgende Variablen für PS1: {{{ \h : Host name \H : Host name inklusive Domain \d : Datum \t : time Zeit \u : User Benutzerkennung \w : Working directory, aktuelles Arbeitsverzeichnis \l : Terminalname, zum Beispiel tty1 \# : Eingabezeilennummer \\ : Das Zeichen "\" }}} So lassen sich im Prompt z.B. auch noch User- und Hostname zusätzlich zum aktuellen Pfad anzeigen: {{{ export PS1="\u@\h \w \$ " }}} Das Resultat mit o.g. Beispiel sieht dann so aus: {{{ root@fb1 /var/mod/root $ }}} Der Host (die Fritzbox) heisst genauso wie es in der Variable /proc/sys/kernel/hostname steht, hier also "fb1" (Standard ist "fritz.box"). = Ash = Das Ganze funktioniert sowohl für bash (mit diesem Paket installiert) als auch für ash (Standard in Freetz, ohne zusätzliches Paket), wobei ash nur folgendes unterstützt: {{{ \h : Host name \u : User Benutzerkennung \w : Working directory, aktuelles Arbeitsverzeichnis \# : Eingabezeilennummer }}} = Bash als Loginshell = TODO == Weiterführende Links == * [http://de.wikipedia.org/wiki/Unix-Shell#Die_Bourne-Again-Shell Wikipedia Artikel] * [http://en.wikipedia.org/wiki/Bash Englischer Wikipedia Artikel] mit umfangreicheren Details * [http://www.gnu.org/software/bash/bash.html Homepage der Bash] * [http://tldp.org/LDP/Bash-Beginners-Guide/html/index.html Bash Guide] for Beginners * [http://tldp.org/LDP/abs/html/index.html ABS] - der '''A'''dvanced '''B'''ash '''S'''cripting Guide * [http://bashscripts.org/ Bash Online Forum] * [http://linuxwiki.de/Bash bash - Die Bourne again shell im LinuxWiki]