In Unix, a special name assigned to substitute for some (usually recondite and un-mnemonic) term that may vary from user to user (and can thus not be supplied literally in documentation). For instance, $HOME is a first-person indexical variable that refers to the home directory of whatever user types it, while the variable bookmark might be assigned by one user to point to the full pathname of a file containing their Web bookmarks, and by another to a a file containing a list of book reviews. $HOME is an example of a global, or system variable, part of Unix and available to all users, while the various uses of bookmark are local, or shell variables interpretable only in the environment of the particular user.
Environment variables are settings used by the operating system. In Windows XP (and some other Windows versions), they are set from Control Panel, System Properties, Advanced, Environment Variables. There are both 'user variables' and 'system variables'.