cp
、ls
、chmod
等命令pwd
称为“实用程序”。我似乎无法定义称为“应用程序”的东西。
让我们放弃GUI以使定义更精确。
答案1
答案2
严格来讲,Unix 实用程序仅是可移植 shell 脚本可用的一组明确定义的命令,并且由 POSIX 指定。
该术语有时也被广泛用于包括 Unix 和 Linux 系统中仍然常见的非标准 CLI 命令,例如less
、emacs
、perl
和zip
无数其他命令。
应用程序几乎是在用户空间中运行并与最终用户交互的任何东西。这不包括内核以及与其紧密相关的所有内容,例如设备驱动程序。守护进程、系统服务和实用程序可能会被排除或不排除,具体取决于上下文。
在这里,POSIX 再次定义了什么是可移植应用程序,即用 ISO C 编写的程序,并描述了不同级别的一致性他们被允许跟随。当然,不合格的应用程序可以使用他们喜欢的任何编程语言和非便携式设施。
无论如何,应用程序都使用 API(应用程序编程接口)。
“应用程序”也是用于对磁盘上存储的内容进行分类和排列的术语之一,与“操作系统”、“数据”等一起。例如,操作系统使用数据/dev
,/usr
并且/etc
数据存储在/var
非捆绑的应用程序中/opt
。
答案3
Unix 中的实用程序旨在在命令管道或脚本中良好运行。他们在执行任务时不应该与他们进行高度互动。
应用程序通常提供工作区或项目的概念,您可以在其中交互地处理任务或文件(或多个此类内容),甚至可以将整个项目/工作区作为一个单元保存/加载。例如,Audacity 允许您将多个音频剪辑保存到一个项目中。 LMMS 是另一个例子 - LMMS 中的“项目”不仅包含您的音乐数据,还包含样本、乐器设置等。
诸如cp
、等实用程序ls
,甚至具有许多选项和功能(如convert
或 )的实用程序avconv
将获取文件/目录并对其进行处理,生成新文件,生成其他输出,或对现有的单个文件/目录执行某些操作,而无需您进一步输入。实用程序通常将文件或标准输入作为输入,对其执行某些操作,然后完成。