user-0 提问: Windows的shell到底是个啥？

回复:
user: user-1
content: win+R 输入cmd 回车

user: user-2
content: 引用 24 楼 六道佩恩 的回复:[quote=引用 23 楼 早打大打打核战争 的回复:] shell是操作系统提供给用户直接使用操作系统功能而不需要编程(也可以支持简单编程，比如批处理、cshell之类的)的若干程序，可以是命令行接口，比如Dos的command.com、Windows的cmd.exe也可以是GUI，比如Windows的explorer.exe。shell也是调用操作系统API实现功能的，广义来说可以归入应用程序一类 对于Windows的explorer.exe这种，是通过函数接口调用的（通用对话框函数？），还是说通过解释器做的进程通信？[/quote]  主要是COM接口

user: user-0
content: 引用 23 楼 早打大打打核战争 的回复:shell是操作系统提供给用户直接使用操作系统功能而不需要编程(也可以支持简单编程，比如批处理、cshell之类的)的若干程序，可以是命令行接口，比如Dos的command.com、Windows的cmd.exe也可以是GUI，比如Windows的explorer.exe。shell也是调用操作系统API实现功能的，广义来说可以归入应用程序一类 对于Windows的explorer.exe这种，是通过函数接口调用的（通用对话框函数？），还是说通过解释器做的进程通信？

user: user-3
content: 解释器是指命令识别或者指令识别吧？界面的概念要复杂许多。

user: user-0
content: 引用 20 楼 luj_1768 的回复:shell 是用户调用系统功能和应用程序的接口。其调用权限的配设方案，是其核心设计。在界面下可以使用什么级别的功能，功能的控制方案和性能指标、以及可以占用的系统资源都由此决定。windows 的权限配设方案很复杂。但是，图形界面和命令行界面肯定使用的是完全不同的两套方案。 命令行应该是指解释器的方案吧？  图形界面的话，应该也可以用解释器吧，解释器只需要和对应功能的进程通信就可以了（可行否？）  这么看，光解释器这一种设计也都可以实现呀

user: user-3
content: shell 是用户调用系统功能和应用程序的接口。其调用权限的配设方案，是其核心设计。在界面下可以使用什么级别的功能，功能的控制方案和性能指标、以及可以占用的系统资源都由此决定。windows 的权限配设方案很复杂。但是，图形界面和命令行界面肯定使用的是完全不同的两套方案。

user: user-2
content: shell是操作系统提供给用户直接使用操作系统功能而不需要编程(也可以支持简单编程，比如批处理、cshell之类的)的若干程序，可以是命令行接口，比如Dos的command.com、Windows的cmd.exe也可以是GUI，比如Windows的explorer.exe。shell也是调用操作系统API实现功能的，广义来说可以归入应用程序一类

user: user-4
content: https://baike.baidu.com/item/shell/99702 感觉是个解释器

user: user-0
content: 引用 17 楼 丁劲犇 的回复:shell 我理解是指一个交互的方式，即通过ASCII的指令交互的方式。记得以前看到一个德国的车床，上面把telnet登录上去维护设备的那个小接口也叫做shell，里面支持ftp上传固件等几个很有限的命令。另外，玩过通信芯片的，估计都记得通过串口9600波特登上去写AT指令的那个界面，也是shell。  所以，shell 字面上就是外壳，在核心功能的外面包着shell，为了和外部的人交互。广义上，现代SOC都用网页了，那也是个shell，只是图形化了。 但是“外壳”的解释太宽泛了，我只是想知道它是 解释器 还是 解释器+函数接口 ，通过你的描述我分辨不出来，感觉那个小接口可以调用一个函数（函数接口），也可以去加载一个程序来运行（解释器），后面那个AT指令，一看就是解释器吧

