How can I edit the $PATH on linux?
To permanently store your path, you have a few options.
I suggest you read the Ubuntu community wiki on Environment Variables but the short answer is the best place is ~/.profile for your per-user PATH setting or /etc/profile for global settings.
Change PATH:
export PATH=$PATH:/your/new/path/here
export PATH=:/your/new/path/here:/another/new/path/here
It is important to note that there are many occasions your profile is not run (such as when a script is run by cron). If you need a specific path to be set in PATH, a script must set that path. That said, scripts should never rely on anything being in their paths and should always use absolute paths, anything else is a security issue.
Reader, if you want to edit the $PATH on Linux, not just add a path to it, see the answer to superuser.com/questions/1353497/removing-directories-from-path instead.
PATH=$PATH:newPath1:newPAth2 export PATH
It depends on the shell you’re using. On Solaris (I know the question is about Linux) one of the shells (can’t remember which one off the top of my head) requires that you do the export separately from setting the value in a script. So I’ve just gotten into the habit of doing it on 2 lines.
You can also put this in the global environment:
sudo emacs /etc/environment
Append to the entries already in your path
It has already been answered on how to do that, but I’d like to give you a little tip. Here is whatI do:
I have a directory called .bash.d in my $HOME and within that I keep a set of shell scripts that do stuff to my environment (for instance setup maven correctly, modify the path, set my prompt etc.). I keep this under version control by using git, which makes it easy to go back to a working version of your env, if you screw something up badly. To get all the modifications, I simply source all files in that dir at the end of my .bashrc like this:
for i in $HOME/.bash.d/*; do source $i; done unset i
This gives you a very flexible environment that you can easily modify and restore + you are able to export it to other machines just by using git.
How to Change the Path Variable in Linux
wikiHow is a “wiki,” similar to Wikipedia, which means that many of our articles are co-written by multiple authors. To create this article, volunteer authors worked to edit and improve it over time.
This article has been viewed 221,338 times.
Operating systems commonly use environment variables to define various global settings for parts of your operating system or to control how applications run. The PATH variable is one of these environment variables and is constantly used without the user realizing it. The variable stores a list of directories where applications (most commonly, your shell) should look for a program whenever you run it as a command.
- uzair@linux:~$ echo $PATH/home/uzair/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/games
- Note: Linux $PATH responds with «:» separators between entries.
- uzair@linux:~$ echo $PATH/home/uzair/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
- Remember, the above is only temporary and will be lost at reboot.
Community Q&A
To change the PATH variable, type export PATH=»$PATH:/path/to/new/executable/directory». Or, if you want to make it permanent, edit the .bashrc to say something like this: # what this location has export PATH=»$PATH:/path/to/new/executable/directory»
Thanks! We’re glad this was helpful.
Thank you for your feedback.
As a small thank you, we’d like to offer you a $30 gift card (valid at GoNift.com). Use it to try out great new products and services nationwide without paying full price—wine, food delivery, clothing and more. Enjoy! Claim Your Gift If wikiHow has helped you, please consider a small contribution to support us in helping more readers like you. We’re committed to providing the world with free how-to resources, and even $1 helps us in our mission. Support wikiHow
Tips
Changing your PATH variable can potentially cause your operating system to not work properly. Operating system and application programs commonly refer to the path variable to find files. If the variable is not configured properly, programs will not run or run incorrectly. ALWAYS TEST the temporary setting using the method described above BEFORE STORING the new path permanently in your ~/.bashrc.
You Might Also Like
How to Set JAVA_HOME for JDK & JRE: A Step-by-Step Guide
Can Linux Run .exe Files? How to Run Windows Software on Linux
How to Open Linux Firewall Ports: Ubuntu, Debian, & More
How to Run an INSTALL.sh Script on Linux in 4 Easy Steps
Use Ping in Linux: Tutorial, Examples, & Interpreting Results
How to Delete Read-Only Files in Linux
Is there a GUI to edit the PATH variable?
There’s a GUI in Windows to edit the path variable. I was wondering if there’s something equivalent in Ubuntu to do the same.
There’s no GUI available for the purpose. But its quite easy to do it the Command-line way. To read and understand fully about environment variables, checkout the official documentation regarding it- https://help.ubuntu.com/community/EnvironmentVariables
1 Answer 1
Thing is. path is set inside several text files based on what you want to accomplish, like in ~/.profile for the user, /etc/profile as a default for users, /etc/environment for the system or /etc/bash.bashrc for system wide interactive bash shells. In some of these $PATH is set as part of some coding.
So a text editor is the most logical thing to use. Like gedit if you want it graphical but you will still be looking at the same type of deal as with nano or vi from commandline. But it will not be possible with something where you edit in some directories with an input box to browse directories since in Linux PATH can have some more logic to it than simply editing a variable.
My advice: get used to command line editing for things like this and similar things. It will one day help you fix your problems when not being able to login or Unity crashing just after login.
There is more likely to be a reason for it being done this way. Linux has many more ways of doing things then either of us will ever use but that does not mean someone else does not need them.
For Latex I would suggest adding it to /etc/bash.bashrc . That is the place to edit path for system wide bash shells.
After adding it in and saving you can check with
if it is set correctly (and this will be permament).
What is this $PATH in Linux and how to modify it
Yes, you can change it — for example add to the $PATH folder with your custom scripts.
So: if your scripts are in /usr/local/myscripts to execute them you will have to type in a full path to the script: /usr/local/myscripts/myscript.sh After changing your $PATH variable you can just type in myscript.sh to execute script.
Here is an example of $PATH from RHEL:
To change your $PATH you have to either edit ~/.profile (or ~/.bash_profile ) for user or global $PATH setting in /etc/profile .
One of the consequences of having inaccurate $PATH variables is that shell will not be able to find and execute programs without a full $PATH .
Oh my God, you clarified it all for me by your statement —> «So: if your scripts are in /usr/local/myscripts to execute them you will have to type in a full path to the script: /usr/local/myscripts/myscript.sh After changing your $PATH variable you can just type in myscript.sh to execute script.» Thanks a lot
@ruggedbuteducated just bash commands which are executed after you log in. Please look into man bash and search for bashrc.
Firstly, you are correct in your statement of what $PATH does. If you were to break it somehow (as per your third point), you will have to manually type in /usr/bin/xyz if you want to run a program in /usr/bin from the terminal. Depending on how individual programs work, this might break some programs that invoke other ones, as they will expect to just be able to run ls or something.
So if you were to play around with $PATH, I would suggest saving it somewhere first. Use the command line instruction
echo $PATH > someRandomFile.txt
to save it in someRandomFile.txt
You can change $PATH using the export command. So
HOWEVER, this will completely replace $PATH with someNewPath. Since items in path are separated by a «:», you can add items to it (best not to remove, see above) by executing
The fact that it is an environmental variable means that programs can find out its value, ie it is something that is set about the environment that the program is running in. Other environmental variables include things like the current directory and the address of the current proxy.