Mein Notizen zur Bash

Ich möchte diesen Blog als Nachschlagewerk für die Bash nutzen. Es wird hier afu keine Details eingegangen, sondern dient nur zum schnellen Nachschlagen. Des Weiteren werden die Unterschiede zwischen der Bash < 4.x mit dokumentiert.

Eine neurerung der Bash 4.x ist nun das sie mit assioziativen Arrays arbeiten kann. Hier ein Beispiel dafür.

declare -A Name
Name[Tau]=Pan
Name[Kater]=Tom
Name[Pan]=Peter

#Alle ausgeben
echo "Schlüssel: ${!Name[@]}"
echo "Wert: ${Name[@]}"

echo "Der Name von Pan ist ${Name[Pan]}"

Ich möchte hier nun eine Liste darstellen von allen wichtigen vordefinierten Variablen in der Korn,Bash,Zsh Shell.

CDPATHSuchpfad für cd Kommando z.B. CDPATAH=‘.:~:/etc/‘ Danach kann ich problemlos alle Ordner in etc mit cd ansprechen. Achtung das geht nur mit CD 😉 nicht mit vi oder anderen Befehlen da müsste man die PATH variable anpassen.
HOMEUser Homeverzeichnis
IFSWort Trennzeichen
LOGNAMELogin-Name
MAIL,MAILCHECKMailbox-pfad und wartezeit der shell
MANPATHPfadname der Manpages
PATHSuchpfad für Kommandos
PS1Primärer Prompt
PS2Sekundärer Prompt
SHELLPfad zur Shell
TERMTerminal-Einstellung
TZZeitzone MET
EDITORKommandozeileneditor wenn visual nicht gesetzt ist
ENVEntält den pfadnamen zur Environment-Datei, die bei jedem Neu-Start einer Sub-Shell gelesen wird.
FPATHVerzeichnisse, die der Autoload-Mechanismus nach Funktionsdefinition durchsucht.
HISTFILEHistory-Datei
HISTSIZEGröße der History-Datei
PS3Prompt für Menüs Standardwert #
PS4Debugging-Promptstring
TMOUTWartet solange bis keine Eingabe erfoglt und beendet das Terminal
BASH_ENVKonfigurationsdatei in bash .bashrc
HOSTFILEPfas zur Hosts file /etc/hosts
HOSTNAMERechnername
HOSTRechnername ZSH
GROUPSArray aller Gruppen für den aktuellen Benutzer
MACHTYPECPU Architektur

Weitere vordefinierte Variablen

$1 bin $nArgumente aus der Kommadozeile
$RANDOMPseudo Zufallszahl zwischen 0 – 32767
$*Alle Argumente eine Zeichenkette
$@Alle Argumente aus der KOmmandozeile als einzelne Zeichenkette
$#Anzahl aller Argumente in der Kommandozeile
$_(bash only) die zuletzt aufgerufen wurden
$LINENOzeigt die Zeilennummer
$OLDPWDzeigt das zuvor besuchte Arbeitsverzeichnis
$OPTARGDer Wert des letzten Arguments
$OPTINDEnthält die NUmmer der zuletzt von getops ausgewertet
$PPIDProzessID des Elternprozesses
$PWDAktuelles Verzeichniss
$SECONDSZeigt die Sekunden seit dem Start des Systems
$HOSTTYPE(nur zsh) zeigt den Typ des Rechners
PROMPT_COMMND (nur zsh)Hier kann ein Kommando angeben werden was bei jeder Eingabeaufforderung automatisch ausgeführt wird.
UIDUser-ID

For Schleifen werden auch immer einfacher 🙂 Hier ein Beispiel um zu prüfen welche Systeme erreichbar sind also OneLiner :

for i in {100..255}; do; if ping -c1 -w3 192.168.50.$i >/dev/null 2>&1;then; echo "Ping responded; $i address allocated" >&2;fi; done

Schreibe einen Kommentar