Não é uma analogia ruim. Um terminal pode ser considerado apenas como um dispositivo para exibir informações e recebê-lo. Ele pode variar de um terminal estúpido que não faz nada além de interpretar caracteres imprimíveis, para um gigante com posicionamento de cursor cheio e capacidades de cor.
Um shell, que frequentemente (mas nem sempre) é executado em um terminal, é um ambiente poderoso para interpretar comandos e agir sobre eles. Você pode considerar os shells mais modernos como linguagens de programação completas.
A idéia básica por trás de um shell interativo é aceitar esses comandos do usuário (através do terminal) e agir sobre eles, seja fazendo suas próprias coisas ou executando programas externos para fazê-lo. Um shell não interativo é aquele que geralmente executa scripts pré-escritos para executar tarefas. Alguns scripts de shell serão executados sem um terminal, já que eles não precisam de interação com o usuário.
O shell padrão do Ubuntu é bash, embora seja fácil alterá-lo para o que você quiser.