PATH环境变量

▶ PATH 环境变量

PATH 环境变量是最常见的环境变量,PATH 环境变量定义了用于命令和程序查找的目录,这也是个全局变量。

[root@server ~]# echo $PATH
/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin

当执行文件、命令在这些目录文件的时候,在控制台直接输入执行文件、命令的时候,shell就能帮助使用者找到需要执行的文件、命令。

▷ 在 PATH 环境变量指定的目录下存放可执行文件

如果没在 PATH 所在的目录中写文件如一个脚本文件,那么在执行这个脚本文件的时候要么就需要在脚本文件前面指定文件的路径。

[root@server ~]# pwd
/root
[root@server ~]# ll -l PING.sh
-rwxr-xr-x. 1 root root 312 Sep 17 16:32 PING.sh

[root@server ~]# ./PING 或者是 /root/PING.sh

如上当前目录在 /root 目录下,该目录下写了一个 PING.sh 的脚本文件,由于 /root 目录并非在 PATH变量中,所以要执行该文件就需要指定该文件的目录,完整的写法是 /root/PING.sh 由于本身就在这个目录下所以可以使用 ././ 的意思是当前目录,还有一个 ../ 这是指的是当前目录的上一层目录。

PING.sh 是一个关于 ping 网段的脚本:https://www.cnblogs.com/takenika/articles/18417274

[root@server ~]# echo $PATH
/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin

通过上面的查看 PATH 可以知道在 /root/bin 下可以存放执行文件供shell去找。

不过 /root 下并没有 bin 这个目录,这需要我们手动创建一下。

[root@server ~]# mkdir bin
[root@server ~]# mv PING.sh bin
[root@server ~]# cd bin && ll
total 4
-rwxr-xr-x. 1 root root 312 Sep 17 16:32 PING.sh

在 /root 创建了一个 bin 目录,将之前的 PING.sh 文件移动到了这个bin目录中也就是 /root/bin 目录下。

现在在其他的目录下执行一下该 PING.sh 文件。

[root@server bin]# cd /home
[root@server home]# pwd
/home
[root@server home]# PING.sh
192.168.10.1 通了
192.168.10.2 通了
^Z
[1]+  Stopped                 PING.sh

在我输入 P 后 tab 就能出现全部的脚本名,显然shell确实通过 PATH 知道了这个目录下的脚本文件。

▶ 修改 PATH 环境变量

应用程序存放可执行文件的目录常常不在 PATH 环境变量中所包含的目录中,解决方法要么是如上面一样将执行程序放在 PATH 指定的目录中,要么是将你想要的目录称为 PATH 变量内容的一部份。

PATH 环境变量中的目录之间使用 : 来分隔。

[root@server home]# PATH=$PATH:workdir
[root@server home]# echo $PATH
/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:workdir

workdir 就添加到了 PATH 中。

[root@server home]# PATH=$PATH:.

. 是当前目录的意思,将其添加到 PATH 中,这样任何时候都能执行可执行文件。

posted @ 2024-09-18 15:50  takenika  阅读(196)  评论(0)    收藏  举报