
unset Command in Linux
The unset command is an important tool in Linux. It helps users remove variables and shell functions from their current setup. When dealing with environmental variables, shell scripts, or debugging, unset becomes very useful. It removes values that are not needed anymore. Variables are important because they store data for the system and scripts, but sometimes it is necessary to clear or reset them to prevent conflicts.
Using unset, users can better manage system memory, improve the flexibility of scripts, and avoid problems caused by leftover variables.
Table of Contents
Here is a comprehensive guide to the options available with the unset command −
- Understanding unset Command
- Syntax for Using unset
- Different Options Available for unset Command
- Examples of unset Command in Linux
Understanding unset Command
Unlike commands that usually deal with files and directories, the unset command specifically handles shell variables and functions. When you use it, it takes away defined variables, making them unavailable in the present shell session. This action is helpful to free up some memory and stop problems if you need a smooth and clean setup to work in.
It's important to note that using unset does not delete variables from the system files permanently. It merely removes them for the current time. If these variables are configured in startup files like .bashrc or .bash_profile, they will reappear in any new shell sessions you open unless you go into those files and remove the variables manually.
Syntax for Using unset
The unset command follows a simple syntax −
unset variable_name
Where, variable_name represents the environment variable or function to be removed from memory.
Different Options Available for unset Command
Here are a few different options you can use with the unset command −
Option | Description |
---|---|
-f | Removes a function from the shell environment, making it inaccessible for future use in the session. |
-v | Deletes a shell variable, ensuring it is no longer stored or referenced within the session. |
-n | Unsets a variable that acts as a reference to another variable, removing the reference itself rather than modifying the original variable. |
Examples of unset Command in Linux
Listed below are a few practical examples of unset command in Linux environment −
- Removing a Single Shell Variable
- Unsetting Multiple Variables at Once
- Unsetting a Shell Function
- Removing a Name Reference Without Affecting the Original Variable
Removing a Single Shell Variable
Suppose you define a variable for storing a temporary directory path −
TEMP_DIR="/home/user/temp" echo $TEMP_DIR

Now, if you no longer need this variable, remove it using −
unset TEMP_DIR echo $TEMP_DIR
Nothing is displayed because the variable no longer exists. This ensures TEMP_DIR is completely removed from the current session, preventing further accidental usage.

Unsetting Multiple Variables at Once
You have multiple environment variables set up in your session −
USERNAME="linux" SESSION_ID="A12345" CONFIG_PATH="/etc/config"
To remove them all at once −
unset USERNAME SESSION_ID CONFIG_PATH
After executing this command, these variables will no longer be available in the shell.

Unsetting a Shell Function
Let's say you define a function called greet −
greet() { echo "Hello, welcome to Linux!" } greet
Now, remove this function using −
unset -f greet greet
Since the function was removed, calling greet results in an error.

Removing a Name Reference without Affecting the Original Variable
Suppose you define a reference variable that points to another variable −
declare -n REF_NAME=MAIN_VAR MAIN_VAR="System Active" echo $REF_NAME
Now, if you remove REF_NAME −
unset -n REF_NAME echo $REF_NAME echo $MAIN_VAR
First echo returns nothing, second echo still shows "System Active". The reference variable is removed, but the original MAIN_VAR remains unchanged.

Conclusion
The unset command is a key tool for people using Linux. It helps them manage environment variables and shell functions. You might need unset to remove old or outdated settings, save memory, or avoid issues in a script. Using unset is a good way to manage your shell environment effectively. When you understand how and when to use unset, it makes your work smoother and keeps your sessions organized.
By adding unset to your scripts and system management tasks, you can have better control over how things run and reduce unexpected errors.