$ are elements of the command line prompt. This indicates that your computer (or more exactly, I guess, the shell you are running) is waiting for user input. It is prompting you to input a command.
$ is merely a separator or divider. It separates the command prompt from the command which follows it. When people write such things as
$ sudo apt-get update (your example), they are simply telling you that the command, in this case
sudo apt-get update, needs to be entered at a command prompt. Strictly speaking, perhaps, the
$ is redundant in this context.
Other separators may be used in other situations. For example,
# is used for a root shell.
~ (called 'tilde') is shorthand for your home directory. When it appears in a command prompt, e.g.,
user@hostame:~$, it indicates that the current working directory is your home directory. Thus if you run the list command,
ls, without specifying any particular directory, it will list the contents of your home directory.
(By the way,
$HOME, is not a command, as you suggest, but rather an environment variable. It determines the location of your home directory. You can see its value by running
$ echo $HOME.)