Ubuntu: Edit environment variables via command line

12,500

Solution 1

You can set environment variables from the command line, but the new values will apply only to that terminal session and any processes launched from it. Environment variables are handled differently in Unix than they are in Windows. When a Unix process is created, it inherits an environment from its parent process that includes environment variables. Changes to a process's environment affect that process and its children, but not any other processes.

With that caveat, you can set an environment variable in a Bourne-like shell such as bash like this:

export MYVAR=myvalue

Solution 2

Edit /etc/environment. When you log out and log back in, the new values will be present.

Solution 3

If you want to modify/set environment variable(s) for your current shell session, which will last until you close/exit it, then

export MYVAR=value

If you want to modify/set environment variable(s) to be present every time you run your shell, then you should modify your shell's config file to include the above line.

To find out what shell you're running, type:

# echo $SHELL

Then edit the appropriate configuration file:

  • For sh you would modify ~/.profile
  • For bash you would modify ~/.bashrc
  • For zsh you would modify ~/.zshrc or ~/.zshenv

Where the ~ character in each case represents the path to your home directory. If editing on the command line, you can just use it directly, e.g. to open the file in the vim editor:

# vim ~/.profile

If you're using a GUI-based editor you should just navigate to your home directory to find the appropriate config file.

Share:
12,500

Related videos on Youtube

Ted Karmel
Author by

Ted Karmel

Updated on September 17, 2022

Comments

  • Ted Karmel
    Ted Karmel over 1 year

    How can you edit the environment variables via command line in ubuntu?

  • shortstuffsushi
    shortstuffsushi over 10 years
    I know this question is quite old, but this answer is not very useful or clear. Installing nano isn't really necessary to fix the problem, nor do you actually ever list the file you're using nano to edit. It looks like several other people posted solutions that are more thorough, you should consider accepting one.