每个程序是否都必须通过shell来完成他们愿意制作的过程?
我在某处看到“bash用于与Linux内核通信”。
它只适用于终端吗? 或者每个程序(包括具有GUI的程序)是否必须通过shell来完成他们愿意制作的过程?
(考虑一下我们正在为一张照片着色.bash如何知道我们在做什么?gimp和bash之间是否有第三方将它们转换为bash?)
如果你能举一个例子解释:)真的很有帮助:)
不。 只有用户必须通过shell与内核进行通信。 应用程序使用API 。
例如,如果我想删除一个文件,我必须使用一个shell或另一个,然后一个应用程序删除该文件:
- 使用命令行界面(CLI)shell,例如
bash
,我可以使用rm
命令删除该文件。 - 使用GUI shell(如Unity或GNOME Shell),我可以使用其他东西,例如文件管理器来删除文件。 反过来,GUI shell不需要使用CLI shell。
文件管理器和rm
都可以使用unlink(3)
(或更高级别的remove(3)
)函数(或系统调用 )来完成实际工作。