Introduction to Shell Environment Variables

By Jennifer Mathew

Updated on May 10, 2024

In this tutorial, we will introduction to Shell Environment variables. how they work, the types of environment variables, and how to define custom ones. 

In the world of Linux and Unix-like operating systems, understanding shell environment variables is fundamental. These variables play a crucial role in customizing your shell environment, controlling the behavior of programs, and managing system settings. 

1. What are Shell Environment Variables?

Environment variables are dynamic named values that affect the way processes behave on a system. In a shell environment, these variables are available to all programs that are executed in that environment. They provide a means for passing information from the shell to programs when they are invoked.

2. Types of Shell Environment Variables


System-defined Variables

System-defined environment variables are predefined by the operating system or the shell itself. They contain information about the system configuration, user sessions, and other essential parameters. Some common system-defined variables include:

  • PATH: Specifies the directories where the shell looks for executable files.
  • HOME: Indicates the user's home directory.
  • USER or LOGNAME: Represents the name of the current user.
  • SHELL: Points to the default shell for the user.


User-defined Variables

User-defined environment variables are created and customized by users according to their specific requirements. These variables can hold custom values and settings that are relevant to particular tasks or applications.

3. How to View Environment Variables

To view the current environment variables in your shell, you can use the printenv command or env command. Simply type either command in your terminal and press Enter. This will display a list of all environment variables along with their values.

printenv

env

4. Defining Custom Environment Variables

To define a custom environment variable, you can use the syntax VARIABLE_NAME=value. Here's an example of how to define a custom variable named MY_VAR with the value Hello World!:

MY_VAR="Hello World!"

Once defined, you can access the value of MY_VAR using the $ prefix:

echo $MY_VAR

This will output Hello World! to the terminal.

5. Exporting Environment Variables

By default, variables defined within a shell session are only available to that session and its child processes. To make a variable available to all child processes of the current shell, you need to export it using the export command. For example:

export MY_VAR

Now, MY_VAR will be accessible to any subsequent processes launched from the current shell session.

6. Conclusion

Shell environment variables are powerful tools for customizing and configuring your Linux system. They provide a flexible way to control the behavior of programs and manage system settings. By understanding how to work with environment variables, you can effectively tailor your shell environment to suit your needs and improve your productivity.

This concludes our introduction to shell environment variables. Experiment with defining your own variables and exploring their impact on your shell environment to gain a deeper understanding of their functionality.