The most important thing to keep in mind is that C++ and, to a lesser degree, C programming should never make assumptions about the OS. These languages were created to be portable, and a program that compiles and runs on Linux must compile and run and exhibit the same behavior on IRIX and on Windows and on Mac and even on VMS if you can find it.
If you are learning the language, you should not care about the OS at all, the only thing you should care about are the language compilers. An example of bad compiler is Turbo C/C++. Examples of good compilers are Comeau, GNU gcc, Intel icc, and MSVC 2010. My favorite is gcc because it supports the most of all new C++ language features (MSVC, surprisingly, supported almost as much back when its 2010 version was released, but gcc improved since then), and because with gcc I can get latest releases and bugfixes pretty much instantly. On the other hand, Comeau is the only compiler ever to support the complete 1998 C++ specification (nobody else was able to implement template export, and C++ had to deprecate that feature in 2010 as non-viable)
All that said, POSIX systems (such as Linux, other Unix systems, and even some non-Unix systems like LynxOS) offer a large library of C functions that lets your programs interact with the OS in many convenient ways. POSIX programming should be a separate topic from C programming, but it sure is a useful skill to learn. For that, Linux (any Linux) is a great environment.