Linux PATH, PATH variable $PATH

Path problem under Linux Environment configur...
1. First, what is a path?
2. PATH variable $PATH
3. How to modify path variables?
Path problem under Linux

Environment configuration is a big difficulty for everyone to learn Linux, especially the various path configurations.

Today, let's talk about two or three things about PATH.

1. First, what is a path?

PATH, the PATH in the computer system is for files.

There are absolute paths and relative paths:

  • Absolute path, which must be written from the root directory / directory;
  • Relative path, not written by /;

2. PATH variable $PATH

Have you ever wondered why we can execute various commands in any directory of Linux?

This is due to the help of the environment variable PATH.

You can log in to your Linux system and enter echo $PATH. Note that the PATH here is capitalized.

[iron2222@localhost ~]$ echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/iron2222/bin

Note: each path will be separated by: and there are sequential differences between them.

When you enter a command, the system will find the corresponding executable file according to these paths, and use whoever finds it first.

3. How to modify path variables?

Especially when configuring the cross compilation tool chain, I was confused at that time:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin:/home/book/100ask_imx6ull-sdk/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin

For example, I newly downloaded a fun command that can generate a lot of interesting things, but I don't know why there is no response to the command input.

At this time, it is likely that your path is not configured properly.

For example, let's cancel the path of the most commonly used ls command and see what happens.

[iron2222@localhost ~]$ su - root Password: [root@localhost ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin [root@localhost ~]# mv /bin/ls /root [root@localhost ~]# ls -bash: ls: command not found

You will find that no matter which directory you are in, you can't execute the ls command.

Because the directory / root is not in the directory specified by PATH, it is impossible to find the command ls if you choose to be in the directory / root.

If you want root to execute ls in any directory, add / root to PATH.

[root@localhost ~]# PATH="$:/root"

You can check:

[root@localhost ~]# PATH="$:/root" [root@localhost ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root

Found that / root already exists.

[root@localhost ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root [root@localhost ~]# ls anaconda-ks.cfg install.log install.log.syslog ls

At this time, the command ls can also be used.

After this experiment, don't forget to move the ls command back!!!

[root@localhost ~]# mv /root/ls /bin

At this time, you will suddenly find that why ls I have moved back, why can't I use it.

[root@localhost ~]# ls -bash: /root/ls: No such file or directory [root@localhost ~]# ls -bash: /root/ls: No such file or directory

Don't be nervous. Just log out of exit and log in again.

[root@localhost ~]# exit logout [iron2222@localhost ~]$ ls Desktop Documents Downloads Music Pictures Public Templates Videos [iron2222@localhost ~]$ su - root Password: [root@localhost ~]# ls anaconda-ks.cfg install.log install.log.syslog [root@localhost ~]#

That's it. Good morning, good afternoon and good night!

2 December 2021, 23:47 | Views: 8249

Add new comment

For adding a comment, please log in
or create account

0 comments