Terminal, C, Bash, Zusammenhang und Unterschied?

3 Antworten

Bash ist eine Shell, also eine Schnittstelle, um den Computer zu bedienen (eine Alternative zur grafischen Benutzerumgebung). Bash ist außerdem auch eine Programmiersprache, und wird häufig für Skripte benutzt.

Ein Terminal brauchst du, um die Shell bedienen zu können, das ist effektiv meistens ein Fenster mit schwarzem Hintergrund und weißer Schrift. (Streng genommen ist das ein Terminal-Emulator, und ein Terminal ist so eine Art Monitor mit Tastatur, so ein uraltes Ding, was du vielleicht mal auf Fotos gesehen haben könntest)

C ist eine Programmiersprache, wird aber nicht für Skripte, sondern für Programme genutzt, die performant laufen müssen, z.B. den Linux-Kernel, oder Treiber.

Woher ich das weiß:Studium / Ausbildung – Informatik

MaximPaul 
Beitragsersteller
 15.04.2022, 20:43

Danke, das war super hilfreich! Wie genau hängen C und die anderen zusammen? Meine Profs hatten irgendwas im Terminal mit gcc und C gemacht

1
julihan41  15.04.2022, 20:54
@MaximPaul

GCC steht für GNU Compiler Collection und ist genau das, was der Name sagt.es beinhaltet unter anderem einem Compiler für C, sodass du aus Bash heraus einen C Quelltext kompilieren kannst. Somit ruft Bash also das Programm auf, das ein C Programm erstellt. Aus Bash heraus lässt sich ein C Programm dann auch starten.

Gilt auch für andere Programmiersprachen nach demselben Konzept.

3
LeBonyt  15.04.2022, 22:15
@MaximPaul

Gcc ist der Compiler, also ein Programm was einen für den Menschen lesbaren Quellcode in einen für den Prozessor verständlichen Bytecode umwandelt

2
justmee0815  31.07.2022, 23:41
@MaximPaul

Mit C geschriebene Programme kann man nicht direkt ausführen. Sie müssen erst kompiliert, d.h. in Maschinensprache umgewandelt werden. Ein Compiler, den man dazu nutzen kann, ist gcc. gcc wird über einen Kommandozeilenbefehl aufgerufen, den man z.B. in der Bash-Shell in seinem Terminal ausführen kann.

1
in die 3 Sprachen gekriegt,

Nein.
Ein Terminal hat nichts mit einer Programmiersprache zu tun, auch wenn es in einer Programmiersprache programmiert wurde.

Die bash ist ein Programm, das vorzugsweise als interaktives Bindeglied zwischen Betriebssystem und dem Menschen benutzt wird.
Das ba in bash steht für Bourne-again. again weil sie eine Art Wiedergeburt, eine Verbesserung, der Bourne-Shell ist.
Es ist eine Shell (dafür steht das sh in bash), die, bildlich gesehen, wie eine Schale um den Kern des Betriebssystems liegt.
Die bash ist aber nicht allein in Unix-artigen Betriebssystemen. sh, tcsh, csh, ksh tclsh sind z.B. weitere.

Die Shell's sind aber auch gleichzeitig Programmiersprachen, jedoch mit eingeschränkten Funktionen. Der Vorteil, die Befehle müssen nicht vor der Ausführung in eine andere Form gebracht (kompiliert) werden. Das, die Übersetzung in Daten, die auch der Prozessor versteht, macht die jeweilige Shell Befehl für Befehl selbst. Dadurch sind Shell-Programme langsamer.

C ist eine Programmiersprache. Deren Befehle kann eigentlich nur der Mensch verstehen. Solche Programme müssen durch einen Kompiler und Linker erst in die Form gebracht werden, die dann die Maschine (der Prozessor) versteht. Unter Linux ist gcc oder darauf basierend c++ so ein Werkzeug.

Die Benutzung von gcc erfolgt dann vorzugsweise über ein Terminal. Dort wird dann gcc <Dateinama> eingegeben. Eine Shell (meinetwegen die bash) ruft dann gcc auf und zeigt dann auch die Reaktionen i.a. Fehlermeldungen an.
Ein Terminal kann aber auch umgangen werden, wenn z.B. ein grafisches Programm nur noch den Dateinamen so eines C-Programms entgegen nimmt und unsichtbar gcc als Kompiler-Programm hinzufügt. Auch die Ausgaben dann irgendwie in einem Fenster.
Solche grafischen Programme sind z.B. IDE's (Integrierte Entwicklungs Umgebung).

Woher ich das weiß:Berufserfahrung – openSuSE seit 1995

Die 'bash' ist bei Linux der sogenannte Kommandozeileninterpreter (Shell).

https://de.wikipedia.org/wiki/Bash_(Shell)

Das "Terminal" ist ein virtuelles Gerät, um sich mit einem Rechner zu verbinden.

https://de.wikipedia.org/wiki/Terminalemulation

Und C ist eine maschinennahe Programmiersprache.

https://de.wikipedia.org/wiki/C_(Programmiersprache)

So jetzt möchtest Du wissen wie das zusammenhängt?

Woher ich das weiß:Berufserfahrung – Web Developer bei einem mittelständischen Portalbetreiber