Unterschied Linux Shell und Bash Console?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

"Shell" ist Englisch, und bedeutet ungefähr "Schale", "Hülle", "Mantel", oder "Kapsel". Die Shell ist also etwas, was das System umgibt. Wenn du dein System nutzen willst, nutzt du dafür grundsätzlich irgendeine Shell. Dafür gibt es viele Optionen, Bash ist nur die bekannteste. Jetzt kann man Bash aber nicht einfach so nutzen, sondern du brauchst dafür ein Terminal bzw. eine Konsole. Das sieht ungefähr so aus: https://www.lidavidm.me/blog/assets/images/2019-seattle/pdp11.jpg

Also mit so einer Kiste kannst du dann die Shell (also z.B. Bash oder Zsh) nutzen. Aber das will natürlich außer einem Museum keiner mehr. Deshalb gibt es Terminal-Emulatoren, das sind Programme, die so tun als ob sie ein Terminal (bzw. eine Konsole) wären. Mittlerweile werden die auch einfach "Terminal" oder "Konsole" genannt.

Und was heißt das ganze jetzt für Skripte? Ein Skript ist einfach eine Textdatei mit Code in einer bestimmten Sprache, der dafür gedacht ist, von einem Interpreter ausgeführt zu werden (also nicht compiliert zu werden). Das kann Python sein, Bash, Lua, oder sonstwas. Wichtig ist dabei natürlich, dass du das Skript mit dem Interpreter von der Sprache ausführst, in der es geschrieben ist. Normalerweise steht in der ersten Zeile dann sowas wie

#!/bin/bash

oder

#!/usr/bin/python3

Beim Ausführen weiß dein System dann direkt, womit es das ausführen soll.

Jetzt gibt es bei den meisten Shells bei Linux oder Unix noch eine Besonderheit: Die halten sich an den so genannten POSIX-Standard. Das heißt, dass die Skripte die für eine bestimmte Shell geschrieben sind, auch in den anderen Shells laufen. Bash und Zsh wären so ein Beispiel. Die können meistens noch etwas mehr, was dann nicht mehr POSIX ist, aber wenn ein Skript nur die POSIX-Befehle nutzt, dann läuft das in jeder Shell die POSIX kann. Das wären dann beispielsweise Bash und Zsh.

Fish und Python wären Beispiele für Shells, die nicht mit POSIX kompatibel sind. Ein Bash-Skript kannst du deshalb nicht in der Python-Shell oder der Fish-Shell ausführen, und ein Python-Skript kannst du nicht in der Bash-Shell ausführen. Allerdings kannst du das Python-Skript mit der Bash-Shell starten, die ruft dann dafür aber Python auf, und macht das nicht selber.

Woher ich das weiß:Studium / Ausbildung – Informatik

JaggerJackson 
Fragesteller
 01.06.2023, 12:43

Alles klar, Danke :)

0

Es gibt Mehre "Terminals" als Lösung um unter Linux dann GUI unabhängig zu arbeiten.

Die Standard Shell bei den meisten Linux Distris ist die Bash. Bei den meisten Scripten wird auch meistens es angeben mit !/bin/bash

Es gibt andere Shells die man auch Verwenden kann jedoch sind es mehr nur Kompromiss Lösungen zu den jeweiligen Möglichkeiten.

  • KornShell --> ksh
  • C Shell --> csh
  • Fish
  • Z Shell --> zsh
  • Dash
  • Xonsh
  • Nushell
  • Conclusion
  • tsh
  • rc
  • Tcl
  • Lua
  • Nim
  • HasKell
  • V
  • GO

Um nur mal eine Auswahl zu erwähnen

Woher ich das weiß:Berufserfahrung – Linux Administrator

JaggerJackson 
Fragesteller
 01.06.2023, 00:44

Alles klar, das bringt etwas Licht ins Dunkle. Danke

0

Die Bash ist eine der Linux-Shells. Bash bedeutet Bourne Again Shell, eine Weiterentwicklung der Unix-Bourne-Shell.

Ausserdem sind aber noch weitere Shells verfügbar, z.B. die Korn-Shell, die C-Shell, a- und z-Shell https://www.selflinux.org/selflinux/html/was_ist_shell01.html

Die Bourne-Shell ist kaum noch vertreten, meist ist diese Link von der Bash gesetzt, da die Bash abwärtskompatible zur Bourne-Shell ist.

Eine Shell ist der generelle Begriff eines Programms, dass dir eine Schnittstelle zum Betriebssystem bietet.
Bash (Bourne again Shell) ist eine Version einer Shell, es gibt aber noch viele weitere wie zsh, fish,...

Woher ich das weiß:Studium / Ausbildung – Fachinformatiker Systemintegration

JaggerJackson 
Fragesteller
 01.06.2023, 00:45

Ah verstehe, Danke dir!

0