My development machine has Windows. I have used Ubuntu at some point, but it was a disaster, so I switched back. And there are always people asking me how I manage to be productive on Windows, and if I don’t miss the shell.
Developers use the shell and the tons of available cool utility programs in Linux to achieve some supporting, auxiliary tasks. Doing mass-replace, automating some code-generation process, etc., etc. So don’t I miss the shell and bash programming in order to achieve tasks that are auxiliary to the actual development?
Well, I don’t. I don’t even use PowerShell. If my IDE doesn’t provide the functionality I need (or I don’t know it does), then I use a tool class with a main method. Java has a lot of powerful libraries that allow me to ditch the need of doing stuff in the shell or using bash scripts. And the good thing is – it’s Java, it can be versioned if needed, and it’s easy to use, with no additional learning curve, no man pages, etc.