Environment variables provide a way to influence software behavior on a system. They are dynamic named values that are set and used by processes. The printenv and env commands can be used to view environment variables. Environment variables are local to each process and child processes inherit the environment of their parent process, but changes made by the parent are not visible to the child. Environment variables are also case sensitive by convention and are typically named in uppercase. There are session-wide and system-wide environment variables that can be configured through various configuration files to make them persistent across sessions or the entire system.