每个程序都要经过shell才能完成它们愿意做的事情吗?

每个程序都要经过shell才能完成它们愿意做的事情吗?

我曾在某处看到过“bash 用于与 Linux 内核进行通信”。

它只适用于终端吗?还是每个程序(包括具有 GUI 的程序)都必须通过 shell 来完成它们想要执行的过程?

(假设我们正在给照片上色。bash 如何知道我们在做什么?gimp 和 bash 之间是否有第三方可以将它们转换为 bash?)

如果你能举个例子来解释一下那将会很有帮助:)

答案1

不是。只有用户必须通过 shell 与内核通信。应用程序使用蜜蜂

例如,如果我想删除一个文件,我必须使用一个shell或另一个shell,然后使用应用程序来删除该文件:

  1. 使用命令行界面 (CLI) shell(例如),bash我可以使用rm命令来删除文件。
  2. 使用 GUI shell(如 Unity 或 GNOME Shell),我可以使用其他工具(如文件管理器)来删除文件。而 GUI shell 则不需要使用 CLI shell。

文件管理器和rm依次可以使用unlink(3)(或更高级别的remove(3))功能(或系统调用)去完成实际工作。

相关内容