A shell is a computer program that exposes an operating system's services to human users or external programs that automate an OS. Shell's can either textual via
Terminals are shells, programs that exposes an operating system's services to a human user or other programs. The terminal is just one way of interacting with the shell using textual input & output.
Terminals provide a Command-Line Interface (CLI) to the shell.