It's quite simple really. What people commonly call "linux" is actually two things: 1. the Linux kernel, initially made and now still governed by Linux Torvalds, and 2. GNU/linux, which is an operating system that uses the linux kernel. Pack the two of them together and you have a "distro", which is short for "distribution".
Linux is the linux kernel, the core code that links the hardware to software that makes that hardware do stuff. Back in the day, just like now, serious computing was done on UNIX systems. UNIX was not free, it was very expensive, and the hardware manufacturers supplied entire systems, and supplied a kernel with their systems. These systems were very expensive. Linux Torvalds wanted to have a UNIX system, but he didn't have the money to buy an enterprise grade system, he only had an i386 PC. So he made a kernel for i386 machines, so that they could run the UNIX operating system.
GNU stands for "GNU is not UNIX", and is the project of Richard Stallmann. It's the same idea as Linux Torvalds had, but 10 years earlier. Richard Stallmann wanted to make a free and open source clone of the UNIX operating system. UNIX was prohibitively expensive, so he decided to make his own version. However, GNU could not really be fully used until Linux Torvalds made the Linux kernel in 1991, because before that, there was no free and open source kernel to make GNU work on PC's.
What links both of them together, are two things: 1. the free and open source character; 2. the C compiler that Richard Stallmann made and still governs. When you compile your own kernel, or when you compile the parts of your GNU operating system, you use the C compiler to translate the programmed code into machine language. The C compiler is called GCC, which stands for GNU C Compiler, and is basically the compiler par excellence for everything that works as it should on the planet. The thing is, that GCC is also GNU licensed, aka the GPL license, that's what gives it it's free and open source character. Since it's GPL, there is no place in it for proprietary plug-ins. That for instance means that a hardware company that has developed a proprietary machine language for its products, like for instance PTX for nVidia graphics cards, can't compile the features that work through that proprietary language directly with the GCC, but that an additional (also proprietary) layer has to be added afterwards, which reduces performance. Most main hardware manufacturers have therefore supplied the control code of their hardware to the Linux foundation, so that the kernel code can natively support the language of that hardware and that it can be compiled with GCC.
Since the Linux kernel also allows firmwares, which are open source hardware manufacturer supplied bits of code that ensure compatibility, but that are not free licensed, Richard Stallmann has a problem with the Linux kernel, because he believes that software should not only be open source, but should also be free from licenses. It's very hard to understand that point-of-view in the light of hardware development, because hardware design patents are of course a crucial part of intellectual property that stimulates technological advancement, as it costs a lot of money to develop hardware. Because of that fallout between the open source community and the free software foundation, the FSF is developing it's own kernel based on the Mach kernel, and this kernel is free from any hardware related license (and therefore doesn't have much compatibility), and is called "Hurd". So the official distro of the FSF is called GNU/Hurd instead of GNU/linux.
Since the GNU operating system is entirely free and open source, communities and companies started making their own improved version of GNU. That has lead to the more than 1000 distros that are based on GNU that exist now. The most known distro families are Slackware, Gentoo/Funtoo, Arch, Debian, RedHat/Fedora, SuSE/OpenSuSE, and ROSA/Mageia/OpenMandriva. Slackware, Gentoo, Arch, Debian, RedHat and SuSE were the original distros that lived on. Mandriva was the result of the fusion of Mandrake and Conectiva, whereby Mandrake was a fork from RedHat, and now, Mandriva is kinda lost, but the Mandrake heritage is continued in the Mandriva forks Mageia and ROSA. The lines between some distros are rather faint. For example, the main RPM-based distros (SuSE, RedHat, Mageia) share maintainers and developers, and although they supply different tools out of the box, the tools are intercompatible, like for instance you can use yum in Mageia instead or next to urpm, you can pull packages from any distro's repos to use in another RPM-based distro, etc...
Some distros have completely different tools. Arch for instance doesn't use the standard bash UNIX shell (which is the collection of command tools that you can use in the terminal), even though all the bash commands also work in Arch, and you can easily alias commands. Arch also doesn't use any of the two major packaging formats (RPM and DEB). Some distros don't use packaging, and require the user to compile every bit of software from source, or use a hybrid system.
The most popular distro in recent times is probably Android, which uses the Linux kernel with a HAL (hardware compatibility layer) called Dalvik, which then runs a Java environment on top of it. This extra step has allowed Google to break the link to the GPL license, because they wanted to put a non-open-source operating system on top of the open-source linux kernel. You can however still install bash on an Android install, and use the linux command line, accessing in linux kernel functions directly, for instance, to gain root access and configure the linux kernel-native IPtables firewall to restrict access to the device behind your back.
That's pretty much the entire overview in a nutshell.