Boa questão para quem inicia, vamos lá:
Shell é o programa que interpreta os comandos que você digita, é o nome genérico, existem vários destes programas, que chamamos de interpretadores , um deles é o Bash, mas existem outros, como o tcsh, ksh e zsh
Terminal ou console é simplesmente a janela em que você está digitando os comando, assumindo que você está em um ambiente gráfico, ou se estiver no terminal mesmo (tela preta sabe, antes de um startx), estes terminais também são programas, como o gnome-terminal, LXTerminal, rxvt-unicode entre outros.
Você pode escolher o que usar e combinar estes programas, alguns tem funcionalidades diferentes, os shells também, tem que ler um pouco sobre cada e ver o que você acha que vai lhe atender melhor, ou melhor estética se for o caso.
um bom link pra visitar: https://linuxcommand.org/