So much of practical CS is abiding by standards created by solo programmers in the past.
My university frowned on any industry-related classes (i.e. teaching software engineering tools vs. theoretical CS), but I was fortunate enough to know a passionate grad student who created a 1-credit seminar course on this exact topic.
This course covered CLIs/git/Unix/shell/IDEs/vim/emacs/regex/etc. and, although I had experience with Linux/git already, was invaluable to my early education (and adoption of Vim!).
It makes sense that this isn't a core topic, as a CS education should be as pure as possible, but when you're learning/building, you're forced to live within an operating system and architecture that are built on decades of trade-offs and technical debt.
Sounds like MIT's missing semester https://news.ycombinator.com/item?id=46273762
If you've made it that far in life without learning how to use a screwdriver, engineering would be a bad choice of major. And paying insane amounts of money for someone to explain how to use one would be an even poorer choice.
> It makes sense that this isn't a core topic, as a CS education should be as pure as possible, [...]
I don't think that's a good goal. Otherwise, why let you near a computer at all, and not restrict you to chalk and blackboards?
Universities consider themselves pure and isolated from lowly industry.
Industry demands specifically university degrees to gatekeep positions.
And then we leave teenagers to figure out the puzzle by themselves. I think it's a disservice to the youth.