Bash es un shell de Unix o línea de comandos. Hay muchos shells disponibles, pero Bash es antiguo y estándar. Ninguna de las alternativas es mejor, así que quédate con Bash.
Bash es el primer lenguaje de programación que uno debería aprender. Este no es el enfoque convencional, pero piensa en los idiomas humanos como el inglés. ¿Se empieza un nuevo idioma teniendo conversaciones o escribiendo ensayos? La línea de comandos es como tener una conversación con la computadora mientras que un programa es como un ensayo. Usar la línea de comandos naturalmente te acostumbrará al tipo de pensamiento correcto necesario para programar. El siguiente paso es escribir programas (scripts de shell) en Bash para automatizar lo que uno hace desde la línea de comandos. Otro beneficio de aprender bash es que ayuda a entender la computadora. Bash trata con conceptos básicos como archivos y directorios. Ten en cuenta que el primer libro recomendado aquí es The Unix Programming Environment que introduce el shell. Para aprender Bash, consulta mi tutorial de Bash.
El entorno adecuado para programar es la línea de comandos y un editor de texto, no un IDE. Los IDEs son uno de los horrores de la programación moderna. Son hinchados, sobrecomplicados e inflexibles. La programación reaccionaria debería basarse en el uso de herramientas simples y flexibles como el shell y un editor de texto.