Markdown Datei Shell eingefügt
parent
bfb6669552
commit
752aff729b
|
@ -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
|
||||
|
||||
```
|
Loading…
Reference in New Issue