What does the export PATH line in .bashrc do?
Solution 1:
To recap everything mentioned in this question,
The export
part
The export
line means that the variable that you declare after it will be accessible to child processes. In other words, processes will be able to access the variable declared after the export
keyword through the shell's environment. So, if you did something like export FOO="BAR"
and then sourced the changes in your shell environment, you could type $FOO
and get BAR
.
The PATH
part
The path line is just as you stated: it's declaring a variable that's named PATH
for the shell environment. In the bash environment, PATH
has a special purpose of defining where the computer looks for programs is. This lets you type custom commands for scripts without typing the full directory. Note that PATH is marked for export by default, so this line doesn't have to be rewritten. It doesn't hurt, though.
The $HOME
in the PATH
variable
At the beginning of the path that is assigned to the PATH
variable, $HOME
is declared. This means that the computer will pretty much grab the value stored in HOME
and copy-paste it in front of the rest of the line when reading it.
The :
in between both paths
The :
is equivalent to a comma in sentences. It just separates the three directories. Without those three directories, the console would not recognize the commands it receives. Those three places are the three directories that are most commonly used for scripts/command files to be stored and therefore should be accessible by the terminal without having to write out the full path to the file.
Solution 2:
The PATH
variable lets bash know where to look for executable programs, so if you have a script or some other executable file in $HOME/.local/bin
, modifying PATH
will let you type and run that file just like you do with ls
or df
.
export
only means to make that PATH
variable also available for other programs you run from bash.
As for :
, it's just a separator for each directory. It's the same as a comma in a list of words, nothing more.