Разница между cmd/shell/bash/dash?
shell - это общее название оболочек операционной системы, которые глобально делятся на графические и текстовые
cmd - командная оболочка в виндовс
bash/dash - командные оболочки в линукс
Ни одна из этих программ не является эмулятором терминала.
Все эти программы - командные процессоры. Похожи они тем, что интерпретируют пользовательский ввод и сразу его выполняют. 
Различаются синтаксисом и возможностями.