If you study the rudiments of unix editors, shell programming, make, etc., are part of the assignment, you just need to dive in and find out what you need to learn. Some good books will help. Obviously, you need K & R. I always liked O'Reilly books for Unix materials, usually because they are the thinnest. I hate thick computer books because they are never read. You should also learn how to use the manual pages.
Wim vs. Emacs is a religious choice. If you ask any Unix guy what is best, he will certainly tell you the one he knew first, because most likely he never knew the other. In my case, I used Vim for so long that my rescue key is worn out and the commands are hardwired to my brain. Obviously, I think this is better than emacs (which I never knew!) If you are lucky enough to have a Mac as a workstation, install mac vim. It's great.
Make is sophisticated enough for you to never deal with this. Just learn how to compile and link your program. You can always find out more if you need it.
Version control is an interesting question ... I use RCS for small things. Like vi, it is on every Unix machine. For really large projects, I use subversive activities, but like editors, most people use what they learned first. Git people will say that its only thing to use, etc.
Command line debuggers are a pain that is Xcode's main selling point. I used gdb, but I do not remember it as a pleasant experience. Its as long as I used it, I can’t even remember how to start it. By now, there should be better debuggers. Try Google.
Below, all that you mentioned are big topics. You need to take realistic bites of everyone and not get confused in the weeds. It may take years to master them.
Finally, I will stay as far away from C ++ as possible! Goal C is much better. Personal biases!