Hmm doesn't virtual console mean pretty much the same as virtual terminal / terminal emulator?
I. e. it is a facility where you interface with the system via BASH or csh on a commandline type interface. That means you can type commands using the keyboard, and they are interpreted "as if" you were sitting physically on a keyboard directly connected to the system. Even when you are, in fact, sitting physically at the keyboard connected to the system, terminology and general usage still has you using the "console / virtual console" to interface with the system. Usually, if you are in GUI mode, you use a "terminal emulator" which does much the same as a "console" or "virtual console". All that the "virtual" means is that it is possible to interface to a Linux system via the internet or a LAN using the telnet or SSH protocol, and pass it commandline commands - "as if" (i. e. "virtually") you where physically sitting at that system's keyboard.
The $ versus # prompt I think is just a visual indication of your status. If you see $ you are a "normal" user, if you see # you are superuser (i. e. # is kind of a "watch out!" - if you see # be careful what you type because you are all-powerful and you can do anything - including crashing your system by deleting vital files or config info)
Last edited by rylan76; 12-10-2008 at 02:36 AM.