I am not so into Linux and I have the following doubt following a tutorial.
I have to modify the bashrc
file. What kind of settings are contained in this file? I think something related the bash shell environment but I am not so sure about it.
I have to insert this line:
export PATH=$HOME/.local/bin:$HOME/.local/usr/bin:$PATH
What exactly does this line?
I think that export
statement is used to create a new variable making it available for other program.
But what exactly does this line? Is PATH
the name of the variable that I am defining? What is $HOME
?
What means the :
symbol between PATH=$HOME/.local/bin
and $HOME/.local/usr/bin
and $PATH
section in the previous expression?
What exactly does this expression mean?
To recap everything mentioned in this question,
The
export
partThe
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 theexport
keyword through the shell's environment. So, if you did something likeexport FOO="BAR"
and then sourced the changes in your shell environment, you could type$FOO
and getBAR
.The
PATH
partThe 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 thePATH
variableAt 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 inHOME
and copy-paste it in front of the rest of the line when reading it.The
:
in between both pathsThe
:
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.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
, modifyingPATH
will let you type and run that file just like you do withls
ordf
.export
only means to make thatPATH
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.