Normally if you have typed part of a command or part of a filename and press tab, bash will complete the command or filename if it is unambiguous. If it is ambiguous then bash will only complete as much of the command or filename as it can to the point where it becomes ambiguous. Pressing tab a second time will then show you all the possible expansions that bash knows about.
If you press tab at a blank prompt then you have the potential of using every command bash knows of - far too ambiguous, so nothing will happen. Press tab a second time, and you should get a warning about how many potential commands are going to match - in my case bash asked me if I really wanted to "Display all 1816 possibilities? (y or n)"
This can be customized considerably, and can be a very useful tool when you get used to it.