💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
echo $PATH ~~~ [root@iZ23w9ljtgdZ ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/alidata/server/mysql/bin:/alidata/server/httpd/bin:/alidata/server/php/sbin:/alidata/server/php/bin:/root/bin ~~~ ### echo $PATH 显示当前PATH环境变量,该变量的值由一系列以冒号分隔的目录名组成。如: ~~~ /usr/local/bin:/bin:/usr/bin ~~~ 当我们执行程序时,shell自动跟据PATH变量的值去搜索该程序。比如我们现在的工作目录是根目录/ ,有一个程序sunrise在/bin/目录下,我们可以在命令行输入/bin/sunrise 这样来执行它,还可以直接输入sunrise,这时shell会自动去寻找sunrise这个程序所在的完整路径,找到之后才会去执行该程序。shell在搜索时先搜索PATH环境变量中的第一个目录,没找到再接着搜索,如果找到则执行它,不会再继续搜索。 注意:`当前工作目录 ./` 一般并未在搜索范围之列,也就是PATH环境变量的值中并不包含./这个当前工作目录。为什么一般不能加入这个当前工作目录呢?主要原因在于安全问题。 试想,一个evil 用户在自己的家目录/home/evil/中放了一个名字叫ls的程序,当root用户或其它用户来到这个/home/evil/目录时,想查看这个目录中有些啥子文件,于是执行ls命令,这时如果./目录在PATH环境变量中且搜索时先搜索这个./目录的话,则执行到的程序是/home/evil/ls而不是/bin/ls程序,这样就会造成极大地安全问题。所以我们要避免把./目录加入PATH环境变量之中,不要图一时方便而铸成大错哦!执行当前工作目录中的 program 时还是老老实实的 `./program` 这样去执行吧! 使用范例: ~~~ [tito ~]$ echo $PATH /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin [tito ~]$ PATH=$PATH:/home/tito/bin #添加/home/tito/bin到PATH环境变量 [tito ~]$ echo $PATH /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/tito/bin ~~~