Kuttel Daddeldu schrieb:
Finde ich sehr schön! Leicht abgeändert, um die drei Shells formal deutlicher zu unterscheiden:
Bei Linuxsystemen wird zwischen verschiedenen Arten von Shells unterschieden:
Ist das so?
Nicht nur verschiedene Shells, sondern auch verschiedene Arten von Shells? Die Familie der Paarhufer, die Wiederkäuer, ... ☺
Das ist hier einer der Fälle, wo man selbst Begriffe prägt (Standard-Shell) und später feierliche Erklärungen drum herum strickt, aber in Wahrheit zäumt man das Pferd von hinten auf, und verstrickt sich dann immer tiefer in provisorischen Erklärungen.
Das Problem dabei ist, dass man das niemandem recht verklickern kann, der bei der Entstehung der Begriffe und den äußeren Zwängen, die sie begleiteten, nicht dabei war.
* Unter der Standardshell werden Skripte direkt vom System (z.B. beim Booten) ausgeführt; ...
Ein kleiner Ausflug in die Welt der Bootscripte:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | head -n1 /etc/init.d/* | grep '#!'
#!/bin/bash
#!/bin/sh -e
#!/bin/sh -e
#!/bin/sh -e
#!/bin/sh -e
#!/bin/sh
#!/bin/sh
#!/bin/sh -e
#!/bin/sh -e
#!/bin/sh
#! /bin/sh
#!/usr/bin/env python
#! /bin/sh
|
So sehen die anderen auch aus - nur python kommt kein zweites Mal vor. Fakt ist, dass die Skripte nicht "#! Standardshell" aufrufen, sondern /bin/sh. Das ist bei Ubuntu voreingestellt die Dash. Also schon etwas, dass man Standard nennen kann.
* Die Login-Shell sieht der Benutzer, der sich über eine Konsole ... einloggt.
Das ist auch voreingestellt, und damit auch ein Standard, aber eben ein anderer.
Und so kommen wir wenig überraschend zum 3. Standard:
* Die interaktive Shell erhält man, wenn man unter einer grafischen Benutzeroberfläche ein Terminal öffnet.
Daraus ergibt sich schlüssig, dass es den Standard unter Linux/Ubuntu nicht gibt, sondern für verschiedene Zwecke verschiedene Standards. Am besten gibt man nicht zuviel auf diese Standards, die sowieso flexibel sind. Wer will ändert seine interaktive und die Loginshell auf zsh, und ändert den Link von /bin/sh auf die Bash.