Bash/Builtin: Unterschied zwischen den Versionen
Erscheinungsbild
| Zeile 16: | Zeile 16: | ||
type | type | ||
whereis | whereis | ||
= Übersicht = | |||
{| class="wikitable sortable" | |||
|- | |||
! 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 || || [[Linux:Shell:Bash:Builtin:cd |Verzeichnis wechseln]] | |||
|- | |||
| command || || [[Linux:Shell:Bash:Builtin:command]] | |||
|- | |||
| compgen || || [[Linux:Shell:Bash:Builtin:compgen]] | |||
|- | |||
| complete || Mit diesem Kommando kann das ganze Verhalten der Bash bei der Vervollständigung von Argumenten verändert werden|| [[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 || Das Kommando dient zur Anzeige oder Manipulation des Kommandozeilenspeichers. || [[Linux:Shell:Bash:Builtin:history]] | |||
|- | |||
| kill || Das Kommando dient der Steuerung bereits laufender Prozesse, indem es an diese Signale versendet. || [[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 = | = Links = | ||
Version vom 25. Februar 2022, 11:43 Uhr
Beschreibung
Es gibt eine Fülle solcher eingebauter Kommandos und mindestens 4 Gründe, warum solche in der Bash überhaupt existieren:
- 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 nur ein eingebautes Kommando Bash-interne Variablen ändern kann (Beispiel »export«)
- Weil ein Kommando wie »exec« nur innerhalb der Bash realisierbar ist
Betrachten wir die einzelnen 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
Ü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 | |
| command | Linux:Shell:Bash:Builtin:command | |
| compgen | Linux:Shell:Bash:Builtin:compgen | |
| complete | Mit diesem Kommando kann das ganze Verhalten der Bash bei der Vervollständigung von Argumenten verändert werden | 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 | Das Kommando dient zur Anzeige oder Manipulation des Kommandozeilenspeichers. | Linux:Shell:Bash:Builtin:history |
| kill | Das Kommando dient der Steuerung bereits laufender Prozesse, indem es an diese Signale versendet. | 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 |