Bash/Builtin: Unterschied zwischen den Versionen

Aus Foxwiki
KKeine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
'''Builtins''' werden die in der Bash eingebauten Befehle genannt
= Beschreibung =
= Beschreibung =
Es gibt eine Fülle solcher eingebauter Kommandos und mindestens 4 Gründe, warum solche in der Bash überhaupt existieren:
Gründe, warum solche in der Bash überhaupt existieren
# Weil es ein solches Kommando in Unix nicht gibt (Beispiel "source")  
# Weil es ein solches Kommando in Unix nicht gibt (Beispiel "source")  
# Weil ein builtin Kommando effizienter arbeitet als ein externes Kommando (keine Prozesserzeugung notwendig; Beispiel »echo«)  
# Weil ein builtin Kommando effizienter arbeitet als ein externes Kommando (keine Prozesserzeugung notwendig; Beispiel »echo«)  
Zeile 6: Zeile 8:
# Weil ein Kommando wie »exec« nur innerhalb der Bash realisierbar ist  
# Weil ein Kommando wie »exec« nur innerhalb der Bash realisierbar ist  


Betrachten wir die einzelnen builtin-Kommandos
'''builtin-Kommandos'''
* Etliche der besprochenen Shell-Kommandos starten nicht, wie sonst üblich, einen eigenen Prozess, sondern sie werden direkt von der Shell interpretiert und ausgeführt.  
* Etliche der besprochenen Shell-Kommandos starten nicht, wie sonst üblich, einen eigenen Prozess, sondern sie werden direkt von der Shell interpretiert und ausgeführt.  
* Teilweise ist keine E/A-Umleitung möglich.  
* Teilweise ist keine E/A-Umleitung möglich.  

Version vom 25. Februar 2022, 11:54 Uhr

Builtins werden die in der Bash eingebauten Befehle genannt

Beschreibung

Gründe, warum solche in der Bash überhaupt existieren

  1. Weil es ein solches Kommando in Unix nicht gibt (Beispiel "source")
  2. Weil ein builtin Kommando effizienter arbeitet als ein externes Kommando (keine Prozesserzeugung notwendig; Beispiel »echo«)
  3. Weil nur ein eingebautes Kommando Bash-interne Variablen ändern kann (Beispiel »export«)
  4. Weil ein Kommando wie »exec« nur innerhalb der Bash realisierbar ist

builtin-Kommandos

  • Etliche der besprochenen Shell-Kommandos starten nicht, wie sonst üblich, einen eigenen Prozess, sondern sie werden direkt von der Shell interpretiert und ausgeführt.
  • Teilweise ist keine E/A-Umleitung möglich.
  • Zum Teil gibt es interne und externe Versionen, z. B. 'echo' (intern) und '/bin/echo' (extern).

Arten von builtin

Was wird gestartet?

  • type
  • whereis

Builtins ein- und ausschalten

Übersicht

