gpt4 book ai didi

shell - 终端或控制台或 shell 或命令提示符?

转载 作者:行者123 更新时间:2023-12-03 09:29:59 25 4
gpt4 key购买 nike

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

7年前关闭。




Improve this question




我发现自己在不知道区别的情况下交替使用这些术语。所有这些术语之间的实际区别是什么?

最佳答案

是的,这些术语存在很多混淆。我会试一试,但附带条件是这确实是语义,并且这些术语在日常讲话中可以互换使用:

“shell ”是用于运行其他程序的任何程序的术语。它环绕另一个程序,因此得名。例如,Windows 资源管理器是一个 shell ,尽管很少有人会称它为 shell 。在我使用过的所有语言和平台中,任何程序都可以是 shell。

编辑:我没有定义“终端”。它的名字来源于与用户通信的端点。具体来说,它是用于最终用户通信的打字机设备。今天它更普遍,可以表示伪终端(Linux 中的 pts ps -ef ),它是由 GUI 管理的基于字符的 session 。在 Windows 上,这将被称为“控制台窗口”。

“控制台”在 Windows 和 UNIX 上意味着特定但不同的东西。在 UNIX 上,最初是将 tty(TeleTYpewriter,VDU 是一种“玻璃电传打字机”)物理插入机器,甚至不是通过加密狗(我在 UNIX 上回溯了很长时间)。它是发送和接收启动和关闭消息以及诸如 PANIC 之类的警报的终端。 bash 和 Korn shell 脚本都可以在没有 TTY/控制台的情况下作为伪守护程序运行。

术语“控制台”经常与更准确的“标准输入”、“标准输出”和“标准错误”(stdin、stdout、stderr,来自 C)混淆。这些有时称为流,并且在大多数系统上默认定向到终端。在 UNIX 上,它们是前三个文件描述符,在 Windows 上,它们是前三个文件句柄,两者都是 0、1、2。程序可以将它们定向到它具有适当访问权限的任何文件系统,但通常不会 - 它通常从其父进程继承它们(过去并非所有操作系统都这样做)。

在 Windows 上,“控制台”程序是具有控制台窗口的程序,通常被错误地称为“DOS 框”。因此,cmd.exe 是一个控制台程序,但 perl.exe 和 python.exe 也是一个控制台程序(但不是 pythonw.exe)。

命令提示符是由命令行解释器或 CLI 显示的键入邀请。按照 UNIX 的惯例,除 root 之外的所有用户都以 $ 结尾,root 以 # 结尾。 csh 不遵循此约定并使用 %。通常,Windows CLI 上的提示以 > 结尾。在所有情况下,这些都可以由用户更改。

我相信 Windows 上 cmd.exe 的快捷方式和窗口标题带有“命令提示符”标签,因为它可以访问命令提示符。我有一本名为“Windows 命令行”的 Microsoft Press 书籍,上面写着“命令行是...通过命令 shell 窗口访问”。因此,即使是微软也混合了他们的条款。

因此,cmd.exe 是一个 shell 程序和一个 CLI,以及一个控制台程序。 sqlplus 是一个 CLI 但不是一个 shell,在 Windows 上它是一个控制台程序。 Windows 资源管理器是 shell 程序,但不是 CLI 或控制台程序。 Bash 和 Korn shell 都是具有 CLI 的 shell,可以从控制台运行,但并非完全如此。

关于shell - 终端或控制台或 shell 或命令提示符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21014344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com