Markdown Datei Shell eingefügt

Michael Schaar 2023-09-20 17:30:31 +02:00
parent bfb6669552
commit 752aff729b
1 changed files with 176 additions and 0 deletions

@ -0,0 +1,176 @@
# 3. Keine Angst vor der Shell
__Lernziele__
* Die Vorteile einer textorientierten Kommandooberfläche bewerten können
* Gängige Linux-Shells kennen
* Mit der Bourne-Again-Shell (Bash) arbeiten
* Struktur von Linux-Kommandos verstehen
__Vorkenntnisse__
* Grundlegende Kenntnisse im Umgang mit Computern sind hilfreich
Für den Fall, dass Sie nicht mehr wissen sollten, mit welcher Shell Sie gerade arbeiten, hilft die Eingabe von "echo $0", die so ziemlich überall funktioniert und als Ausgabe die Bezeichnung der Shell liefert.
```bash
echo $0
```
/usr/bin/bash
## Warum?
Unter dem Strich bedeutet das nur, dass Sie als angehender Linux-Anwender gut daran tun, sich auch mit der textorientierten Kommandooberfläche, bekannt als `Shell`, vertraut zu machen. Natürlich will Sie niemand davon abhalten, eine grafische Oberfläche für alles zu benutzen, was Ihnen einfällt. Die Shell ist aber
eine Abkürzung zu zahlreichen extrem mächtigen Operationen, die sich grafisch einfach nicht gut ausdrücken lassen.
__Die Shell abzulehnen ist äquivalent dazu, sich in der Fahrschule gegen die Verwendung aller Gänge außer des ersten zu sträuben: Sicher, auch im ersten Gang kommt man letztendlich ans Ziel, aber nur vergleichsweise langsam und mit heulendem Motor.__
## Was ist die Shell?
- Bourne-Shell
- C-Shell
- Korn-Shell
- Bourne-Again-Shell
Über die genannten Shells hinaus gibt es noch zahlreiche andere. Eine Shell unter Unix ist ein Anwendungsprogramm wie jedes andere auch, und Sie brauchen keine besonderen Privilegien, um eine schreiben zu können Sie müssen sich nur an die _Spielregeln_ halten, die bestimmen, wie eine Shell mit anderen Programmen kommuniziert.
Die Shell übernimmt dabei im Einzelnen folgende Aufgaben:
1. Ein Kommando von der Tastatur (oder aus einer Datei) einlesen.
2. Das eingegebene Kommando überprüfen.
3. Das Kommando direkt ausführen oder das korrespondierende Programm starten.
4. Das Resultat auf dem Bildschirm (oder anderswohin) ausgeben.
5. Weiter bei 1.
## Übungen
C 3.1 [2] Wie viele verschiedene Shells sind auf Ihrem Rechner installiert und welche? (Tipp: Prüfen Sie die Datei /etc/shells.)
C 3.2 [2] Melden Sie sich ab und wieder an und prüfen Sie die Ausgabe des Kommandos __echo \$0__ in der __Loginshell__. Starten Sie mit dem Kommando __bash__ eine neue Shell und geben Sie wiederum das Kommando __echo \$0__.
Vergleichen Sie die Ausgabe der beiden Kommandos. Fällt Ihnen etwas auf?
## 3.3 Kommandos
```bash
type echo
```
echo ist eine von der Shell mitgelieferte Funktion.
```bash
type date
```
date ist /usr/bin/date
```bash
echo Ha, wackrer Tell! Das gleicht dem Waidgesellen!
```
Ha, wackrer Tell! Das gleicht dem Waidgesellen!
```bash
date
```
Mi 20. Sep 17:24:15 CEST 2023
```bash
help type
```
type: type [-afptP] Name [Name ...]
Display information about command type.
For each NAME, indicate how it would be interpreted if used as a
command name.
Options:
-a display all locations containing an executable named NAME;
includes aliases, builtins, and functions, if and only if
the `-p' option is not also used
-f suppress shell function lookup
-P force a PATH search for each NAME, even if it is an alias,
builtin, or function, and returns the name of the disk file
that would be executed
-p returns either the name of the disk file that would be executed,
or nothing if `type -t NAME' would not return `file'
-t output a single word which is one of `alias', `keyword',
`function', `builtin', `file' or `', if NAME is an alias,
shell reserved word, shell function, shell builtin, disk file,
or not found, respectively
Arguments:
NAME Command name to be interpreted.
Exit Status:
Returns success if all of the NAMEs are found; fails if any are not found.
Übungen
C 3.3 [2] Welche der folgenden Kommandos sind bei der Bash extern und welche intern realisiert:
* alias,
* echo,
* rm,
* test
```bash
type alias echo rm test
```
alias ist eine von der Shell mitgelieferte Funktion.
echo ist eine von der Shell mitgelieferte Funktion.
rm ist /usr/bin/rm
test ist eine von der Shell mitgelieferte Funktion.
### 3.3.4 Noch mehr Spielregeln
```bash
touch 'Neue Datei'
```
```bash
ls
```
'3 Keine Angst vor der Shell.ipynb'
Keine_Angs_vor_der_Shell.ipynb
'Linux kompakt__Ein Einstieg in Linux-Anwen - Linup Front GmbH.pdf'
'Neue Datei'
## Weblinks
* https://wiki.ubuntuusers.de/Shell/
* https://wiki.ubuntuusers.de/Shell/Einführung/
Bitte eigenständig durchlesen und durchführen.
Zusatzinfo
* https://wiki.ubuntuusers.de/Shell/Prozesssteuerung/
```bash
```