Frage Muss jedes Programm durch die Shell gehen, um den Prozess zu vollenden, den sie machen wollen?


Ich habe irgendwo gesehen, dass "Bash verwendet wird, um mit dem Linux-Kernel zu kommunizieren."

Gilt es nur für das Terminal? Oder muss jedes Programm (einschließlich Programme mit GUIs) durch die Shell gehen, um den gewünschten Prozess abzuschließen?

(Denken Sie daran, wir färben ein Foto. Wie weiß Bash, was wir tun? Gibt es eine dritte Partei zwischen Gimp und Bash, um sie in Bash zu konvertieren?)

Es wäre wirklich hilfreich, wenn du ein Beispiel nehmen könntest, um es zu erklären :)


1
2017-12-01 14:58


Ursprung




Antworten:


Nee. Nur Benutzer müssen eine Shell durchlaufen, um mit dem Kernel zu kommunizieren. Anwendungen verwenden APIs.

Zum Beispiel, wenn ich eine Datei löschen möchte, muss ich die eine oder andere Shell verwenden, und dann eine Anwendung, um die Datei zu löschen:

  1. Mit einer Befehlszeilenschnittstelle (CLI), wie z bashIch kann das benutzen rm Befehl zum Löschen der Datei.
  2. Mit einer GUI-Shell (wie Unity oder GNOME Shell) kann ich etwas anderes verwenden, z. B. den Datei-Manager, um die Datei zu löschen. Die GUI-Shell muss nicht wiederum eine CLI-Shell verwenden.

Sowohl der Dateimanager als auch rm wiederum kann die verwenden unlink(3) (oder das höhere Niveau remove(3)) Funktion (oder Systemaufruf) um die eigentliche Arbeit zu erledigen.


4
2017-12-01 15:13



| Ich muss eine Shell oder die andere verwenden | wie viele Shells gibt es in einem OS? Wenn es Gnom ist, gibt es nur Bash und Gnome Shell? oder wir können viele installieren? - Srinesh
@Srinesh So viele Shells wie Sie finden können (obwohl einige möglicherweise mit anderen nicht kompatibel sind). - muru
@Srinesh standardmäßig, Ubuntu kommt mit dash (Debian Amquist Shell) und bash (Bourne Again Shell), die für interaktive und Skriptingzwecke in der Textschnittstelle verwendet werden. Red Hat Linux auf der anderen Seite kommt mit bash und tcsh . Gnome und Unity sind grafische Shells. Man kann so viele wie man will installieren, z. B. ich habe bash, dash, mksh , ksh, tcsh, und zsh Eingerichtet. Für 99% der täglichen Aufgaben können Sie verwenden bash. Entwickler, Hacker und nur technische Junkies können viele von ihnen installiert haben. Warum ? Weil jede Shell einige einzigartige Funktionen besitzt - Sergiy Kolodyazhnyy