Environment variables in Linux
It’s a very important topic. There are two types of variables:
Shell
Environment
Variables are KEY=value pairs.
Multiple values looks like this: KEY=value1:value2
Simply speaking environment variables determines how the system looks, acts and feels.
To check the default Environment variables on your system, you can write this command in your terminal:
env
- Environment Variables are always uppercase
To see all of the environment variables in a “comfy” way. Use set and pipe it into the more command.
set | more
Then press ENTER and line by line you can see the output. Keep in mind that you can exit the view by hitting q key.
Of course there’s still lots of information. It would be nice to filter it. We can pipe the set to the grep and search for a HISTSIZE env variable. This variable contains the maximum number of commands your command history file will store. These are the commands which you can see with up/down key in your terminal. Default value is usually 1000.
set | grep HISTSIZE
Changing HISTSIZE variable
Sometimes we don’t want to leave any evidence on the target system. For that case we could set the HISTSIZE value to 0.
Then system will not store any of your past commands.
HISTSIZE=0
Now try to press the UP key. Previous command won’t show.
Keep in mind that this method only applies to the current terminal session. When you close the terminal, changes are lost.
Changing the value permanently
Before changing the value permanently it’s always a good idea to save the current value if you’ll want to backup. For example:
echo $HISTSIZE > ~/valueofHISTSIZE.txt
Change your HISTSIZE value to 0 and you’ll apply it to all your environments.
HISTSIZE=0
export HISTSIZE
FINISHING THOUGHTS
Interesting stuff. Thoughts that I have after learning about Environment Variables.
So I believe that it’s possible to set up even UI of your system using Environment Variables. For example I can change the Ubuntu appearance in one environment and then change it using other env variables. Nice. I’m not sure how to do it, but i believe that I’ll reach this case. Or some key information on how to do it.
It’s really nice that you can hide the evidence with HISTSIZE environment variable.
There are LOTS of environment variables that show when you enter the set command. I’m curious what other environment variables do.
CREDITS
I’m learning using this book:
Linux Basics For Hackers by OCCUPYTHEWEB (MASTER OTP)