user: user-4
content: shell 我理解是指一个交互的方式，即通过ASCII的指令交互的方式。记得以前看到一个德国的车床，上面把telnet登录上去维护设备的那个小接口也叫做shell，里面支持ftp上传固件等几个很有限的命令。另外，玩过通信芯片的，估计都记得通过串口9600波特登上去写AT指令的那个界面，也是shell。  所以，shell 字面上就是外壳，在核心功能的外面包着shell，为了和外部的人交互。广义上，现代SOC都用网页了，那也是个shell，只是图形化了。

user: user-5
content: windows是消息驱动学系统，除了硬件中断，并没有去监听什么

user: user-3
content: windows 的命令行界面好像和图形界面是两个不同的系统，二者的运行权限方案是不同的。其他的区别不算重要，大多与兼容有关。

user: user-0
content: 引用 14 楼 luj_1768 的回复:windows 的命令行界面好像和图形界面是两个不同的系统，二者的运行权限方案是不同的。其他的区别不算重要，大多与兼容有关。  那么哪个才是windows的shell？还是说windows的shell在命令行和图形界面中各占一部分？在命令行中的话，shell应该是指解释器对吧？那么在图形界面中，是一套函数接口吗？

user: user-0
content: 引用 10 楼 早打大打打核战争 的回复:shell可以是命令行接口，也可以是GUI的 “可以是GUI”这句话的意思是？是指调用GUI程序，还是提供GUI的中转接口？  既然windows的shell也是解释器，那么运行的对象也都是可执行程序对吧？那么WH_SHELL钩子所监视的什么？所有程序的启动、退出以及关键事件？  MSDN的windows shell那个我早就看了，但实在没搞懂他讲的是啥，而看WH_SHELL钩子的描述我也不确定它到底针对的是什么，监视的是什么消息，所以它监视的对象是我上一段所说的吗？

user: user-6
content: 引用 12 楼 六道佩恩 的回复:“可以是GUI”这句话的意思是？是指调用GUI程序，还是提供GUI的中转接口？  既然windows的shell也是解释器，那么运行的对象也都是可执行程序对吧？那么WH_SHELL钩子所监视的什么？所有程序的启动、退出以及关键事件？  MSDN的windows shell那个我早就看了，但实在没搞懂他讲的是啥，而看WH_SHELL钩子的描述我也不确定它到底针对的是什么，监视的是什么消息，所以它监视的对象是我上一段所说的吗？ WH_SHELL钩子时监是SHELL的消息  WH_SHELL Installs a hook procedure that receives notifications useful to shell applications. For more information, see the ShellProc hook procedure.  ShellProc The ShellProc hook procedure is an application-defined or library-defined callback function used with the SetWindowsHookEx function. The function receives notifications of Shell events from the system.  有5种情况就触发SHELL消息 1. 只要有个top-level、unowned 窗口被产生、起作用、或是被摧毁； 2. 当Taskbar需要重画某个按钮； 3. 当系统需要显示关于Taskbar的一个程序的最小化形式； 4. 当目前的键盘布局状态改变； 5. 当使用者按Ctrl+Esc去执行Task Manager（或相同级别的程序）  不知道你所说的监视对象是指什么？

user: user-7
content: shell可以理解为一个控制台(终端)。 玩黑时，就是拿shell.拿站就是拿webshell. webshell往往是低级权限，还要提权。拿system

user: user-2
content: shell可以是命令行接口，也可以是GUI的

user: user-8
content: 引用 8 楼 千梦一生 的回复:所以，shell，约等于接口？ 或者就是？

user: user-8
content: 所以，shell，约等于接口？

user: user-9
content: 简单说是 包装一个系统, 包装后肯定需要提供接口让用户控制, windows是图形化, 所以多数控制是鼠标多, 键盘少  这个包装可以说是一个shell, 翻译可能为"外壳", windows的shell偏向图形化,  linux的shell偏向命令方式 windows的cmd也是命令方式, 可以说是一个命令方式的shell, cmd有很多内置命令, 也有很多命令是通过调用exe实现