Befehl Beschreibung Link
Null Linux:Shell:Bash:Builtin:null
source Linux:Shell:Bash:Builtin:source
alias Definition einer Abkürzung für ein Kommando Linux:Shell:Bash:Builtin:alias
jobs Listet die Jobnummern aller Hintergrundprozesse auf Linux:Shell:Bash:Builtin:jobs
bind Linux:Shell:Bash:Builtin:bind
break Linux:Shell:Bash:Builtin:break
cd Verzeichnis wechseln Linux:Shell:Bash:Builtin:cd
command Linux:Shell:Bash:Builtin:command
compgen Linux:Shell:Bash:Builtin:compgen
complete Verhalten der Bash bei der Vervollständigung steuern Linux:Shell:Bash:Builtin:complete
continue Linux:Shell:Bash:Builtin:continue
declare Deklarieren von Variablen Linux:Shell:Bash:Builtin:declare
dirs Anzeige des Verzeichnisstacks Linux:Shell:Bash:Builtin:dirs
disown Linux:Shell:Bash:Builtin:disown
echo Eine Zeile Text anzeigen Linux:Shell:Bash:Builtin:echo Linux:Befehl:echo
enable Eingebauten Kommandos der Shell aktivieren Linux:Shell:Bash:Builtin:enable
eval Liest seine Argumente, wobei die üblichen Ersetzungen stattfinden, und führt die resultierende Zeichenkette als Kommando aus. Linux:Shell:Bash:Builtin:eval
exec Das Kommando besitzt zwei Bedeutungen. Linux:Shell:Bash:Builtin:exec
exit Beendet die Shell Linux:Shell:Bash:Builtin:exit
export Exportieren von Variablen Linux:Shell:Bash:Builtin:export
fc Manipulation der History-Einträge Linux:Shell:Bash:Builtin:fc
fg holt einen Hintergrundprozess in den Vordergrund Linux:Shell:Bash:Builtin:fg
getopts Linux:Shell:Bash:Builtin:getopts
hash Linux:Shell:Bash:Builtin:hash
help Schreibt einen kurzen Hilfetext zu einem eingebauten Kommando aus.
history Kommandozeilenspeicher anzeigen Linux:Shell:Bash:Builtin:history
kill Signale an Prozesse senden Linux:Shell:Bash:Builtin:kill
let Für jedes Argument wird eine arithmetische Substitution versucht Linux:Shell:Bash:Builtin:let
local Definition lokaler Variablen Linux:Shell:Bash:Builtin:local
logout Beendet eine Login-Bash und meldet den Benutzer ab. In einer Nicht-Login-Bash wird eine Fehlermeldung ausgegeben.
popd Entfernt den obersten Eintrag vom Verzeichnisstack und wechselt zum neuen obersten Verzeichniseintrag. Linux:Shell:Bash:Builtin:popd
printf Linux:Shell:Bash:Builtin:printf
pushd Mit dem Kommando kann in ein angegebenes Verzeichnis gewechselt werden, wobei das Verzeichnis auf einem Stack abgelegt wird Linux:Shell:Bash:Builtin:pushd
pwd Gibt das aktuelle Arbeitsverzeichnis aus Linux:Shell:Bash:Builtin:pwd
read Linux:Shell:Bash:Builtin:read
readonly Variablen und Funktionen lassen sich nachträglich als »nicht änderbar« deklarieren. Linux:Shell:Bash:Builtin:readonly
return Rücksprung aus einer Funktion Linux:Shell:Bash:Builtin:return
set [[Linux:Shell:Bash:Builtin:set set dient zum Setzen bash-interner Variablen]]
shift Verschieben der Positionsparameter Linux:Shell:Bash:Builtin:shift
shopt Dient zum Setzen bash-interner Variablen, die das Verhalten der Shell maßgeblich beeinflussen
suspend Suspendiert die Shell. Sie kann nur durch ein Signal SIGCONT reaktiviert werden.
test test liefert in Abhängigkeit vom Wahrheitswert des Ausdrucks 0 (wahr) oder 1 (falsch) zurück und ist damit ein wichtiger Bestandteil vieler Shellskripten. Linux:Shell:Bash:Builtin:test
times Misst die Zeit für die Shell und der von dieser gestarteten Kommandos. Linux:Shell:Bash:Builtin:times
trap Linux:Shell:Bash:Builtin:trap
type Linux:Shell:Bash:Builtin:type
typeset declare
ulimit Linux:Shell:Bash:Builtin:ulimit
umask Setzt die Rechtemaske für neu erzeugte Dateien oder Verzeichnisse bzw. zeigt die Rechte an. Linux:Shell:Bash:Builtin:umask
unalias Löscht den angegebenen Alias bzw. mit der Option -a alle Aliasse.
unset Dient zum Löschen einer Variable oder Funktion.
wait Dient zum Warten auf einen oder alle Hintergrundprozesse. Linux:Shell:Bash:Builtin:wait

Links

Dateien

Man-Pages

Intern

Weblinks