14

A little time ago, I found out, that I can create custom commandterminals with expanding the PATH-variable. Unfortunately, it gets always resettet, when I close the terminal and opens it again.

Do you know how to fix this problem?

Because when I want to start a few scripts with terminalcommands, I don't want to expand the PATH-variable everytime before ...

5
  • 1
    Put it in your .bashrc? Jun 24, 2013 at 16:47
  • How to do that? I'm new on Linux ;) Jun 24, 2013 at 16:48
  • 3
    open your .bashrc file like so: gedit ~/.bashrc and put whatever you want in there (at the bottom of the file is better), e.g., PATH="~/my/cool/path/:$PATH" and export this variable: after the line you just entered, put export PATH then save the file, then close your terminal and reopen it and now your executables in ~/my/cool/path will be found. Jun 24, 2013 at 17:00
  • I wrote it up as a full answer for you... :) Jun 24, 2013 at 17:10
  • 1
    Possible duplicate of How to add a directory to the PATH? Dec 5, 2016 at 10:48

1 Answer 1

20

I understand you have some executables in one of your home folders, e.g., in ~/bin and you want to be able to execute them without always typing the full path ~/bin/my_cool_executable.

You already observed that entering PATH=~/bin:$PATH in your terminal made things work... but only until you close the terminal. When you open a new one, your former PATH variable gets reset to its original value. By the way, I guess you know how to, at any time, check the value of the PATH variable: like so:

echo "$PATH"

How to make your change permanent so that your PATH will still be the same when you reopen a new terminal? It's very easy, you just need to edit your .bashrc file. Let's use the gedit editor: In a terminal, type this:

gedit ~/.bashrc

This opens up the gedit editor. Scroll to the end of the file and add this:

# Added by me on 2013/06/24
PATH=~/bin:$PATH
export PATH

and save the file and quit gedit. Then close your terminal and open a new one. Now your PATH variable should have ~/bin in front of it so that your commands in ~/bin will be accessible without typing their full path. And you know how to check that: echo "$PATH".

Enjoy!

Warning. It is considered bad practice and a security vulnerability to put . in your PATH variable.

4
  • So, that was really nice, but now I can't start the programs, when I am root. Do you know why and how to fix that? :) Jun 25, 2013 at 19:38
  • In this case, one option is to put your programs in /usr/local/bin instead of fiddling with the PATH variable... or in /usr/local/sbin if they must only be accessed by root. Jun 25, 2013 at 19:56
  • Some have to be ran as root and some not. So it would be nice, if it wouldn't matter and they could be in a custom directory. So ist it able to do that? :) Jun 27, 2013 at 15:16
  • somehow it won't work for a full path. PATH=/usr/local/cuda-11.0/bin:$PATH
    – June Wang
    Aug 27, 2020 at 19:21

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .