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 ...

Radu Rădeanu
  • 169,590
lelelelelelele
  • 347
  • 2
  • 3
  • 9

1 Answers1

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.

  • 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? :) – lelelelelelele Jun 25 '13 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. – gniourf_gniourf Jun 25 '13 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? :) – lelelelelelele Jun 27 '13 at 15:16
  • somehow it won't work for a full path. PATH=/usr/local/cuda-11.0/bin:$PATH – June Wang Aug 27 '20 at 19:21